#################################################################################
#Begin Setup
#Set global message the bot will post once every hour:
set globalmsg "Welcome on irc.server.net to play quiz join #quiz #kwis #espana"
#End Setup
#########################################################
#DO NOT EDIT BELOW HERE UNLESS YOU KNOW HOW TO WRITE .tcl
#########################################################
bind cron - {* */1 * * *} radioglobal_proc
proc radioglobal_proc {minute hour day month year} {
global botnick globalmsg
putserv "NOTICE $*.* \002\GLOBAL:\002 $globalmsg "
return 0
}
putlog "Auto Global Message v0.01 by: play4free2 irc.420-hightimes.com #snoopdogg loaded!"
#################################################################################
#Begin Setup
#Set global message the bot will post once every hour:
set globalmsg "Welcome on irc.server.net to play quiz join #quiz #kwis #espana"
### <add some settings to control the new PUB Bind> ###
# Set public trigger
set globaltrigger "!postmessage"
#Set flags required to use the public trigger
set globalflag "o|o"
#End Setup
#########################################################
#DO NOT EDIT BELOW HERE UNLESS YOU KNOW HOW TO WRITE .tcl
#########################################################
### <change the bind to a PUB Bind> ###
bind pub $globalflag $globaltrigger radioglobal_proc
### <change the process to accept the args from the PUB Bind> ###
proc radioglobal_proc {nick uhost hand chan text} {
global botnick globalmsg
putserv "NOTICE $*.* \002\GLOBAL:\002 $globalmsg "
return 0
}
putlog "PUBLIC Global Message v0.01 by: play4free2 irc.420-hightimes.com #snoopdogg loaded!"
AutoGlobalMessage v0.1 by SpiKe^^
#########################################################
#### Begin Settings ####
# Set the file to store the dynamic 'Auto Global Message' settings in.
set autoGlobal(file) "autoGlobal.conf"
# Set default 'Auto Global Message' text. (this can be changed by /msg command)
set autoGlobal(def_text) "Welcome on irc.server.net to play quiz join #quiz #kwis #espana"
# Set default 'Auto Global Message' time. (this can be changed by /msg command)
set autoGlobal(def_time) "60" ;# number of minutes between global messages #
# Set the 'Auto Global Message' Command to add/change dynamic settings.
set autoGlobal(cmd) "!global"
# Set the flags required to use the 'Auto Global Message' Command.
set autoGlobal(flag) "o|o"
# Set the 'Auto Global Message' Command option to turn off the messages.
# examples: !global -off :OR: !global -stop
set autoGlobal(off) "-off"
# Set the 'Auto Global Message' Command option to turn on the messages.
# examples: !global -on :OR: !global -start
set autoGlobal(on) "-on"
# Set the 'Auto Global Message' Command option to change the message timing.
# examples: !global -time 30 :OR: !global -minutes 45
set autoGlobal(time) "-time"
# Set the 'Auto Global Message' Command option to change the message text.
# example: !global -text Some new message to change to.
set autoGlobal(text) "-text"
##### End Settings #####
#########################################################
proc aGlobal:chkFile {} {
global autoGlobal
if {![file exists $autoGlobal(file)]} {
if {![info exists autoGlobal(-on)]} {
set autoGlobal(-on) 1
}
if {![info exists autoGlobal(-text)]} {
set autoGlobal(-text) $autoGlobal(def_text)
}
if {![info exists autoGlobal(-time)]} {
set autoGlobal(-time) $autoGlobal(def_time)
}
set openFile [open $autoGlobal(file) w]
puts $openFile $autoGlobal(-on)
puts $openFile $autoGlobal(-text)
puts $openFile $autoGlobal(-time)
close $openFile
} else {
set openFile [open $autoGlobal(file)]
set autoGlobal(-on) [gets $openFile]
set autoGlobal(-text) [gets $openFile]
set autoGlobal(-time) [gets $openFile]
close $openFile
}
}
aGlobal:chkFile
proc aGlobal:chkTimer {} {
global autoGlobal
if {[info exists autoGlobal(timer)]} {
if {$autoGlobal(-on) == "0"} {
catch {killtimer $autoGlobal(timer)}
unset autoGlobal(timer)
}
} elseif {$autoGlobal(-on) == "1"} {
if {$autoGlobal(-time) > "5"} { set x 5
} else { set x $autoGlobal(-time) }
set autoGlobal(timer) [timer $x [list aGlobal:doMessage]]
}
}
aGlobal:chkTimer
proc aGlobal:doMessage {} {
global autoGlobal
putserv "NOTICE $*.* \002\GLOBAL:\002 $autoGlobal(-text) "
set autoGlobal(timer) [timer $autoGlobal(-time) [list aGlobal:doMessage]]
}
bind pub $autoGlobal(flag) $autoGlobal(cmd) aGlobal:pubCommand
proc aGlobal:pubCommand {nk uh hn ch tx} {
global autoGlobal
set tx [split $tx]
while {[llength $tx] > "0"} {
set opt [lindex $tx 0]
set tx [lrange $tx 1 end]
if {$opt eq $autoGlobal(off)} {
set on 0
continue
}
if {$opt eq $autoGlobal(on)} {
set on 1
continue
}
if {$opt eq $autoGlobal(time)} {
set x [lindex $tx 0]
if {[string is digit -strict $x] && $x > "0"} {
set time $x
set tx [lrange $tx 1 end]
continue
}
set err 1
break
}
if {$opt eq $autoGlobal(text)} {
set x [string trim [join $tx]]
if {$x ne ""} {
set text $x
break
}
set err 2
break
}
set err 3
break
}
set update 0
if {[info exists on]} {
if {$on == "0"} {
if {$autoGlobal(-on) == "1"} {
set autoGlobal(-on) 0
aGlobal:chkTimer
incr update
putserv "PRIVMSG $ch :AutoGlobalMessage is now turned off."
} else {
putserv "PRIVMSG $ch :AutoGlobalMessage is already stopped."
}
} else {
if {$autoGlobal(-on) == "0"} {
set autoGlobal(-on) 1
set doTimer 1
incr update
putserv "PRIVMSG $ch :AutoGlobalMessage is now turned on."
} else {
putserv "PRIVMSG $ch :AutoGlobalMessage is already running."
}
}
}
if {[info exists time]} {
if {$time != $autoGlobal(-time)} {
set autoGlobal(-time) $time
incr update
putserv "PRIVMSG $ch :AutoGlobalMessage time is now $time minutes."
} else {
putserv "PRIVMSG $ch :AutoGlobalMessage time is already $time minutes."
}
}
if {[info exists doTimer]} { aGlobal:chkTimer }
if {[info exists text]} {
if {$text ne $autoGlobal(-text)} {
set autoGlobal(-text) $text
incr update
putserv "PRIVMSG $ch :AutoGlobalMessage text is now: $text"
} else {
putserv "PRIVMSG $ch :AutoGlobalMessage text is already: $text"
}
}
if {$update > "0"} {
file delete $autoGlobal(file)
aGlobal:chkFile
}
if {[info exists err]} {
if {$err == "1"} {
putserv "PRIVMSG $ch :Error: $autoGlobal(time) must be followed by a number greater than 0"
} elseif {$err == "2"} {
putserv "PRIVMSG $ch :Error: $autoGlobal(text) must be followed by the new text to show"
} else {
set x "$autoGlobal(on) $autoGlobal(off) $autoGlobal(time) $autoGlobal(text)"
putserv "PRIVMSG $ch :Error: Unknown command option, $opt. Valid options: $x"
}
}
return 0
}
putlog "AutoGlobalMessage v0.1 by SpiKe^^ loaded."
Last edited by SpiKe^^ on Sat Apr 18, 2015 10:34 pm, edited 1 time in total.
# AutoGlobalMessage v1.1 (24Apr2015) by SpiKe^^
# Important Note: The bot Must be opered for this script to work!
#########################################################
#### Begin Settings ####
# Set the default AutoGlobalMessage time between global messages.
# Note: This can be changed by public command: !global -time <minutes>
# You can always go back to this setting with: !global -time def
set aGlobal(def_time) "60" ;## Number of minutes between global messages ##
# Set the default AutoGlobalMessage text.
# Note: This can be changed by public command: !global -text <new message>
# You can always go back to this setting with: !global -text def
set aGlobal(def_text) "Welcome on irc.server.net to play quiz join #quiz #kwis #espana"
# Set the public AutoGlobalMessage Command to add/change dynamic settings.
set aGlobal(cmd) "!global"
# Set the AutoGlobalMessage Command option to turn on the messages.
# examples: !global -on :OR: !global -start
set aGlobal(on) "-on"
# Set the AutoGlobalMessage Command option to turn off the messages.
# examples: !global -off :OR: !global -stop
set aGlobal(off) "-off"
# Set the AutoGlobalMessage Command option to change the message timing.
# examples: !global -time 30 :OR: !global -minutes 45
# Note: You can go back to the default setting with: !global -time def
set aGlobal(time) "-time"
# Set the AutoGlobalMessage Command option to change the message text.
# example: !global -text Some new message to change to.
# Note: You can go back to the default setting with: !global -text def
set aGlobal(text) "-text"
# Set the AutoGlobalMessage Command option to check the script status.
# examples: !global -info :OR: !global -status
set aGlobal(info) "-info"
# Set the AutoGlobalMessage Command option to get help for this script.
# example: !global -help
set aGlobal(help) "-help"
#############################################################
## -= Advanced Public AutoGlobalMessage Command Options =- ##
# You can also set multiple script options in one command. #
# Examples: #
# !global -on -time 60 #
# !global -text def -time def -off #
# !global -time 30 -on -text some new global message text. #
# #
# Important Note: If setting New message text, -text Must #
# be the last command option in the list of options! #
#############################################################
# Set the flags required to use the public AutoGlobalMessage Commands.
set aGlobal(flag) "o|o"
# Set the file to store the dynamic AutoGlobalMessage settings in.
set aGlobal(file) "autoGlobal.conf"
##### End Settings #####
#########################################################
if {![string is digit -strict $aGlobal(def_time)] || $aGlobal(def_time)<"1"} {
set aGlobal(def_time) 60
}
proc aGlobal:chkFile {} {
global aGlobal
if {![file exists $aGlobal(file)]} {
if {![info exists aGlobal(-on)]} {
set aGlobal(-on) 1
}
if {![info exists aGlobal(-text)]} {
set aGlobal(-text) $aGlobal(def_text)
}
if {![info exists aGlobal(-time)]} {
set aGlobal(-time) $aGlobal(def_time)
}
set openFile [open $aGlobal(file) w]
puts $openFile $aGlobal(-on)
puts $openFile $aGlobal(-text)
puts $openFile $aGlobal(-time)
close $openFile
} else {
set openFile [open $aGlobal(file)]
set aGlobal(-on) [gets $openFile]
set aGlobal(-text) [gets $openFile]
set aGlobal(-time) [gets $openFile]
close $openFile
}
}
aGlobal:chkFile
set aGlobal(-sec) [expr {$aGlobal(-time)*60}]
proc aGlobal:chkTimer {} {
global aGlobal
if {$aGlobal(-on) == "0"} {
if {[info exists aGlobal(timer)]} {
catch { killutimer $aGlobal(timer) }
unset aGlobal(timer)
}
foreach tmr [utimers] {
if {[lindex $tmr 1] eq "aGlobal:doMessage"} {
catch { killutimer [lindex $tmr 2] }
}
}
} elseif {![info exists aGlobal(timer)]} {
if {$aGlobal(-time) > "5"} { set x 300
} else { set x $aGlobal(-sec) }
set aGlobal(timer) [utimer $x [list aGlobal:doMessage]]
return $x
}
}
aGlobal:chkTimer
proc aGlobal:doMessage {} {
global aGlobal
putserv "NOTICE $*.* \002\GLOBAL:\002 $aGlobal(-text) "
set aGlobal(timer) [utimer $aGlobal(-sec) [list aGlobal:doMessage]]
}
bind pub $aGlobal(flag) $aGlobal(cmd) aGlobal:pubCommand
proc aGlobal:pubCommand {nk uh hn ch tx} {
global aGlobal
set tx [string trim $tx]
if {$tx eq ""} { set help 1
} else { set tx [split $tx] }
while {[llength $tx] > "0"} {
set opt [lindex $tx 0] ; set tx [lrange $tx 1 end]
switch -- $opt $aGlobal(off) { set on 0
} $aGlobal(on) { set on 1
} $aGlobal(help) { set help 1
} $aGlobal(info) { set info 1
} $aGlobal(time) { set x [lindex $tx 0]
if {[string is digit -strict $x] && $x > "0"} {
set time $x ; set tx [lrange $tx 1 end]
} elseif {$x eq "def"} {
set time $aGlobal(def_time)
set tx [lrange $tx 1 end]
} else { set err 1 ; break }
} $aGlobal(text) { set x [lindex $tx 0]
if {$x eq "def"} {
set text $aGlobal(def_text)
set tx [lrange $tx 1 end]
} else { set x [string trim [join $tx]]
if {$x ne ""} { set text $x
} else { set err 2 }
break
}
} default { set err 3 ; break }
}
set update 0 ; set did 0
set cmd $aGlobal(cmd)
set logo "AutoGlobalMessage"
if {[info exists on]} { incr did
if {$on == "0"} {
if {$aGlobal(-on) == "1"} { incr update
set aGlobal(-on) 0 ; aGlobal:chkTimer
putserv "PRIVMSG $ch :$logo is now turned off."
} else { putserv "PRIVMSG $ch :$logo is already stopped."
putserv "PRIVMSG $ch : To start this script, use: $cmd $aGlobal(on)"
}
} else {
if {$aGlobal(-on) == "0"} { incr update
set doTimer "First"
putserv "PRIVMSG $ch :$logo is now turned on."
} else { putserv "PRIVMSG $ch :$logo is already running."
putserv "PRIVMSG $ch : To stop this script, use: $cmd $aGlobal(off)"
}
}
}
if {[info exists time]} { incr did
if {$time != $aGlobal(-time)} { incr update
set aGlobal(-time) $time
set aGlobal(-sec) [expr {$time*60}]
if {$aGlobal(-on) == "1"} { set doTimer "Next" }
putserv "PRIVMSG $ch :$logo time is now set to $time minutes."
} else {
putserv "PRIVMSG $ch :$logo time is already set to $time minutes."
}
}
if {[info exists text]} { incr did
if {$text ne $aGlobal(-text)} { incr update
set aGlobal(-text) $text
putserv "PRIVMSG $ch :$logo text is now: $text"
} else {
putserv "PRIVMSG $ch :$logo text is already: $text"
}
}
if {[info exists doTimer]} {
if {$doTimer eq "Next"} {
set aGlobal(-on) 0
aGlobal:chkTimer
}
set aGlobal(-on) 1
set sec [aGlobal:chkTimer]
} elseif {$aGlobal(-on) == "1"} { set doTimer "Next"
foreach tmr [utimers] {
if {[lindex $tmr 2] eq $aGlobal(timer)} {
set sec [lindex $tmr 0] ; break
}
}
}
if {[info exists sec]} {
set x [expr {$sec/60}] ; set y [expr {$sec%60}]
if {$x>30} { set sec [expr {$x*60}]
if {$y>30} { incr sec 60 }
} elseif {$y<5 && $x>0} { set sec [expr {$x*60}]
} elseif {$y>55} { set sec [expr {($x+1)*60}] }
set sec [duration $sec]
}
if {$update > 0} {
file delete $aGlobal(file)
aGlobal:chkFile
}
if {$did > 0 && [info exists sec] && ![info exists info]} {
putserv "PRIVMSG $ch : $doTimer global message in $sec."
unset sec
}
if {[info exists err]} {
if {$did > 0} { putserv "PRIVMSG $ch : " }
incr did
if {$err == "1"} {
putserv "PRIVMSG $ch :$logo $aGlobal(time) syntax: $cmd\
$aGlobal(time) <minutes between global messages>"
putserv "PRIVMSG $ch : Examples: $cmd $aGlobal(time) 30 \
:OR: $cmd $aGlobal(time) 120"
putserv "PRIVMSG $ch : Use: $cmd $aGlobal(time) def :to go\
back to the default time setting ($aGlobal(def_time))."
putserv "PRIVMSG $ch : Current $logo time is set to\
$aGlobal(-time) minutes."
} elseif {$err == "2"} {
putserv "PRIVMSG $ch :$logo $aGlobal(text) syntax: $cmd\
$aGlobal(text) <new text for the global message>"
putserv "PRIVMSG $ch : Example: $cmd $aGlobal(text) Welcome\
to irc.server.net! For help or questions join #admin"
putserv "PRIVMSG $ch : Use: $cmd $aGlobal(text) def :to go\
back to the default text string ($aGlobal(def_text))."
putserv "PRIVMSG $ch : Current $logo text is: $aGlobal(-text)"
} else { set help 1
putserv "PRIVMSG $ch :$logo Error: Unknown command option, $opt."
}
if {[info exists sec] && ![info exists info]} {
putserv "PRIVMSG $ch : $doTimer global message in $sec."
unset sec
}
}
if {[info exists help]} {
if {$did > 0} { putserv "PRIVMSG $ch : " }
incr did
putserv "PRIVMSG $ch :-= $logo Public Commands Help =-"
putserv "PRIVMSG $ch :$cmd $aGlobal(on) :Turn on the global messages."
putserv "PRIVMSG $ch :$cmd $aGlobal(off) :Turn off the global messages."
putserv "PRIVMSG $ch :$cmd $aGlobal(time) <minutes> \
:change the global message timing."
putserv "PRIVMSG $ch : Use: $cmd $aGlobal(time)\
:for more help with this command."
putserv "PRIVMSG $ch :$cmd $aGlobal(text) <new message> \
:change the global message text."
putserv "PRIVMSG $ch : Use: $cmd $aGlobal(text)\
:for more help with this command."
putserv "PRIVMSG $ch :$cmd $aGlobal(info) \
:See the current status of this script."
putserv "PRIVMSG $ch :$cmd $aGlobal(help) \
:See this $logo public commands help."
if {[info exists sec] && ![info exists info]} {
putserv "PRIVMSG $ch : "
putserv "PRIVMSG $ch :$doTimer global message in $sec."
}
}
if {[info exists info]} {
if {$did > 0} { putserv "PRIVMSG $ch : " }
putserv "PRIVMSG $ch :-= Current $logo Status =-"
if {$aGlobal(-on) == "1"} {
putserv "PRIVMSG $ch :$logo is running./
$doTimer global message in $sec."
} else { putserv "PRIVMSG $ch :$logo is stopped." }
putserv "PRIVMSG $ch :$logo time is set to $aGlobal(-time) minutes."
putserv "PRIVMSG $ch :$logo text is: $aGlobal(-text)"
putserv "PRIVMSG $ch :Use: $cmd $aGlobal(help)\
:for help with this script."
}
return 0
}
putlog "AutoGlobalMessage v1.1 by SpiKe^^ loaded."