1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/*
* ban removers, 1993
* This script requires ircII-EPIC.
*/
# returns 1 if $0 matches or is matched by $1, 0 if not.
alias comatch @ function_return = (rmatch($0 $1) || rmatch($1 $0))
alias deban_mode {
fe ($*) bx by bz {
@ moder = bz?[-bbb]:by?[-bb]:bx?[-b]:[]
if (moder) {
mode * $moder $bx $by $bz
}
}
}
# remove all bans on current channel
alias deban uniban *
# remove all bans that could cover nickname
alias unban uniban $0!$uh($0)
# remove all bans matching or matched by pattern
alias uniban {
@ aa.unibanlist = []
stack push on 367
stack push on 368
^on ^367 * if \(comatch\($0 $$2\)\) { push aa.unibanlist $2 }
^on ^368 * {
stack pop on 367
stack pop on 368
eval deban_mode $aa.unibanlist
}
^mode ${[$1]?[$1]:C} +b
}
# remove all bans that contain a literal text substring
alias nban {
@ aa.nbanlist = []
stack push on 367
stack push on 368
eval ^on ^367 * if \(rmatch\($$2 *$0*\)\) { push aa.nbanlist $2 }
^on ^368 * {
stack pop on 367
stack pop on 368
deban_mode $aa.nbanlist
}
^mode ${[$1]?[$1]:C} +b
}
#hop'93
|