Skip to content

Instantly share code, notes, and snippets.

@westor7
Last active March 20, 2021 03:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save westor7/9319ff96b16fba857e504eea1bbc8b8a to your computer and use it in GitHub Desktop.
Save westor7/9319ff96b16fba857e504eea1bbc8b8a to your computer and use it in GitHub Desktop.
Badwords Protection for Kendy
; --- Settings ---
alias -l badwords_chan { return #msl }
alias -l badwords_file { return badwords.db }
alias -l badwords_ban_time { return 3600 }
alias -l badwords_ban_type { return 2 }
alias -l badwords_ban_kick_message { return Do NOT use badwords here! }
; --- Settings ---
ON *:START: {
if ($file($badwords_file)) { hload -m BADWORDS $qt($badwords_file) }
}
ON *:EXIT: {
if ($hget(BADWORDS,0).item) { hsave BADWORDS $qt($badwords_file) }
}
ON @*:TEXT:*:$($badwords_chan): {
tokenize 32 $strip($1-)
if ($1 == !badwords) {
if (!$2) { msg $chan ( $+ $nick $+ ): Available Options: add - del - list | return }
if ($2 == add) {
if ($nick !isop $chan) { msg $chan ( $+ $nick $+ ): Access Denied! | return }
if (!$3) { msg $chan ( $+ $nick $+ ): Error, Please specify a badword! | return }
var %r = $hget(BADWORDS,$3)
if (%r) { msg $chan ( $+ $nick $+ ): Error, That badword already exists! | return }
hadd -m BADWORDS $3 1
msg $chan ( $+ $nick $+ ): Badword $qt($3) has been added on database.
}
if ($2 == del) {
if ($nick !isop $chan) { msg $chan ( $+ $nick $+ ): Access Denied! | return }
if (!$3) { msg $chan ( $+ $nick $+ ): Error, Please specify a badword! | return }
var %r = $hget(BADWORDS,$3)
if (!%r) { msg $chan ( $+ $nick $+ ): Error, That badword does NOT exists! | return }
hdel BADWORDS $3
msg $chan ( $+ $nick $+ ): Badword $qt($3) has been removed from database.
}
if ($2 == list) {
if ($nick !isop $chan) { msg $chan ( $+ $nick $+ ): Access Denied! | return }
var %t = $hget(BADWORDS,0).item
if (!%t) { msg $chan ( $+ $nick $+ ): Not any badwords on the database. | return }
var %i = 1
while (%i <= %t) {
var %w = $hget(BADWORDS,%i).item
if (%w) { msg $chan ( $+ $nick $+ ): %w }
inc %i
}
msg $chan ( $+ $nick $+ ): End of badwords list. - (Total: %t $+ )
}
return
}
if ($nick isop $chan) { return }
var %h = $hget(BADWORDS,0).item
if (!%h) { return }
var %t = $numtok($1-,32)
var %i = 1
while (%i <= %t) {
var %w = $gettok($1-,%i,32)
var %r = $hfind(BADWORDS,%w,0,W)
if (%w) && (%r) { ban $+(-ku,$badwords_ban_time) $chan $nick $badwords_ban_type [Banned]: $badwords_ban_kick_message - (Badword: %w $+ ) - (Bantime: $duration($badwords_ban_time) $+ ) }
inc %i
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment