diff options
author | Sadie Powell <sadie@witchery.services> | 2025-04-15 14:44:41 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-04-15 15:00:25 +0100 |
commit | 5c2fc1ceddd808df93e1aa477e5ddd7cc268f4a7 (patch) | |
tree | e61d15bf3b1e44a191a8c652c7c6700e189da79e /modules/protocol/unrealircd.cpp | |
parent | d891f2bcbd1152a3845ea092e8233cd13e5624f8 (diff) |
Allow clearing other list modes using ClearBans.
Diffstat (limited to 'modules/protocol/unrealircd.cpp')
-rw-r--r-- | modules/protocol/unrealircd.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/modules/protocol/unrealircd.cpp b/modules/protocol/unrealircd.cpp index 7e37e1f27..4a2b881a0 100644 --- a/modules/protocol/unrealircd.cpp +++ b/modules/protocol/unrealircd.cpp @@ -59,7 +59,7 @@ public: CanSQLineChannel = true; CanSZLine = true; CanSVSHold = true; - CanClearBans = true; + CanClearModes.insert("BAN"); CanCertFP = true; CanTagMessage = true; RequiresID = true; @@ -456,9 +456,13 @@ private: return true; } - void SendClearBans(const MessageSource &user, Channel *c, User* u) override + void SendClearModes(const MessageSource &user, Channel *c, User* u, const Anope::string &mode) override { - Uplink::Send(user, "SVS2MODE", c->name, "-b", u->GetUID()); + auto *cm = ModeManager::FindChannelModeByName(mode); + if (!cm || !cm->mchar) + return; + + Uplink::Send(user, "SVS2MODE", c->name, Anope::printf("-%c", cm->mchar), u->GetUID()); } bool IsTagValid(const Anope::string &tname, const Anope::string &tvalue) override |