Advertisement
LoveAbleElf

beer.tcl

Aug 4th, 2017
513
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.51 KB | None | 0 0
  1. ####################################################################
  2. ## beer.tcl v.1.beta1 by SpiKe^^ ## 15 Mar 09 - ##
  3. ####################################################################
  4. # #
  5. # beer is a simple channel chatter script. Incluced are default #
  6. # bartender triggers. Can be used for Any Triggers. Variable #
  7. # replacements can be used in all replies. Complete on-join greet #
  8. # functions included. #
  9. # #
  10. # Add this line: source scripts/beer.tcl #
  11. # to your eggdrop config and rehash to load the script. #
  12. # #
  13. # Please report bugs or make comments at: #
  14. # irc: undernet: #pc-mIRC-help #
  15. # email: spike@mytclscripts.com #
  16. # http://www.mytclscripts.com #
  17. # #
  18. # Highlights #
  19. # 1. Unlimited Public Triggers with Public Replies #
  20. # 2. Flood Protection #
  21. # 3. Multi-Channel #
  22. # 4. Control Access by User Flags #
  23. # 5. Complete On-Join Greeting Functions #
  24. # 6. Variable Replacements in All Replies: #
  25. # %m (me) :is replaced by the users nick #
  26. # %d (drinker) :is replaced by the nick(s) provided #
  27. # %b (bartender) :is replaced by the botnick #
  28. # %c (channel) :is replaced by the channel #
  29. # #
  30. ####################################################################
  31. # #
  32. # Beer Script Notes #
  33. # #
  34. # 1. Script can set an unlimited number of public triggers and #
  35. # a one line public reply for each trigger. #
  36. # #
  37. # 2. Triggers/replies are listed in the tcl setting, one per line: #
  38. # #
  39. # Example: beer %b hands %d a beer. #
  40. # #
  41. # The first word in the line is the trigger word: beer #
  42. # Trigger can be any one word (No Spaces in triggers). #
  43. # Everything else is the reply: %b hands %d a beer. #
  44. # #
  45. # 3. Script will trigger in 3 different ways: #
  46. # a. The trigger by itself: .beer #
  47. # Drinker (%d) would be replaced by the users nick #
  48. # b. Trigger with a target nick: .beer SpiKe^^ #
  49. # Drinker would be replaced by the nick: SpiKe^^ #
  50. # c. Trigger with multiple nicks: .beer SpiKe^^ ted bart #
  51. # Drinker would be replaced by: SpiKe^^ ted & bart #
  52. # #
  53. # 4. Variable replacement codes for nicks in replies: #
  54. # %m (me) :usually replaced by the users nick #
  55. # %d (drinker) :usually replaced by the nick(s) provided #
  56. # %b (bartender) :always replaced by the botnick #
  57. # #
  58. # 4. Variable replacement notes: #
  59. # a. Don't use all 3 nick codes in the same reply. #
  60. # If no target nick is provided, (me) & (drinker) would #
  61. # both be replaced by the users nick. #
  62. # b. If reply uses both (me) & (drinker) replacement codes, #
  63. # and no target nick is provided... #
  64. # %d :would be replaced by the users nick #
  65. # %m :would be replaced by the botnick (bartender) #
  66. # #
  67. ####################################################################
  68.  
  69.  
  70.  
  71.  
  72. ################################################
  73. ######## Beer Channel Talker Settings ########
  74. ################################################
  75.  
  76. ## set Beer Channels here ##
  77. # ex. {#MyChan}
  78. # ex. {#powerdrinkers #bud #weiser}
  79. # or: {*} = all channels
  80. set beerchans {*}
  81.  
  82. ## set public beer flags here ##
  83. ## userfile flags required to trigger the beer script (-|- = everyone) ##
  84. set beerflags -|-
  85.  
  86. ## set public trigger prefix here (can be "") ##
  87. set beerpre "."
  88.  
  89. ## set beer flood settings ##
  90. set beerflood 4 ;## number of beer requests in 10 seconds ##
  91. set beerignore 20 ;## next request sets ignore for 'x' seconds ##
  92. set beerigmsg "Beer Flood! The bar is now closed." ;## can be "" for no msg ##
  93. set beeropen "The bar is now open." ;## can be "" for no msg ##
  94.  
  95. ## set reply colors here (each can be "") ##
  96. set beercolor1 "10" ;# all beer reply lines start this color #
  97. set beercolor2 "10"
  98. set beercolor3 "10"
  99. set beercolor4 "10"
  100.  
  101. ########################################
  102. #### Beer Talker Triggers/Replies ####
  103. ########################################
  104.  
  105. ## set triggers and returns here ##
  106. ## trigger first, no spaces in triggers!! ##
  107. #### variable replacement ####
  108. ## %m (me) :is replaced by the users nick ##
  109. ## %d (drinker) :is replaced by the nick(s) provided ##
  110. ## %b (bartender) :is replaced by the botnick ##
  111. ## %c (channel) :is replaced by the channel ##
  112. ## %p (prefix) :is replaced by the command prefix setting ##
  113. #### colors replacement (all reply lines start with color #1) ####
  114. ## %1 (color #1) :is replaced by color #1 from above ##
  115. ## %2 (color #2) :is replaced by color #2 from above ##
  116. ## %3 (color #3) :is replaced by color #3 from above ##
  117. ## %4 (color #4) :is replaced by color #4 from above ##
  118.  
  119. set beers {
  120.  
  121. menu We have %pbeer %pcocktails %pshots %pwine %pmunchies %pjukebox %phouse
  122.  
  123. beer We have %pbud %pbudlight %pbudice %pmiller %pcorona
  124. bud %d says pop a top again %b. I think I'll have another round.
  125. budlight 1 for %d and 1 for %m.
  126. budice %b hands %d a budice
  127. miller another please %b. Few more and I'll be living the "high" life ;)
  128. corona %b hands %d a corona
  129.  
  130. cocktails We have %pmargaritas %psexonbeach %pcaipirinha
  131. margaritas %d says hey %b, give the lady here a drink. Lord have mercy, my only thought was tequila makes her clothes fall off.
  132. sexonbeach %m says My clothes are falling off tonight.
  133. caipirinha %m says when life gives me lemons, I make caipirinha out of it.
  134.  
  135.  
  136. shots We have %ptequlia %pwhiskey %pscotch %pburbon %pvodka
  137. tequila %b pours the shot thinking... 1 tequila, 2 tequila 3 tequila, floor.
  138. whiskey %b hands %d a double shot and reflects... few more of those you'll be dancing on the ceiling.
  139. scotch another round my friend, and one for %d
  140. burbon %d loosens tie and sighs... %b triple on the rocks if it does ya:)
  141. vodka %b hands %d a glass and says cheers!!
  142.  
  143. wine We have %pred %pwhite %psangria
  144. red %b sings red red wine you make me feel so fine...you keep me rocking all of the time, and hands %d the glass
  145. white hey %b once i drank a lil wine and it made me oh so fine. so keep em coming %b then we can dance and party all night
  146. sangria %b says We can rub a dub or drink wine, wine, wine
  147.  
  148. munchies We have %pchips %ppretzels %peggs %ppizza %pcheeseburger
  149. chips Hey %d, betcha can't eat just one.
  150. pretzels %b places a bowl of pretzels on the bar.
  151. eggs hmmm pickled eggs and beer.. are ya sure;)
  152. pizza %b places a piping hot fully loaded pizza in front of %d enjoy %d
  153. cheeseburger %b asks...want fries with that
  154.  
  155. jukebox We play all the hits. %prock %pcountry %ppunk %pcomedy %psoul
  156. rock Sammy Hagar Sings... One shot...Hey! more tequila! Two shots...Hey! que veneno! Three shots... Ay yi yi yi yi ... Hey! Hey! Hey! Hey! Hey! Hey!
  157. country Jimmy Buffet Sings... So %b bring a pitcher, Another round of brew...Honey why don't we get drunk and screw
  158. punk Bare Naked Ladies Sings... I love you more then the week before... I discovered alcohol.
  159. comedy The Blues Brothers Sing... Hey %b Draw one, two, three, four glasses of beer
  160. soul R Kelly singing...Sex me, baby baby sex me (sex me baby) sex me sex me baby sex me
  161.  
  162. house We have %pladies %pgents %pstool %plastcall %pbar %pround %ptime %pdrunk %psingalong
  163. ladies its ladies nite %b buys all the pretty ladies a drink
  164. gents This is your lucky nite boys. Wet t-shirt contest tonight.
  165. stool well hell I was sure that stool was there a minute ago
  166. lastcall The clock on the wall says 3 o'clock... last call for alcohol... What ya need;)
  167. bar %b buys everyone on %c a drink
  168. round %d buys everyone on %c a drink
  169. time Time for another round. What'll it be boys & girls;)
  170. drunk Who %d
  171. singalong We have 99 bottles of beer on the wall, 99 bottles of beer, %b takes one down....
  172.  
  173. } ;## end beers list ##
  174.  
  175.  
  176.  
  177. ###############################################
  178. ######## Beer Channel Greet Settings ########
  179. ###############################################
  180.  
  181. ## send onjoin greeting how ?? (0 = no channel greeting) ##
  182. set beeronjoin 3 ;# 1=privatemsg 2=usernotice 3=public inchan 4=channelnotice #
  183.  
  184. ## set channels to do onjoin message in ##
  185. ## NOTE: onjoin messages only sent to Beer Channels ##
  186. # ex. {#MyChan}
  187. # ex. {#powerdrinkers #bud #weiser}
  188. # or: {*} = all Beer Channels
  189. set beerjchans {*}
  190.  
  191. ## set exempt user flags for onjoin ##
  192. # ex. b :same as b|b :exempt all global & channel bots
  193. # ex. -|mn :exempt only channel masters & owners
  194. # ex. f|* :exempt global friends and everyone with any channel flags
  195. set beerjxmpt bmno|fmn
  196.  
  197. ## OnJoin reply flood ## mostly for beeronjoin setting 1 or 2 above ##
  198. set beerjflood 4 ;## max number of joins to reply to in 10 seconds ##
  199.  
  200. #######################################
  201. #### Beer Channel Greetings Text ####
  202. #######################################
  203.  
  204. ## set the text to send for OnJoin greetings ##
  205. #### variable replacement (for both public & private greetings) ####
  206. ## %b (bot nick) :is replaced by the botnick ##
  207. ## %p (prefix) :is replaced by the command prefix setting ##
  208. ## %1 (color #1) :is replaced by color #1 from above ##
  209. ## %2 (color #2) :is replaced by color #2 from above ##
  210. ## %3 (color #3) :is replaced by color #3 from above ##
  211. ## %4 (color #4) :is replaced by color #4 from above ##
  212.  
  213.  
  214. ## set public (in channel) join message/notice # for settings 3 & 4 above ##
  215. ## note: also used after a join flood, even if set to 1 or 2 ##
  216. #### variable replacement (for public greetings) ####
  217. ## %c (channel) :is replaced by the channel joined ##
  218. ## %n (nick) :is replaced by the nick(s) that joined ##
  219. ## %j (joined) :above nicks joined with ,'s or a & ##
  220. set beerpubjoin {
  221.  
  222. [%n] Welcome to %c I'm %b. I'll be your bartender today. We have %pbeer %pcocktails %pshots %pwine %pmunchies %pjukebox %phouse
  223.  
  224. } ;## end onjoin msg ##
  225.  
  226. ## set private message/notice join text # for settings 1 & 2 above ##
  227. #### variable replacement (for private greetings) ####
  228. ## %n (nick) :is replaced by the users nick ##
  229. ## %c (channel) :is replaced by the channel(s) this nick joined ##
  230. ## %j (joined) :above channels joined with ,'s or a & ##
  231. set beerusrjoin {
  232.  
  233. [%n] Welcome to %c I'm %b. I'll be your bartender today. We have %pbeer %pcocktails %pshots %pwine %pmunchies %pjukebox %phouse
  234.  
  235. } ;## end onjoin msg ##
  236.  
  237.  
  238.  
  239. ########################################################################################
  240. ### end settings ### end settings ### end settings ### end settings ### end settings ###
  241. ### end settings ### end settings ### end settings ### end settings ### end settings ###
  242. ########################################################################################
  243.  
  244. set beerchans [split [string trim $beerchans]]
  245. set beerigmsg [string trim $beerigmsg] ; set beeropen [string trim $beeropen]
  246.  
  247. proc BrIsDig {str} { return [string is digit -strict $str] }
  248. proc BrStrLo {str} { return [string tolower $str] }
  249.  
  250. if {$beercolor1 eq "" && $beercolor2 eq "" && $beercolor3 eq "" && $beercolor4 eq ""} {
  251. array set beer {clr1 "" clr2 "" clr3 "" clr4 ""}
  252. } elseif {$beercolor1 eq $beercolor2 && $beercolor1 eq $beercolor3 && $beercolor1 eq $beercolor4} {
  253. array set beer {clr2 "" clr3 "" clr4 ""} ; set beer(clr1) $beercolor1
  254. } else {
  255. array set beer [list clr1 $beercolor1 clr2 $beercolor2 clr3 $beercolor3 clr4 $beercolor4]
  256. }
  257. unset beercolor1 beercolor2 beercolor3 beercolor4
  258.  
  259. foreach brtmp [binds DrinkNow] {
  260. foreach {brtyp brflg brnam brhit brprc} $brtmp { break }
  261. unbind $brtyp $brflg $brnam $brprc
  262. }
  263.  
  264. set beers [split [string trim $beers] "\n"] ; set newbeers ""
  265. foreach bitem $beers { set brtmp [split [string trim $bitem]]
  266. if {[llength $brtmp]>"1"} { set brtrig [lindex $brtmp 0] ; set brtxt [join [lrange $brtmp 1 end]]
  267. set brtxt [string map [list %p $beerpre] $brtxt]
  268. foreach brchan $beerchans { bind pubm $beerflags "$brchan $beerpre$brtrig*" DrinkNow }
  269. if {[string match {*%[1234]*} $brtxt]} { set brtmp ""
  270. if {![string match {%[1234]*} $brtxt]} {
  271. if {$beer(clr1) ne ""} { set brtmp $beer(clr1) }
  272. } elseif {[string index $brtxt 1]=="2"} {
  273. if {$beer(clr2) eq ""} { set brtxt [string range $brtxt 2 end] }
  274. } elseif {[string index $brtxt 1]=="3"} {
  275. if {$beer(clr3) eq ""} { set brtxt [string range $brtxt 2 end] }
  276. } elseif {[string index $brtxt 1]=="4"} {
  277. if {$beer(clr4) eq ""} { set brtxt [string range $brtxt 2 end] }
  278. } else {
  279. if {$beer(clr1) eq ""} { set brtxt [string range $brtxt 2 end] }
  280. }
  281. set brtxt [string map [list %1 $beer(clr1) %2 $beer(clr2) %3 $beer(clr3) %4 $beer(clr4)] $brtxt]
  282. } else {
  283. if {$beer(clr1) eq ""} { set brtmp "" } else { set brtmp $beer(clr1) }
  284. }
  285. lappend newbeers "$beerpre$brtrig $brtmp$brtxt"
  286. }
  287. }
  288. set beers $newbeers
  289.  
  290. if {![info exists beer(fludcnt)]} { set beer(fludcnt) 0 }
  291. if {![info exists beer(ignore)]} { set beer(ignore) 0 }
  292. if {![info exists beer(publs)]} { set beer(publs) "" }
  293.  
  294. proc ZeroFcnt {} { global beer
  295. if {$beer(ignore)=="0"} { set beer(publs) "" ; set beer(fludcnt) 0 }
  296. }
  297.  
  298. proc UnIgnore {cnt} { global beer beeropen ; incr beer(ignore) -$cnt
  299. if {$beer(ignore)=="0"} {
  300. if {$beeropen ne ""} {
  301. if {$beer(clr1) eq ""} { set brtmp "" } else { set brtmp $beer(clr1) }
  302. foreach chan $beer(publs) { puthelp "PRIVMSG $chan :$brtmp $beeropen" }
  303. }
  304. set beer(publs) "" ; set beer(fludcnt) 0
  305. }
  306. }
  307.  
  308. proc DrinkNow {nk uh hn ch tx} { global beer beers beerflood beerignore beerigmsg botnick
  309. set tx [split $tx] ; set next [lsearch -inline $beers "[lindex $tx 0] *"]
  310. if {$next ne ""} {
  311. if {$beer(fludcnt)==$beerflood} { utimer $beerignore "UnIgnore 1" ; incr beer(ignore)
  312. if {[lsearch $beer(publs) $ch]=="-1"} { lappend beer(publs) $ch }
  313. if {$beerigmsg ne ""} {
  314. if {$beer(clr1) eq ""} { set brtmp "" } else { set brtmp $beer(clr1) }
  315. foreach chan $beer(publs) { puthelp "PRIVMSG $chan :$brtmp $beerigmsg" }
  316. }
  317. } elseif {$beer(fludcnt)>$beerflood && [lsearch $beer(publs) $ch]=="-1"} { lappend beer(publs) $ch
  318. if {$beerigmsg ne ""} {
  319. if {$beer(clr1) eq ""} { set brtmp "" } else { set brtmp $beer(clr1) }
  320. puthelp "PRIVMSG $ch :$brtmp $beerigmsg"
  321. }
  322. }
  323. incr beer(fludcnt)
  324. if {$beer(ignore)>"0"} { return 0 }
  325. if {$beer(fludcnt)=="1"} { utimer 10 ZeroFcnt }
  326. if {[lsearch $beer(publs) $ch]=="-1"} { lappend beer(publs) $ch }
  327. set me $nk ; set drinker $me ; set bar $botnick
  328. if {[llength $tx]=="1"} {
  329. if {[string match *%b* $next] && [string match *%d* $next] && [string match *%m* $next]} { set err 1
  330. } elseif {[string match *%d* $next] && [string match *%m* $next]} { set me $bar }
  331. } elseif {[llength $tx]=="2"} { set drinker [lindex $tx 1]
  332. } else { set drinker "[join [lrange $tx 1 end-1]] & [lindex $tx end]" }
  333. puthelp "PRIVMSG $ch :[string map [list %d $drinker %c $ch %m $me %b $bar] [join [lrange [split $next] 1 end]]]"
  334. }
  335. }
  336.  
  337. ## beer on-join code ##
  338.  
  339. foreach brtmp [binds BeerJoin] {
  340. foreach {brtyp brflg brnam brhit brprc} $brtmp { break }
  341. unbind $brtyp $brflg $brnam $brprc
  342. }
  343.  
  344. if {![BrIsDig $beeronjoin]} { set beeronjoin 0 }
  345.  
  346. if {$beeronjoin>"0"} {
  347. if {$beerjchans eq "" || $beerjchans eq "*"} { set beerjchans $beerchans
  348. } else { set beerjchans [split [string trim $beerjchans]] ; set brtmp ""
  349. foreach bchan $beerjchans {
  350. if {$beerchans eq "*" || [lsearch [BrStrLo $beerchans] [BrStrLo $bchan]]>"-1"} {
  351. lappend brtmp $bchan }
  352. }
  353. if {$brtmp ne ""} { set beerjchans $brtmp } else { set beeronjoin 0
  354. putlog "Beer.tcl on-join message disabled. Missing/Invalid On-Join Channel(s)."
  355. }
  356. }
  357. }
  358.  
  359. if {$beeronjoin>"0"} { set brcnt 0
  360. foreach brmsg [list $beerusrjoin $beerpubjoin] { incr brcnt
  361. set brmsg [split [string trim $brmsg] "\n"] ; set newgreet ""
  362. foreach bline $brmsg { set bline [string trim $bline]
  363. if {$bline ne ""} { lappend newgreet [string map [list %p $beerpre] $bline] }
  364. }
  365. if {$brcnt=="1"} { set beerusrjoin $newgreet } else { set beerpubjoin $newgreet }
  366. }
  367. if {$beerpubjoin eq ""} { set beeronjoin 0
  368. putlog "Beer.tcl on-join message disabled. Missing a Public On-Join Message."
  369. } elseif {$beerusrjoin eq "" && $beeronjoin<"3"} {
  370. putlog "Beer.tcl on-join message set public. Missing a User On-Join Message."
  371. if {$beeronjoin=="1"} { set beeronjoin 3 } else { set beeronjoin 4 }
  372. }
  373. }
  374.  
  375. if {$beeronjoin=="0"} { unset beerusrjoin beerpubjoin beerjchans beerjflood beerjxmpt
  376. if {[info exists beer(joinls)]} {
  377. unset beer(joinls) beer(joincnt) beer(joinflud) beer(lastjmsg) beer(wasflud) }
  378. if {[info exists beer(jtimer)]} { unset beer(jtimer) }
  379. } else { set beerjxmpt [string trim $beerjxmpt]
  380. if {$beerjxmpt ne ""} {
  381. if {[string first | $beerjxmpt]=="-1"} { append beerjxmpt |$beerjxmpt }
  382. set beerjxmpt [split $beerjxmpt |]
  383. }
  384. if {$beerjxmpt eq "- -"} { set beerjxmpt "" }
  385. if {![info exists beer(joinls)]} {
  386. array set beer {joinls "" joincnt 0 joinflud 0 lastjmsg "" wasflud 0} }
  387. foreach brch $beerjchans { bind join - "$brch *" BeerJoin }
  388. #### Begin PROC BeerJoin ####
  389. proc BeerJoin {nk uh hn ch} { global beer beerjflood beerjxmpt botnick
  390. if {$beer(joincnt)==$beerjflood} { set beer(joinflud) 1 ; set beer(wasflud) 1 }
  391. incr beer(joincnt) ; set xmpt 0
  392. if {$nk eq $botnick} { set xmpt 1
  393. } elseif {$beerjxmpt ne "" && $hn ne "*"} { foreach {ng nc} $beerjxmpt { break }
  394. set flgs [split [chattr $hn $ch] |] ; foreach {hg hc} $flgs { break }
  395. if {$ng ne "-" && $ng ne ""} {
  396. if {$ng eq "*" && $hg ne "-"} { set xmpt 1
  397. } else { set patrn *\[$ng\]*
  398. if {[string match $patrn $hg]} { set xmpt 1 }
  399. }
  400. }
  401. if {$xmpt=="0" && $nc ne "-" && $nc ne ""} {
  402. if {$nc eq "*" && $hc ne "-"} { set xmpt 1
  403. } else { set patrn *\[$nc\]*
  404. if {[string match $patrn $hc]} { set xmpt 1 }
  405. }
  406. }
  407. }
  408. if {$xmpt=="0"} {
  409. if {[lsearch [BrStrLo $beer(joinls)] [BrStrLo $nk@$ch]]=="-1"} { lappend beer(joinls) $nk@$ch }
  410. if {![info exists beer(qtimer)]} { set beer(qtimer) [utimer 4 SndJmsg] }
  411. }
  412. if {![info exists beer(jtimer)]} { set beer(jtimer) [utimer 10 ZeroJcnt] }
  413. }
  414. #### End PROC BeerJoin ####
  415. #### Begin PROC ZeroJcnt ####
  416. proc ZeroJcnt {} { global beer beerjflood
  417. if {$beer(joincnt)>$beerjflood} { set beer(wasflud) 1 } else { set beer(wasflud) 0 }
  418. set beer(joincnt) 0
  419. if {$beer(wasflud)=="0"} { unset beer(jtimer)
  420. if {$beer(joinls) eq ""} { ;## if the queue has stopped running too ##
  421. if {$beer(wasflud)=="0"} { set beer(joinflud) 0 }
  422. }
  423. return 0
  424. }
  425. set beer(jtimer) [utimer 10 ZeroJcnt]
  426. }
  427. #### End PROC ZeroJcnt ####
  428. #### Begin PROC SndJmsg ####
  429. proc SndJmsg {} { global beer beeronjoin beerusrjoin beerpubjoin botnick
  430. set idx -1 ; set got 0
  431. foreach nc $beer(joinls) { incr idx
  432. foreach {nk ch} [split $nc @] { break }
  433. if {[onchan $nk $ch] && [BrStrLo $nc] ne $beer(lastjmsg)} { set got 1 ; break }
  434. }
  435. if {$got=="0"} { set beer(joinls) ""
  436. } else { set beer(lastjmsg) [BrStrLo $nc]
  437. set beer(joinls) [lreplace $beer(joinls) 0 $idx] ; set how 2
  438. if {$beer(joinflud)=="1" && $beeronjoin=="1"} { set putpre "PRIVMSG $ch :"
  439. } elseif {$beer(joinflud)=="1" && $beeronjoin=="2"} { set putpre "NOTICE $ch :"
  440. } elseif {$beeronjoin=="1"} { set putpre "PRIVMSG $nk :" ; set how 1
  441. } elseif {$beeronjoin=="2"} { set putpre "NOTICE $nk :" ; set how 1
  442. } elseif {$beeronjoin=="4"} { set putpre "NOTICE $ch :"
  443. } else { set putpre "PRIVMSG $ch :" }
  444. set brtmp "" ; set newjls ""
  445. if {$how=="1"} { lappend brtmp $ch ; set st $nk@*
  446. } else { lappend brtmp $nk ; set st *@$ch }
  447. foreach onc $beer(joinls) {
  448. if {[string match -nocase $st $onc]} {
  449. foreach {onk och} [split $onc @] { break }
  450. if {[onchan $onk $och]} {
  451. if {$how=="1"} { lappend brtmp $och } else { lappend brtmp $onk }
  452. }
  453. } else { lappend newjls $onc }
  454. }
  455. set beer(joinls) $newjls
  456. }
  457. if {$beer(joinls) eq ""} { unset beer(qtimer)
  458. if {$beer(wasflud)=="0"} { set beer(joinflud) 0 }
  459. } else { set beer(qtimer) [utimer 4 SndJmsg] }
  460. if {$got=="1"} { set norc [join $brtmp]
  461. if {[llength $brtmp]<"3"} { set brtmp [join $brtmp " & "]
  462. } else { set brtmp [join $brtmp ", "] }
  463. set maps [list %b $botnick %1 $beer(clr1) %2 $beer(clr2) %3 $beer(clr3) %4 $beer(clr4)]
  464. if {$how=="1"} { set txlns $beerusrjoin ; lappend maps %n $nk %c $norc %j $brtmp
  465. } else { set txlns $beerpubjoin ; lappend maps %n $norc %c $ch %j $brtmp }
  466. foreach txtl $txlns { puthelp "$putpre[string map $maps $txtl]" }
  467. }
  468. }
  469. #### End PROC SndJmsg ####
  470. }
  471.  
  472. putlog "beer.tcl v.1.beta1 by SpiKe^^ loaded"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement