mirror of
https://github.com/inspircd/inspircd.git
synced 2025-03-09 18:49:03 -04:00
Change SWHOIS to OPTCOMMON, remove m_operinvex
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11789 e03df62e-2008-0410-955e-edbf42e46eb7
This commit is contained in:
parent
18aae91d93
commit
6d715e128f
@ -995,7 +995,7 @@ Note that all /STATS use is broadcast to online IRC operators.">
|
||||
nonicks module).
|
||||
O:opertype Prevents IRCops of the specified opertype from joining
|
||||
the channel, mostly useful as an invite exception (IRCop
|
||||
only, requires operinvex module).
|
||||
only, requires operchans module).
|
||||
Q:n!u@h Blocks kicks by matching users (requires nokicks
|
||||
module).
|
||||
R:account Prevents users logged into a matching account from
|
||||
|
@ -271,7 +271,7 @@ help channel if you have any questions.">
|
||||
nonicks module).
|
||||
O:opertype Prevents IRCops of the specified opertype from joining
|
||||
the channel, mostly useful as an invite exception (IRCop
|
||||
only, requires operinvex module).
|
||||
only, requires operchans module).
|
||||
Q:n!u@h Blocks kicks by matching users (requires nokicks
|
||||
module).
|
||||
R:account Prevents users logged into a matching account from
|
||||
|
@ -1103,19 +1103,13 @@
|
||||
|
||||
|
||||
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||
# Oper channels mode: Adds the +O channel mode
|
||||
# This module is oper-only.
|
||||
#<module name="m_operchans.so">
|
||||
|
||||
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||
# Oper invex/extban module: Adds +beI type O, to ban, exempt, and invex
|
||||
# given oper type masks.
|
||||
# Oper channels mode: Adds the +O channel mode and +beI type O:<mask>
|
||||
# to ban, exempt, and invex given oper type masks.
|
||||
# e.g, /mode #channel +iI O:* is equivilant to chmode +O, but you
|
||||
# may also, e.g. /mode #channel +iI O:AdminTypeOnly to only allow admins.
|
||||
# +be work in a similar fashion.
|
||||
# This module is oper-only.
|
||||
#
|
||||
#<module name="m_operinvex.so">
|
||||
#<module name="m_operchans.so">
|
||||
|
||||
#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
|
||||
# Oper Join module: Auto-joins opers to a channel upon oper-up
|
||||
|
@ -48,12 +48,12 @@ class ModuleOperChans : public Module
|
||||
{
|
||||
OperChans oc;
|
||||
public:
|
||||
ModuleOperChans()
|
||||
: oc(this)
|
||||
ModuleOperChans() : oc(this)
|
||||
{
|
||||
if (!ServerInstance->Modes->AddMode(&oc))
|
||||
throw ModuleException("Could not add new modes!");
|
||||
ServerInstance->Modules->Attach(I_OnUserPreJoin, this);
|
||||
Implementation eventlist[] = { I_OnCheckBan, I_On005Numeric, I_OnUserPreJoin };
|
||||
ServerInstance->Modules->Attach(eventlist, this, 3);
|
||||
}
|
||||
|
||||
ModResult OnUserPreJoin(User* user, Channel* chan, const char* cname, std::string &privs, const std::string &keygiven)
|
||||
@ -67,6 +67,21 @@ class ModuleOperChans : public Module
|
||||
return MOD_RES_PASSTHRU;
|
||||
}
|
||||
|
||||
ModResult OnCheckBan(User *user, Channel *c, const std::string& mask)
|
||||
{
|
||||
if (mask[0] == 'O' && mask[1] == ':')
|
||||
{
|
||||
if (IS_OPER(user) && InspIRCd::Match(user->oper, mask.substr(2)))
|
||||
return MOD_RES_DENY;
|
||||
}
|
||||
return MOD_RES_PASSTHRU;
|
||||
}
|
||||
|
||||
void On005Numeric(std::string &output)
|
||||
{
|
||||
ServerInstance->AddExtBanChar('O');
|
||||
}
|
||||
|
||||
~ModuleOperChans()
|
||||
{
|
||||
ServerInstance->Modes->DelMode(&oc);
|
||||
@ -74,7 +89,7 @@ class ModuleOperChans : public Module
|
||||
|
||||
Version GetVersion()
|
||||
{
|
||||
return Version("Provides support for oper-only chans via the +O channel mode", VF_VENDOR | VF_COMMON, API_VERSION);
|
||||
return Version("Provides support for oper-only chans via the +O channel mode and 'O' extban", VF_VENDOR | VF_COMMON, API_VERSION);
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -1,57 +0,0 @@
|
||||
/* +------------------------------------+
|
||||
* | Inspire Internet Relay Chat Daemon |
|
||||
* +------------------------------------+
|
||||
*
|
||||
* InspIRCd: (C) 2002-2009 InspIRCd Development Team
|
||||
* See: http://wiki.inspircd.org/Credits
|
||||
*
|
||||
* This program is free but copyrighted software; see
|
||||
* the file COPYING for details.
|
||||
*
|
||||
* ---------------------------------------------------
|
||||
*/
|
||||
|
||||
#include "inspircd.h"
|
||||
#include "u_listmode.h"
|
||||
|
||||
/* $ModDep: ../../include/u_listmode.h */
|
||||
|
||||
/* $ModDesc: Implements extban/invex +I O: - opertype bans */
|
||||
|
||||
class ModuleOperInvex : public Module
|
||||
{
|
||||
private:
|
||||
public:
|
||||
ModuleOperInvex() {
|
||||
Implementation eventlist[] = { I_OnCheckBan, I_On005Numeric };
|
||||
ServerInstance->Modules->Attach(eventlist, this, 2);
|
||||
}
|
||||
|
||||
~ModuleOperInvex()
|
||||
{
|
||||
}
|
||||
|
||||
Version GetVersion()
|
||||
{
|
||||
return Version("ExtBan 'O' - oper type ban", VF_COMMON|VF_VENDOR);
|
||||
}
|
||||
|
||||
ModResult OnCheckBan(User *user, Channel *c, const std::string& mask)
|
||||
{
|
||||
if (mask[0] == 'O' && mask[1] == ':')
|
||||
{
|
||||
if (IS_OPER(user) && InspIRCd::Match(user->oper, mask.substr(2)))
|
||||
return MOD_RES_DENY;
|
||||
}
|
||||
return MOD_RES_PASSTHRU;
|
||||
}
|
||||
|
||||
virtual void On005Numeric(std::string &output)
|
||||
{
|
||||
ServerInstance->AddExtBanChar('O');
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
MODULE_INIT(ModuleOperInvex)
|
||||
|
@ -25,6 +25,7 @@ static const char* const forge_common_1201[] = {
|
||||
"m_sapart.so",
|
||||
"m_saquit.so",
|
||||
"m_setident.so",
|
||||
"m_swhois.so",
|
||||
};
|
||||
|
||||
static std::string wide_newline("\r\n");
|
||||
@ -40,6 +41,9 @@ void TreeSocket::CompatAddModules(std::vector<std::string>& modlist)
|
||||
if (ServerInstance->Modules->Find(forge_common_1201[i]))
|
||||
modlist.push_back(forge_common_1201[i]);
|
||||
}
|
||||
// module was merged
|
||||
if (ServerInstance->Modules->Find("m_operchans.so"))
|
||||
modlist.push_back("m_operinvex.so");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ class ModuleSWhois : public Module
|
||||
|
||||
Version GetVersion()
|
||||
{
|
||||
return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_COMMON | VF_VENDOR, API_VERSION);
|
||||
return Version("Provides the SWHOIS command which allows setting of arbitary WHOIS lines", VF_OPTCOMMON | VF_VENDOR, API_VERSION);
|
||||
}
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user