;==================================================================================================================================
; PROFANITY PROTECTION
;==================================================================================================================================
dialog pfp {
title "Profanity Protection"
size -1 -1 118 126
option dbu
combo 1, 6 9 70 97, sort size vsbar
button "Add", 2, 80 21 32 11, default flat
button "Delete", 3, 80 33 32 11, flat
box "Profanity Protection", 5, 1 0 116 109
button "Delete All", 7, 80 45 32 11, flat
button "Import", 8, 80 69 32 11, flat
button "Export", 9, 80 81 32 11, flat
button "Enable", 11, 80 93 32 11, flat
button "OK", 4, 26 112 32 11, flat ok
button "Cancel", 6, 62 112 32 11, flat cancel
button "Refresh", 10, 80 9 32 11, flat
button "Search", 12, 80 57 32 11, flat
}
#pfp off
on *:EXIT:{ if ($hget(badword)) { hsave badword $+($scriptdir,badword.hsh) } }
on *:DISCONNECT:{ if ($hget(badword)) { hsave badword $+($scriptdir,badword.hsh) } }
on *:TEXT:*:#: {
if ($nick !isop #) && ($hfind(badword,*,0,w) > 0) {
var %i = $hfind(badword,*,0,w) | while (%i) {
if ($hfind(badword,*,%i,w) isin $1-) {
hinc -m Cuss $nick 1 | var %w = $+($mid($hfind(badword,*,%i,w),1,1),$str($chr(42),$calc($len($hfind(badword,*,%i,w)) - 1)))
if ($hget(Cuss,$nick) == 1) { msg # $nick $+ , this is your $ord($hget(Cuss,$nick)) first warining for using profanity! Please refrain from using the word: %w Thank you. }
elseif ($hget(Cuss,$nick) == 2) { msg # $nick $+ , Please consider this is your $ord($hget(Cuss,$nick)) warning for using profanity. A repeat violation will result in you being removed from this chatroom following a 1 hour ban. }
elseif ($hget(Cuss,$nick) >= 3) { kick # $nick Banned: For the using the word %w This was your $ord($hget(Cuss,$nick)) offense (Access ban set for 1 hour) | hfree Cuss }
}
dec %i
}
}
}
#pfp end
; -- ALIASES
alias pfp { dialog -m pfp pfp }
alias rem.word {
var %f = $did($1,$2).lines
while (%f >= 1) {
if ($gettok($did($1,$2,%f),1,32) == $3) return %f
dec %f
}
else return 0
}
alias ref_words {
did -r $1 1 | var %i = 1
while (%i <= $hfind(badword,*,0,w)) {
did -a $1 1 $hfind(badword,*,%i,w)
inc %i
}
hsave badword $+($scriptdir,badword.hsh)
}
on *:dialog:pfp:init:*: {
if (!$hget(badword)) { hmake badword }
if ($exists($+($scriptdir,badword.hsh))) { hload badword $scriptdir $+ badword.hsh }
; -- Load all profane words upon initiallization
if ($group(#pfp) == on) { did -ra $dname 11 Disable }
else { did -ra $dname 11 Enable }
if ($hfind(badword,*,0,w) > 0) { var %i = 1 | while (%i <= $hfind(badword,*,0,w)) { did -a $dname 1 $hfind(badword,*,%i,w) | inc %i } }
}
; -- Add Profane Word ID: 2
; -- Also checks to see that there is no duplication of an entry.
on *:dialog:pfp:sclick:2: {
var %w = $did($dname,1)
if (!$hget(badword,%w)) { hadd badword %w | did -a $dname 1 %w | $ref_words($dname) }
}
; -- Delete a profane word ID: 3
; -- Also checks to see that the word is present before deletion.
on *:dialog:pfp:sclick:3: {
var %w = $did($dname,1).seltext, %l = $did($dname,1).sel
echo -a * %w Deleted! | hdel badword %w | did -d $dname 1 %l | $ref_words($dname)
}
; -- Delete All ID: 7
on *:dialog:pfp:sclick:7: {
if ($hget(badword)) { hfree badword }
did -r $dname 1 | hmake badword | hsave badword badword.hsh | $ref_words($dname)
}
; -- Import Feature ID: 8
on *:dialog:pfp:sclick:8: {
hload badword $sfile($scriptdir $+ badword.hsh,Select a file to import,OK) | $ref_words($dname)
}
; -- Export Feature ID: 9
on *:dialog:pfp:sclick:9: {
hsave badword $sfile($scriptdir $+ badword.hsh,Export List,Save)
}
; -- Refresh Profanity Word List ID: 10
on *:dialog:pfp:sclick:10: { $ref_words($dname) }
; -- Enable/Disable Feature ID: 11
on *:dialog:pfp:sclick:11: {
if ($did(11) == Enable) { .enable #pfp | did -ra $dname 11 Disable }
else { .disable #pfp | did -ra $dname 11 Enable }
}
; -- Search Feature ID: 12
on *:dialog:pfp:sclick:12: {
var %w = $$?="Enter a keyword to search for:"
did -c $dname 1 $didwm($dname,1,%w)
}