summaryrefslogtreecommitdiff
path: root/modules/pseudoclients
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-04-20 14:35:14 -0400
committerAdam <Adam@anope.org>2014-04-20 14:35:14 -0400
commit26ac315192e0d8a04d50e910697ab794eedf0cc1 (patch)
treeb9916f14fe35ce5c4de95c4194ca4ea0cb30812f /modules/pseudoclients
parent0b6476f06ff9ce06545c421143c7d7163c750aa5 (diff)
New event system
Diffstat (limited to 'modules/pseudoclients')
-rw-r--r--modules/pseudoclients/botserv.cpp24
-rw-r--r--modules/pseudoclients/chanserv.cpp70
-rw-r--r--modules/pseudoclients/global.cpp23
-rw-r--r--modules/pseudoclients/hostserv.cpp18
-rw-r--r--modules/pseudoclients/memoserv.cpp34
-rw-r--r--modules/pseudoclients/nickserv.cpp68
-rw-r--r--modules/pseudoclients/operserv.cpp54
7 files changed, 244 insertions, 47 deletions
diff --git a/modules/pseudoclients/botserv.cpp b/modules/pseudoclients/botserv.cpp
index cd09ed227..dbaf7b8d2 100644
--- a/modules/pseudoclients/botserv.cpp
+++ b/modules/pseudoclients/botserv.cpp
@@ -10,15 +10,35 @@
*/
#include "module.h"
+#include "modules/help.h"
class BotServCore : public Module
+ , public EventHook<Event::SetCorrectModes>
+ , public EventHook<Event::BotAssign>
+ , public EventHook<Event::JoinChannel>
+ , public EventHook<Event::LeaveChannel>
+ , public EventHook<Event::Help>
+ , public EventHook<Event::ChannelModeSet>
+ , public EventHook<Event::CreateChan>
+ , public EventHook<Event::UserKicked>
+ , public EventHook<Event::CreateBot>
{
Reference<BotInfo> BotServ;
ExtensibleRef<bool> persist, inhabit;
public:
- BotServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- persist("PERSIST"), inhabit("inhabit")
+ BotServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , EventHook<Event::SetCorrectModes>("OnSetCorrectModes")
+ , EventHook<Event::BotAssign>("OnBotAssign")
+ , EventHook<Event::JoinChannel>("OnJoinChannel")
+ , EventHook<Event::LeaveChannel>("OnLeaveChannel")
+ , EventHook<Event::Help>("Help")
+ , EventHook<Event::ChannelModeSet>("OnChannelModeSet")
+ , EventHook<Event::CreateChan>("OnCreateChan")
+ , EventHook<Event::UserKicked>("OnUserKicked")
+ , EventHook<Event::CreateBot>("OnCreateBot")
+ , persist("PERSIST")
+ , inhabit("inhabit")
{
}
diff --git a/modules/pseudoclients/chanserv.cpp b/modules/pseudoclients/chanserv.cpp
index 1d6e1090c..7c607e251 100644
--- a/modules/pseudoclients/chanserv.cpp
+++ b/modules/pseudoclients/chanserv.cpp
@@ -11,18 +11,66 @@
#include "module.h"
#include "modules/cs_mode.h"
-
-class ChanServCore : public Module, public ChanServService
+#include "modules/help.h"
+#include "modules/bs_bot.h"
+#include "modules/chanserv.h"
+#include "modules/cs_info.h"
+
+class ChanServCore : public Module
+ , public ChanServ::ChanServService
+ , public EventHook<Event::BotDelete>
+ , public EventHook<Event::BotPrivmsg>
+ , public EventHook<Event::DelCore>
+ , public EventHook<Event::DelChan>
+ , public EventHook<Event::Help>
+ , public EventHook<Event::CheckModes>
+ , public EventHook<Event::CreateChan>
+ , public EventHook<Event::CanSet>
+ , public EventHook<Event::ChannelSync>
+ , public EventHook<Event::Log>
+ , public EventHook<Event::ExpireTick>
+ , public EventHook<Event::CheckDelete>
+ , public EventHook<Event::PreUplinkSync>
+ , public EventHook<Event::ChanRegistered>
+ , public EventHook<Event::JoinChannel>
+ , public EventHook<Event::ChannelModeSet>
+ , public EventHook<Event::ChanInfo>
+ , public EventHook<Event::SetCorrectModes>
{
Reference<BotInfo> ChanServ;
std::vector<Anope::string> defaults;
ExtensibleItem<bool> inhabit;
ExtensibleRef<bool> persist;
bool always_lower;
+ EventHandlers<ChanServ::Event::PreChanExpire> OnPreChanExpire;
+ EventHandlers<ChanServ::Event::ChanExpire> OnChanExpire;
public:
- ChanServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- ChanServService(this), inhabit(this, "inhabit"), persist("PERSIST"), always_lower(false)
+ ChanServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , ChanServService(this)
+ , EventHook<Event::BotDelete>("OnBotDelete")
+ , EventHook<Event::BotPrivmsg>("OnBotPrivmsg")
+ , EventHook<Event::DelCore>("OnDelCore")
+ , EventHook<Event::DelChan>("OnDelChan")
+ , EventHook<Event::Help>("OnHelp")
+ , EventHook<Event::CheckModes>("OnCheckModes")
+ , EventHook<Event::CreateChan>("OnCreateChan")
+ , EventHook<Event::CanSet>("OnCanSet")
+ , EventHook<Event::ChannelSync>("OnChannelSync")
+ , EventHook<Event::Log>("OnLog")
+ , EventHook<Event::ExpireTick>("OnExpireTick")
+ , EventHook<Event::CheckDelete>("OnCheckDelete")
+ , EventHook<Event::PreUplinkSync>("OnPreUplinkSync")
+ , EventHook<Event::ChanRegistered>("OnChanRegistered")
+ , EventHook<Event::JoinChannel>("OnJoinChannel")
+ , EventHook<Event::ChannelModeSet>("OnChannelModeSet")
+ , EventHook<Event::ChanInfo>("OnChanInfo")
+ , EventHook<Event::SetCorrectModes>("OnSetCorrectModes")
+ , inhabit(this, "inhabit")
+ , persist("PERSIST")
+ , always_lower(false)
+ , OnPreChanExpire(this, "OnPreChanExpire")
+ , OnChanExpire(this, "OnChanExpire")
{
}
@@ -167,13 +215,13 @@ class ChanServCore : public Module, public ChanServService
if (newowner)
{
- Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Transferring foundership of " << ci->name << " from deleted nick " << nc->display << " to " << newowner->display;
+ ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Transferring foundership of " << ci->name << " from deleted nick " << nc->display << " to " << newowner->display;
ci->SetFounder(newowner);
ci->SetSuccessor(NULL);
}
else
{
- Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Deleting channel " << ci->name << " owned by deleted nick " << nc->display;
+ ::Log(LOG_NORMAL, "chanserv/drop", ChanServ) << "Deleting channel " << ci->name << " owned by deleted nick " << nc->display;
delete ci;
continue;
@@ -318,7 +366,7 @@ class ChanServCore : public Module, public ChanServService
}
}
- void OnLog(Log *l) override
+ void OnLog(::Log *l) override
{
if (l->type == LOG_CHANNEL)
l->bi = ChanServ;
@@ -351,12 +399,12 @@ class ChanServCore : public Module, public ChanServService
expire = true;
}
- FOREACH_MOD(OnPreChanExpire, (ci, expire));
+ this->OnPreChanExpire(&ChanServ::Event::PreChanExpire::OnPreChanExpire, ci, expire);
if (expire)
{
- Log(LOG_NORMAL, "chanserv/expire", ChanServ) << "Expiring channel " << ci->name << " (founder: " << (ci->GetFounder() ? ci->GetFounder()->display : "(none)") << ")";
- FOREACH_MOD(OnChanExpire, (ci));
+ ::Log(LOG_NORMAL, "chanserv/expire", ChanServ) << "Expiring channel " << ci->name << " (founder: " << (ci->GetFounder() ? ci->GetFounder()->display : "(none)") << ")";
+ this->OnChanExpire(&ChanServ::Event::ChanExpire::OnChanExpire, ci);
delete ci;
}
}
@@ -425,7 +473,7 @@ class ChanServCore : public Module, public ChanServService
{
if (always_lower && c->ci && c->creation_time > c->ci->time_registered)
{
- Log(LOG_DEBUG) << "Changing TS of " << c->name << " from " << c->creation_time << " to " << c->ci->time_registered;
+ ::Log(LOG_DEBUG) << "Changing TS of " << c->name << " from " << c->creation_time << " to " << c->ci->time_registered;
c->creation_time = c->ci->time_registered;
IRCD->SendChannel(c);
c->Reset();
diff --git a/modules/pseudoclients/global.cpp b/modules/pseudoclients/global.cpp
index fe15a3ef9..e7577db47 100644
--- a/modules/pseudoclients/global.cpp
+++ b/modules/pseudoclients/global.cpp
@@ -10,8 +10,15 @@
*/
#include "module.h"
-
-class GlobalCore : public Module, public GlobalService
+#include "modules/help.h"
+#include "modules/global.h"
+
+class GlobalCore : public Module
+ , public Global::GlobalService
+ , public EventHook<Event::Restart>
+ , public EventHook<Event::Shutdown>
+ , public EventHook<Event::NewServer>
+ , public EventHook<Event::Help>
{
Reference<BotInfo> Global;
@@ -24,8 +31,12 @@ class GlobalCore : public Module, public GlobalService
}
public:
- GlobalCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- GlobalService(this)
+ GlobalCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , GlobalService(this)
+ , EventHook<Event::Restart>("OnRestart")
+ , EventHook<Event::Shutdown>("OnShutdown")
+ , EventHook<Event::NewServer>("OnNewServer")
+ , EventHook<Event::Help>("OnHelp")
{
}
@@ -90,6 +101,10 @@ class GlobalCore : public Module, public GlobalService
source.Reply(_("%s commands:"), Global->nick.c_str());
return EVENT_CONTINUE;
}
+
+ void OnPostHelp(CommandSource &source, const std::vector<Anope::string> &params) override
+ {
+ }
};
MODULE_INIT(GlobalCore)
diff --git a/modules/pseudoclients/hostserv.cpp b/modules/pseudoclients/hostserv.cpp
index 9d9130fa6..373275e59 100644
--- a/modules/pseudoclients/hostserv.cpp
+++ b/modules/pseudoclients/hostserv.cpp
@@ -10,12 +10,26 @@
*/
#include "module.h"
+#include "modules/ns_update.h"
+#include "modules/hs_del.h"
+#include "modules/help.h"
class HostServCore : public Module
+ , public EventHook<Event::UserLogin>
+ , public EventHook<Event::NickUpdate>
+ , public EventHook<Event::Help>
+ , public EventHook<Event::SetVhost>
+ , public EventHook<Event::DeleteVhost>
{
Reference<BotInfo> HostServ;
+
public:
HostServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , EventHook<Event::UserLogin>("OnUserLogin")
+ , EventHook<Event::NickUpdate>("OnNickUpdate")
+ , EventHook<Event::Help>("OnHelp")
+ , EventHook<Event::SetVhost>("OnSetVhost")
+ , EventHook<Event::DeleteVhost>("OnDeleteVhost")
{
if (!IRCD || !IRCD->CanSetVHost)
throw ModuleException("Your IRCd does not support vhosts");
@@ -79,6 +93,10 @@ class HostServCore : public Module
return EVENT_CONTINUE;
}
+ void OnPostHelp(CommandSource &source, const std::vector<Anope::string> &params) override
+ {
+ }
+
void OnSetVhost(NickAlias *na) override
{
if (Config->GetModule(this)->Get<bool>("activate_on_set"))
diff --git a/modules/pseudoclients/memoserv.cpp b/modules/pseudoclients/memoserv.cpp
index 71f5e64d0..c9b11d294 100644
--- a/modules/pseudoclients/memoserv.cpp
+++ b/modules/pseudoclients/memoserv.cpp
@@ -10,10 +10,24 @@
*/
#include "module.h"
-
-class MemoServCore : public Module, public MemoServService
+#include "modules/ns_update.h"
+#include "modules/help.h"
+#include "modules/bs_bot.h"
+#include "modules/memoserv.h"
+
+class MemoServCore : public Module, public MemoServ::MemoServService
+ , public EventHook<Event::NickCoreCreate>
+ , public EventHook<Event::CreateChan>
+ , public EventHook<Event::BotDelete>
+ , public EventHook<Event::NickIdentify>
+ , public EventHook<Event::JoinChannel>
+ , public EventHook<Event::UserAway>
+ , public EventHook<Event::NickUpdate>
+ , public EventHook<Event::Help>
{
Reference<BotInfo> MemoServ;
+ EventHandlers<MemoServ::Event::MemoSend> onmemosend;
+ EventHandlers<MemoServ::Event::MemoDel> onmemodel;
bool SendMemoMail(NickCore *nc, MemoInfo *mi, Memo *m)
{
@@ -36,8 +50,18 @@ class MemoServCore : public Module, public MemoServService
}
public:
- MemoServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- MemoServService(this)
+ MemoServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , MemoServ::MemoServService(this)
+ , EventHook<Event::NickCoreCreate>("OnNickCoreCreate")
+ , EventHook<Event::CreateChan>("OnCreateChan")
+ , EventHook<Event::BotDelete>("OnBotDelete")
+ , EventHook<Event::NickIdentify>("OnNickIdentify")
+ , EventHook<Event::JoinChannel>("OnJoinChannel")
+ , EventHook<Event::UserAway>("OnUserAway")
+ , EventHook<Event::NickUpdate>("OnNickUpdate")
+ , EventHook<Event::Help>("OnHelp")
+ , onmemosend(this, "OnMemoSend")
+ , onmemodel(this, "OnMemoDel")
{
}
@@ -74,7 +98,7 @@ class MemoServCore : public Module, public MemoServService
m->text = message;
m->unread = true;
- FOREACH_MOD(OnMemoSend, (source, target, mi, m));
+ this->onmemosend(&MemoServ::Event::MemoSend::OnMemoSend, source, target, mi, m);
if (ischan)
{
diff --git a/modules/pseudoclients/nickserv.cpp b/modules/pseudoclients/nickserv.cpp
index d8b55a9d5..f29b1aa02 100644
--- a/modules/pseudoclients/nickserv.cpp
+++ b/modules/pseudoclients/nickserv.cpp
@@ -10,18 +10,23 @@
*/
#include "module.h"
+#include "modules/ns_info.h"
+#include "modules/ns_group.h"
+#include "modules/ns_update.h"
+#include "modules/help.h"
+#include "modules/nickserv.h"
/** Timer for colliding nicks to force people off of nicknames
*/
class NickServCollide : public Timer
{
- NickServService *service;
+ NickServ::NickServService *service;
Reference<User> u;
time_t ts;
Reference<NickAlias> na;
public:
- NickServCollide(NickServService *nss, User *user, NickAlias *nick, time_t delay) : Timer(delay), service(nss), u(user), ts(user->timestamp), na(nick)
+ NickServCollide(NickServ::NickServService *nss, User *user, NickAlias *nick, time_t delay) : Timer(delay), service(nss), u(user), ts(user->timestamp), na(nick)
{
}
@@ -91,11 +96,32 @@ class NickServRelease : public User, public Timer
void Tick(time_t t) override { }
};
-class NickServCore : public Module, public NickServService
+class NickServCore : public Module, public NickServ::NickServService
+ , public EventHook<Event::Shutdown>
+ , public EventHook<Event::Restart>
+ , public EventHook<Event::UserLogin>
+ , public EventHook<Event::DelNick>
+ , public EventHook<Event::DelCore>
+ , public EventHook<Event::ChangeCoreDisplay>
+ , public EventHook<Event::NickIdentify>
+ , public EventHook<Event::NickGroup>
+ , public EventHook<Event::NickUpdate>
+ , public EventHook<Event::UserConnect>
+ , public EventHook<Event::PostUserLogoff>
+ , public EventHook<Event::ServerSync>
+ , public EventHook<Event::UserNickChange>
+ , public EventHook<Event::UserModeSet>
+ , public EventHook<Event::Help>
+ , public EventHook<Event::ExpireTick>
+ , public EventHook<Event::NickInfo>
{
Reference<BotInfo> NickServ;
std::vector<Anope::string> defaults;
ExtensibleItem<bool> held, collided;
+ EventHandlers<NickServ::Event::PreNickExpire> onprenickexpire;
+ EventHandlers<NickServ::Event::NickExpire> onnickexpire;
+ EventHandlers<NickServ::Event::NickRegister> onnickregister;
+ EventHandlers<NickServ::Event::NickValidate> onnickvalidate;
void OnCancel(User *u, NickAlias *na)
{
@@ -113,8 +139,31 @@ class NickServCore : public Module, public NickServService
}
public:
- NickServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- NickServService(this), held(this, "HELD"), collided(this, "COLLIDED")
+ NickServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , NickServ::NickServService(this)
+ , EventHook<Event::Shutdown>("OnShutdown")
+ , EventHook<Event::Restart>("OnRestart")
+ , EventHook<Event::UserLogin>("OnUserLogin")
+ , EventHook<Event::DelNick>("OnDelNick")
+ , EventHook<Event::DelCore>("OnDelCore")
+ , EventHook<Event::ChangeCoreDisplay>("OnChangeCoreDisplay")
+ , EventHook<Event::NickIdentify>("OnNickIdentify")
+ , EventHook<Event::NickGroup>("OnNickGroup")
+ , EventHook<Event::NickUpdate>("OnNickUpdate")
+ , EventHook<Event::UserConnect>("OnUserConnect")
+ , EventHook<Event::PostUserLogoff>("OnPostUserLogoff")
+ , EventHook<Event::ServerSync>("OnServerSync")
+ , EventHook<Event::UserNickChange>("OnUserNickChange")
+ , EventHook<Event::UserModeSet>("OnUserModeSet")
+ , EventHook<Event::Help>("OnHelp")
+ , EventHook<Event::ExpireTick>("OnExpireTick")
+ , EventHook<Event::NickInfo>("OnNickInfo")
+ , held(this, "HELD")
+ , collided(this, "COLLIDED")
+ , onprenickexpire(this, "OnPreNickExpire")
+ , onnickexpire(this, "OnNickExpire")
+ , onnickregister(this, "OnNickRegister")
+ , onnickvalidate(this, "OnNickValidate")
{
}
@@ -143,8 +192,7 @@ class NickServCore : public Module, public NickServService
if (!na)
return;
- EventReturn MOD_RESULT;
- FOREACH_RESULT(OnNickValidate, MOD_RESULT, (u, na));
+ EventReturn MOD_RESULT = this->onnickvalidate(&NickServ::Event::NickValidate::OnNickValidate, u, na);
if (MOD_RESULT == EVENT_STOP)
{
this->Collide(u, na);
@@ -306,7 +354,7 @@ class NickServCore : public Module, public NickServService
IRCD->SendLogout(user);
user->RemoveMode(NickServ, "REGISTERED");
user->Logout();
- FOREACH_MOD(OnNickLogout, (user));
+ Event::OnNickLogout(&Event::NickLogout::OnNickLogout, user);
}
nc->users.clear();
}
@@ -515,12 +563,12 @@ class NickServCore : public Module, public NickServService
if (nickserv_expire && Anope::CurTime - na->last_seen >= nickserv_expire)
expire = true;
- FOREACH_MOD(OnPreNickExpire, (na, expire));
+ this->onprenickexpire(&NickServ::Event::PreNickExpire::OnPreNickExpire, na, expire);
if (expire)
{
Log(LOG_NORMAL, "nickserv/expire", NickServ) << "Expiring nickname " << na->nick << " (group: " << na->nc->display << ") (e-mail: " << (na->nc->email.empty() ? "none" : na->nc->email) << ")";
- FOREACH_MOD(OnNickExpire, (na));
+ this->onnickexpire(&NickServ::Event::NickExpire::OnNickExpire, na);
delete na;
}
}
diff --git a/modules/pseudoclients/operserv.cpp b/modules/pseudoclients/operserv.cpp
index 7b43436f7..91d7f1add 100644
--- a/modules/pseudoclients/operserv.cpp
+++ b/modules/pseudoclients/operserv.cpp
@@ -10,6 +10,8 @@
*/
#include "module.h"
+#include "modules/help.h"
+#include "modules/nickserv.h"
class SGLineManager : public XLineManager
{
@@ -23,7 +25,7 @@ class SGLineManager : public XLineManager
void OnExpire(const XLine *x) override
{
- Log(Config->GetClient("OperServ"), "expire/akill") << "AKILL on \002" << x->mask << "\002 has expired";
+ ::Log(Config->GetClient("OperServ"), "expire/akill") << "AKILL on \002" << x->mask << "\002 has expired";
}
void Send(User *u, XLine *x) override
@@ -68,10 +70,8 @@ class SGLineManager : public XLineManager
class SQLineManager : public XLineManager
{
- ServiceReference<NickServService> nickserv;
-
public:
- SQLineManager(Module *creator) : XLineManager(creator, "xlinemanager/sqline", 'Q'), nickserv("NickServService", "NickServ") { }
+ SQLineManager(Module *creator) : XLineManager(creator, "xlinemanager/sqline", 'Q') { }
void OnMatch(User *u, XLine *x) override
{
@@ -80,7 +80,7 @@ class SQLineManager : public XLineManager
void OnExpire(const XLine *x) override
{
- Log(Config->GetClient("OperServ"), "expire/sqline") << "SQLINE on \002" << x->mask << "\002 has expired";
+ ::Log(Config->GetClient("OperServ"), "expire/sqline") << "SQLINE on \002" << x->mask << "\002 has expired";
}
void Send(User *u, XLine *x) override
@@ -89,8 +89,8 @@ class SQLineManager : public XLineManager
{
if (!u)
;
- else if (nickserv)
- nickserv->Collide(u, NULL);
+ else if (NickServ::service)
+ NickServ::service->Collide(u, NULL);
else
u->Kill(Config->GetClient("OperServ"), "Q-Lined: " + x->reason);
}
@@ -144,7 +144,7 @@ class SNLineManager : public XLineManager
void OnExpire(const XLine *x) override
{
- Log(Config->GetClient("OperServ"), "expire/snline") << "SNLINE on \002" << x->mask << "\002 has expired";
+ ::Log(Config->GetClient("OperServ"), "expire/snline") << "SNLINE on \002" << x->mask << "\002 has expired";
}
void Send(User *u, XLine *x) override
@@ -171,6 +171,15 @@ class SNLineManager : public XLineManager
};
class OperServCore : public Module
+ , public EventHook<Event::BotPrivmsg>
+ , public EventHook<Event::ServerQuit>
+ , public EventHook<Event::UserModeSet>
+ , public EventHook<Event::UserModeUnset>
+ , public EventHook<Event::UserConnect>
+ , public EventHook<Event::UserNickChange>
+ , public EventHook<Event::CheckKick>
+ , public EventHook<Event::Help>
+ , public EventHook<Event::Log>
{
Reference<BotInfo> OperServ;
SGLineManager sglines;
@@ -178,8 +187,19 @@ class OperServCore : public Module
SNLineManager snlines;
public:
- OperServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR),
- sglines(this), sqlines(this), snlines(this)
+ OperServCore(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, PSEUDOCLIENT | VENDOR)
+ , EventHook<Event::BotPrivmsg>("OnBotPrivmsg")
+ , EventHook<Event::ServerQuit>("OnServerQuit")
+ , EventHook<Event::UserModeSet>("OnUserModeSet")
+ , EventHook<Event::UserModeUnset>("OnUserModeUnset")
+ , EventHook<Event::UserConnect>("OnUserConnect")
+ , EventHook<Event::UserNickChange>("OnUserNickChange")
+ , EventHook<Event::CheckKick>("OnCheckKick")
+ , EventHook<Event::Help>("OnHelp")
+ , EventHook<Event::Log>("OnLog")
+ , sglines(this)
+ , sqlines(this)
+ , snlines(this)
{
/* Yes, these are in this order for a reason. Most violent->least violent. */
@@ -218,7 +238,7 @@ class OperServCore : public Module
if (bi == OperServ && !u->HasMode("OPER") && Config->GetModule(this)->Get<bool>("opersonly"))
{
u->SendMessage(bi, ACCESS_DENIED);
- Log(bi, "bados") << "Denied access to " << bi->nick << " from " << u->GetMask() << " (non-oper)";
+ ::Log(bi, "bados") << "Denied access to " << bi->nick << " from " << u->GetMask() << " (non-oper)";
return EVENT_STOP;
}
@@ -228,19 +248,19 @@ class OperServCore : public Module
void OnServerQuit(Server *server) override
{
if (server->IsJuped())
- Log(server, "squit", OperServ) << "Received SQUIT for juped server " << server->GetName();
+ ::Log(server, "squit", OperServ) << "Received SQUIT for juped server " << server->GetName();
}
void OnUserModeSet(const MessageSource &setter, User *u, const Anope::string &mname) override
{
if (mname == "OPER")
- Log(u, "oper", OperServ) << "is now an IRC operator.";
+ ::Log(u, "oper", OperServ) << "is now an IRC operator.";
}
void OnUserModeUnset(const MessageSource &setter, User *u, const Anope::string &mname) override
{
if (mname == "OPER")
- Log(u, "oper", OperServ) << "is no longer an IRC operator";
+ ::Log(u, "oper", OperServ) << "is no longer an IRC operator";
}
void OnUserConnect(User *u, bool &exempt) override
@@ -276,7 +296,11 @@ class OperServCore : public Module
return EVENT_CONTINUE;
}
- void OnLog(Log *l) override
+ void OnPostHelp(CommandSource &source, const std::vector<Anope::string> &params) override
+ {
+ }
+
+ void OnLog(::Log *l) override
{
if (l->type == LOG_SERVER)
l->bi = OperServ;