From: Ian Jackson Date: Thu, 14 Feb 2002 19:16:53 +0000 (+0000) Subject: Improvements. X-Git-Tag: merge-2001-10-09-tell~5 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~mdw/git/ircbot/commitdiff_plain/37ad12bae5d4079ec854f36acc4b0e3b56cc6f0a Improvements. --- diff --git a/bot.tcl b/bot.tcl index b5abdda..c473ce1 100755 --- a/bot.tcl +++ b/bot.tcl @@ -1340,6 +1340,7 @@ def_ucmd untell { ucmdr "Removed $ndel as yet undelivered message(s)." {} } +def_ucmd_alias delmsgs delmsg def_ucmd delmsg { global errorInfo errorCode prefix_nick @@ -1388,7 +1389,7 @@ def_ucmd delmsg { 1 { ucmdr {} {} "deletes your $ndel message(s) from $senders." } default { ucmdr {} {} "deletes your $ndel message(s) from\ - [lreplace $senders end end] and [lindex $senders end]." + [lreplace $senders end end] and/or [lindex $senders end]." } } } @@ -1397,6 +1398,11 @@ def_ucmd tellme { prefix_nick ta_nomore check_notonchan + manyset [msgsdb_get $n tellsec] sec + switch -exact $sec { + refuse { ucmdr "But, you asked me to refuse messages for you !" {} } + mailto { ucmdr "But, you asked me to mail your messages to you !" {} } + } switch -exact [tell_event [irctolower $n] tellme] { ERROR - INVALID { ucmdr {} {is ill. Help!} } nomsgs { ucmdr {You have no messages.} {} } @@ -1720,6 +1726,7 @@ def_setting tellme { } } { set setting [string tolower [ta_word]] + set nl [irctolower $n] switch -exact $setting { insecure { tellme_setting_sec_simple @@ -1737,13 +1744,14 @@ def_setting tellme { mailto { tellme_setting_neednomsgs - if {![string length [set u [nickdb_get_username $n]]]} { + upvar #0 nick_username($nl) nu + if {!([info exists nu] && [string length $nu])} { usererror \ "Sorry, you must register securely to have your messages mailed\ (to prevent the use of this feature for spamming). See `help register'." } set sr sec - set v [list mailto [ta_word] $u] + set v [list mailto [ta_word] $nu] } unreliable - pester - remind { manyset [nickdb_get $n tellsec] sec @@ -1774,7 +1782,7 @@ def_setting tellme { } } nickdb_set $n tell$sr $v - upvar #0 nick_telling([irctolower $n]) telling + upvar #0 nick_telling($nl) telling catch { unset telling } ucmdr [tellme_${sr}_desc $v $n] {} } diff --git a/parsecmd.tcl b/parsecmd.tcl index 6c6f81d..925eed3 100644 --- a/parsecmd.tcl +++ b/parsecmd.tcl @@ -70,6 +70,10 @@ proc def_ucmd {cmdname body} { proc ucmd/$cmdname {p dest} " upvar 1 text text\n$body" } +proc def_ucmd_alias {alias canon} { + proc ucmd/$alias {p dest} " uplevel 1 \[list ucmd/$canon \$p \$dest\]\n" +} + proc ucmdr {priv pub args} { return -code return [concat [list $priv $pub] $args] }