From e1fe7e17d3fc7ae271e0f403090eb94afdb0b6bf Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Tue, 11 Nov 2025 17:49:21 +0000 Subject: [PATCH] Add support for the UnrealIRCd flood profile mode. --- modules/protocol/unrealircd.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/modules/protocol/unrealircd.cpp b/modules/protocol/unrealircd.cpp index 6eb7a733a..4de6d32b2 100644 --- a/modules/protocol/unrealircd.cpp +++ b/modules/protocol/unrealircd.cpp @@ -715,6 +715,23 @@ public: } }; +class ChannelModeFloodProfile final + : public ChannelModeParam +{ +public: + ChannelModeFloodProfile(char modeChar) : ChannelModeParam("FLOODPROFILE", modeChar, true) { } + + bool IsValid(Anope::string &value) const override + { + return value == "very-strict" + || value == "strict" + || value == "normal" + || value == "relaxed" + || value == "very-relaxed" + || value == "off"; + } +}; + class ChannelModeHistory final : public ChannelModeParam { @@ -911,6 +928,9 @@ private: case 'l': ModeManager::AddChannelMode(new ChannelModeParam("LIMIT", mode, true)); break; + case 'F': + ModeManager::AddChannelMode(new ChannelModeFloodProfile(mode)); + break; case 'H': ModeManager::AddChannelMode(new ChannelModeHistory(mode)); break;