From a1f48c0d46d01415e9e93bfd8bfdba9d52ca795e Mon Sep 17 00:00:00 2001 From: danieldg Date: Wed, 2 Sep 2009 00:48:09 +0000 Subject: Allow voice or higher users to speak even when a matching muteban exists git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11626 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/modules/m_muteban.cpp | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/modules/m_muteban.cpp b/src/modules/m_muteban.cpp index 8a3d40896..03203cfc7 100644 --- a/src/modules/m_muteban.cpp +++ b/src/modules/m_muteban.cpp @@ -36,16 +36,14 @@ class ModuleQuietBan : public Module virtual int OnUserPreMessage(User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list) { - if (!IS_LOCAL(user)) + if (!IS_LOCAL(user) || target_type != TYPE_CHANNEL) return 0; - if (target_type == TYPE_CHANNEL) + Channel* chan = static_cast(dest); + if (chan->GetExtBanStatus(user, 'm') < 0 && chan->GetStatus(user) < STATUS_VOICE) { - if (((Channel *)dest)->GetExtBanStatus(user, 'm') < 0) - { - user->WriteNumeric(404, "%s %s :Cannot send to channel (you're muted)",user->nick.c_str(), ((Channel *)dest)->name.c_str()); - return 1; - } + user->WriteNumeric(404, "%s %s :Cannot send to channel (you're muted)",user->nick.c_str(), ((Channel *)dest)->name.c_str()); + return 1; } return 0; @@ -53,19 +51,7 @@ class ModuleQuietBan : public Module virtual int OnUserPreNotice(User *user, void *dest, int target_type, std::string &text, char status, CUList &exempt_list) { - if (!IS_LOCAL(user)) - return 0; - - if (target_type == TYPE_CHANNEL) - { - if (((Channel *)dest)->GetExtBanStatus(user, 'm') < 0) - { - user->WriteNumeric(404, "%s %s :Cannot send to channel (you're muted)",user->nick.c_str(), ((Channel *)dest)->name.c_str()); - return 1; - } - } - - return 0; + return OnUserPreMessage(user, dest, target_type, text, status, exempt_list); } virtual void On005Numeric(std::string &output) -- cgit v1.2.3