Posted to tcl by mjanssen at Thu Aug 09 19:06:09 GMT 2007view raw

  1. proc pub:join {hand chan args x mix} {
  2. global settings
  3.  
  4. if { [validchan $chan]} {a:tell $x 174 $chan ; return "FAILED: invalid chan specified ($chan)" }
  5. if { [llength [channels]] >= $settings(max_chans) } {a:tell $x 80; return "FAILED: channels limit reached" }
  6. if {![llength [lindex $args 0]]} {a:tell $x 305; return "USAGE: !join <$channel> <$manager>"}
  7. ::stats::channel -add $chan {}
  8. ::stats::channel -set $chan jointime [unixtime]
  9. ::stats::channel -set $chan joinwhom $hand
  10. a:announce -home 173 "$hand [lindex $x 0] [lindex $mix 0] $chan"
  11.  
  12. # wait with check until we have joined
  13. utimer 10 [list on_chan $hand $chan $args $x $mix]
  14.  
  15. return "$chan"
  16. }
  17.  
  18. proc on_chan {hand chan args x mix} {
  19.  
  20. if {![onchan [lindex $args 0] $chan]} {
  21. putserv "PRIVMSG $chan :someone"
  22. return
  23. }
  24.  
  25. pub:chattr $hand $chan "[lindex $args 0] +Nnf" $x $mix
  26. a:announce -home 1735 "[lindex $args 0] $chan"
  27.  
  28. channel add $chan +secure
  29. pub:save
  30. }