Thread: [Modify script] <botnick> ban
View Single Post
Old 13-06-2007, 12:15   #1 (permalink)
edu
Junior Member
 
Join Date: Aug 2006
Age: 19
Posts: 13
Rep Power: 0
edu is an unknown quantity at this point
Default <botnick> ban

Buna tuturor
Am si eu nevoie de putin ajutor, am zis postez aici inloc sa cer pe #botlending, poate am mai mult succes

Pentru inceput postez codul de la script
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

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"
SYNTAX: .b [#channel] <nickname|hostname> [reason]

Scriptul merge perfect, singura "problema" este urmatoarea..
Am nevoie sa fac scriptul sa mearga in felul urmator
Code:
<botnick> ban [#channel] <nickname|hostname> [reason]
Sa put <botnick> inainte, inloc sa pun .b

Multumesc celor care sper sa ma ajute

PS: Daca nu "intelegeti" ceva (sunt sigur ca voi intelegeti ) din script sau din post, just ask. Thanks again.
edu is offline   Reply With Quote