diff options
| author | Sadie Powell <sadie@witchery.services> | 2025-03-09 18:51:03 +0000 |
|---|---|---|
| committer | Sadie Powell <sadie@witchery.services> | 2025-03-09 18:51:03 +0000 |
| commit | 6d7fe69cdf9ff1b8fcb149734753c2800894b68e (patch) | |
| tree | a35c951fa0e129e401081a25dc8253ff77b49de0 /modules | |
| parent | 314ef609001bd511c7a7ef243191bcd471bffa1c (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.cpp | 4 | ||||
| -rw-r--r-- | modules/protocol/inspircd.cpp | 8 |
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); |
