summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2025-03-09 18:51:03 +0000
committerSadie Powell <sadie@witchery.services>2025-03-09 18:51:03 +0000
commit6d7fe69cdf9ff1b8fcb149734753c2800894b68e (patch)
treea35c951fa0e129e401081a25dc8253ff77b49de0 /modules
parent314ef609001bd511c7a7ef243191bcd471bffa1c (diff)
Add support for oper-only quit messages.
This currently only works on InspIRCd but I believe that other servers also support this.
Diffstat (limited to 'modules')
-rw-r--r--modules/nickserv/nickserv.cpp4
-rw-r--r--modules/protocol/inspircd.cpp8
2 files changed, 10 insertions, 2 deletions
diff --git a/modules/nickserv/nickserv.cpp b/modules/nickserv/nickserv.cpp
index c09367914..4221fa114 100644
--- a/modules/nickserv/nickserv.cpp
+++ b/modules/nickserv/nickserv.cpp
@@ -106,7 +106,7 @@ public:
Anope::map<NickServRelease *>::iterator nit = NickServReleases.find(this->nick);
if (nit != NickServReleases.end())
{
- IRCD->SendQuit(nit->second, "");
+ IRCD->SendQuit(nit->second);
delete nit->second;
}
@@ -117,7 +117,7 @@ public:
~NickServRelease() override
{
- IRCD->SendQuit(this, "");
+ IRCD->SendQuit(this);
NickServReleases.erase(this->nick);
}
diff --git a/modules/protocol/inspircd.cpp b/modules/protocol/inspircd.cpp
index e4811f428..fdc78558d 100644
--- a/modules/protocol/inspircd.cpp
+++ b/modules/protocol/inspircd.cpp
@@ -255,6 +255,14 @@ public:
Uplink::Send(user, "SVSCMODE", u->GetUID(), c->name, 'b');
}
+ void SendQuit(User *u, const Anope::string &buf, const Anope::string &operbuf)
+ {
+ if (!operbuf.empty())
+ Uplink::Send("METADATA", u->GetUID(), "operquit", operbuf);
+
+ IRCDProto::SendQuit(u, buf, operbuf);
+ }
+
void SendPong(const Anope::string &servname, const Anope::string &who) override
{
Server *serv = servname.empty() ? NULL : Server::Find(servname);