Что делает:
- Автоматически разбивает длинный текст на 2 сообщения (но не более, чтобы не спамил слишком много)
- Автоматически очищает очередь сообщений если бота слишком заспамили
- Добавляет в логи канала то что говорит бот
Что можно поменять:
- У меня установлен канал по умолчанию в переменной $def(chan). Можете сделать её, или просто заменить своим каналом
- Убрать запись в логи
- Поменять тип вывода команд (у меня сделано через /me)
- Поменять очередь команд (вместо putquick поставить puthelp/putserv)
Как пользоваться:
- Просто сказать что-то на канал по умолчанию: <say "Hello">
- Сказать в приват юзеру: <say "Hello" "priv $nick">
- Сказать нотайсом: <say "Hello" "notc $nick">
- Сказать на другом канале: <say "Hello" "#channel2">
proc say {mes {type "chan"}} {
global botnick def
set chan $def(chan)
if {[queuesize mode] >= 10} then {clearqueue all}
if {[string first "#" $type] == 0} {
set chan $type
set type "chan"
}
if {$type == "chan"} then {
if {[string length $mes] > 380} {
putquick "PRIVMSG $chan :\001ACTION [string range $mes 0 379]"
putquick "PRIVMSG $chan :\001ACTION [string range $mes 380 end]"
} else {
putquick "PRIVMSG $chan :\001ACTION $mes"
}
putloglev p $chan "Action: $botnick $mes"
} elseif {[lindex $type 0] == "priv"} {
putquick "PRIVMSG [lindex $type 1] :\001ACTION $mes"
} elseif {[lindex $type 0] == "notc"} {
putquick "NOTICE [lindex $type 1] :$mes"
}
return true
}
global botnick def
set chan $def(chan)
if {[queuesize mode] >= 10} then {clearqueue all}
if {[string first "#" $type] == 0} {
set chan $type
set type "chan"
}
if {$type == "chan"} then {
if {[string length $mes] > 380} {
putquick "PRIVMSG $chan :\001ACTION [string range $mes 0 379]"
putquick "PRIVMSG $chan :\001ACTION [string range $mes 380 end]"
} else {
putquick "PRIVMSG $chan :\001ACTION $mes"
}
putloglev p $chan "Action: $botnick $mes"
} elseif {[lindex $type 0] == "priv"} {
putquick "PRIVMSG [lindex $type 1] :\001ACTION $mes"
} elseif {[lindex $type 0] == "notc"} {
putquick "NOTICE [lindex $type 1] :$mes"
}
return true
}