CTCP Unban Script

By Jack_Sparrow on Apr 08, 2008

THis is a simple script which unbans people from a particular channel if they ctcp UNBAN you so make sure that only those people you trust know about this CTCP trigger.

I cant take full credit for this snippet as xDaemon and Russelb helped me out in fixing its original version :)

Cheers guys ;)

NOTE: Replace #chan with the name of the channel you want..

ctcp *:unban:?: {
if ($address($nick,1) isban #chan) { mode #chan -b $address($nick,1) | if ($address($nick,2) isban #chan) { mode #chan -b $address($nick,2) } | if ($address($nick,3) isban #chan) { mode #chan -b $address($nick,3) } | if ($address($nick,4) isban #chan) { mode #chan -b $address($nick,4) } | if ($address($nick,5) isban #chan) { mode #chan -b $address($nick,5) } }
if ($address($nick,2) isban #chan) { mode #chan -b $address($nick,2) | if ($address($nick,3) isban #chan) { mode #chan -b $address($nick,3) } | if ($address($nick,4) isban #chan) { mode #chan -b $address($nick,4) } | if ($address($nick,5) isban #chan) { mode #chan -b $address($nick,5) } | if ($address($nick,1) isban #chan) { mode #chan -b $address($nick,1) } }
if ($address($nick,3) isban #chan) { mode #chan -b $address($nick,3) | if ($address($nick,2) isban #chan) { mode #chan -b $address($nick,2) } | if ($address($nick,4) isban #chan) { mode #chan -b $address($nick,4) } | if ($address($nick,5) isban #chan) { mode #chan -b $address($nick,5) } | if ($address($nick,1) isban #chan) { mode #chan -b $address($nick,1) } }
if ($address($nick,4) isban #chan) { mode #chan -b $address($nick,4) | if ($address($nick,2) isban #chan) { mode #chan -b $address($nick,2) } | if ($address($nick,3) isban #chan) { mode #chan -b $address($nick,3) } | if ($address($nick,5) isban #chan) { mode #chan -b $address($nick,5) } | if ($address($nick,1) isban #chan) { mode #chan -b $address($nick,1) } }
if ($address($nick,5) isban #chan) { mode #chan -b $address($nick,5) | if ($address($nick,1) isban #chan) { mode #chan -b $address($nick,1) } | if ($address($nick,2) isban #chan) { mode #chan -b $address($nick,2) } | if ($address($nick,3) isban #chan) { mode #chan -b $address($nick,3) } | if ($address($nick,4) isban #chan) { mode #chan -b $address($nick,4) } } }

Comments

Sign in to comment.
Jack_Sparrow   -  Apr 21, 2008

I got it now :)

Cheers guys ;0

And sorry for slow reply..

Was on vacation and had a nice tiem but I am back now :)

 Respond  
napa182   -  Apr 12, 2008

you could also do it like this as well to reduce mode flood

ctcp *:unban:?: {
  if ($3 !ischan) { .msg $Nick You must select a channel. | halt }
  var %a = $Ibl($3,0), %b = 0
  while ( %b <= %a ) {
    if ($Ibl($3,%b) iswm $address($2,5)) { var %unbann $addtok(%unbann,$IfMatch,32) }
    inc %b
  }
  mode $3 - $+ $str(b,%b) %unbann
}
 Respond  
napa182   -  Apr 12, 2008

read the help file about $ibl type /help $ibl in ur mirc %a is a var he set to use in the while loop... var %a = 0
so what this line is doing.. if ($Ibl($3,%a) $ibl = internal ban list $3 = channel %a = 0 - how many bans are in the list so say there is 5 bans in the ban list it will check 0 - 5

just read up in ur help file about it

 Respond  
Jack_Sparrow   -  Apr 12, 2008

er... I am sorry to dissapoint you but I have no idea what $Ibl($3,%a
is and what does %a have to with this ?

 Respond  
Gecko321   -  Apr 10, 2008

no problem, it uses a while loop to search through the ban list, entry by entry.

if ($Ibl($3,%a) iswm $address($2,5)) { mode $3 -b $IfMatch }

that checks each entry in the ban list against the nicks address using a wildcard match since most bans have some sort of wildcard string in them. if it matches in unbans the user.

if you got any other questions or need help just let me know.

gecko

 Respond  
Jack_Sparrow   -  Apr 10, 2008

Thanks for the advice guys :)

I am just a 14 year old so I guess I have a lot to learn lol

Gecko, if you could spare the time, can you please explain how your code works ?

I am interested to know how you made it happen

 Respond  
Jonesy44   -  Apr 09, 2008

use a var instead .. if youo\'re using the elseif way, so yuo dont have to change each #chan

 Respond  
Gecko321   -  Apr 09, 2008

you can eliminate a lot of the if-then statements. try this

ctcp *:unban:?: {
  if ($3 !ischan) { .msg $Nick You must select a channel. | halt }
  var %a = 0
  while (%a < $Ibl($3,0)) {
    inc %a
    if ($Ibl($3,%a) iswm $address($2,5)) { mode $3 -b $IfMatch }
  }
}
 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.