Thread: [Modify script] <botnick> ban
View Single Post
Old 17-06-2007, 17:55   #6 (permalink)
Madalin
Junior Member
 
Madalin's Avatar
 
Join Date: Oct 2004
Posts: 32
Rep Power: 0
Madalin is an unknown quantity at this point
Send a message via Yahoo to Madalin
Default

L-am testat pe un eggdrop fara scriptul a&a si merge cum vrei tu cu BOTNICK in fata. Codul ar fi:

Code:
# cmdchar
set shit(cmdchar) "."
# ban reason:
set shit(ban.reason) "requested"
# ban time: (in hours)
set shit(ban.time) "336"

bind pub -|- $shit(cmdchar)b shit:pub:b

#### modificari

bind pubm -|- "% $botnick ban *" shit:pub:a
bind nick -|- *                  new:bind

proc new:bind {nick uhost hand chan newnick} {
	if { [isbotnick $nick]} {
		catch { unbind pubm -|- "% $nick ban *" shit:pub:a }
		bind pubm -|- "% $newnick ban *" shit:pub:a
	}
}

proc shit:pub:a {nickname hostname handle channel text} {
	set text [lrange $text 2 end]
	shit:pub:b $nickname $hostname $handle $channel $text
}

##### sfarsit modificari

proc shit:pub:b {nickname hostname handle channel text} {
 	global botname shit
	set text [split $text]
	if {[string index [lindex $text 0] 0] == "#" && [validchan [lindex $text 0]]} {
		set b_channel [lindex $text 0]
		set b_nickname [lindex $text 1]
		set b_reason [join [lrange $text 2 end]]
	} else {
		set b_channel $channel
		set b_nickname [lindex $text 0]
		set b_reason [join [lrange $text 1 end]]
	}
	if {[matchattr $handle n|O $b_channel]} {
		if {[matchattr $handle -|S $b_channel]} {
			putquick "NOTICE $nickname :ERROR: Your access is suspended"
			return
		}
 		if {[onchan $b_nickname $b_channel]} {
			set b_hostname *!*@[lindex [split [getchanhost $b_nickname $b_channel] "@"] 1] 
			} else {
			set b_hostname $b_nickname
		}
  		if {![botisop $b_channel]} { 
			putquick "NOTICE $nickname :ERROR: I'm not opped on $b_channel"
			return 
		}
		if {[string match -nocase $b_hostname $botname]} { 
			putquick "NOTICE $nickname :ERROR: You can't ban me" 
			return 
		}
		set b_hostname_user [finduser $b_hostname]
		if {[matchattr $b_hostname_user n|f $b_channel]} { 
			putquick "NOTICE $nickname :ERROR: Hostname matches a friend's username" 
			return
		}
		if {[matchattr $b_hostname_user B]} { 
			putquick "NOTICE $nickname :ERROR: Hostname matches a BOT's username" 
			return
		}
		if {$b_hostname == ""} { 
			putquick "NOTICE $nickname :SYNTAX: $shit(cmdchar)b \[#channel\] <nickname|hostname> \[reason\]"
			return 
		}
		foreach b_foreach [banlist $b_channel] { 
			set b_foreach_hostname [lindex $b_foreach 0]
			if {$b_hostname == $b_foreach_hostname} { 
				putquick "NOTICE $nickname :ERROR: $b_hostname is already on $b_channel's banlist" 
				return
			}
		}
		if {$b_reason == ""} { 
			set b_reason "$shit(ban.reason)" 
		}
		newchanban $b_channel $b_hostname $handle $b_reason [expr $shit(ban.time) * 60]
		putquick "NOTICE $nickname :Banned $b_hostname on $b_channel for [duration [expr $shit(ban.time) * 60 * 60]]"
		putlog "<<$handle - $nickname!$hostname>> Banned $b_hostname on $b_channel for [duration [expr $shit(ban.time) * 60 * 60]] with reason: $b_reason"
	}
}

putlog "Loaded shit.tcl - made by edu @ #Motd / #WhiteHat UnderNet Network"
Madalin is offline   Reply With Quote