From ae8854cbc87e6146ec667f28d08a5a5e21e64010 Mon Sep 17 00:00:00 2001 From: Teh PeGaSuS Date: Sun, 1 Mar 2026 23:41:26 +0100 Subject: [PATCH] Update Chanban/chanban.tcl Protect bot/chan ops from commands --- Chanban/chanban.tcl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/Chanban/chanban.tcl b/Chanban/chanban.tcl index c3d1fb3..de090c4 100644 --- a/Chanban/chanban.tcl +++ b/Chanban/chanban.tcl @@ -106,6 +106,7 @@ namespace eval cmgmt { # Auto add bans # ---------- proc abans {nick uhost hand chan mode target} { + # putlog "DEBUG autobans: nick=$nick chan=$chan mode=$mode target=$target" set hostmask [maskhost ${nick}![getchanhost $nick $chan] $::cmgmt::noAddType] set banReason "$::cmgmt::banReason \(auto-added\)" @@ -128,6 +129,7 @@ namespace eval cmgmt { } proc rbans {nick uhost hand chan mode target} { + # putlog "DEBUG autobans: nick=$nick chan=$chan mode=$mode target=$target" if {![channel get $chan addBans]} { return 0 } @@ -151,6 +153,7 @@ namespace eval cmgmt { # and make them sticky so the bot doesn't remove them bind cron * "*/5 * * * *" ::cmgmt::addextbans proc addextbans {minute hour day month weekday} { + # putlog "Adding existing extbans to banlist" foreach chan [channels] { foreach cban [chanbans $chan] { set mask [lindex [split $cban] 0] @@ -189,6 +192,11 @@ namespace eval cmgmt { return 0 } + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "NOTICE $nick :You can't use this command on $target." + return 0 + } + set bhost [string trim [getchanhost $target $chan] ~] if {[matchstr "uid*" $bhost] || [matchstr "sid*" $bhost]} { @@ -228,6 +236,11 @@ namespace eval cmgmt { return 0 } + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "NOTICE $nick :You can't use this command on $target." + return 0 + } + set bhost [string trim [getchanhost $target $chan] ~] if {[matchstr "uid*" $bhost] || [matchstr "sid*" $bhost]} { @@ -267,6 +280,11 @@ namespace eval cmgmt { return 0 } + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "NOTICE $nick :You can't use this command on $target." + return 0 + } + putkick $chan $target $::cmgmt::kickReason return 0 } @@ -452,6 +470,11 @@ namespace eval cmgmt { return 0 } + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "PRIVMSG $nick :You can't use this command on $target." + return 0 + } + set bhost [string trim [getchanhost $target $chan] ~] if {[matchstr "uid*" $bhost] || [matchstr "sid*" $bhost]} { @@ -503,6 +526,11 @@ namespace eval cmgmt { return 0 } + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "PRIVMSG $nick :You can't use this command on $target." + return 0 + } + set bhost [string trim [getchanhost $target $chan] ~] if {[matchstr "uid*" $bhost] || [matchstr "sid*" $bhost]} { @@ -553,6 +581,11 @@ namespace eval cmgmt { putkick $chan $nick $::cmgmt::revengeKick return 0 } + + if {[isop $target $chan] || [matchattr [nick2hand $target] o|o $chan]} { + putserv "PRIVMSG $nick :You can't use this command on $target." + return 0 + } putkick $chan $target $::cmgmt::kickReason return 0 }