From 6d7fe69cdf9ff1b8fcb149734753c2800894b68e Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 9 Mar 2025 18:51:03 +0000 Subject: Add support for oper-only quit messages. This currently only works on InspIRCd but I believe that other servers also support this. --- modules/nickserv/nickserv.cpp | 4 ++-- modules/protocol/inspircd.cpp | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'modules') 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::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); -- cgit