Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ######################################################################
- # sbnc_pubadmin.tcl #
- # #
- # Written by Felix 'Kunsi' Kunsmann for the Users in #sbnc at #
- # Quakenet. #
- # #
- # This Script does NOT provide: #
- # - forced Join for Users #
- # - locked Servers or other Settings #
- # - User authentication - It will work for all Ops in the Channel #
- # #
- # Contact: #
- # Felix Kunsmann #
- # #sbnc at irc.quakenet.org - Nickname Kunsi (Lang: EN) #
- # #freebnc at irc.euirc.net - Nickname Kunsi (Lang: DE & EN) #
- # Mail: felix@kunsmann.eu #
- # Jabber: kunsi@jabber.ccc.de #
- # #
- # This Script is available in German and english. #
- ######################################################################
- # Ident of Admin BNC. Bouncer has to be Op in Channel to Change the
- # topic. We recommend to use this Bouncer not for real IRC usage.
- set sbnc_pubadmin_admin "sbnc"
- # Server the User should connect to. Note every User may change Server
- # itself.
- set sbnc_pubadmin_ircserver "irc.quakenet.org"
- # The Admins channel. This is the Channel were Users come in and get
- # their Bouncers.
- set sbnc_pubadmin_channel "#og.soldat"
- # The maximum Number of Bouncers can be added via Script
- set sbnc_pubadmin_bnc_max 15
- # Command to use to control the Script.
- # Do not use ? and *, they will act as wildcards.
- set sbnc_pubadmin_command "!sbnc"
- # Bouncer server. Only the User will see this text. Set it to your
- # Servers IP and Port.
- set sbnc_pubadmin_bncserver "188.40.100.175:5555"
- ######################################################################
- ######################################################################
- ##### DO NOT CHANGE ANYTHING BELOW HERE #####
- ######################################################################
- ######################################################################
- setctx $sbnc_pubadmin_admin
- bind pub - $sbnc_pubadmin_command sbnc_pubadmin_verwaltung
- proc sbnc_pubadmin_topic {} {
- global sbnc_pubadmin_bnc_max sbnc_pubadmin_admin sbnc_pubadmin_channel
- setctx $sbnc_pubadmin_admin
- putserv "TOPIC $sbnc_pubadmin_channel :Free Bouncers by $sbnc_pubadmin_channel - Bouncer: [llength [bncuserlist]]/$sbnc_pubadmin_bnc_max ([expr {$sbnc_pubadmin_bnc_max-[llength [bncuserlist]]}] frei)"
- }
- proc sbnc_pubadmin_verwaltung {n u h c t} {
- global sbnc_pubadmin_bnc_max admin sbnc_pubadmin_server sbnc_pubadmin_channel sbnc_pubadmin_bncserver sbnc_pubadmin_admin sbnc_pubadmin_ircserver
- set params [split $t]
- setctx $sbnc_pubadmin_admin
- if {[isop $n $sbnc_pubadmin_channel]} {
- set command [string tolower [lindex $params 0]]
- if {$command == "add"} {
- set ident [string tolower [lindex $params 1]]
- set nick [lindex $params 2]
- if {$nick == ""} {
- set nick $n
- }
- if {$ident == "" || ![bncvalidusername $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
- return
- }
- if {[llength [bncuserlist]] > $sbnc_pubadmin_bnc_max} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Limit was reached."
- return
- }
- if {![onchan $nick $c]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :$nick is not on Channel."
- return
- }
- if {[bncvaliduser $ident] && [getbncuser $ident lock]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was locked. Use '?sbnc unsuspend $ident' to unlock it."
- return
- } elseif {[bncvaliduser $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident already exists."
- return
- }
- set passwort [randstring 10]
- addbncuser $ident $passwort
- setbncuser $ident server $sbnc_pubadmin_ircserver
- setbncuser $ident port "6667"
- internaltimer 30 0 sbnc_pubadmin_join $ident
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was added."
- putserv "PRIVMSG $nick :Server: $sbnc_pubadmin_bncserver"
- putserv "PRIVMSG $nick :Ident/Username: $ident"
- putserv "PRIVMSG $nick :Password: $passwort"
- putserv "PRIVMSG $sbnc_pubadmin_channel :Login data has been sent to $nick"
- sbnc_pubadmin_topic
- return
- } elseif {$command == "del"} {
- set ident [string tolower [lindex $params 1]]
- if {$ident == "" || ![bncvalidusername $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
- return
- }
- if {![bncvaliduser $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
- return
- }
- delbncuser $ident
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was deleted."
- sbnc_pubadmin_topic
- return
- } elseif {$command == "pass"} {
- set ident [string tolower [lindex $params 1]]
- set nick [lindex $params 2]
- if {$nick == ""} {
- set nick $n
- }
- if {$ident == "" || ![bncvalidusername $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
- return
- }
- if {![onchan $nick $c]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :$nick is not on Channel."
- return
- }
- if {![bncvaliduser $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
- return
- }
- set passwort [randstring 10]
- setbncuser $ident password $passwort
- putserv "PRIVMSG $sbnc_pubadmin_channel :Password for $ident was changed."
- putserv "PRIVMSG $nick :Server: $sbnc_pubadmin_bncserver"
- putserv "PRIVMSG $nick :Ident/Username: $ident"
- putserv "PRIVMSG $nick :Password: $passwort"
- putserv "PRIVMSG $sbnc_pubadmin_channel :Login data has been sent to $nick"
- return
- } elseif {$command == "topic"} {
- sbnc_pubadmin_topic
- return
- } elseif {$command == "unsuspend"} {
- set ident [string tolower [lindex $params 1]]
- if {$ident == "" || ![bncvalidusername $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
- return
- }
- if {[llength [bncuserlist]] > $sbnc_pubadmin_bnc_max} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Limit was reached."
- return
- }
- if {![bncvaliduser $ident]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
- return
- } elseif {![getbncuser $ident lock]} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident isn't locked."
- return
- }
- setbncuser $ident lock 0
- setbncuser $ident tag partcount 0
- set ctx [getctx]
- setctx $ident
- jump
- setctx $ctx
- internaltimer 30 0 sbnc_pubadmin_join $ident
- putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was unlocked. Login data was not changed."
- sbnc_pubadmin_topic
- return
- } else {
- if {[llength $params] > 0} {
- putserv "PRIVMSG $sbnc_pubadmin_channel :Error: \"[join $params]\" is not a valid command"
- }
- putserv "PRIVMSG $sbnc_pubadmin_channel := (add|del|pass|topic|unsuspend)"
- }
- }
- }
- proc sbnc_pubadmin_join {ident} {
- global sbnc_pubadmin_channel
- setctx $ident
- if {![getbncuser $ident hasserver] && ![getbncuser $ident lock]} {
- jump
- internaltimer 30 0 sbnc_pubadmin_join $ident
- } elseif {[getbncuser $ident hasserver] && ![onchan $::botnick $sbnc_pubadmin_channel]} {
- putserv "JOIN $sbnc_pubadmin_channel"
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement