; GBan.msl by teppuli & AndRew @ QuakeNet
; ------------------------------------------------
; Aliases (Dont touch!):
alias -l encodeCodes {
return $replace($1,$chr(3),????c????,$chr(2),????b????,$chr(31),????u????)
}
alias -l decodeCodes {
return $replace($1,????c????,$chr(3),????b????,$chr(2),????u????,$chr(31))
}
; Script (Again, dont touch!)
on *:text:!gb *:#:{
if ($ti($address($nick,2)) == admin) {
if ($2 == help) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1 add/list/del/status/on/off/kickskin %chanlevskin | halt }
if ($2 == status) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Global blacklist status: $+ $iif($readini(hagban.ini,SETUP_ $+ global,status),$readini(hagban.ini,SETUP_ $+ global,status),OFF) $+ %chanlevskin | halt }
if ($2 == add) {
if (!$4) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1-2 <#auth/hostname> <reason> %chanlevskin | halt }
if (#* iswm $3) {
writeini hagban.ini global $3 $4-
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Added auth $+(',$3,') to Global blacklist with reason $+(',$4-,') %chanlevskin
halt
}
if (*!*@* iswm $3) {
writeini hagban.ini global $3 $4-
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Added hostname $+(',$3,') to Global blacklist with reason $+(',$4-,') %chanlevskin
halt
} else {
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! %chanlevskin Invalid host format. Usage: $1-2 <#auth/hostname> <reason> %chanlevskin
}
halt
}
if ($2 == del) {
if (!$3) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Usage: $1-2 <#auth/hostname> %chanlevskin | halt }
if (#* iswm $3) {
remini hagban.ini global $3
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Remove auth $+(',$3,') from Global blacklist %chanlevskin
halt
}
if (*!*@* iswm $3) {
remini hagban.ini global $3
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Removed hostname $+(',$3,') from Global blacklist %chanlevskin
halt
} else {
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Error! %chanlevskin Invalid host format. Usage: $1-2 <#auth/hostname> <reason> %chanlevskin
}
halt
}
if ($2 == on) {
writeini hagban.ini SETUP_ $+ global status ON
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Changed status to ON. %chanlevskin
halt
}
if ($2 == kickskin) {
if ($3 != set) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Current kickskin: $iif($decodeCodes($readini(hagban.ini,SETUP_global,kickskin)),$decodeCodes($readini(hagban.ini,SETUP_global,kickskin)),Not set) | $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Setting new skin: $1-2 set <new skin> %chanlevskin | $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin You can use following variables: :id: :hostorauth: :type: :reason: %chanlevskin | halt }
if (!$4) { $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Setting new skin: $1-2 set <new skin> %chanlevskin | $eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin You can use following variables: :id: :hostorauth: :type: :reason: %chanlevskin | halt }
writeini hagban.ini SETUP_ $+ global kickskin $encodeCodes($4-)
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Skin changed! %chanlevskin
halt
}
if ($2 == list) {
var %i = 1
while (%i <= $ini(hagban.ini,global,0)) {
var %auth = $ini(hagban.ini,global,%i)
var %reason = $readini(hagban.ini,global,$ini(hagban.ini,global,%i))
if (#* iswm %auth) {
var %auths = $addtok(%auths, $+ %auth $+ ( $+ %reason $+ ) $+ $chr(44),32)
}
if (*!*@* iswm %auth) {
var %hosts = $addtok(%hosts, $+ %auth $+ ( $+ %reason $+ ) $+ $chr(44),32) }
inc %i
}
$eval(%chat.mode. [ $+ [ $chan ] ],2) In my Auths database are: $iif(%auths,%auths,No Entries!)
$eval(%chat.mode. [ $+ [ $chan ] ],2) In my Hosts database are: $iif(%hosts,%hosts,No Entries!)
halt
}
if ($2 == off) {
writeini hagban.ini SETUP_ $+ global status OFF
$eval(%chat.mode. [ $+ [ $chan ] ],2) %chanlevskin Done. %chanlevskin Changed status to OFF. %chanlevskin
halt
}
}
}
raw 354:& 465 & *: {
echo -ag $1-
var %auth = $4
if (!%authban_ [ $+ [ $3 ] ]) { halt }
var %chan = %authban_ [ $+ [ $3 ] ]
var %i = 1
while (%i <= $ini(hagban.ini,global,0)) {
if ($right($ini(hagban.ini,global,%i),$calc($len($ini(hagban.ini,global,%i)) - 1)) == %auth) {
var %host = $address($3,2)
var %useskin = Your: :type: ( $+ :hostorauth: $+ ) is GLOBALLY Banned with reason: :reason:
if ($decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) != $null) { var %useskin = $decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) }
inc %gkickid
.kick %chan $3 $replace(%useskin,:hostorauth:,%auth,:type:,auth,:reason:,$readini(hagban.ini,global,$ini(hagban.ini,global,%i)),:time:,$time,:id:,%gkickid)
.mode %chan +b %host
timer 1 600 mode %chan -b %host
unset %authban_ [ $+ [ $3 ] ]
halt
}
inc %i
}
}
on *:join:#:{
if ($readini(hagban.ini,SETUP_ $+ global,status) != ON) { halt }
.kick %chan $3 Your auth ( $+ %auth $+ ) is GLOBALLY Banned with reason: $readini(hagban.ini,global,$ini(hagban.ini,global,%i))
var %i = 1
while (%i <= $ini(hagban.ini,global,0)) {
if ($ini(hagban.ini,global,%i) iswm $address($nick,5)) {
var %host = $address($nick,2)
var %useskin = Your: :type: ( $+ :hostorauth: $+ ) is GLOBALLY Banned with reason: :reason:
if ($decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) != $null) { var %useskin = $decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) }
inc %gkickid
.kick $chan $nick $replace(%useskin,:hostorauth:,$fulladdress,:type:,hostname,:reason:,$readini(hagban.ini,global,$ini(hagban.ini,global,%i)),:time:,$time,:id:,%gkickid)
.mode $chan +b %host
timer 1 600 mode $chan -b %host
halt
}
inc %i
}
if (*!*@*.users.quakenet.org iswm $address($nick,5)) && ($network == QuakeNet) {
var %i = 1
var %auth = $gettok($site,1,$asc(.))
while (%i <= $ini(hagban.ini,global,0)) {
if ($right($ini(hagban.ini,global,%i),$calc($len($ini(hagban.ini,global,%i)) - 1)) == %auth) {
var %host = $address($nick,2)
var %useskin = Your: :type: ( $+ :hostorauth: $+ ) is GLOBALLY BANNED with reason: :reason:
if ($decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) != $null) { var %useskin = $decodeCodes($readini(hagban.ini,SETUP_global,kickskin)) }
inc %gkickid
.kick $chan $nick $replace(%useskin,:hostorauth:,%auth,:type:,auth,:reason:,$readini(hagban.ini,global,$ini(hagban.ini,global,%i)),:time:,$time,:id:,%gkickid)
.mode $chan +b %host
timer 1 600 mode $chan -b %host
unset %authban_ [ $+ [ $3 ] ]
halt
}
inc %i
}
set -u10 %authban_ [ $+ [ $nick ] ] $chan
who $nick n%nat,465
}