diff options
author | Sadie Powell <sadie@witchery.services> | 2021-01-13 00:05:17 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2021-01-13 00:05:17 +0000 |
commit | 56b4dc61e49e4218544f51ac9a25ab3ece60a782 (patch) | |
tree | 848614c30892f3205f7d9d4c586ddcedc6be91c9 /src/modules | |
parent | 0365daef5eb3b44c17f0320017cebf3af9984386 (diff) |
Add a shun option to only apply when users are fully connected.
Closes #1825.
Diffstat (limited to 'src/modules')
-rw-r--r-- | src/modules/m_shun.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/modules/m_shun.cpp b/src/modules/m_shun.cpp index 1c64fd76c..d067d1523 100644 --- a/src/modules/m_shun.cpp +++ b/src/modules/m_shun.cpp @@ -156,11 +156,16 @@ class ModuleShun : public Module, public Stats::EventListener insp::flat_set<std::string, irc::insensitive_swo> cleanedcommands; insp::flat_set<std::string, irc::insensitive_swo> enabledcommands; bool affectopers; + bool allowconnect; bool allowtags; bool notifyuser; bool IsShunned(LocalUser* user) { + // Exempt the user if they are not fully connected and allowconnect is enabled. + if (allowconnect && user->registered != REG_ALL) + return false; + // Exempt the user from shuns if they are an oper and affectopers is disabled. if (!affectopers && user->IsOper()) return false; @@ -222,6 +227,7 @@ class ModuleShun : public Module, public Stats::EventListener affectopers = tag->getBool("affectopers", false); allowtags = tag->getBool("allowtags"); + allowconnect = tag->getBool("allowconnect"); notifyuser = tag->getBool("notifyuser", true); } |