Advertisement
Guest User

Untitled

a guest
Jun 2nd, 2017
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.91 KB | None | 0 0
  1. ######################################################################
  2. # sbnc_pubadmin.tcl #
  3. # #
  4. # Written by Felix 'Kunsi' Kunsmann for the Users in #sbnc at #
  5. # Quakenet. #
  6. # #
  7. # This Script does NOT provide: #
  8. # - forced Join for Users #
  9. # - locked Servers or other Settings #
  10. # - User authentication - It will work for all Ops in the Channel #
  11. # #
  12. # Contact: #
  13. # Felix Kunsmann #
  14. # #sbnc at irc.quakenet.org - Nickname Kunsi (Lang: EN) #
  15. # #freebnc at irc.euirc.net - Nickname Kunsi (Lang: DE & EN) #
  16. # Mail: felix@kunsmann.eu #
  17. # Jabber: kunsi@jabber.ccc.de #
  18. # #
  19. # This Script is available in German and english. #
  20. ######################################################################
  21.  
  22. # Ident of Admin BNC. Bouncer has to be Op in Channel to Change the
  23. # topic. We recommend to use this Bouncer not for real IRC usage.
  24. set sbnc_pubadmin_admin "sbnc"
  25.  
  26. # Server the User should connect to. Note every User may change Server
  27. # itself.
  28. set sbnc_pubadmin_ircserver "irc.quakenet.org"
  29.  
  30. # The Admins channel. This is the Channel were Users come in and get
  31. # their Bouncers.
  32. set sbnc_pubadmin_channel "#og.soldat"
  33.  
  34. # The maximum Number of Bouncers can be added via Script
  35. set sbnc_pubadmin_bnc_max 15
  36.  
  37. # Command to use to control the Script.
  38. # Do not use ? and *, they will act as wildcards.
  39. set sbnc_pubadmin_command "!sbnc"
  40.  
  41. # Bouncer server. Only the User will see this text. Set it to your
  42. # Servers IP and Port.
  43. set sbnc_pubadmin_bncserver "188.40.100.175:5555"
  44.  
  45. ######################################################################
  46. ######################################################################
  47. ##### DO NOT CHANGE ANYTHING BELOW HERE #####
  48. ######################################################################
  49. ######################################################################
  50.  
  51. setctx $sbnc_pubadmin_admin
  52.  
  53. bind pub - $sbnc_pubadmin_command sbnc_pubadmin_verwaltung
  54.  
  55. proc sbnc_pubadmin_topic {} {
  56. global sbnc_pubadmin_bnc_max sbnc_pubadmin_admin sbnc_pubadmin_channel
  57.  
  58. setctx $sbnc_pubadmin_admin
  59.  
  60. 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)"
  61. }
  62.  
  63. proc sbnc_pubadmin_verwaltung {n u h c t} {
  64. global sbnc_pubadmin_bnc_max admin sbnc_pubadmin_server sbnc_pubadmin_channel sbnc_pubadmin_bncserver sbnc_pubadmin_admin sbnc_pubadmin_ircserver
  65.  
  66. set params [split $t]
  67.  
  68. setctx $sbnc_pubadmin_admin
  69.  
  70. if {[isop $n $sbnc_pubadmin_channel]} {
  71. set command [string tolower [lindex $params 0]]
  72.  
  73. if {$command == "add"} {
  74. set ident [string tolower [lindex $params 1]]
  75. set nick [lindex $params 2]
  76.  
  77. if {$nick == ""} {
  78. set nick $n
  79. }
  80.  
  81. if {$ident == "" || ![bncvalidusername $ident]} {
  82. putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
  83. return
  84. }
  85.  
  86. if {[llength [bncuserlist]] > $sbnc_pubadmin_bnc_max} {
  87. putserv "PRIVMSG $sbnc_pubadmin_channel :Limit was reached."
  88. return
  89. }
  90.  
  91. if {![onchan $nick $c]} {
  92. putserv "PRIVMSG $sbnc_pubadmin_channel :$nick is not on Channel."
  93. return
  94. }
  95.  
  96. if {[bncvaliduser $ident] && [getbncuser $ident lock]} {
  97. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was locked. Use '?sbnc unsuspend $ident' to unlock it."
  98. return
  99. } elseif {[bncvaliduser $ident]} {
  100. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident already exists."
  101. return
  102. }
  103.  
  104. set passwort [randstring 10]
  105.  
  106. addbncuser $ident $passwort
  107.  
  108. setbncuser $ident server $sbnc_pubadmin_ircserver
  109. setbncuser $ident port "6667"
  110.  
  111. internaltimer 30 0 sbnc_pubadmin_join $ident
  112.  
  113. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was added."
  114. putserv "PRIVMSG $nick :Server: $sbnc_pubadmin_bncserver"
  115. putserv "PRIVMSG $nick :Ident/Username: $ident"
  116. putserv "PRIVMSG $nick :Password: $passwort"
  117. putserv "PRIVMSG $sbnc_pubadmin_channel :Login data has been sent to $nick"
  118.  
  119. sbnc_pubadmin_topic
  120.  
  121. return
  122. } elseif {$command == "del"} {
  123. set ident [string tolower [lindex $params 1]]
  124.  
  125. if {$ident == "" || ![bncvalidusername $ident]} {
  126. putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
  127. return
  128. }
  129.  
  130. if {![bncvaliduser $ident]} {
  131. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
  132. return
  133. }
  134.  
  135. delbncuser $ident
  136.  
  137. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was deleted."
  138.  
  139. sbnc_pubadmin_topic
  140.  
  141. return
  142. } elseif {$command == "pass"} {
  143. set ident [string tolower [lindex $params 1]]
  144. set nick [lindex $params 2]
  145.  
  146. if {$nick == ""} {
  147. set nick $n
  148. }
  149.  
  150. if {$ident == "" || ![bncvalidusername $ident]} {
  151. putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
  152. return
  153. }
  154.  
  155. if {![onchan $nick $c]} {
  156. putserv "PRIVMSG $sbnc_pubadmin_channel :$nick is not on Channel."
  157. return
  158. }
  159.  
  160. if {![bncvaliduser $ident]} {
  161. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
  162. return
  163. }
  164.  
  165. set passwort [randstring 10]
  166.  
  167. setbncuser $ident password $passwort
  168.  
  169. putserv "PRIVMSG $sbnc_pubadmin_channel :Password for $ident was changed."
  170. putserv "PRIVMSG $nick :Server: $sbnc_pubadmin_bncserver"
  171. putserv "PRIVMSG $nick :Ident/Username: $ident"
  172. putserv "PRIVMSG $nick :Password: $passwort"
  173. putserv "PRIVMSG $sbnc_pubadmin_channel :Login data has been sent to $nick"
  174.  
  175. return
  176. } elseif {$command == "topic"} {
  177. sbnc_pubadmin_topic
  178.  
  179. return
  180. } elseif {$command == "unsuspend"} {
  181. set ident [string tolower [lindex $params 1]]
  182.  
  183. if {$ident == "" || ![bncvalidusername $ident]} {
  184. putserv "PRIVMSG $sbnc_pubadmin_channel :Invalid ident format."
  185. return
  186. }
  187.  
  188. if {[llength [bncuserlist]] > $sbnc_pubadmin_bnc_max} {
  189. putserv "PRIVMSG $sbnc_pubadmin_channel :Limit was reached."
  190. return
  191. }
  192.  
  193. if {![bncvaliduser $ident]} {
  194. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident doesn't exist."
  195. return
  196. } elseif {![getbncuser $ident lock]} {
  197. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident isn't locked."
  198. return
  199. }
  200.  
  201. setbncuser $ident lock 0
  202. setbncuser $ident tag partcount 0
  203.  
  204. set ctx [getctx]
  205.  
  206. setctx $ident
  207. jump
  208.  
  209. setctx $ctx
  210.  
  211. internaltimer 30 0 sbnc_pubadmin_join $ident
  212.  
  213. putserv "PRIVMSG $sbnc_pubadmin_channel :Bouncer $ident was unlocked. Login data was not changed."
  214.  
  215. sbnc_pubadmin_topic
  216.  
  217. return
  218. } else {
  219. if {[llength $params] > 0} {
  220. putserv "PRIVMSG $sbnc_pubadmin_channel :Error: \"[join $params]\" is not a valid command"
  221. }
  222.  
  223. putserv "PRIVMSG $sbnc_pubadmin_channel := (add|del|pass|topic|unsuspend)"
  224. }
  225. }
  226. }
  227.  
  228. proc sbnc_pubadmin_join {ident} {
  229. global sbnc_pubadmin_channel
  230.  
  231. setctx $ident
  232.  
  233. if {![getbncuser $ident hasserver] && ![getbncuser $ident lock]} {
  234. jump
  235.  
  236. internaltimer 30 0 sbnc_pubadmin_join $ident
  237.  
  238. } elseif {[getbncuser $ident hasserver] && ![onchan $::botnick $sbnc_pubadmin_channel]} {
  239. putserv "JOIN $sbnc_pubadmin_channel"
  240.  
  241. }
  242. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement