From f1426e7c160589e63a52f3387bf2b4d28afa92d4 Mon Sep 17 00:00:00 2001 From: w00t Date: Thu, 7 Aug 2008 16:10:06 +0000 Subject: Rethink that. Remove noinvite since it's essentially useless now, so we have chmode +A to allow everyone to invite and extban A to block invite from specific users. git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@10118 e03df62e-2008-0410-955e-edbf42e46eb7 --- conf/modules.conf.example | 9 +++--- src/modules/m_allowinvite.cpp | 2 +- src/modules/m_noinvite.cpp | 74 ------------------------------------------- 3 files changed, 6 insertions(+), 79 deletions(-) delete mode 100644 src/modules/m_noinvite.cpp diff --git a/conf/modules.conf.example b/conf/modules.conf.example index 2d44ffbe7..2e9fe5bcb 100644 --- a/conf/modules.conf.example +++ b/conf/modules.conf.example @@ -156,6 +156,11 @@ # +#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# +# Allowinvite module: Gives channel mode +A to allow all users to use +# /invite, and extban A to deny invite from specific masks +# + #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # Alltime module: Shows time on all connected servers at once # @@ -883,10 +888,6 @@ # No ctcp module: Adds the channel mode +C to block CTCPs # -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# -# Noinvite module: Gives channel mode +V -# - #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-# # No kicks module: Adds the +Q channel mode # diff --git a/src/modules/m_allowinvite.cpp b/src/modules/m_allowinvite.cpp index f137598e2..fcd8130bc 100644 --- a/src/modules/m_allowinvite.cpp +++ b/src/modules/m_allowinvite.cpp @@ -44,7 +44,7 @@ class ModuleAllowInvite : public Module { if (IS_LOCAL(user)) { - if (channel->IsModeSet('A') || channel->IsExtBanned(user, 'A')) + if (channel->IsModeSet('A') && !channel->IsExtBanned(user, 'A')) { // Explicitly allow /invite return -1; diff --git a/src/modules/m_noinvite.cpp b/src/modules/m_noinvite.cpp deleted file mode 100644 index f3ded767e..000000000 --- a/src/modules/m_noinvite.cpp +++ /dev/null @@ -1,74 +0,0 @@ -/* +------------------------------------+ - * | Inspire Internet Relay Chat Daemon | - * +------------------------------------+ - * - * InspIRCd: (C) 2002-2008 InspIRCd Development Team - * See: http://www.inspircd.org/wiki/index.php/Credits - * - * This program is free but copyrighted software; see - * the file COPYING for details. - * - * --------------------------------------------------- - */ - -#include "inspircd.h" - -/* $ModDesc: Provides support for unreal-style channel mode +V */ - -class NoInvite : public SimpleChannelModeHandler -{ - public: - NoInvite(InspIRCd* Instance) : SimpleChannelModeHandler(Instance, 'V') { } -}; - -class ModuleNoInvite : public Module -{ - NoInvite *ni; - public: - - ModuleNoInvite(InspIRCd* Me) : Module(Me) - { - ni = new NoInvite(ServerInstance); - if (!ServerInstance->Modes->AddMode(ni)) - throw ModuleException("Could not add new modes!"); - Implementation eventlist[] = { I_OnUserPreInvite, I_On005Numeric }; - ServerInstance->Modules->Attach(eventlist, this, 2); - } - - virtual void On005Numeric(std::string &output) - { - ServerInstance->AddExtBanChar('V'); - } - - virtual int OnUserPreInvite(User* user,User* dest,Channel* channel, time_t timeout) - { - if (IS_LOCAL(user)) - { - if (CHANOPS_EXEMPT(ServerInstance, 'V') && channel->GetStatus(user) == STATUS_OP) - { - return 0; - } - - if (channel->IsModeSet('V') || channel->IsExtBanned(user, 'V')) - { - user->WriteNumeric(ERR_NOCTCPALLOWED, "%s %s :Can't invite %s to channel (+V set)",user->nick.c_str(), channel->name.c_str(), dest->nick.c_str()); - return 1; - } - } - - return 0; - } - - virtual ~ModuleNoInvite() - { - ServerInstance->Modes->DelMode(ni); - delete ni; - } - - virtual Version GetVersion() - { - return Version(1,2,0,0,VF_COMMON|VF_VENDOR,API_VERSION); - } -}; - -MODULE_INIT(ModuleNoInvite) -- cgit v1.2.3