| View previous topic :: View next topic |
| Author |
Message |
hivision Voice
Joined: 17 Dec 2005 Posts: 3
|
Posted: Sat Dec 17, 2005 5:15 pm Post subject: msg to all chanels |
|
|
hi can somebody adds to this script command '!msg txt' and it send msg to all chanels where its bot? I dont know how to make it but its very important for me
thanks
| Code: |
##### COMMANDS USED BY THIS SCRIPT #####
proc say {who what} {
puthelp "PRIVMSG $who :$what"
}
proc notice {who what} {
puthelp "NOTICE $who :$what"
}
proc cleanarg {arg} {
set temp ""
for {set i 0} {$i < [string length $arg]} {incr i} {
set char [string index $arg $i]
if {($char != "\12") && ($char != "\15")} {
append temp $char
}
}
set temp [string trimright $temp "\}"]
set temp [string trimleft $temp "\{"]
return $temp
}
##### AUTH SECTION #####
# The auth is a protection script so that ip spoofers won't be able to
# use the commands, and take over channels. once you singoff, the auth
# will expire.
# Owners will be able to disable a user from using commands. This will
# not allow them to auth themselves.
# The binds:
bind pub n !disable pub:disable
bind pub n !enable pub:enable
bind msg - auth auth:auth
bind sign - * auth:signcheck
bind msg - deauth auth:deauth
# This is the command for owners to disable a user.
# Usage: !disable <hand>
proc pub:disable {nick host hand chan arg} {
if {[llength $arg] < 1} {
notice $nick "Usage: !disable <handle>"
return 0
}
set who [lindex $arg 0]
if {![validuser $who]} {
notice $nick "$who is not a valid user."
return 0
}
setuser $who XTRA AUTH "DEAD"
notice $nick "Disabled $who"
putcmdlog "<<$nick>> !$hand! disable $who"
}
proc pub:enable {nick host hand chan arg} {
if {[llength $arg] < 1} {
notice $nick "Usage: !disable <handle>"
return 0
}
set who [lindex $arg 0]
if {![validuser $who]} {
notice $nick "$who is not a valid user."
return 0
}
setuser $who XTRA AUTH 0
notice $nick "Enabled $who"
putcmdlog "<<$nick>> !$hand! enable $who"
}
# Usage: /msg $botnick auth <password>
proc auth:auth {nick uhost hand arg} {
global botnick
set found 0
foreach n [channels] {
if {[onchan $nick $n]} {
set found 1
}
}
if {$found == 0} {return 0}
if {[llength $arg] <1} {
notice $nick "Usage: /msg $botnick auth <pass>"
return 0
}
set pass [lindex $arg 0]
if {$hand == "*"} {
say $nick "You are not permitted to use my commands."
return 0
}
if {[getuser $hand XTRA AUTH] == "DEAD"} {
say $nick "Sorry, but you have been disabled from using my commands."
return 0
}
if {[passwdok $hand $pass]} {
setuser $hand XTRA "AUTH" "1"
putcmdlog "<<$nick>> ($uhost) !$hand! AUTH ..."
notice $nick "Password accepted."
return 0
} else {
notice $nick "Password denied."
}
}
proc auth:signcheck {nick uhost hand chan reason} {
if {$hand == "*"} {return 0}
if {[getuser $hand XTRA AUTH] == "DEAD"} {
return 0
}
setuser $hand XTRA "AUTH" "0"
putlog "Auth for $hand expired."
}
proc auth:check {hand} {
set auth [getuser $hand XTRA "AUTH"]
if {($auth == "") || ($auth == "0") || ($auth == "DEAD")} {
return 0
} else { return 1}
}
proc auth:deauth {nick uhost hand arg} {
if {[getuser $hand XTRA AUTH] == "DEAD"} {
say $nick "Sorry, but you have been disabled from using my commands."
return 0
}
if {$hand != "*"} {
setuser $hand XTRA "AUTH" "0"
putcmdlog "<<$nick>> ($uhost) !$hand! DEAUTH"
notice $nick "Authentication has been removed."
}
}
##### BINDS #############################
bind pub p !bots pub:bots
bind pub m|m !channels pub:channels
bind pub o|o !ignore pub:ignore
bind pub o|o !unignore pub:unignore
bind pub n !chanset pub:chanset
bind pub m|m !status pub:status
bind pub m|m !flags pub:flags
bind pub o|o !ignorelist pub:ignorelist
bind pub o|o !banlist pub:banlist
bind pub m !save pub:save
bind pub m !reload pub:reload
bind pub n !rehash pub:rehash
bind pub n !restart pub:restart
bind pub n !backup pub:backup
bind pub n !forcebans pub:forcebans
bind pub m !jump pub:jump
bind pub - !time pub:time
bind pub n !die pub:die
bind pub o !act pub:act
bind pub o !say pub:say
bind pub - !mode pub:mode
bind pub - !kick pub:kick
bind pub - !ban pub:ban
bind pub - !unban pub:unban
bind pub - !voice pub:voice
bind pub - !devoice pub:devoice
bind pub n !link pub:link
bind pub n !unlink pub:unlink
bind pub p !ping pub:ping
bind ctcr - PING pub:pingr
bind pub - !op pub:op
bind pub - !deop pub:deop
bind pub o|o !opme pub:opme
bind pub n !adduser pub:adduser
bind pub n !broadcast pub:broadcast
bind pub n !join pub:join
bind pub n !part pub:part
bind pub - !help pub:help
bind pub - help pub:helpa
bind pub n !chattr pub:chattr
bind pub n !deluser pub:deluser
bind pub n !addbot pub:addbot
bind pub n !rmbot pub:rmbot
bind pub n !addhost pub:addhost
bind pub n !rmhost pub:rmhost
##### BADWORD SECTION #####
# Comment out the next lines if you would like to disable badword.
# If you want to add one, just type this:
# bind pubm - "*<your bad word>*" badword:kick
# BE SURE TO KEEP THE STARS (*)
# Script will not kick owners or masters of the bot.
# If you would like to use this part, uncomment the following lines
#bind pubm - "*[censored]*" badword:kick
#bind pubm - "*[censored]*" badword:kick
#bind pubm - " ass*" badword:kick
#bind pubm - "*[censored]*" badword:kick
#bind pubm - "*whore*" badword:kick
#bind pubm - "*slut*" badword:kick
#########################################
##### GLOBALS #####
set pub_pingchan ""
##### PROCS #####
# Tells someone the time and date
# Usage: !time
proc pub:time {nick host hand chan arg} {
notice $nick "[ctime [unixtime]]"
}
# Tells the bot to stop running
# Usage: !die [reason]
proc pub:die {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Sutting down... later!"
putcmdlog "<<$nick>> !$hand! die $arg"
die $arg
}
# Jumps to a new server
# Usage: !jump <server>[:port]
proc pub:jump {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Jumping to $arg..."
jump $arg
putlog "<<$nick>> !$hand! jump $arg"
}
# Resets all bans to what they should be on the bot's banlist
# Usage: !forcebans
proc pub:forcebans {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Resetting all bans to match my banlist..."
resetbans $chan
putcmdlog "<<$nick>> !$hand! forcebans"
}
# Rehashes the bot
# Usage: !rehash
proc pub:rehash {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Rehashing..."
rehash
putcmdlog "<<$nick>> !$hand! rehash"
}
# Reloads the userfile
# Usage: !reload
proc pub:reload {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Reloading..."
reload
putcmdlog "<<$nick>> !$hand! reload"
}
# Restarts the bot
# Usage: !restart
proc pub:restart {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "restart..."
restart
putcmdlog "<<$nick>> !$hand! restart"
}
# Saves the userfile and channel file
# Usage: !save
proc pub:save {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Saving channel file and user file..."
save
putcmdlog "<<$nick>> !$hand! save"
}
# Makes a backup of the userfile
# Usage: !backup
proc pub:backup {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
notice $nick "Backing up the userfile..."
backup
putcmdlog "<<$nick>> !$hand! backup"
}
# Prints out a ban list
# Usage: !banlist
proc pub:banlist {nick host hand chan arg} {
notice $nick "\002Global bans:\002"
if {[banlist] == ""} {
notice $nick "none"
} else {
foreach ig [banlist] {
set what [lindex $ig 0]
set by [lindex $ig 1]
set comment [lindex $ig 4]
notice $nick "$what - made by $by - $comment"
}}
notice $nick "\002Bans for $chan:\002"
if {[banlist $chan] == ""} {
notice $nick "none"
} else {
foreach b [banlist $chan] {
set what [lindex $b 0]
set by [lindex $b 5]
set comment [lindex $b 1]
notice $nick "$what - made by $by - $comment"
}}
}
# Prints out an ignore list
# Usage: !ignorelist
proc pub:ignorelist {nick host hand chan arg} {
if {[ignorelist] == ""} {
notice $nick "I don't have any ignores."
return 0
}
notice $nick "Ignore list:"
foreach ig [ignorelist] {
set what [lindex $ig 0]
set by [lindex $ig 4]
set comment [lindex $ig 1]
notice $nick "$what - made by $by - $comment"
}
}
# Gives the global bot flags for a person
# Usage: !flags <handle>
proc pub:flags {nick host hand chan arg} {
if {[llength $arg]<1} {
notice $nick "Usage: !flags <handle>"
return 0
}
set who [lindex $arg 0]
if {![validuser $who]} {
notice $nick "I don't know who $who is."
return 0
}
set flags [chattr $who]
notice $nick "Global flags for $who: $flags"
putcmdlog "<<$nick>> !$hand! flags $who"
}
# Gives a bunch of statistics
# Usage: !status
proc pub:status {nick host hand chan arg} {
global server botname version
notice $nick "\002Bot statistics:\002"
notice $nick "User records: [countusers]"
notice $nick "My channels: [channels]"
notice $nick "Linked bots: [bots]"
notice $nick "My date: [date]"
notice $nick "My time: [time]"
notice $nick "My operating system: [unames]"
notice $nick "Server: $server"
notice $nick "My host: $botname"
notice $nick "Eggdrop version: [lindex $version 0]"
putcmdlog "<<$nick>> !$hand! status"
}
# Changes the channel settings for a channel
# Usage: !chanset <chan> <what> [args]
proc pub:chanset {nick host hand chan arg} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
if {[llength $arg] < 2} {
notice $nick "Usage: !chanset <#channel> <mode> \[args\]"
return 0
}
set thechan [lindex $arg 0]
set mode [lindex $arg 1]
set a [lrange $arg 2 end]
if {![validchan $thechan]} {
notice $nick "I don't monitor that channel."
return 0
}
channel set $thechan $mode $a
putcmdlog "<<$nick>> !$hand! chanset $thechan $mode $a"
}
# Lists the bots on the botnet
# Usage: !bots
proc pub:bots {nick host hand chan arg} {
set bots [bots]
notice $nick "Bots: $bots"
putcmdlog "<<$nick>> !$hand! bots"
}
# Lists the channels the bot is on
# Usage: !channels
proc pub:channels {nick host hand chan arg} {
set chans [chanlist]
notice $nick "Channels: $chans"
putcmdlog "<<$nick>> !$hand! channels"
}
# Makes a new ignore
# Usage: !ignore <who/host> <life> <reason>
proc pub:ignore {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args] < 3} {
notice $nick "Usage: !ignore <nick/host> <time> <reason>"
return 0
}
set who [lindex $args 0]
set time [expr [lindex $args 1]]
set reason [lrange $args 2 end]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
if {![onchan $who $chan]} {
set theban $who
} else {
set host [getchanhost $who $chan]
set host [maskhost $host]
set shost [split $host "!"]
set theban "*!*[lindex $shost 1]"
}
newignore $theban $nick $reason $time
putcmdlog "<<$nick>> !$hand! ignore $args"
} else {
notice $nick "You can't do that!"
}
}
# Kills an ignore
# Usage: !unignore <ignore mask>
proc pub:unignore {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !unignore <host>"
return 0
}
set theban [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
killignore $theban
putcmdlog "<<$nick>> !$hand! unignore $chan $theban"
} else {
notice $nick "You can't do that!"
}
}
# Says something on any channel
# Usage: !say <chan> <what>
proc pub:say {nick host hand chan arg} {
global botnick
if {![auth:check $hand]} {return 0}
if {[llength $arg] < 2} {
notice $nick "Usage: !say <chan> <what>"
return 0
}
set thechan [lindex $arg 0]
set what [lrange $arg 1 end]
if {![onchan $botnick $thechan]} {
notice $nick "I'm not on that channel."
return 0
}
puthelp "PRIVMSG $chan :$what"
notice $nick "Said to $thechan: $what"
putcmdlog "<<$nick>> !$hand! ($thechan) !say $what"
}
# Puts an action (/me) on a channel
# Usage: !act <chan> <what>
proc pub:act {nick host hand chan arg} {
global botnick
if {![auth:check $hand]} {return 0}
if {[llength $arg] < 2} {
notice $nick "Usage: !act <chan> <what>"
return 0
}
set thechan [lindex $arg 0]
set what [lrange $arg 1 end]
if {![onchan $botnick $thechan]} {
notice $nick "I'm not on that channel."
return 0
}
puthelp "PRIVMSG $chan :\001ACTION $what\001"
notice $nick "Act to $thechan: $what"
putcmdlog "<<$nick>> !$hand! ($thechan) !act $what"
}
# Changes a mode on the channel
# Usage: !mode <mode change>
# Ex: !mode +m, !mode +k booger
proc pub:mode {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [cleanarg $args]
if {[llength $args]<1} {
notice $nick "Usage: !mode <mode change>"
return 0
}
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
putserv "MODE $chan $args"
putcmdlog "<<$nick>> !$hand! mode $args"
} else {
notice $nick "You can't do that!"
}
}
# Kicks someone off the channel
# Usage: !kick <nick> <reason>
# Ex: !kick Joe You suck!
proc pub:kick {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args] < 2} {
notice $nick "Usage: !kick <nick> <reason>"
return 0
}
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
set who [lindex $args 0]
set reason [lrange $args 1 end]
putserv "KICK $chan $who :$reason"
putcmdlog "<<$nick>> !$hand! kick $args"
} else {
notice $nick "You can't do that!"
}
}
# Bans a nick/host off the channel
# Usage: !ban <nick/host> <time> <reason>
# nick/host :If you put a nick in, it will mask the host, but if you
# put a host in, it will ban the host.
# time: The time the ban will last (in minutes). 0 for permanent.
proc pub:ban {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args] < 3} {
notice $nick "Usage: !ban <nick/host> <time> <reason>"
return 0
}
set who [lindex $args 0]
set time [expr [lindex $args 1]]
set reason [lrange $args 2 end]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
if {![onchan $who $chan]} {
set theban $who
} else {
set host [getchanhost $who $chan]
set host [maskhost $host]
set shost [split $host "!"]
set theban "*!*[lindex $shost 1]"
}
newchanban $chan $theban $nick $reason $time
putcmdlog "<<$nick>> !$hand! ban $args"
} else {
notice $nick "You can't do that!"
}
}
# Unbans a host from the channel
# Usage: !unban <host>
proc pub:unban {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !unban <host>"
return 0
}
set theban [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
killchanban $chan $theban
putcmdlog "<<$nick>> !$hand! unban $chan $theban"
} else {
notice $nick "You can't do that!"
}
}
# Adds a user
# Usage: !adduser <nick> [host]
# If you leave out 'host', it will take the 'nick', and mask a host.
proc pub:adduser {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
global botnick admin
if {[llength $args]<1} {
notice $nick "Usage: !adduser <nick> \[host\]"
return 0
}
if {$nick == $botnick} {return 0}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
if {[llength $args]==2} {
set host [lindex args 1]
} else {
if {![onchan $who $chan]} {
say $chan "$nick: $who is not on this channel."
return 0
}
set host [maskhost [getchanhost $who $chan]]
}
set err [adduser $who $host]
if {$err == 0} {
say $chan "That nick already exists."
return 0
}
putcmdlog "<<$nick>> !$hand! adduser $who $host"
if {![onchan $who $chan]} {return 0}
notice $who "Your account has been added with the hostmask $host."
notice $who "Type /msg $botnick PASS <yourpass> to set your password."
notice $who "After you have set your password, type /dcc chat $botnick to start a dcc chat session."
notice $who "If you have any problems, please contact $admin"
}
# Gives someone voice in the channel
# Usage: !voice <nick>
proc pub:voice {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !voice <nick>"
return 0
}
set who [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
putserv "MODE $chan +v $who"
} else {
notice $nick "You can't do that!"
}
putcmdlog "<<$nick>> !$hand! voice $chan $who"
}
# Takes away voice from someone in the channel
# Usage: !devoice <nick>
proc pub:devoice {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !devoice $nick"
return 0
}
set who [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
putserv "MODE $chan -v $who"
} else {
notice $nick "You can't do that!"
}
putcmdlog "<<$nick>> !$hand! devoice $chan $who"
}
# Trys to link to another bot
# Usage: !link <bot>
proc pub:link {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !link <bot>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
say $chan "$nick: Trying to link to $who..."
set err [link $who]
if {$err == 0} {
say $chan "$nick: An error occured."
}
}
# Unlink from a bot
# Usage: !unlink <bot>
proc pub:unlink {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !unlink <bot>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
say $chan "$nick: Trying to unlink from $who..."
set err [link $who]
if {$err == 0} {say $chan "AAAH! An error occured!"}
if {$err == 1} {say $chan "And... SUCCESS!"}
}
# Pings a person from the bot
# Usage: !ping <nick>
proc pub:ping {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
set who $nick
} else {
set who [lindex $args 0]
}
global pub_pingchan
set time [unixtime]
say $who "\001PING $time\001"
set pub_pingchan $chan
putcmdlog "<<$nick>> !$hand! PING $who : $time"
}
# This is the ping reply function.
proc pub:pingr {nick uhost hand dest keyword args} {
global pub_pingchan
set temp [unixtime]
set time [expr $temp - $args]
putlog "PING reply from $nick: $time seconds"
say $pub_pingchan "PING reply from $nick: $time seconds"
}
# Op someone in the channel
# Usage: !op <nick>
proc pub:op {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args] == 0 && ([matchattr $hand n] || [matchattr $hand "|n" $chan] || [matchattr $hand o $chan] || [matchattr $hand "|o" $chan])} {
putserv "MODE $chan +o $nick"
}
if {[llength $args]<1} {
notice $nick "Usage: !op <nick>"
return 0
}
set who [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
putserv "MODE $chan +o $who"
putcmdlog "<<$nick>> !$hand! op $chan $who"
} else {
notice $nick "You can't do that!"
}
}
# Deop someone in the channel
# Usage: !deop <nick>
proc pub:deop {nick uhost hand chan args} {
if {(![auth:check $hand]) && (![isop $nick $chan])} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !deop <nick>"
return 0
}
set who [lindex $args 0]
if {$hand == "*"} {return 0}
if {([isop $hand $chan]) || ([matchattr $hand "|o" $chan]) || ([matchattr $hand "o"])} {
putserv "MODE $chan -o $who"
putcmdlog "<<$nick>> !$hand! deop $chan $who"
} else {
notice $nick "You can't do that!"
}
}
# Ops you if you have op status on the bot
# Usage: !opme
proc pub:opme {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
putserv "MODE $chan +o $nick"
}
# Broadcasts a message to every channel the bot is on
# Usage: !broadcast <message>
# Ex: !broadcast The bot is coming down now!
proc pub:broadcast {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set msg [cleanarg $args]
foreach n [channels] {
say $n $msg
}
}
# Makes the bot join a channel
# Usage: !join <#channel>
proc pub:join {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [cleanarg $args]
if {[llength $args]<1} {
notice $nick "Usage: !join <#channel>"
return 0
}
channel add $args {+greet -bitch -autoop -bitch -stopnethack}
}
# Makes the bot part a channel
proc pub:part {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [cleanarg $args]
if {[llength $args]<1} {
notice $nick "Usage: !part <#channel>"
return 0
}
channel remove $args
}
# Changes the attr of a user
# Usage: !chattr <nick> <options> [channel]
proc pub:chattr {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<2} {
notice $nick "Usage: !chattr <handle> <options> \[channel\]"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
set modes [lindex $args 1]
set channel ""
if {[llength $args]==3} {
set channel [lindex $args 2]
set temp "|"
append temp $modes
set modes $temp
}
if {$channel != ""} {
set rt [chattr $who $modes $channel]
} else {
set rt [chattr $who $modes]
}
putcmdlog "<<$nick>> !$hand! chattr $args"
if {$channel != ""} {
set rt [lindex [split $rt "|"] 1]
say $chan "Modes for $who on $channel are now $rt"
} else {
say $chan "Global modes for $who are now $rt"
}
}
# Deletes a user record
# Usage: !deluser <handle>
proc pub:deluser {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !deluser <handle>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
set err [deluser $who]
if {$err == 0} {
say $chan "Attempt to remove $who failed."
return 0
}
putcmdlog "<<$nick>> !$hand! deluser $who"
}
# Adds a bot
# Usage: !addbot <handle> <address:port>
proc pub:addbot {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<2} {
notice $nick "Usage: !addbot <handle> <address:port>"
return 0
}
if {[llength [split [lindex $args 1] ":"]]!=2} {
notice $nick "Usage: !addbot <handle> <address:port>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set addr [lindex $args 1]
set who [lindex $args 0]
addbot $who $addr
putcmdlog "<<$nick>> !$hand! addbot $who $addr"
}
# Removes a bot
# Usage: !rmbot <handle>
proc pub:rmbot {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "Usage: !rmbot <handle>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
deluser $who
putcmdlog "<<$nick>> !$hand! rmbot $who"
}
# Adds hostmask for user
# Usage: !addhost <handle> <host>
proc pub:addhost {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<2} {
notice $nick "Usage: !addhost <handle> <host>"
return 0
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
set host [lindex $args 1]
setuser $who HOSTS $host
putcmdlog "<<$nick>> !$hand! addhost $who $host"
}
# Removes host from user
# Usage: !rmhost <handle> <host>
proc pub:rmhost {nick uhost hand chan args} {
if {![auth:check $hand]} {return 0}
set args [split [cleanarg $args]]
if {[llength $args]<2} {
notice $nick "Usage: !rmhost <handle> <host>"
return 0;
}
if {[getting-users]} {
notice $nick "Sorry, there is currently a userfile transfer going on. Try back in a couple of seconds."
return 0
}
set who [lindex $args 0]
set host [lindex $args 1]
delhost $who $host
putcmdlog "<<$nick>> !$hand! rmhost $who $host"
}
##### HELP SECTION (QUITE LONG) #####
proc pub:help {nick uhost hand chan args} {
global botnick
set args [split [cleanarg $args]]
if {[llength $args]<1} {
notice $nick "------\002Toolz Help: \002-------------------------------------------"
notice $nick "!op <nick> - ops \002nick\002"
notice $nick "!deop <nick> - deops \002nick\002"
notice $nick "!ban <nick/host> <time> <reason> - bans a \002nick/host\002"
notice $nick "!unban <host> - unbans \002host\002 from channel"
notice $nick "!voice <nick> - gives \002nick\002 voice"
notice $nick "!devoice <nick> - takes away \002nick\002's voice"
notice $nick "!opme - ops you if you have access"
notice $nick "!addbot <handle> <address:port> - adds a bot"
notice $nick "!rmbot <handle> - removes a bot"
notice $nick "!link <bot> - attempts to link to \002bot\002"
notice $nick "!unlink <bot> - attempts to unlink from \002bot\002"
notice $nick "!ping \[nick\] - pings \002nick\002, or you"
notice $nick "!mode <mode change> - changes a mode setting on the channel"
notice $nick "!adduser <handle/nick> \[host\] - adds a user"
notice $nick "!deluser <handle> - removes \002handle\002 from user list"
notice $nick "!chattr <handle> <options> \[channel\] - changes attributes for user"
notice $nick "!part <#channel> - makes the bot leave the channel"
notice $nick "!join <#channel> - makes the bot join a channel"
notice $nick "!addhost <handle> <host> - adds a host to a user"
notice $nick "!rmhost <handle> <host> - removes a host from a user"
notice $nick "!disable <handle> - disables a handle from these commands"
notice $nick "!enable <handle> - enables a disabled user"
notice $nick "!act <chan> <what> - posts an action on chan"
notice $nick "!say <chan> <what> - says something to chan"
notice $nick "!bots - lists the bots linked on the botnet"
notice $nick "!channels - lists the channels the bot is on"
notice $nick "!ignore <nick/host> <time> <reason> - adds a new ignore"
notice $nick "!unignore <host> - removes an ignore"
notice $nick "!time - gives you the date and time"
notice $nick "!die \[reason\] - shuts down the bot for \[reason\]"
notice $nick "!jump <server>\[:port\] - makes the bot jump to a server"
notice $nick "!forcebans - makes all bans match bans on bot"
notice $nick "!rehash - rehashes the bot"
notice $nick "!reload - reloads the userfile"
notice $nick "!restart - restarts the bot"
notice $nick "!save - saves the userfile and channel file"
notice $nick "!backup - backs up the userfile"
notice $nick "!banlist - gives you a banlist for global & channel bans"
notice $nick "!ignorelist - gives you a list of ignores"
notice $nick "!flags <handle> - gives you handle's global flags"
notice $nick "!status - gives you some statistics"
notice $nick "!chanset <chan> <mode> \[args\] - changes a channel setting"
notice $nick "!help <command> - gives a detailed explaination of \002command\002"
notice $nick "---------------------------------------------------------"
notice $nick "------- type \002 !help <command>\002 to get more info ----------"
notice $nick "\002NOTE: Before using any of there commands, you must\002"
notice $nick "\002authenticate yourself with the bot by typeing:\002"
notice $nick "\002/msg $botnick auth <your password>\002"
#end
} else {
#start another long section
switch [lindex $args 0] {
"time" {
notice $nick "\002-----time-----\002"
notice $nick "Usage: !time"
notice $nick "Flags Needed: none"
notice $nick " Tells you the current date and time."
}
"bots" {
notice $nick "\002-----bots-----\002"
notice $nick "Usage: !bots"
notice $nick "Flags Needed: party line (+p)"
notice $nick " Tells you the bots on the botnet."
}
"channels" {
notice $nick "\002-----channels-----\002"
notice $nick "Usage: !channels"
notice $nick "Flags Needed: channel or bot master"
notice $nick " Tells you the channels the bot is on."
}
"ignore" {
notice $nick "\002-----ignore-----\002"
notice $nick "Usage: !ignore <nick/host> <time> <reason>"
notice $nick "Flags Needed: global op"
notice $nick " Creates a new ignore. If nick is on the channel,"
notice $nick " it will get a hostmask from him, otherwise, it will"
notice $nick " get it from the one you specify."
}
"unignore" {
notice $nick "\002-----unignore-----\002"
notice $nick "Usage: !unignore <host>"
notice $nick "Flags Needed: global op"
notice $nick " Removes the ignore matching host."
}
"chanset" {
notice $nick "\002-----chanset-----\002"
notice $nick "Usage: !chanset <chan> <mode> \[args\]"
notice $nick "Flags Needed: bot owner"
notice $nick " Works just like the .chanset dcc command."
}
"status" {
notice $nick "\002-----status-----\002"
notice $nick "Usage: !status"
notice $nick "Flags Needed: channel or bot master"
notice $nick " Gives you some statistics about the bot."
}
"channels" {
notice $nick "\002-----flags-----\002"
notice $nick "Usage: !flags <handle>"
notice $nick "Flags Needed: channel or bot master"
notice $nick " Gives you the global flags of handle."
}
"ignorelist" {
notice $nick "\002-----ignorelist-----\002"
notice $nick "Usage: !ignorelist"
notice $nick "Flags Needed: channel or bot op"
notice $nick " Gives you a list of active ignores."
}
"banlist" {
notice $nick "\002-----banlist-----\002"
notice $nick "Usage: !banlist"
notice $nick "Flags Needed: channel or bot op"
notice $nick " Gives you a list of bans."
}
"save" {
notice $nick "\002-----save-----\002"
notice $nick "Usage: !save"
notice $nick "Flags Needed: bot master"
notice $nick " Saves the userfile and channel file to disk."
}
"reload" {
notice $nick "\002-----reload-----\002"
notice $nick "Usage: !reload"
notice $nick "Flags Needed: bot master"
notice $nick " Reloads the userfile from disk."
}
"rehash" {
notice $nick "\002-----rehash-----\002"
notice $nick "Usage: !rehash"
notice $nick "Flags Needed: bot owner"
notice $nick " Rehashes the bot."
}
"restart" {
notice $nick "\002-----restart-----\002"
notice $nick "Usage: !restart"
notice $nick "Flags Needed: bot owner"
notice $nick " Restarts the bot."
}
"backup" {
notice $nick "\002-----backup-----\002"
notice $nick "Usage: !backup"
notice $nick "Flags Needed: bot owner"
notice $nick " Backs up the user file."
}
"forcebans" {
notice $nick "\002-----forcebans-----\002"
notice $nick "Usage: !forcebans"
notice $nick "Flags Needed: bot owner"
notice $nick " Makes the bans on the channel match all bans in the bot's"
notice $nick " ban list."
}
"jump" {
notice $nick "\002-----jump-----\002"
notice $nick "Usage: !jump <server>\[:port\]"
notice $nick "Flags Needed: bot master"
notice $nick " Jumps to server on optional port."
}
"die" {
notice $nick "\002-----die-----\002"
notice $nick "Usage: !die \[reason\]"
notice $nick "Flags Needed: bot owner"
notice $nick " Shuts down the bot for optional reason."
}
"help" {
notice $nick "Dumbo."
}
"say" {
notice $nick "\002-----say-----\002"
notice $nick "Usage: !say <chan> <what>"
notice $nick "Flags Needed: global op on bot"
notice $nick " Will say \002what\002 to \002chan\002."
}
"act" {
notice $nick "\002-----act-----\002"
notice $nick "Usage: !act <chan> <what>"
notice $nick "Flags Needed: global op on bot"
notice $nick " Will post an action of \002what\002 to \002chan\002."
}
"op" {
notice $nick "\002-----op-----\002"
notice $nick "Usage: !op <nick>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Ops \002nick\002 on the current channel."
}
"disable" {
notice $nick "\002-----disable-----\002"
notice $nick "Usage: !disable <handle>"
notice $nick "Flags Needed: owner on bot"
notice $nick " Disables \002handle\002 from using all ! commands."
}
"enable" {
notice $nick "\002-----enable-----\002"
notice $nick "Usage: !enable <handle>"
notice $nick "Flags Needed: owner on bot"
notice $nick " Enables \002handle\002 to use all ! commands."
notice $nick " NOTE: Only needed if user has been \002!disable\002'ed."
}
"deop" {
notice $nick "\002-----deop-----\002"
notice $nick "Usage: !deop <nick>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Deops \002nick\002 on the current channel."
}
"ban" {
notice $nick "\002-----ban-----\002"
notice $nick "Usage: !ban <nick/host> <time> <reason>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " If \002nick\002 is on the channel, it will get a"
notice $nick " hostmask and ban that. If not, it will take the"
notice $nick " host and ban that instead. \002time\002 is the amount"
notice $nick " of time in minutes that the ban will last. Putting 0"
notice $nick " in this field means a permanent ban. \002reason\002 is"
notice $nick " the reason why you banned the nick (can be anything)."
}
"unban" {
notice $nick "\002-----unban-----\002"
notice $nick "Usage: !unban <host>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Unbans \002host\002 from the channel. It can contain"
notice $nick " wildcards. Ex: !unban *!*Candy*@*.aol.com"
}
"voice" {
notice $nick "\002-----voice-----\002"
notice $nick "Usage: !voice <nick>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Gives voice to \002nick\002 on current channel."
}
"devoice" {
notice $nick "\002-----devoice-----\002"
notice $nick "Usage: !devoice <nick>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Takes away op from \002nick\002."
}
"opme" {
notice $nick "\002-----opme-----\002"
notice $nick "Usage: !opme"
notice $nick "Flags Needed: op on bot"
notice $nick " Gives you op on the channel"
}
"link" {
notice $nick "\002-----link-----\002"
notice $nick "Usage: !link <bot>"
notice $nick "Flags Needed: bot owner"
notice $nick " Attempts to link to \002bot\002."
}
"unlink" {
notice $nick "\002-----unlink-----\002"
notice $nick "Usage: !unlink <bot>"
notice $nick "Flags Needed: bot owner"
notice $nick " Attempts to unlink from \002bot\002."
}
"ping" {
notice $nick "\002-----ping-----\002"
notice $nick "Usage: !ping \[nick\]"
notice $nick "Flags Needed: partyline access"
notice $nick " Pings \002nick\002 and prints the time on the channel."
notice $nick " If no nick is given, it will ping you."
}
"mode" {
notice $nick "\002-----mode-----\002"
notice $nick "Usage: !mode <mode change>"
notice $nick "Flags Needed: op on channel, or op on bot"
notice $nick " Changes a mode on the channel specified by \002mode change\002."
notice $nick " Ex: !mode +m"
}
"adduser" {
notice $nick "\002-----adduser-----\002"
notice $nick "Usage: !adduser <nick> \[host\]"
notice $nick "Flags Needed: bot owner"
notice $nick " Adds a user to the userlist with \002nick\002 as their"
notice $nick " handle. If they are on the channel, and no \002host\002"
notice $nick " is specified, it will get a hostmask from the channel."
notice $nick " Otherwise, it will use the host you specify."
}
"part" {
notice $nick "\002-----part-----\002"
notice $nick "Usage: !part <#channel>"
notice $nick "Flags Needed: bot owner"
notice $nick " Makes the bot part a channel."
}
"join" {
notice $nick "\002-----join-----\002"
notice $nick "Usage: !join <#channel>"
notice $nick "Flags Needed: bot owner"
notice $nick " Makes the bot leave the channel."
}
"chattr" {
notice $nick "\002-----chattr-----\002"
notice $nick "Usage: !chattr <handle> <options> \[channel\]"
notice $nick "Flags Needed: bot owner"
notice $nick " Changes the flags (\002options\002) of a user (\002handle\002)."
notice $nick " If \002channel\002 is specified, it will change the channel flags for"
notice $nick " the user."
}
"deluser" {
notice $nick "\002-----deluser-----\002"
notice $nick "Usage: !deluser <handle>"
notice $nick "Flags Needed: bot owner"
notice $nick " Completely removes a user record from the bot."
}
"addbot" {
notice $nick "\002-----addbot-----\002"
notice $nick "Usage: !addbot <handle> <address:port>"
notice $nick "Flags Needed: bot owner"
notice $nick " Adds a bot to the user file. You should know how to use"
notice $nick " this if you are an owner of the bot."
}
"rmbot" {
notice $nick "\002-----rmbot-----\002"
notice $nick "Usage: !rmbot <handle>"
notice $nick "Flags Needed: bot owner"
notice $nick " Removes a bot user record from the bot."
}
"addhost" {
notice $nick "\002-----addhost-----\002"
notice $nick "Usage: !addhost <handle> <host>"
notice $nick "Flags Needed: bot owner"
notice $nick " Adds \002host\002 to user record for \002handle\002."
}
"rmhost" {
notice $nick "\002-----rmhost-----\002"
notice $nick "Usage: !rmhost <handle> <host>"
notice $nick "Flags Needed: bot owner"
notice $nick " Removes host from \002handle\002."
}
"sex" {
notice $nick "Go talk to a shrink."
}
"me" {
notice $nick "I can do that!"
notice $nick "Just type \002!help\002 for commands."
}
"him" {
notice $nick "Sorry, I can't help him."
}
}
}
}
proc pub:helpa {nick uhost hand chan args} {
pub:help $nick $uhost $hand $chan $args
}
##### BADWORD #####
proc badword:kick {nick uhost hand chan text} {
if {$hand != "*"} {
if {([matchattr $hand "n"]) || ([matchattr $hand "m"]) || ([matchattr $hand "|m" $chan]) || ([matchattr $hand "|n" $chan]) || ([matchattr $hand "f"]) || ([matchattr $hand "|f" $chan])} {
return 0
}
}
putserv "KICK $chan $nick :Shame on you! Using those words in public!"
}
##### REMIND USERS #####
proc toolz:remind_users {} {
global botnick
foreach n [userlist] {
if {[passwdok $n ""]} {
say $n "Your password on me has not been set yet. Please set it by typing /msg $botnick PASS <password>. This message is relayed every 30 minutes."
putlog "Reminded $n to set his/her password."
}
}
timer 30 toolz:remind_users
}
set found 0
foreach n [timers] {
if {[lindex $n 1] == "toolz:remind_users"} {
set found 1
}
}
if {$found == 0} {
timer 5 toolz:remind_users
}
unset found
|
|
|
| Back to top |
|
 |
Sir_Fz Revered One

Joined: 27 Apr 2003 Posts: 3793 Location: Lebanon
|
Posted: Sat Dec 17, 2005 7:13 pm Post subject: |
|
|
You didn't have to paste that script.
| Code: | bind pub - !msg msg:all
proc msg:all {nick uhost hand chan arg} {
if {$arg == ""} {return 0}
foreach c [channels] {
puthelp "privmsg $c :$arg"
}
} |
_________________ Follow me on GitHub
- Opposing
Public Tcl scripts |
|
| Back to top |
|
 |
hivision Voice
Joined: 17 Dec 2005 Posts: 3
|
Posted: Sun Dec 18, 2005 2:37 pm Post subject: |
|
|
| hm thanks , is that possible to only ops can use that command ? ;/ |
|
| Back to top |
|
 |
demond Revered One

Joined: 12 Jun 2004 Posts: 3073 Location: San Francisco, CA
|
Posted: Sun Dec 18, 2005 2:47 pm Post subject: |
|
|
yes, change - to o _________________ connection, sharing, dcc problems? click <here>
before asking for scripting help, read <this>
use [code] tag when posting logs, code |
|
| Back to top |
|
 |
Sir_Fz Revered One

Joined: 27 Apr 2003 Posts: 3793 Location: Lebanon
|
Posted: Sun Dec 18, 2005 6:37 pm Post subject: |
|
|
| hivision wrote: | | hm thanks , is that possible to only ops can use that command ? ;/ |
If you mean channel ops, then replace:
| Code: | | if {$arg == ""} {return 0} |
with
| Code: | | if {$arg == "" || ![isop $nick $chan]} {return 0} |
_________________ Follow me on GitHub
- Opposing
Public Tcl scripts |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|