All pastes #277757 Raw Edit

Someone

public text v1 · immutable
·published 2006-12-13 15:26 UTC
rendered paste body
On *:start: {
  hmake badwords 50
  if ( $isfile($+(",$scriptdirbadwords.hsh,")) ) {
    hload badwords $+(",$scriptdirbadwords.hsh,")
  }
}
on *:exit: {
  hsave -o badwords $+(",$scriptdirbadwords.hsh,")
  hfree badwords
}
dialog badwords {
  title "Bad Words List"
  size -1 -1 170 160
  option dbu
  button "OK", 10, 62 144 37 12, ok cancel
  tab "Words", 30, 0 -2 169 141
  edit "Enter A Bad Word To Add", 1, 4 14 124 10, tab 30
  box "Current Bad Words list. Double Click a word to remove it.", 3, 2 26 166 112, tab 30
  button "Add Word", 11, 130 14 37 10, tab 30
  list 2, 4 34 162 102, tab 30 sort size
  tab "Options", 31
  check "Warn Before Kicking or Banning", 40, 2 16 134 10, tab 31
  check "Kick User", 41, 2 26 38 10, tab 31
  check "Kick/Ban User", 42, 2 36 54 10, tab 31
  edit "5 Minutes", 43, 116 36 50 10, tab 31
  text "Ban Time In Minutes:", 50, 64 38 51 8, tab 31
  edit "Please Watch Your language.", 45, 50 70 116 20, tab 31 multi autohs
  text "Ban/Kick Reason:", 4, 2 70 43 8, tab 31
  text "Channels to Monitor:", 52, 2 96 163 8, tab 31
  edit "Use # to indicate all channels. Seperate Multiple channels by spaces. IE: #channel1 #channel2  #channel3", 46, 2 104 166 22, tab 31 multi autovs
  text "Warning Message:", 53, 2 48 47 8, tab 31
  edit "Please Watch Your Language. Further abuse will cause actions to be taken.", 47, 50 46 116 20, tab 31 multi
}
alias badwords {
  if ( !$hget(badwords) ) hmake badwords 100
  dialog -m Badwords Badwords
}
on *:dialog:badwords:init:0: {
  if ( $hget(badwords) != $null ) {
    var %x 1
    did -r badwords 2
    while ( %x <= $hget(badwords,0).item ) {
      did -a badwords 2 $hget(badwords,%x).item
      inc %x
    }
  }
  if ( $ini($+(",$scriptdirsettings.ini),Badwords) != $null ) {
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Warn) == 1 ) did -c badwords 40
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Kick) == 1 ) did -c badwords 41
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Ban) == 1 ) did -c badwords 42
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) != $null ) did -ra badwords 43 $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Reason) != $null ) did -ra badwords 45 $readini($+(",$scriptdirsettings.ini,"),Badwords,Reason)
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Warnmsg) != $null ) did -ra badwords 47 $readini($+(",$scriptdirsettings.ini,"),Badwords,Warnmsg)
    if ( $readini($+(",$scriptdirsettings.ini,"),Badwords,Channels) != $null ) did -ra badwords 46 $replace($readini($+(",$scriptdirsettings.ini,"),Badwords,Channels),$chr(44),$chr(32))
  }
}
on *:dialog:badwords:dclick:2: {
  hdel badwords $did(badwords,2).seltext
  did -d badwords 2 $did(badwords,2).sel
}

on *:dialog:badwords:sclick:11: {
  if ( $did(badwords,1).text == $null ) {
    did -ra badwords 1 Please Enter Text 
    halt
  }
  if ( $hfind(badwords,$did(badwords,1).text,1) == $null ) {
    if ( $did(badwords,1).edited == $true ) {
      hadd badwords $did(badwords,1).text
      did -a badwords 2 $did(badwords,1).text
      did -j badwords 1
    }
    else {
      did -ra badwords 1 You Must edit this text before clicking add.
      did -j badwords 1
    }
  }
  else {
    did -ra badwords 1 $+(",$did(badwords,1).text,") Already Exists in the List.
    did -j badwords 1
  }
}
on *:dialog:badwords:sclick:41: {
  if ( $did(badwords,41).state == 1 ) && ( $did(badwords,42).state == 1 ) {
    did -u badwords 42
  }
}
on *:dialog:badwords:sclick:42: {
  if ( $did(badwords,42).state == 1 ) && ( $did(badwords,41).state == 1 ) {
    did -u badwords 41
  }
}
on *:dialog:badwords:sclick:10: {
  .writeini $+(",$scriptdirsettings.ini,") Badwords Warn $did(badwords,40).state
  .writeini $+(",$scriptdirsettings.ini,") Badwords Kick $did(badwords,41).state
  .writeini $+(",$scriptdirsettings.ini,") Badwords Ban $did(badwords,42).state
  var %x 1
  if ( $did(badwords,45).text != $null ) {
    while ( %x <= $did(badwords,45).lines ) {
      set %badwords.reason %badwords.reason $did(badwords,45,%x).text
      inc %x
    }
    .writeini $+(",$scriptdirsettings.ini,") Badwords Reason %badwords.reason
    unset %badwords.reason 
  }
  else {
    .remini $+(",$scriptdirsettings.ini,") Badwords Reason 
  }
  var %x 1
  if ( $did(badwords,47).text != $null ) {
    while ( %x <= $did(badwords,47).lines ) {
      set %badwords.warnmsg %badwords.warnmsg $did(badwords,47,%x).text
      inc %x
    }
    .writeini $+(",$scriptdirsettings.ini,") Badwords Warnmsg %badwords.warnmsg
    unset %badwords.warnmsg 
  }
  else {
    .remini $+(",$scriptdirsettings.ini,") Badwords Warnmsg 
  } 
  $iif( $did(badwords,43).text != $null , .writeini $+(",$scriptdirsettings.ini,") Badwords Bantime $calc( $int($did(badwords,43).text) * 60 ) , .remini $+(",$scriptdirsettings.ini,") Badwords Bantime )
  if ( $did(badwords,46).edited ) && ( $did(badwords,46).text != $null ) {
    var %x 1
    while ( %x <= $did(badwords,46).lines ) {
      set %badwords.channels %badwords.channels $did(badwords,46,%x).text
      inc %x
    }
    .writeini $+(",$scriptdirsettings.ini,") Badwords Channels $replace(%badwords.channels,$chr(32),$chr(44)) 
    unset %badwords.channels
  }
  else {
    .remini $+(",$scriptdirsettings.ini,") Badwords Channels 
  }
}

;;;;;;;;on text script section;;;;;;;;;;;;;;
on @*:text:*:$($readini($+(",$scriptdirsettings.ini,"), Badwords, Channels)): {
  var %x 1
  while ( %x <= $numtok($1-,32) ) {
    if ( $hfind(badwords,$gettok($1-,%x,32),1,W) != $null ) {    
      ;;warn;;
      if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Warn) == 1 ) {
        if ( $hget(badwordswarn,$+($nick,.,$chan)) == $null ) {
          hinc -m badwordswarn $+($nick,.,$chan)
          .Notice $nick $chan $readini($+(",$scriptdirsettings.ini,"), Badwords, Warnmsg)
        }
        else {
          hinc -m badwordswarn $+($nick,.,$chan)
        }
        ;;warned kick;;
        if ( $hget(badwordswarn,$+($nick,.,$chan)) > 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 0 ) {
          .kick $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason )
          hdel badwordswarn $+($nick,.,$chan)
        }
        ;;warned kickban;;
        elseif ( $hget(badwordswarn,$+($nick,.,$chan)) > 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 0 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 1 ) {
          .ban $+(-ku,$readini($+(",$scriptdirsettings.ini,"), Badwords, Bantime)) $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason ) $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
          hdel badwordswarn $+($nick,.,$chan)
        }
      }
    }
    ;;no warn;;
    if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Warn) == 0 ) {
      ;;;no warn kick;;;
      if ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 1 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 0 ) {
        .kick $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason )
      }
      ;;;no warn kickban
      elseif ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Kick) == 0 ) && ( $readini($+(",$scriptdirsettings.ini,"), Badwords, Ban) == 1 ) {
        .ban $+(-,ku,$readini($+(",$scriptdirsettings.ini,"), badwords, bantime)) $chan $nick $readini($+(",$scriptdirsettings.ini,"), Badwords, Reason ) Banned: $calc( $readini($+(",$scriptdirsettings.ini,"),Badwords,Bantime) / 60 ) Minutes
      }
    }
    inc %x
  }
}
alias badwords.batchadd {
  var %file = $+(",$sfile($scriptdir*.txt,Select your Text file,Batch Add),"))
  if (%file == $null) {
    echo -a You must enter a file.
    halt
  }
  else {
    badwords
    var %x = 1
    while (%x <= $lines(%file)) {
      if ($hfind(badwords,$read(%file,%x),0) == 0) {
        hadd badwords $read(%file,%x)
        did -a badwords 2 $read(%file,%x)
        did -j badwords 1
      }
      inc %x
    }
    echo -a Finished with the batch add.
  }
}