mIRC Channel Protection Bot

By PuNkTuReD on Dec 29, 2008

add into a new remote file in a clean mirc

About:
this is a multi server multi channel bot,
it will provide you with a user system for your channels and protect each user accordingly.
to begin youll have too add yourself as botowner and set your bots trigger

in the bot type
/addowner Your-Nick
** You must be on the same channel and network as the bot

then
/set %trigger !
** or any trigger you choose

then your ready to set it up for a chanel.
first add your server to autojoin with ?addserver add server
then a channel to autojoin with ?autojoin add network #channel

now your ready to set yourself as the channel owner by typing
!addowner nick channel
again the nick must be on the channel at the time of adding.
its best if the bot is the real channel owner, and you get your status from the bot.

now type
!commands
and take a look through the commands and have fun :-)

** COMMANDS
?about bot/nick
?act channel message
?addowner nick channel
?addadmin nick
?addop nick
?addhelper nick
?addvoice nick
?autojoin add/del/list network channel
?badnick add/del nick
?ban add/del nick reason
?baninfo total/nick
?bigflood on/off/status # ( eg: ?bigflood on 200 ) ( 200 characters per message sent )
?botmaster nick
?checknick nick
?clonescanner on/off
?commands
?cycle channel
?dns nick/address
?flood on/off/status #:# ( eg: ?flood on 10:3 )( 10 lines in 3 seconds )
?flyby on/off/status
?global messsage
?greet on/off message
?ircop scan channel
?kick nick reason
?kill
?lastseen nick
?modelock list/modes
?protect on off
?reboot
?relay on channel_1 channel_2
?remember info_here ( the first word of your info, will be the trigger to retrieve the info )
?rules
?say channel message
?set nick/password nick/password
?server add/del server
?spam on/off/status
?stats nick ( or: ?stats reset nick )
?topiclock on/off topic
?trigger trigger
/addowner nick ( Must be on the same channel )

** NOTE
this bot recognises by nick and address, so if your hostmask changes alot
this would most likely not be a good bot for you

Made on IrCQNet
works with anope type services

this is still a work in progress so im open to suggestion
although im tryin to keep away from such commands as !op !deop etc etc

;?about bot/nick
;?act channel message
;?addowner nick channel
;?addadmin nick 
;?addop nick 
;?addhelper nick
;?addvoice nick 
;?autojoin add/del/list network channel
;?badnick add/del nick
;?ban add/del nick reason
;?baninfo total/nick
;?bigflood on/off/status # ( eg: ?bigflood on 200 ) ( 200 characters per message sent )
;?botmaster nick
;?checknick nick
;?clonescanner on/off
;?commands
;?cycle channel
;?dns nick/address
;?flood on/off/status #:# ( eg: ?flood on 10:3 )( 10 lines in 3 seconds )
;?flyby on/off/status
;?forget info_here
;?global messsage
;?greet on/off message
;?ircop scan channel
;?kick nick reason
;?kill
;?lastseen nick
;?modelock list/modes
;?protect on off
;?reboot
;?relay on channel_1 channel_2
;?remember info_here ( the first word of your info, will be the trigger to retrieve the info )
;?remuser nick channel
;?rules
;?say channel message
;?set nick/password nick/password
;?server add/del server
;?spam on/off/status
;?stats nick ( or: ?stats reset nick )
;?topiclock on/off topic
;?trigger trigger
;/addowner nick ( Must be on the same channel )
/* 
On Load/Unload Events 
*/
on 1:load: { set %botstartdate $fulldate | echo -s 04,01**** Loaded %logo.l SassIRC 12,01m04,01I04,01R08,01C Channel Protection Bot %logo.r Coded By %logo.l PuNkTuReD %logo.r }
on 1:unload: { echo -s 04,01**** Unloaded %logo.l SassIRC 12,01m04,01I04,01R08,01C Channel Protection Bot %logo.r Coded By %logo.l PuNkTuReD %logo.r }
/* 
On Start/Exit Events 
*/
on *:start: { 
  if (!$hget(Badwords)) { hmake Badwords 20 }
  if ($exists(Badwords.hsh)) { hload Badwords Badwords.hsh } 
  if (!$hget(AutoJoin)) { hmake AutoJoin 20 }
  if ($exists(AutoJoin.hsh)) { hload AutoJoin AutoJoin.hsh } 
  if (!$hget(Servers)) { hmake Servers 20 }
  if ($exists(Servers.hsh)) { hload Servers Servers.hsh } 
  set -u5 %a 1
  set -u5 %b $hget(Servers,0).item
  while %a <= %b {
    if (%a == 1) { server $hget(Servers,%a).item | inc %a }
    else { server -m $hget(Servers,%a).item | inc %a }
  }
  else { haltdef }
}
on *:exit: { 
  if ($hget(Servers)) { hsave -o Servers Servers.hsh }
  if ($hget(AutoJoin)) { hsave -o AutoJoin AutoJoin.hsh }
  if ($hget(Badwords)) { hsave -o Badwords Badwords.hsh }
} 
/* 
On Connect Event 
*/
on *:connect: { nick %botnick | identify %botpass | join $hget(Autojoin,$network) }
/* 
On Join/Part/Quit Events 
*/
on *:join:#: {
  set $+(%,$nick,totaljoin) $calc($($+(%,$nick,totaljoin),2) + 1)
  if ($($+(%,$chan,flyby),2) == on) { set -u60 $+(%,join,$chan,$nick) $nick }
  if (%serverrelay == on) && ($chan == %rchan) { relayevent $network $nick joined # }
  if (%clonescanner == on) && ($ialchan($strip($address($nick,2)),$chan,0) > 1) { .msg $chan %logo.l $nick %logo.r is a clone. %logo.l $ialchan($strip($address($nick,2)),$chan,0) %logo.r Active connections. From %logo.l $strip($address($nick,2)) %logo.r } 
  if (%relay == on) && ($chan == %chan1) { msg %chan2 Join %logo.l $nick %logo.r }
  if ($nick == $me) && ($chan == $gettok($readini(users.ini,modelock,$chan),1,32)) { .msg $chan %logo.l ModeLock Enforcer 04,01%logo.r | .msg $chan %logo.l Enforcing Modes %logo.r $gettok($readini(users.ini,modelock,$chan),2-,32) | mode $chan $gettok($readini(users.ini,modelock,$chan),2-,32) }
  if ($nick == $gettok($readini(badnicks.ini,$chan,$nick),1,32)) { ban -ku300 $chan $nick 2 Bad Nick. }
  if ($($+(%,greet,$chan),2) == on) { msg $chan $($+(%,joingreet,$chan),2) }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) { .msg $chan %logo.l Bot Master %logo.r04,01 $nick has joined. }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { .msg $chan %logo.l $chan 04,01Owner %logo.r  $+ $nick has joined. | mode $chan +qov $nick $nick $nick | halt }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { .msg $chan %logo.l $chan 04,01Admin %logo.r  $+ $nick has joined. | mode $chan +aov $nick $nick $nick | halt }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) { .msg $chan %logo.l $chan 04,01Op %logo.r  $+ $nick has joined. | mode $chan +ov $nick $nick | halt }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == helper) { .msg $chan %logo.l $chan 04,01Helper %logo.r  $+ $nick has joined. | mode $chan +hv $nick $nick | halt }
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == voice) { .msg $chan %logo.l $chan 04,01Voice %logo.r  $+ $nick has joined. | mode $chan +v $nick | halt }
}
on *:part:#: {
  set $+(%,$nick,totalparts) $calc($($+(%,$nick,totalparts),2) + 1)
  if (%serverrelay == on) && ($chan == %rchan) { relayevent $network $nick parted # }
  if ($($+(%,join,$chan,$nick),2) == $nick) && ($($+(%,$chan,flyby),2) == on) { $iif($+(%,flyby,$chan),inc $+(%,flyby,$chan),set $+(%,flyby,$chan) 1) | ban -u300 $chan $nick 2 Fly-By Protect | .msg $chan %logo.l $($+(%,join,$chan,$nick),2) %logo.r was Fly-By %logo.l $($+(%,flyby,$chan),2) %logo.r Since $($+(%,botstartdate),2) }
  if (%relay == on) && ($chan == %chan1) { msg %chan2 Part %logo.l $nick %logo.r } 
  if (!$read(lastseen.txt, w, * $+ $nick- $+ *)) { write lastseen.txt %logo.l $nick %logo.r was last seen leaving %logo.l $chan %logo.r On %logo.l $fulldate %logo.r }
  else { write -dw $+ * $+ $nick $+ * lastseen.txt | write lastseen.txt %logo.l $nick %logo.r was last seen leaving %logo.l $chan %logo.r On %logo.l $fulldate %logo.r }
}
on 1:quit: {
  chkflyby
  set $+(%,$nick,totalquits) $calc($($+(%,$nick,totalquits),2) + 1)
  if (*.split isin $strip($1-)) {
    if (!%ns) { ame 4,1%logo.l NetSplit Detected 4,1%logo.r | set -u180 %ns 1 }
  }
  if (%relay == on) { msg %chan2 Quit - %logo.l $nick %logo.r }  
  if (!$read(lastseen.txt, w, * $+ $nick $+ *)) { write lastseen.txt %logo.l $nick %logo.r was last seen leaving %logo.l $network %logo.r On %logo.l $fulldate %logo.r }
  else { write -dw $+ * $+ $nick $+ * lastseen.txt | write lastseen.txt %logo.l $nick %logo.r was last seen leaving %logo.l $network %logo.r On %logo.l $fulldate %logo.r }
  if (%serverrelay == on) {
    var %a = $comchan($nick,0)
    while (%a) {
      if ($comchan($nick,%a) == %rchan) { relayevent $network $nick quit: $iif(($1-),$1-,No Quit Message) | dec %a }
      else { dec %a }
    }
  }
}
/* 
On Nick Event 
*/
on *:nick: {
  if (%relay == on) && ($chan == %chan1) { msg %chan2 %logo.l $nick %logo.r is now %logo.l $newnick %logo.r } 
  if ($nick == $gettok($readini(users.ini,botmaster,$nick),1,32)) { writeini users.ini botmaster $newnick $newnick $gettok($readini(users.ini,botmaster,$nick),2,32) | remini users.ini botmaster $nick } 
  var %a = 1
  var %b = $comchan($newnick,0)
  while %a <= %b { 
    if ($read(abuse.txt, w, $newnick $+ *)) { .msg $comchan($newnick,%a) $gettok($read(abuse.txt, w, $newnick $+ *),2-,32) }
    if ($newnick == $gettok($readini(badnicks.ini,$comchan($newnick,%a),$newnick),1,32)) { ban -ku300 $comchan($newnick,%a) $newnick 2 Bad Nick }
    if ($gettok($readini($+($network,users.ini),$comchan($newnick,%a),$nick),2,32) == owner) { writeini $+($network,users.ini) $comchan($newnick,%a) $newnick $gettok($readini(users.ini,$comchan($newnick,%a),$nick),1,32) owner | remini $+($network,users.ini) $comchan($newnick,%a) $nick }
    if ($gettok($readini($+($network,users.ini),$comchan($newnick,%a),$nick),2,32) == admin) { writeini $+($network,users.ini) $comchan($newnick,%a) $newnick $gettok($readini(users.ini,$comchan($newnick,%a),$nick),1,32) admin | remini $+($network,users.ini) $comchan($newnick,%a) $nick }
    if ($gettok($readini($+($network,users.ini),$comchan($newnick,%a),$nick),2,32) == op) { writeini $+($network,users.ini) $comchan($newnick,%a) $newnick $gettok($readini(users.ini,$comchan($newnick,%a),$nick),1,32) op | remini $+($network,users.ini) $comchan($newnick,%a) $nick }
    if ($gettok($readini($+($network,users.ini),$comchan($newnick,%a),$nick),2,32) == helper) { writeini $+($network,users.ini) $comchan($newnick,%a) $newnick $gettok($readini(users.ini,$comchan($newnick,%a),$nick),1,32) helper | remini $+($network,users.ini) $comchan($newnick,%a) $nick }
    if ($gettok($readini($+($network,users.ini),$comchan($newnick,%a),$nick),2,32) == voice) { writeini $+($network,users.ini) $comchan($newnick,%a) $newnick $gettok($readini(users.ini,$comchan($newnick,%a),$nick),1,32) voice | remini $+($network,users.ini) $comchan($newnick,%a) $nick }
    else { inc %a } 
} }
/* 
On dns Event 
*/
on 1:dns: {
  var %n = $dns(0)
  .msg %targ %logo.l DNS %logo.r Found %logo.l %n %logo.r Addresse(s) for %logo.l $dns(%n).addr %logo.r
  while (%n > 0) { .msg %targ %logo.l DNS %logo.r Address: %logo.l $dns(%n).addr %logo.r Ip: %logo.l $dns(%n).ip %logo.r | dec %n
} }
/* 
On Topic Event 
*/
on 1:topic:#: {
  if ($nick == ChanServ) || ($nick == Pazuzu) { halt }
  if ($nick == $me) || ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { set $+(%,topic,$3) $1- | halt }
  if ($($+(%,topiclock,$chan),2) == on) { .msg $chan %logo.l Enforcing Topic %logo.r $($+(%,topic,$chan),2) | topic $chan $($+(%,topic,$chan),2) }
}
/* 
On Mode Event 
*/
on *:mode:#: {
  if ($($+(%,protect,$chan),2) == on) {
    if ($chan == $gettok($readini(users.ini,modelock,$chan),1,32)) { 
      if ($nick == ChanServ) || ($nick == Pazuzu) { halt }
      if ($nick == $me) || ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
      else { mode $chan $replace($1-,+,-) | .msg $chan %logo.l Enforcing Modes %logo.r $gettok($readini(users.ini,modelock,$chan),2-,32) | mode $chan $gettok($readini(users.ini,modelock,$chan),2-,32) }
} } }
/* 
On Ban/Unban Events 
*/
on *:ban:#: { set $+(%,$nick,totalbans) $calc($($+(%,$nick,totalbans),2) + 1) | write banned.txt %logo.l $chan %logo.r Ban %logo.l $banmask %logo.r was banned by %logo.l $nick %logo.r on %logo.l $fulldate %logo.r }
on *:unban:#: { write -dw $+ * $+ $2 $+ * banned.txt }
/* 
On Kick Event 
*/
on *:kick:#: { 
  set $+(%,$nick,totalkicks) $calc($($+(%,$nick,totalkicks),2) + 1) 
  if ($chan == %rchan) { relayevent $network $nick kicked $knick from # }
  if ($($+(%,protect,$chan),2) == on) {  
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    if ($address($knick,2) == $gettok($readini($+($network,users.ini),$chan,$knick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$knick),2,32) == op) { remini $+($network,users.ini) $chan $nick | invite $nick $chan | io | .msg $chan %logo.l $nick %logo.r You may not kick a channel op. | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | mode -o $nick }
    if ($address($knick,2) == $gettok($readini($+($network,users.ini),$chan,$knick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$knick),2,32) == admin) { remini $+($network,users.ini) $chan $nick | invite $nick $chan | io | .msg $chan %logo.l $nick %logo.r You may not kick a channel admin. | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | mode -o $nick }
    if ($address($knick,2) == $gettok($readini($+($network,users.ini),$chan,$knick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$knick),2,32) == owner) { remini $+($network,users.ini) $chan $nick | invite $nick $chan | io | .msg $chan %logo.l $nick %logo.r You may not kick a channel owner. | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | mode -o $nick }
} }
/* 
On Op/Deop Events 
*/
on *:op:#: { 
  if ($($+(%,protect,$chan),2) == on) {
    if (%relay == on) && ($chan == %chan1) { .msg %chan2 Op %logo.l $opnick %logo.r by %logo.l $nick %logo.r } 
    if ($nick == $me) || ($nick == chanserv) || ($nick == Pazuzu) { halt }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == op) { halt }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == admin) { halt }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == owner) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    else { io | .msg $chan %logo.l $opnick %logo.r is not a %logo.l Op %logo.r in this channel. | mode $chan -o $opnick | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
} }
on *:deop:#: {
  if ($+(%,protect,$chan)) {
    if (%relay == on) && ($chan == %chan1) { .msg %chan2 DeOp %logo.l $opnick %logo.r by %logo.l $nick %logo.r } 
    if ($nick == $me) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == owner) { remini $+($network,users.ini) $chan $nick | io | .msg $chan You may not deop a channel owner, You are now being stripped of your Op status. | mode $chan +o $opnick | mode $chan -o $nick }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == admin) { remini $+($network,users.ini) $chan $nick | io | .msg $chan You may not deop a channel admin, You are now being stripped of your Op status. | mode $chan +o $opnick | mode $chan -o $nick }
    if ($address($opnick,2) == $gettok($readini($+($network,users.ini),$chan,$opnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$opnick),2,32) == op) { remini $+($network,users.ini) $chan $nick | io | .msg $chan You may not deop a channel op, You are now being stripped of your Op status. | mode $chan +o $opnick | mode $chan -o $nick }
} }
/* 
On Help/Dehelp Events 
*/
on *:help:#: { 
  if ($+(%,protect,$chan)) {
    if (%relay == on) && ($chan == %chan1) { .msg %chan2 Help %logo.l $hnick %logo.r by %logo.l $nick %logo.r } 
    if ($nick == $me) || ($nick == chanserv) || ($nick == Pazuzu) { halt }
    if ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == helper) || ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == op) { halt }
    if ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == admin) || ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == owner) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    if ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) != helper) { io | .msg $chan %logo.l $hnick %logo.r is not a %logo.l Helper %logo.r in this channel. | mode $chan -h $hnick | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
} }
on *:dehelp:#: {
  if ($+(%,protect,$chan)) {
    if (%relay == on) && ($chan == %chan1) { msg %chan2 DeHelp %logo.l $hnick %logo.r by %logo.l $nick %logo.r } 
    if ($nick == $me) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    if ($address($hnick,2) == $gettok($readini($+($network,users.ini),$chan,$hnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == owner) { io | .msg $chan You may not dehelp a channel owner, You are now being stripped of your Op status. | mode $chan +h $hnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($hnick,2) == $gettok($readini($+($network,users.ini),$chan,$hnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == admin) { io | .msg $chan You may not dehelp a channel admin, You are now being stripped of your Op status. | mode $chan +h $hnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($hnick,2) == $gettok($readini($+($network,users.ini),$chan,$hnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == op) { io | .msg $chan You may not dehelp a channel op, You are now being stripped of your Op status. | mode $chan +h $hnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($hnick,2) == $gettok($readini($+($network,users.ini),$chan,$hnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$hnick),2,32) == helper) { io | .msg $chan You may not dehelp a channel helper, You are now being stripped of your Op status. | mode $chan +h $hnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
} }
/* 
On Voice/Devoice Events 
*/
on *:voice:#: { 
  if ($+(%,protect,$chan)) {
    if (%relay == on) && ($chan == %chan1) { msg %chan2 Voice %logo.l $vnick %logo.r by %logo.l $nick %logo.r }
    if ($nick == $me) || ($nick == chanserv) || ($nick == Pazuzu) { halt } 
    if ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == voice) || ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == helper) || ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == op) { halt }
    if ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == admin) || ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == owner) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == helper) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt } 
    if ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) != voice) { io | .msg $chan %logo.l $vnick %logo.r is not a %logo.l Voice %logo.r in this channel. | mode $chan -v $vnick | .msg $chan %logo.l $nick %logo.r you are now being stripped of your %logo.l Op %logo.r status. | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
} }
on *:devoice:#: {
  if ($+(%,protect,$chan)) {
    if (%relay == on) && ($chan == %chan1) { msg %chan2 DeVoice %logo.l $vnick %logo.r by %logo.l $nick %logo.r } 
    if ($nick == $me) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == helper) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { halt }
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) { halt }
    if ($address($vnick,2) == $gettok($readini($+($network,users.ini),$chan,$vnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == owner) { io | .msg $chan You may not devoice a channel owner, You are now being stripped of your Op status. | mode $chan +v $vnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($vnick,2) == $gettok($readini($+($network,users.ini),$chan,$vnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == admin) { io | .msg $chan You may not devoice a channel admin, You are now being stripped of your Op status. | mode $chan +v $vnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($vnick,2) == $gettok($readini($+($network,users.ini),$chan,$vnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == op) { io | .msg $chan You may not devoice a channel op, You are now being stripped of your Op status. | mode $chan +v $vnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($vnick,2) == $gettok($readini($+($network,users.ini),$chan,$vnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == helper) { io | .msg $chan You may not devoice a channel helper, You are now being stripped of your Op status. | mode $chan +v $vnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
    if ($address($vnick,2) == $gettok($readini($+($network,users.ini),$chan,$vnick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$vnick),2,32) == voice) { io | .msg $chan You may not devoice a channel voice, You are now being stripped of your Op status. | mode $chan +v $vnick | remini $+($network,users.ini) $chan $nick | mode $chan -o $nick }
} }
/* 
On Notice Event 
*/
on *:notice:*:*: {
  if ($me * is already in use* isin $strip($1-)) { .msg nickserv ghost %botnick %botpass }
  if (Ghost with your nick has been killed* isin $strip($1-)) { .nick %botnick | .identify %botpass }
  if (STATUS isin $strip($1-)) { 
    if (0 isin $strip($1-)) { .msg %targ %logo.l %targnick %logo.r No such user online, or not registered. }
    if (1 isin $strip($1-)) { .msg %targ %logo.l %targnick %logo.r User not recognised as nick owner. }
    if (2 isin $strip($1-)) { .msg %targ %logo.l %targnick %logo.r User recognised as nick owner via Access List only. }
    if (3 isin $strip($1-)) { .msg %targ %logo.l %targnick %logo.r User recognised as nick owner via Identify command. }
} }

/* 
On Notify/UnNotify Events 
*/
on 1:notify: { 
  set $+(%,ticks,$network,$nick) 0
  $+(.timer,ticks,$network,$nick) 0 1 inc $($+(%,ticks,$network,$nick),1) 1
}
on 1:unotify: { 
  echo -a $nick was online for: $duration($($+(%,ticks,$network,$nick),2))
  $+(.timer,ticks,$network,$nick) off
  set $+(%,tickstotal,$network,$nick) $calc($($+(%,tickstotal,$network,$nick),2) + $($+(%,ticks,$network,$nick),2))
}
/*
Rawmode
*/
on *:rawmode:%rchan: { 
  if (%serverrelay == on) { relayevent $network $nick sets mode $1 on $2 } 
}
/* 
On Action Event 
*/
on *:action:*:*: { 
  set $+(%,$nick,totalmsg) $calc($($+(%,$nick,totalmsg),2) + 1)
  set $+(%,$nick,totalchar) $calc($len($1-) + $($+(%,$nick,totalchar),2))
  set $+(%,$nick,totalword) $calc($numtok($1-,32) + $($+(%,$nick,totalword),2))
  if (%serverrelay == on) && ($chan == %rchan) { relayevent $network $+($chr(60),$nick) $1- }
  if (%relay == on) && ($chan == %chan1) { msg %chan2 %logo.l $nick %logo.r $1- } 
}
/* 
On Text Event 
*/
on *:text:*:*: {
  set $+(%,$nick,totalmsg) $calc($($+(%,$nick,totalmsg),2) + 1)
  set $+(%,$nick,totalchar) $calc($len($1-) + $($+(%,$nick,totalchar),2))
  set $+(%,$nick,totalword) $calc($numtok($1-,32) + $($+(%,$nick,totalword),2))
  if (%serverrelay == on) && ($chan == %rchan) { relayevent $network $+($chr(60),$nick,$chr(62)) $1- }
  ;
  ; Flood Catcher ( #:# Lines:Seconds )
  ;
  if ($($+(%,$chan,flood),2) == on) { 
    set -u $+ $+(%,$chan,floodin),2) $+(%,$nick,flood) 1 
    if ($($+(%,$nick,flood),2) >= $($+(%,$chan,floodlines),2)) { unset $+(%,$nick,flood) | ban -ku300 $chan $nick 2 Flooding. | .notice $nick You have been banned from %logo.l $chan %logo.r for Flooding. } 
  } 
  ;
  ; Flood Catcher ( Long Messages )
  ;
  if ($($+(%,$chan,bflood),2) == on) { 
    if ($len($strip($1-)) >= $($+(%,$chan,bigflood),2)) { ban -ku300 $chan $nick 2 Flooding. | .notice $nick You have been banned from %logo.l $chan %logo.r for Flooding. } 
  } 
  ;
  ; single server relay
  ;
  if (%relay == on) && ($chan == %chan1) { msg %chan2 %logo.l $nick %logo.r $1- } 
  if (!$read(info.txt, w,$1 $+ *)) { haltdef }
  if ($read(info.txt, w,$1 $+ *)) { if ($1) && (!$2) { .msg $chan $read(info.txt, w,$1 $+ *) } }

  if ($($+(%,trigger,$nick),2) == 3) {
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) { unset $+(%,trigger,$nick) }
    else { .msg $chan %logo.l $nick %logo.r You are being ignored for 5 minutes, for trigger abuse. | ignore -u300 $nick | halt }
  }

  ;
  ; Public Commands
  ;
  if ($+(%trigger,about) == $strip($1)) {
    .timer 1 1 .notice $nick %logo.l SassIRC 12,01m04,01I04,01R08,01C Channel Protection Bot %logo.r Coded By %logo.l PuNkTuReD %logo.r
    .timer 1 4 .notice $nick Is currently being used on %logo.l $hget(Servers,0).item %logo.r server(s) in a total of %logo.l $+(%,totchans),2) %logo.r Channel(s), Last Reboot: %logo.l $uptime(server,2) %logo.r ago.
    .timer 1 7 .notice $nick %logo.l $+(%trigger,commands) %logo.r to see a list of available commands. 
  }
  if ($+(%trigger,checknick) == $strip($1)) {
    if (!$2) { eis | .msg $chan ?checknick command: ?checknick nick }
    else { set -u10 %targ $chan | set -u10 %targnick $2 | .msg nickserv status $2 }
  }
  if ($+(%trigger,commands) == $strip($1)) {
    .notice $nick 04,01**** %logo.l Bot Master %logo.r commands are 04,01Red. %logo.l Channel Owner %logo.r commands are 07,01Orange. %logo.l Public %logo.r commands are 08,01Yellow.
    ; Bot Master Commands
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) {
      .notice $nick 04,01?act nick/channel message - 04,01?addowner nick channel - 04,01?autojoin add/del/list network channel - 04,01?botmaster nick - 04,01?clonescanner on/off - 04,01?cycle channel - 
      .notice $nick 04,01?global messsage - 04,01?kill - 04,01?reboot - 04,01?relay on/off channel_1 channel_2 - 04,01?remember info_here - 04,01?say nick/channel message - 04,01?set nick/password nick/password - 04,01?server add/del server - 
    }
    ; Channel Owner Commands
    if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner ) { 
      .notice $nick 07,01?addadmin nick - 07,01?addop nick - 07,01?addhelper nick - 07,01?addvoice nick - 07,01?badnick add/del nick - 07,01?ban add/del nick reason - 07,01?baninfo total/banmask - 
      .notice $nick 07,01?bigflood on/off/status # - 07,01?flood on/off/status #:# - 07,01?flyby on/off/status - 07,01?greet on/off message - 07,01?kick nick reason - 07,01?modelock list/modes - 07,01?protect on/off - 07,01?spam on/off/status - 07,01?topiclock on/off topic - 
    }
    ; Public Commands
    .notice $nick 08,01?about - 08,01?checknick nick - 08,01?commands - 08,01?dns nick/address - 08,01?ircop scan channel - 08,01?lastseen nick - 08,01?stats nick - 08,01?rules -
  }
  if ($+(%trigger,dns) == $strip($1)) {
    if (!$2) { eis | .msg $chan ?dns command: ?dns address }
    if ($2) { set -u5 %targ $chan | .dns $2 }
  }
  if ($+(%trigger,ircop) == $strip($1)) {
    if (!$3) { eis | .msg $chan ?ircop command: ?ircop scan #channel }
    if ($2 == scan) { 
      if ($me ison $3) { set -u10 %msgchan $chan | set -u10 %chkchan1 $3 | ircopscan %chkchan1 }
      else { .msg $chan %logo.l $nick %logo.r I can only scan channels i am on. }
  } }
  if ($+(%trigger,lastseen) == $strip($1)) {
    if (!$2) { eis | .msg $chan ?lastseen command: ?lastseen nick | halt }
    if ($2) { 
      if ($2 ison $chan) { .msg $chan %logo.l Last Seen04,01 $2 %logo.r is on %logo.l $chan %logo.r already %logo.l $nick %logo.r }
      else {
        if ($2 == $gettok($read(lastseen.txt, w,* $+ $2- $+ *),2,32)) { .msg $chan %logo.l Last Seen04,01 $2 %logo.r $read(lastseen.txt, w,* $+ $2- $+ *) } 
        else { .msg $chan %logo.l Last Seen %logo.r I have No Records for $2  }
      }
  } }
  if ($+(%trigger,rules) == $strip($1)) {
    .timer 1 1 .msg $chan $iif($($+(%,protect,$chan),2) == on,$(%logo.l  Channel is being protected %logo.r ),) $iif($($+(%,protect,$chan),2) == on,Status protection (@ % +,Op Hop Voice) ,)
    .timer 1 4 .msg $chan $iif($chan == $gettok($readini(users.ini,modelock,$chan),1,32),$(%logo.l  Mode Lock %logo.r ),) $iif($chan == $gettok($readini(users.ini,modelock,$chan),1,32), $gettok($readini(users.ini,modelock,$chan),2-,32) ,)
    .timer 1 7 .msg $chan $iif($($+(%,topiclock,$chan),2) == on,$(%logo.l  Topic lock %logo.r ),) $iif($($+(%,topiclock,$chan),2) == on,$($+(%,topic,$chan),2) ,)
    .timer 1 10 .msg $chan $iif($($+(%,greet,$chan),2) == on,$(%logo.l  Greet Message %logo.r ),) $iif($($+(%,greet,$chan),2) == on,$($+(%,joingreet,$chan),2) ,)
    .timer 1 13 .msg $chan $iif($($+(%,sp,$chan),2) == on,$(%logo.l  Spam Protect %logo.r ),) $iif($($+(%,$chan,flyby),2) == on,$(%logo.l  Fly-By Protect %logo.r ),) $iif($($+(%,$chan,flood),2) == on,$(%logo.l  Flood Protect %logo.r ),) $iif($($+(%,$chan,bflood),2) == on,$(%logo.l  Big Flood Protect %logo.r ),)
  }
  if ($+(%trigger,stats) == $strip($1)) {
    if (!$2) { eis | .msg $chan ?stats command: ?stats nick | .msg $chan Or: ?stats reset nick | halt }
    if ($2) { 
      if ($2 == reset) && ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) { unset $+(%,$3,*) | .msg $chan %logo.l Stats for04,01 $3 %logo.r Have Been Reset. | halt }
      else {
        if ($($+(%,$2,totaljoin),2)) {
          if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) {
            .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r Total Online Time %logo.l $duration($calc($($+(%,ticks,$network,$2),2) + $($+(%,tickstotal,$network,$2),2)))  %logo.r 
            halt
          }
          if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner) {
            .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r Total Online Time %logo.l $duration($calc($($+(%,ticks,$network,$2),2) + $($+(%,tickstotal,$network,$2),2)))  %logo.r
            halt
          }
          if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == admin) { 
            .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r Total Online Time %logo.l $duration($calc($($+(%,ticks,$network,$2),2) + $($+(%,tickstotal,$network,$2),2)))  %logo.r
            halt
          }
          if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == op) {
            .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r Total Online Time %logo.l $duration($calc($($+(%,ticks,$network,$2),2) + $($+(%,tickstotal,$network,$2),2)))  %logo.r
            halt
          }
          if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == helper) {
            .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r Total Online Time %logo.l $duration($calc($($+(%,ticks,$network,$2),2) + $($+(%,tickstotal,$network,$2),2)))  %logo.r
            halt
          }
          else { .msg $chan %logo.l Stats for04,01 $2 %logo.r Total Joins: %logo.l $iif($($+(%,$2,totaljoin),2),$($+(%,$2,totaljoin),2),0) %logo.r Total Parts: %logo.l $iif($($+(%,$2,totalparts),2),$($+(%,$2,totalparts),2),0) %logo.r Total Quits: %logo.l $iif($($+(%,$2,totalquits),2),$($+(%,$2,totalquits),2),0) %logo.r Total Bans: %logo.l $iif($($+(%,$2,totalbans),2),$($+(%,$2,totalbans),2),0) %logo.r Total Kicks: %logo.l $iif($($+(%,$2,totalkicks),2),$($+(%,$2,totalkicks),2),0) %logo.r Total Messages Sent: %logo.l $iif($($+(%,$2,totalmsg),2),$($+(%,$2,totalmsg),2),0) %logo.r Total Letters: %logo.l $iif($($+(%,$2,totalchar),2),$($+(%,$2,totalchar),2),0) %logo.r Total Words: %logo.l $iif($($+(%,$2,totalword),2),$($+(%,$2,totalword),2),0) %logo.r }
        }
        else { .msg $chan %logo.l Stats for04,01 $2 %logo.r No stats Recorded. } 
      } 
  } }
  ;
  ; Bot Master Commands
  ;
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),botmaster,$nick),2,32)) {
    if ($+(%trigger,act) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?act command: ?act nick/#channel message }
      if ($3) { .describe $chan %logo.l $me %logo.r $3- | .describe $2 $3- }
    }
    if ($+(%trigger,addowner) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?addowner command: ?addowner nick #channel }
      if ($3) { notify $2 | writeini $+($network,users.ini) $3 $2 $address($2,2) owner | .msg $chan Added %logo.l $2 %logo.r as %logo.l $3 %logo.r Owner. }
    }
    if ($+(%trigger,autojoin) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?autojoin command: ?autojoin add/del/list network #channel }
      if ($2 == add) { $iif(%totchans == $null,set %totchans 1,set %totchans $calc(%totchans + 1)) | hadd -m AutoJoin $3 $iif($hget(Autojoin,$3),$+($hget(Autojoin,$3),$chr(44),$4-),$+($4-,$chr(44))) | .msg $chan Added %logo.l $4 %logo.r to %logo.l $3 %logo.r Autojoin channel(s), I will join on my next reboot. }
      if ($2 == del) { 
        set %totchans $calc(%totchans - 1)
        hadd AutoJoin $3 $remtok($hget(Autojoin,$3),$4-,1,44) 
        .msg $chan Deleted %logo.l $4 %logo.r from %logo.l $3 %logo.r Autojoin channel(s), I will leave on my next reboot. 
      }
      if ($2 == list) { 
        if (!$3) { eis | .msg $chan ?autojoin command: ?autojoin list network }
        else { .msg $chan I auto join these channel(s) on $+($3,:) %logo.l $hget(Autojoin,$3) %logo.r }
    } }
    if ($+(%trigger,badnick) == $strip($1)) {
      if (!$4) { eis | .msg $chan ?badnick command: ?badnick add/del nick | halt }
      if ($2 == add) { writeini badnicks.ini $chan $3 $3 | .msg $chan %logo.l Bad Nick04,01 $3 %logo.r Added to bad nicks list for %logo.l $chan %logo.r | halt }
      if ($2 == del) { remini badnicks.ini $chan $3 | .msg $chan %logo.l Bad Nick04,01 $3 %logo.r Removed from bad nicks list for %logo.l $chan %logo.r | halt }
    }
    if ($+(%trigger,baninfo) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?baninfo command: ?baninfo total/banmask | halt } 
      if ($2 == total) { .msg $chan %logo.l Total Bans %logo.r $lines(banned.txt) | halt }
      if (!$read(banned.txt, w, * $+ $2- $+ *)) { .msg $chan No Such Ban Exists. | halt }
      else { .msg $chan $read(banned.txt, w, * $+ $2- $+ *) | halt }
    }
    if ($+(%trigger,botmaster) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?botmaster command: ?botmaster nick | halt } 
      if ($2) { notify $2 | writeini $+($network,users.ini) botmaster $2 $2 $address($2,2) | .msg $chan %logo.l $gettok($readini(users.ini,botmaster,$2),1,32) %logo.r  added to %logo.l Master List %logo.r }
    }
    if ($+(%trigger,clonescanner) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?clonescanner command: ?clonescanner on/off }
      if ($2 == on) { set %clonescanner on | .msg $chan %logo.l Clone Scanner %logo.r On }
      if ($2 == off) { set %clonescanner off | .msg $chan %logo.l Clone Scanner %logo.r Off }
    }
    if ($+(%trigger,cycle) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?cycle command: ?cycle #channel }
      if ($2) { .msg $2 %logo.l Cycling %logo.r as ordered by %logo.l $nick 04,01%logo.r | part $2 | .timer 1 1 join $2 } 
    }
    if ($+(%trigger,forget) == $strip($1)) { write $+(-ds,",$2-,") info.txt | msg $chan ok ill forget that. }
    if ($+(%trigger,global) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?global command: ?global message }
      if ($2) { Global $nick $2- }
    } 
    if ($+(%trigger,kill) == $strip($1)) { scon -a //ame %logo.l Killed %logo.r by %logo.l $nick %logo.r | exit -n }
    if ($+(%trigger,openini) == $strip($1)) { run $mircdirusers.ini }
    if ($+(%trigger,openmircdir) == $strip($1)) { run $mircdir }
    if ($+(%trigger,raw) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?raw command: ?raw command }
      if ($2) { $2- }
    }
    if ($+(%trigger,reboot) == $strip($1)) { scon -a //ame %logo.l Rebooting %logo.r as ordered by %logo.l $nick %logo.r command recieved on %logo.l $network %logo.r | exit -nr }
    if ($+(%trigger,relay) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?relay command: ?relay channel_1 channel_2 }
      if (on == $2) { join $3 | set %chan1 $3 | set %chan2 $4 | set %relay on | msg $chan %logo.l Relay %logo.r from %logo.l $3 %logo.r to %logo.l $4 %logo.r }
      if (off == $2) { part %chan1 | unset %chan1 %chan2 %relay | msg $chan %logo.l Relay %logo.r OFF  }
    }
    if ($+(%trigger,remember) == $strip($1)) { 
      if (!$2) { eis | .msg $chan ?remember command: ?remember info_here }
      if (!$read(info.txt, w, $2 *)) && ($2) { write info.txt $2- | .msg $chan Ok, $nick $+ . | halt }
      if ($read(info.txt, w, $2 *)) && ($2) { write -dw $+ $2 $+ * info.txt | write info.txt $2- | .msg $chan Ok, $nick $+ . Replaced previous info. | halt }
    }
    if ($+(%trigger,say) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?say command: ?say nick/#channel message }
      if ($3) { .msg $chan %logo.l $me %logo.r $3- | .msg $2 $3- }
    }
    if ($+(%trigger,server) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?server command: ?server add/del server }
      if ($2 == add) { hadd -m Servers $3- $3- | .msg $chan Added %logo.l $3 %logo.r as %logo.l Autojoin Server %logo.r }
      if ($2 == del) { hdel -m Servers $3- $3- | .msg $chan Deleted %logo.l $3 %logo.r as %logo.l Autojoin Server %logo.r }
    }
    if ($+(%trigger,set) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?set command: ?set nick/password nick/password }
      if ($2 == nick) { set %botnick $3 | nick $3 | identify %botpass | .notice $nick Set %logo.l $3 %logo.r as %logo.l BotNick %logo.r }
      if ($2 == password) { set %botpass $3 | identify $3 | .notice $nick Set %logo.l $3 %logo.r as %logo.l Password %logo.r }
    }
    if ($+(%trigger,trigger) == $strip($1)) { 
      if ($2) { set %trigger $2 | msg $chan Trigger is now %logo.l $2- %logo.r }
  } }
  ;
  ; Channel Owner Commands
  ;
  if ($strip($address($nick,2)) == $gettok($readini($+($network,users.ini),$chan,$nick),1,32)) && ($gettok($readini($+($network,users.ini),$chan,$nick),2,32) == owner ) {
    if ($+(%trigger,addadmin) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?addadmin command: ?addadmin nick }
      if ($2) { notify $2 | writeini $+($network,users.ini) $chan $2 $address($2,2) admin | mode $chan +a $2 | .msg $chan Added %logo.l $2 %logo.r as %logo.l $chan %logo.r Admin. }
    }
    if ($+(%trigger,addhelper) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?addhelper command: ?addhelper nick  }
      if ($2) { notify $2 | writeini $+($network,users.ini) $chan $2 $address($2,2) helper | mode $chan +h $2 | .msg $chan Added %logo.l $2 %logo.r as %logo.l $chan %logo.r Helper. }
    }
    if ($+(%trigger,addop) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?addop command: ?addop nick }
      if ($2) { notify $2 | writeini $+($network,users.ini) $chan $2 $address($2,2) op | mode $chan +o $2 | .msg $chan Added %logo.l $2 %logo.r as %logo.l $chan %logo.r Op. }
    }
    if ($+(%trigger,addvoice) == $strip($1)) { 
      if (!$2) { eis | .msg $chan ?addvoice command: ?addvoice nick }
      if ($2) { notify $2 | writeini $+($network,users.ini) $chan $2 $address($2,2) voice | mode $chan +v $2 | .msg $chan Added %logo.l $2 %logo.r as %logo.l $chan %logo.r Voice. }
    }
    if ($+(%trigger,badnick) == $strip($1)) {
      if (!$4) { eis | .msg $chan ?badnick command: ?badnick add/del nick }
      if ($2 == add) { writeini badnicks.ini $chan $3 $3 | .msg $chan %logo.l Bad Nick $3 %logo.r Added to bad nicks list for %logo.l $chan %logo.r }
      if ($2 == del) { remini badnicks.ini $chan $3 | .msg $chan %logo.l Bad Nick $3 %logo.r Removed from bad nicks list for %logo.l $chan %logo.r }
    }
    if ($+(%trigger,ban) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?ban command: ?ban add/del nick reason }
      if ($2 == add) { ban -ku600 $chan $3 $4- | .msg $chan Banned %logo.l $3 %logo.r time %logo.l 15 Minute Ban %logo.r reason %logo.l $4- %logo.r }
      if ($2 == del) { mode $chan -b $gettok($read(banned.txt, w, * $+ $3- $+ *),6,32) | .msg $chan Unbanned %logo.l $3 %logo.r }
    }
    if ($+(%trigger,baninfo) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?baninfo command: ?baninfo total/banmask | halt } 
      if ($2 == total) { .msg $chan %logo.l Total Bans %logo.r $lines(banned.txt) | halt }
      if (!$read(banned.txt, w, * $+ $2- $+ *)) { .msg $chan No Such Ban Exists. | halt }
      else { .msg $chan $read(banned.txt, w, * $+ $2- $+ *) | halt }
    }
    if ($+(%trigger,bigflood) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?bigflood command: ?bigflood on/off/status $chr(35) | .msg $chan example: ?flood on 200 ( 200 characters per message sent ) }
      if ($2 == on) { 
        set $+(%,$chan,bflood) on 
        set $+(%,$chan,bigflood) $3 
        .msg $chan %logo.l $chan Big Flood Protect %logo.r is now On: $3
      }
      if ($2 == off) { set $+(%,$chan,bflood) off | .msg $chan %logo.l $chan Big Flood Protect %logo.r is now Off }
      if ($strip($2) == status) { .msg $chan %logo.l $chan Big Flood Protect %logo.r is currently: $($+(%,$chan,bflood),2) }
    }
    if ($+(%trigger,flood) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?flood command: ?flood on/off/status #:# | .msg $chan example: ?flood on 10:3 ( 10 messages in 3 seconds ) }
      if ($2 == on) { 
        set $+(%,$chan,floodlines) $gettok($3,1,58)
        set $+(%,$chan,floodin) $gettok($3,2,58)
        set $+(%,$chan,flood) on 
        .msg $chan %logo.l $chan Flood Protect %logo.r is now On: $3
      }
      if ($2 == off) { set $+(%,$chan,flood) off | .msg $chan %logo.l $chan Flood Protect %logo.r is now Off }
      if ($strip($2) == status) { .msg $chan %logo.l $chan Flood Protect %logo.r is currently: $($+(%,$chan,flood),2) }
    }
    if ($+(%trigger,flyby) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?flyby command: ?flyby on/off/status | halt } 
      if ($2 == on) { set $+(%,$chan,flyby) on | .msg $chan %logo.l $chan Fly By %logo.r is now On }
      if ($2 == off) { set $+(%,$chan,flyby) off | .msg $chan %logo.l $chan Fly By %logo.r is now Off }
      if ($strip($2) == status) { .msg $chan %logo.l $chan Fly By %logo.r is currently $($+(%,$chan,flyby),2) }
    }
    if ($+(%trigger,greet) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?greet command: ?greet on/off message }
      if ($2 == on) { set $+(%,greet,$chan) on | set $+(%,joingreet,$chan) $3- | .msg $chan Added %logo.l $3- %logo.r as %logo.l $chan %logo.r auto greet message. }
      if ($2 == off) { unset $+(%,greet,$chan) | .msg $chan Removed %logo.l $($+(%,joingreet,$chan),2) %logo.r as %logo.l $chan %logo.r auto greet message.  }
    }
    if ($+(%trigger,kick) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?kick command: ?kick nick reason }
      if ($3) { kick $chan $2 $3- | .msg $chan Kicked %logo.l $2 %logo.r from %logo.l $3 %logo.r }
    }
    if ($+(%trigger,modelock) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?modelock command: ?modelock list/modes }
      if ($2 == list) { .msg $chan %logo.l Enforcing Modes %logo.r for %logo.l $chan %logo.r $gettok($readini(users.ini,modelock,$chan),2-,32) | halt }
      else { writeini users.ini modelock $chan $chan $2- | mode $chan $2- | .msg $chan Mode %logo.l $2- %logo.r added to %logo.l $chan %logo.r }
    } 
    if ($+(%trigger,protect) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?protect command: ?protect on/off }
      if ($2 == on) { set $+(%,protect,$chan) on | .msg $chan %logo.l $chan Protection %logo.r is now On }
      if ($2 == off) { unset $+(%,protect,$chan) | .msg $chan %logo.l $chan Protection %logo.r is now Off }
    } 
    if ($+(%trigger,remuser) == $strip($1)) {
      if (!$3) { eis | .msg $chan ?remuser command: ?remuser nick chan }
      else { remini $+($network,users.ini) $3 $2 | mode $3 -aohv $2 $2 $2 $2 | .msg $chan %logo.l $2 %logo.r removed from %logo.l $3 %logo.r access. }
    }
    if ($+(%trigger,spam) == $strip($1)) { 
      if (!$2) { eis | .msg $chan ?spam command: ?spam on/off/status }
      if ($regex($strip($1-),/on|off/i)) { set $+(%,sp,$chan) $2 | .msg $chan %logo.l $chan Spam Protect %logo.r is now $($+(%,sp,$chan),2) $+ . }
      if ($strip($2) == status) { .msg $chan %logo.l $chan Spam Protect %logo.r is currently: $($+(%,sp,$chan),2) }
    } 
    if ($+(%trigger,topiclock) == $strip($1)) {
      if (!$2) { eis | .msg $chan ?topiclock command: ?topiclock on/off topic }
      if ($2 == on) {
        if (!$3) { eis | .msg $chan ?topiclock command: ?topiclock on/off topic }
        else { set $+(%,topic,$chan) $3- | set $+(%,topiclock,$chan) on | topic $chan $3- | .msg $chan %logo.l $chan Topiclock %logo.r On }
      }
      if ($2 == off) { unset $+(%,topiclock,$chan) | .msg $chan %logo.l $chan Topiclock %logo.r Off | halt }
  } }
  ;
  ; Bot Talk
  ;
  if ($me == $strip($1)) && ($right($strip($1-),1) == ?) { 
    if (are you a bot isin $strip($1-)) { .msg $chan Of course I am! }
    if (annoying you isin $strip($1-)) { .msg $chan Most definitly $+($nick,!) Make them stop! | halt }
    set -u5 %randadv $rand(1,8)
    if (%randadv == 1) { .msg $chan What, You cant make decisions for yourself? }  
    if (%randadv == 2) { .msg $chan I wouldn't tell you if i knew. }  
    if (%randadv == 3) { .msg $chan Ask someone who cares. }  
    if (%randadv == 4) { .msg $chan I cant believe you just asked that!!! }  
    if (%randadv == 5) { .msg $chan Come back when Im not so drunk. }  
    if (%randadv == 6) { .msg $chan What sort of question is that? } 
    if (%randadv == 7) { .msg $chan Are you serious? }
    if (%randadv == 8) { .msg $chan You shouldn't be asking questions like that!! }
  } 
  ;
  ; Trigger flood 
  ;
  if ($left($1,1) == $($+(%,trigger),2)) { inc -u10 $+(%,trigger,$nick) } 
  ;
  ; Spam Catcher
  ;
  if ($regex($strip($1-),/\b(?:http|www|com|org|net)\b/i)) && ($($+(%,sp,$chan),2) == on) { 
    if ($+(%,spam,$nick) == $null) { set $+(%,spam,$nick) 1 }
    else { inc $+(%,spam,$nick) 1 }
    if ($($+(%,spam,$nick),2) == 3) { unset $+(%,spam,$nick) | ban -ku300 $chan $nick 2 Spam/Advertising. | .notice $nick You have been banned from %logo.l $chan %logo.r for Spam/Advertising. }
    .msg $chan %logo.l $nick %logo.r Spamming is not allowed in this channel.
  } 
}
/* 
Aliases 
*/
alias addowner { notify $1 | writeini $+($network,users.ini) botmaster $1 $1 $address($1,2) | .msg $chan %logo.l $gettok($readini($+($network,users.ini),botmaster,$1),1,32) %logo.r  added to %logo.l Master List %logo.r }
alias eis { .msg $chan **** %logo.lIncorrect Syntax %logo.r ***** }
alias io { .msg $chan **** %logo.lIllegal Operation %logo.r ***** }
alias ircopscan { 
  if ($nick($1,0) > 1000) { .msg %chkchan %logo.l IRCop Scan %logo.r halted - too many users on channel. } 
  else { .who $1 | set $+(%,ircopcheck,$1) 1 }  
} 
alias chkflyby {
  var %a = 1
  var %b = $comchan($nick,0) 
  while %a <= %b { 
    if ($($+(%,join,$comchan($nick,%a),$nick),2) == $nick) { $iif($+(%,flyby,$comchan($nick,%a)),inc $+(%,flyby,$comchan($nick,%a)),set $+(%,flyby,$comchan($nick,%a)) 1) | ban -u300 $comchan($nick,%a) $nick 2 Fly-By Protect | .msg $comchan($nick,%a) %logo.l $($+(%,join,$comchan($nick,%a),$nick),2) %logo.r was Fly-By %logo.l $($+(%,flyby,$comchan($nick,%a)),2) %logo.r Since $($+(%,botstartdate),2) | halt }
    else { inc %a } 
} }
alias relayevent {
  var %a = $scon(0)
  while (%a) {
    if ($scon(%a).network == $1) { dec %a }
    else { scon %a msg %rchan $2- | dec %a }
} } 
alias global {
  scon -a //ame %logo.l Global Service Message %logo.r from %logo.l $m1 %logo.r on %logo.l $network %logo.r
  scon -a //ame %logo.l $1 %logo.r $2-
}
/* 
Raw Events 
*/
raw 315:*: { 
  if ($($+(%,ircopcheck,%chkchan1),2) != $null) { 
    if ($($+(%,ircops,%chkchan1),2) != $null) { .msg %msgchan %logo.l IRCops %logo.r on %chkchan1 $+ : $($+(%,ircops,%chkchan1),2) $+ . } 
    else { .msg %msgchan %logo.l IRCop Scan %logo.r No IRCops on %chkchan1 $+ . }
    unset %ircop* | .haltdef 
} }
raw 352:*: { 
  if ($($+(%,ircopcheck,%chkchan1),2) != $null) { 
    if (* isin $7) { set $+(%,ircops,%chkchan1) $($+(%,ircops,%chkchan1),2) $6 } 
    .haltdef 
} } 
/*
Menu
*/
menu channel,nicklist {
  Server relay
  .Set Relay Channel:set %rchan $$?"Channel name: example: #Help"
  .Relay Currently %serverrelay:set %serverrelay $iif((%serverrelay == on),off,on) | echo -a ***** Sever Relay is now %serverrelay 
  Add/Delete channel access
  .Add $$1 as owner:writeini $+($network,users.ini) $chan $address($$1,2) OWNER | mode $chan +q $$1 | .msg $chan Added %logo.l $$1 %logo.r as %logo.l $chan %logo.r Owner.
  .Add $$1 as admin:writeini $+($network,users.ini) $chan $address($$1,2) ADMIN | mode $chan +a $$1 | .msg $chan Added %logo.l $$1 %logo.r as %logo.l $chan %logo.r Admin.
  .Add $$1 as op:writeini $+($network,users.ini) $chan $address($$1,2) OP | mode $chan +o $$1 | .msg $chan Added %logo.l $$1 %logo.r as %logo.l $chan %logo.r Op.
  .Add $$1 as helper:writeini $+($network,users.ini) $chan $address($$1,2) HELPER | mode $chan +h $$1 | .msg $chan Added %logo.l $$1 %logo.r as %logo.l $chan %logo.r Helper.
  .Add $$1 as voice:writeini $+($network,users.ini) $chan $address($$1,2) VOICE | mode $chan +v $$1 | .msg $chan Added %logo.l $$1 %logo.r as %logo.l $chan %logo.r Voice.
  .Delete $$1:remini $+($network,users.ini) $chan $$1
  Global Message:global $$?"Message From" $$?"Message"
  Logo
  .Logo Left: set %logo.l $$?""
  .Logo Right: set %logo.r $$?""
}

Comments

Sign in to comment.
Deputy30   -  Jun 18, 2013

How do i make the bot go online?

 Respond  
PuNkTuReD   -  Jul 20, 2012

This is made to run on it's own mIRC, not within yours. (Just incase you were not sure on that)

Bring the bot online, into a channel you own.

First we add you as bot owner,
type this in your BOTS mIRC: /addowner YOUR_NICK

Now we add you as the channel owner,
type this in YOUR mIRC: ?addowner YOUR_NICK

Now in the channel, type: ?commands
You will see all the commands that you are allowed to use.

To make a bot auto-join a server, type: ?server add SERVER-LINK
To remove that server from the autojoin, type: ?server del SERVER-LINK

Then you add channels for it to join.

Regarding the op stuff, and this is important.
Your bot is to run as channel owner status if you want it to run properly.

You then only add Op/Hop/Vop into the bot when those nicks are on the channels official ChanServ lists.

It's not a bot that maintains it's own user status's like other bots do,
this one is to protect the structure of the ChanServ lists.

Basically, so your Ops do not have DeOp wars and stuff.

I hope that helps some.

 Respond  
ZincX   -  Jul 20, 2012

'Channel Protection Bot'
PuNkTuReD, i see where i can addvoice, addhalper, addadmin, and addop but i dont see a way where i can do the opposite> deop. how do i use this script on a server in my channel? i dont see a clear advice on how to add the server to the bot?

 Respond  
PuNkTuReD   -  Jul 15, 2012

No, I don't script anymore. Although, I did write this so you can easily add your own commands into it.

 Respond  
chachin   -  Jul 15, 2012

anything new?

 Respond  
JoKabua   -  Mar 26, 2011

Ty

 Respond  
PuNkTuReD   -  Mar 25, 2011

sorry for the late reply.
you can fix that voice msg by adding them to the bots voice list with the command:

?addvoice nick

replacing "?" with your trigger if you set one.

when i have some time ill try to update this a bit for you.

 Respond  
JoKabua   -  Mar 23, 2011

PuNkTuRed is any way you can upated this for mIRC 6.35 some of the stuff are not working ..

 Respond  
JoKabua   -  Mar 23, 2011

Still not working

 Respond  
JoKabua   -  Mar 23, 2011

?rules doesn't work i got this stats msg
/msg: insufficient parameters

plus i how can I fix this part

[01:40] ChanServ sets mode: +o alele
[01:40]
Cafebleu sets mode: +v alele
[01:40] ** Operation ***
[01:40] alele is not a Voice in this channel.
[01:40] alele sets mode: -v alele
[01:40] Cafebleu you are now being stripped of your Op status.
[01:40]
alele sets mode: -o Cafebleu

 Respond  
JoKabua   -  Mar 23, 2011

This remote is awesome but there couple stuff i having problems with?
!flood on seem not working

 Respond  
PuNkTuReD   -  Jul 12, 2010

try
?protect off

 Respond  
rayrayray   -  Jul 12, 2010

Hello punkTuReD
I love this script alot, but howerver
when i use this script and i voice a fiend in my room the bot removed him takes my op, its getting a little annoyin maybe you could remove that line for me and post it in a mail or on here, or maybe you can do something else maybe a on off button ?

 Respond  
PuNkTuReD   -  Jan 26, 2010

bot knows you by hostmask --> PuNkTuRed@dg87d2.32gd23.d87hfd.ip

if yours changes alot, this bot will not know you.

 Respond  
Lenooox   -  Jan 25, 2010

umm sorry i dont understand completely, but if i think , because that use my hostmask.. (i learn the English but my engis not quite good , i dont know much words:$ )

 Respond  
PuNkTuReD   -  Jan 24, 2010

hmmm, ok i will look into it.

did Zer0CoDe8's hostmask change?

 Respond  
Lenooox   -  Jan 24, 2010

yes i added

 Respond  
PuNkTuReD   -  Jan 24, 2010

did you add
Zer0CoDe8
to the bots voice list?

 Respond  
Lenooox   -  Jan 23, 2010

strange o.O look, why make my bot this ?!

(21:47:36) (@Zer0CoDe8) ** Operation ***
(21:47:36) (@Zer0CoDe8) Zer0CoDe8 is not a Voice in this channel.
(21:47:36)  -› Zer0CoDe8 (-v) Zer0CoDe8
(21:47:37) (@Zer0CoDe8) ^Joanie^ you are now being stripped of your Op status.
(21:47:38)  -› Zer0CoDe8 (-o) ^Joanie^

 Respond  
Lenooox   -  Jan 08, 2010

oki , works good :) thank you ^^

 Respond  
PuNkTuReD   -  Jan 06, 2010

The bot uses
%logo.l
and %logo.r

try setting these "logo/themes"
via his menu and see if it changes.

it looks like you have %logo.l set as sdrfdsa.

 Respond  
Lenooox   -  Jan 03, 2010

very nice script , but i have a question :$
i loaded this script , and typed /addowner InSane`Lenooox

and when im type hop . or rejoined to irc my bot say this :
sdrfdsa Bot Master InSane`Lenooox has joined. this Ok , but what is sdrfdsa ? :D
nervous

 Respond  
MyRuffles   -  Dec 09, 2009

UNDERNET IS ALL " X " SERVICES. :)

 Respond  
x1L22   -  Nov 25, 2009

Verrryy GoooD , Can you give me just Stats

 Respond  
PuNkTuReD   -  Oct 07, 2009

UPDATED: fixed some color code problems.

 Respond  
hackmaster   -  Oct 07, 2009

ok I try that! :)

 Respond  
PuNkTuReD   -  Oct 05, 2009

also, yes this bot might have some issues on quakenet,
but thats cos quakenet dont use chanserv,
however your explaining a bracket error.

ive seen interest before, so i may adapt this to quakenet over time,
but id like to know where these errors are coming from first.

 Respond  
PuNkTuReD   -  Oct 05, 2009

no it wouldnt and tbh, the code hasnt changed,
the trigger command was just undocumented.

the only reason you would get an error like

ON unknown command

is a syntax error, example:

on :text::#: {
bla bla
on :action::#: {
bla bla
}

please click the lil bracket checker button in your script editor,
and see if it tells you where the missing bracket is,
mine is all fine.

 Respond  
hackmaster   -  Oct 05, 2009

yes its the whole code... Im on quakenet btw, if that have something to do with this...

 Respond  
PuNkTuReD   -  Oct 05, 2009

i cant seem to replicate the errors.
would you mind deleting the whole file you currently have, and recopy the code making sure youve copied it all. sorry for the inconvenience.

 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.