#--------------------------------------------------------------------- # clearbans.tcl # Tcl script for IRC bot eggdrop # # Upon a public !clearbans or a .clearbans on the partyline, this # script removes all existing bans on the channel. # Note: it does not remove bans internal to the bot. # # v0: 03-Jul-2003 # v1: 21-Jul-2003 #--------------------------------------------------------------------- package require Tcl 8.0 package require eggdrop 1.6.13 bind pub m|m !clearbans pub:clearbans bind dcc m|m clearbans dcc:clearbans #--------------------------------------------------------------------- # pub:clearbans triggered by pub message, calls all:clearbans # dcc:clearbans triggered by dcc message, calls all:clearbans #--------------------------------------------------------------------- proc pub:clearbans { nick uhost hand chan text } { puthelp "PRIVMSG $nick :[all:clearbans $chan]" return 1 } proc dcc:clearbans { hand idx text } { set consinfo [console $idx] if { $consinfo == "" } { putdcc $idx "You don't have a channel set. Set a channel first!" return 1 } set chan [lindex $consinfo 0] putdcc $idx [all:clearbans $chan] return 1 } #--------------------------------------------------------------------- # all:clearbans clears out channel bans. # returns status report #--------------------------------------------------------------------- proc all:clearbans { chan } { # - must be valid channel # - bot must be on channel # - bot must have ops on channel if { ![validchan $chan] } { return "Clearbans error: $chan is not a valid channel." } if { ![botonchan $chan] } { return "Clearbans error: I am not on $chan." } if { ![botisop $chan] } { return "Clearbans error: I don't have ops on $chan." } # check the channel bans set chanbans [chanbans $chan] if { [llength $chanbans] == 0 } { return "Clearbans error: no channel bans found on $chan." } set bancount 0 # remove channel bans foreach ban $chanbans { set banhost [lindex $ban 0] pushmode $chan -b $banhost incr bancount } return "Removed $bancount bans on $chan." } putlog "Loaded (version 1): Clearbans."