chiark / gitweb /
Bot is operator and can do kill
[ircbot] / bot.tcl
diff --git a/bot.tcl b/bot.tcl
index 46855813f92fc4e0c27271a0aed98a0c90b9d4d0..06902abd2d64400db8bb38675f32cc6fe1dbca1c 100755 (executable)
--- a/bot.tcl
+++ b/bot.tcl
@@ -1198,6 +1198,23 @@ def_ucmd identpass {
     ucmdr "Pleased to see you, $username." {}
 }
 
+def_ucmd kill {
+    global nick
+    prefix_nick
+    set target [ta_nick]
+    if {![nickdb_exists $target]} { error "$target is not a registered nick." }
+    set wantu [nickdb_get $target username]
+    if {![string length $wantu]} { error "$target is insecurely registred." }
+    upvar #0 nick_username([irctolower $n]) nu
+    if {![info exists nu]} { error "You must identify yourself first." }
+    if {"$wantu" != "$nu"} {
+       error "You are the wrong user, $nu - $target belongs to $wantu."
+    }
+    set reason "at request of user $nu"
+    if {[ta_anymore]} { append reason "; $text" }
+    sendout KILL $target $reason
+}
+
 def_ucmd summon {
     set target [ta_word]
     ta_nomore
@@ -1369,6 +1386,10 @@ proc ensure_globalsecret {} {
 }
 
 proc connected {} {
+    global operuserpass
+    if {[info exists operuserpass]} {
+       eval sendout OPER $operuserpass
+    }
     foreach chan [chandb_list] {
        if {[chandb_get $chan autojoin]} { dojoin $chan }
     }