Curse Word Dialog

By napa182 on Aug 04, 2008

copy paste into a new remote then either click in ur menubar or a channel to open it. just add the channels you want it to work in as well as the curse words you want it to kick/ban for. this will kick ban the person that curse's from the room for 5 min's also you can have it p2p you who got banned from what room and time or have it open up a new window to log it. enjoy...

..added an on action event to it as well....

go ahead and rip butcher and strip this code how ever you want idc

this was made to work on ircd servers to make it work for Chatspace just change the ban line

 ban -ku300 # $nick 2 dont curse

to

ban -ku300 # $nick 4 dont curse

Image

dialog moz {
  title "Curse Word Dialog"
  size -1 -1 129 87
  option dbu
  box "Add/Remove Channnel's", 1, 2 2 67 31
  edit "", 2, 3 10 64 9, autohs
  button "Add", 3, 3 21 32 10, flat
  button "Remove", 4, 35 21 32 10, flat
  box "Channel List", 5, 70 2 57 31
  list 6, 71 10 54 21, size vsbar
  box "Add/Remove Cuss Word", 7, 2 34 67 31
  edit "", 8, 3 42 64 9, autohs
  button "Add", 9, 3 53 32 10, flat
  button "Remove", 10, 35 53 32 10, flat
  box "Cuss Word List", 11, 70 34 57 31
  list 12, 71 42 54 21, size vsbar
  box "Power On/Off ", 13, 2 67 47 18
  radio "ON", 14, 4 75 18 9, flat
  radio "OFF", 15, 28 75 20 9, flat
  box "Log", 16, 50 67 77 18
  check "OFF", 17, 52 75 20 9, flat
  check "P2P", 18, 74 75 20 9, flat
  check "Window", 19, 96 75 30 9, flat
}
on *:load: { 
  echo 12 -a You Have Just Loaded Napa182's Curse Word Dialog 
  echo 12 -a A Script0rs Inc. Production 
  echo -a 14,1(14,1¯15,1¯0,1¯0,1º $+($chr(171),$chr(164),$chr(88),$chr(167),$chr(199),$chr(174),$chr(238),$chr(254),$chr(116),$chr(48),$chr(174),$chr(167),$chr(88),$chr(164),$chr(187)) º0,1¯15,1¯14,1¯) $+ $chr(153)
}
alias moz { dialog $iif($dialog(moz),-v,-md) moz moz }
menu menubar,channel {
  .Curse Word Dialog:{ moz }
}
on *:DIALOG:moz:init:0:{
  $iif(%cussys,did -c $dname 14,did -c $dname 15)
  $iif(%log.p2p,did -c $dname 18,$iif(%log.win,did -c $dname 19,$iif(!%log.*,did -c $dname 17)))
  didtok $dname 6 44 %Cusschan
  didtok $dname 12 44 %Cwords
}  
on *:DIALOG:moz:sclick:*:{
  if ($did == 14) { set %cussys on }
  if ($did == 15) { unset %cussys }
  if ($did == 17) { unset %log.* | did -u $dname 18,19 | did -c $dname  17 }
  if ($did == 18) { set %log.p2p on | unset %log.win | did -u $dname 17,19 | did -c $dname 18 }
  if ($did == 19) { set %log.win on | unset %log.p2p | did -u $dname 17,18 | did -c $dname 19 }
  if ($did == 3) {
    if (!$did(2).text || $left($did(2).text,1) != $chr(35) || $istok(%Cusschan,$did(2).text,44)) { 
      noop $iif(!$did(2).text,$input(No Channel Was Entered,uwo,Error!),$iif($left($did(2).text,1) != $chr(35),$input(Please Enter Channel As Syntax: #channel,uwo,Syntax Error!),$iif($istok(%Cusschan,$did(2).text,44),$input(Channel Already Exists,uwo,Error!),)))
      did -r $dname 2
    }
    else { 
      set %Cusschan $addtok(%Cusschan,$did(2).text,44)
      did -r $dname 6,2
      didtok $dname 6 44 %Cusschan
    }
  }
  if ($did == 4) { 
    if (!$did(2).text && !$did(6).seltext || $left($did(2).text,1) != $chr(35) && !$did(6).seltext || $did(2).text && !$did(6).seltext && !$istok(%Cusschan,$did(2).text,44)) {
      noop $iif(!$did(2).text && !$did(6).seltext,$input(No Channel Was Entered Or Selected,uwo,Error!),$iif($left($did(2).text,1) != $chr(35) && !$did(6).seltext,$input(Please Enter Channel As Syntax: #channel,uwo,Syntax Error!),$iif($did(2).text && !$did(6).seltext && !$istok(%Cusschan,$did(2).text,44),$input(Channel Does Not Exists,uwo,Error!),)))
      did -r $dname 2 
    }
    elseif ($did(2).text && !$did(6).seltext && $istok(%Cusschan,$did(2).text,44)) {
      set %Cusschan $remtok(%Cusschan,$did(2).text,1,44)
      did -r $dname 6,2
      didtok $dname 6 44 %Cusschan
    }
    elseif ($did(6).seltext && !$did(2).text) {
      set %Cusschan $remtok(%Cusschan,$did(6).seltext,1,44)
      did -r $dname 6,2
      didtok $dname 6 44 %Cusschan
    }
  }
  if ($did == 9) {
    if (!$did(8).text || $istok(%Cwords,$did(8).text,44)) { 
      noop $iif(!$did(8).text,$input(No Curse Word Was Entered,uwo,Error!),$iif($istok(%Cwords,$did(8).text,44),$input(Curse Word Already Exists,uwo,Error!),))
      did -r $dname 8
    }
    else {
      set %Cwords $addtok(%Cwords,$did(8).text,44)
      did -r $dname 8,12
      didtok $dname 12 44 %Cwords 
    }
  }
  if ($did == 10) { 
    if (!$did(8).text && !$did(12).seltext || $did(8).text && !$did(12).seltext && !$istok(%Cwords,$did(8).text,44)) { 
      noop $iif(!$did(8).text && !$did(12).seltext,$input(No Curse Word Was Entered Or Selected,uwo,Error!),$iif($did(8).text && !$did(12).seltext && !$istok(%Cwords,$did(8).text,44),$input(Curse Word Does Not Exists,uwo,Error!),)) 
      did -r $dname 8
    }
    elseif ($did(8).text && !$did(12).seltext && $istok(%Cwords,$did(8).text,44)) {
      set %Cwords $remtok(%Cwords,$did(8).text,1,44)
      did -r $dname 8,12
      didtok $dname 12 44 %Cwords
    }
    elseif ($did(12).seltext && !$did(8).text) {
      set %Cwords $remtok(%Cwords,$did(12).seltext,1,44)
      did -r $dname 8,12
      didtok $dname 12 44 %Cwords
    }
  }
}
on @*:text:*:#:{
  if (%cussys && $istok(%Cusschan,$chan,44) && $nick(#,$nick,vr)) {
    var %x = $numtok(%Cwords,44)
    while (%x) {
      if ($istok($strip($1-),$gettok(%Cwords,%x,44),32)) { 
        ban -ku300 # $nick 2 dont curse
        if (%log.p2p) { .msg $me $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $gettok(%Cwords,%x,44),32 }
        if (%log.win) { window @Curse_Word_Dialog | aline @Curse_Word_Dialog $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $gettok(%Cwords,%x,44),32 }
      }
      dec %x
    }
  }
}
on @*:action:*:#:{
  if (%cussys && $istok(%Cusschan,$chan,44) && $nick(#,$nick,vr)) {
    var %x = $numtok(%Cwords,44)
    while (%x) {
      if ($istok($strip($1-),$gettok(%Cwords,%x,44),32)) { 
        ban -ku300 # $nick 2 dont curse
        if (%log.p2p) { .msg $me $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $gettok(%Cwords,%x,44),32 }
        if (%log.win) { window @Curse_Word_Dialog | aline @Curse_Word_Dialog $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $gettok(%Cwords,%x,44),32 }
      }
      dec %x
    }
  }
}

Comments

Sign in to comment.
Mrmot   -  Feb 23, 2013

Hey i have one question if someone can help... I need to edit this script so when i put in curse words f uc k so it bans somewone if he says f ucke r. Can anyone help?

napa182  -  Mar 19, 2013

yeah i will prob not update this snippet as it is an old snippet if anything i will prob just remake a new one later on some time ;x

Sign in to comment

SReject   -  May 28, 2012

No offense, napa, but a few things could be improved:
1: For p2p, instead of "/msg me", I'd suggest using "/echo -a" or something of the such
2: Instead of looping through the "bad word" list you could speed it up with(I think):

; Escape the curse word list, so anything stored in it doesn't alter the way the regex works:
var %r = $regsubex(%Cwords,/(?!\x2E)([[:punct:]])/g,\ $+ \1)

; Replace "," with "|" (In regex the "|" means "or")
var %r = $replacex(%r,$chr(44),|)

; Make it so it only matches words; ignore color codes and be case insensitive:
var %r = /(?:^| )( $+ %r $+ )(?: |$)/iS

;Check the users string against the created regex:
if ($regex($1-,%r)) {

  ;ban the user:
  ban -ku300 # $nick 2 Don't curse.

  ; Echo that the user was banned for cusing:
  if (%log.p2p) {
    echo -a $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $regml(1)
  }

  ; Log to window if need be:
  if (%log.win) {
    window @Curse_Word_Dialog 
    aline @Curse_Word_Dialog $nick Was Banned For Cursing In Room # Date/Time $time(mmm dd h:nn tt) Word said: $regml(1) 
  }
}
 Respond  
worldwide7477   -  May 25, 2012

thanks napa yeah they have there setup from ground up so there is no way to put a timer for timeout on a person unless you go through there chat, but by using your own script it will kick them by adding (kick $nick #channel) which would give them a timeout of 10 min but i just tried this one which is kinda like yours and it works http://www.hawkee.com/snippet/5983/ only thing is this is very aggressive and will boot on just about anything you say.. lol i have no idea whats different between yours in this one..except i changed the kick i did not try that with yours yet. but i like your platform better then this one.

 Respond  
napa182   -  May 19, 2012

tbh I really don't know how justin.tv is set up as i never been there. So you may have to edit it to ur needs.
Good luck.

 Respond  
worldwide7477   -  May 18, 2012

hey napa once again nice script if i can get it to work ...will this go through a bot on justin.tv using mirc most that i have come across is not catching badwords you will still see them on the channel but its blocked on mirc is there something else i need to add to make it block in the main chat room?
like i said it does block on mirc but not in the channel on justin? i need your expertise once again.

maybe cause i have log off should it be p2p or window on ? also in channel i have #and channel name,power on.
should it be........ ban -ku600 # $nick 2 dont curse

 Respond  
[85]   -  Nov 16, 2011

awesome solution 4 badwords... i edited little bit 4 myself

menu @Curse_Word_Dialog {
  &clear:clear $active
  &close:close -@ $active
}
 Respond  
Slyvar   -  Mar 09, 2011

Excellent Script Man

Like button : Cilcked it

Rated it : 10

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.