Pentru cine este interesat uitati TCL :
Code:
############
# SETTINGS #
############
### Set:
# dr reason:
set edu(drr) "Set DR Reason"
set edu(dayr) "Set DAY Reason"
set edu(blackr) "Set BLACKLIST Reason"
# dr ban time (in hours):
set edu(drtime) "160"
set edu(daytime) "14400"
set edu(blacktime) "0"
# don't ban users with this flags:
set edu(drf) "f|f"
#########
# BINDS #
#########
bind pub m|m .dr pub:dr
bind pub m|m .day pub:day
bind pub m|m .black pub:black
########
# CODE #
########
proc pub:dr {nickname hostname handle channel text} {
global botname edu
set text [split $text]
set bnick [lindex $text 0]
if {![botisop $channel]} {
putquick "NOTICE $nickname :I'm not opped on $channel"
return
}
if {$bnick == ""} {
putquick "NOTICE $nickname :Usage: .dr <nick>"
return
}
if {[onchan $bnick $channel]} {
set mask *!*@[lindex [split [getchanhost $bnick $channel] "@"] 1]
} else {
putquick "NOTICE $nickname :I don't see $bnick on $channel !"
}
if {[isbotnick $bnick]} {
putquick "NOTICE $nickname :I can't ban myself !"
return
}
set ban_USER [finduser $mask]
if {[matchattr $ban_USER $edu(drf) $channel]} {
putquick "NOTICE $nickname :I can't ban $mask !"
return
}
foreach ban_BAN [banlist $channel] {
set ban_HOSTNAME [lindex $ban_BAN 0]
if {$mask == $ban_HOSTNAME} {
putquick "NOTICE $nickname :$mask is already on $channel's banlist"
return
}
}
newchanban $channel $mask $handle $edu(drr) [expr $edu(drtime) * 60]
}
proc pub:day {nickname hostname handle channel text} {
global botname edu
set text [split $text]
set bnick [lindex $text 0]
if {![botisop $channel]} {
putquick "NOTICE $nickname :I'm not opped on $channel"
return
}
if {$bnick == ""} {
putquick "NOTICE $nickname :Usage: .day <nick>"
return
}
if {[onchan $bnick $channel]} {
set mask *!*@[lindex [split [getchanhost $bnick $channel] "@"] 1]
} else {
putquick "NOTICE $nickname :I don't see $bnick on $channel !"
}
if {[isbotnick $bnick]} {
putquick "NOTICE $nickname :I can't ban myself !"
return
}
set ban_USER [finduser $mask]
if {[matchattr $ban_USER $edu(drf) $channel]} {
putquick "NOTICE $nickname :I can't ban $mask !"
return
}
foreach ban_BAN [banlist $channel] {
set ban_HOSTNAME [lindex $ban_BAN 0]
if {$mask == $ban_HOSTNAME} {
putquick "NOTICE $nickname :$mask is already on $channel's banlist"
return
}
}
newchanban $channel $mask $handle $edu(dayr) [expr $edu(daytime) * 60]
}
proc pub:black {nickname hostname handle channel text} {
global botname edu
set text [split $text]
set bnick [lindex $text 0]
if {![botisop $channel]} {
putquick "NOTICE $nickname :I'm not opped on $channel"
return
}
if {$bnick == ""} {
putquick "NOTICE $nickname :Usage: .black <nick>"
return
}
if {[onchan $bnick $channel]} {
set mask *!*@[lindex [split [getchanhost $bnick $channel] "@"] 1]
} else {
putquick "NOTICE $nickname :I don't see $bnick on $channel !"
}
if {[isbotnick $bnick]} {
putquick "NOTICE $nickname :I can't ban myself !"
return
}
set ban_USER [finduser $mask]
if {[matchattr $ban_USER $edu(drf) $channel]} {
putquick "NOTICE $nickname :I can't ban $mask !"
return
}
foreach ban_BAN [banlist $channel] {
set ban_HOSTNAME [lindex $ban_BAN 0]
if {$mask == $ban_HOSTNAME} {
putquick "NOTICE $nickname :$mask is already on $channel's banlist"
return
}
}
newchanban $channel $mask $handle $edu(blackr) [expr $edu(blacktime) * 60]
}