summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2016-10-04 21:45:22 -0400
committerAdam <Adam@anope.org>2016-10-04 21:45:45 -0400
commitd4bf0957d1868fae2d48e9349e91daca5c7c9bd9 (patch)
tree7881720df2c900314e8718187b05ac7b517d3dda
parent99acdcf168f16764012869e7c9f85e6bfae6f23b (diff)
inspircd20: specifially add channel modes official-join and operprefix as status modes, sometimes they are sent in CAPAB without a status prefix which causes them to be added as parameter modes
-rw-r--r--modules/protocol/inspircd20.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 859bc667f..f7ad9da21 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -493,10 +493,14 @@ struct IRCDMessageCapab : Message::Capab
cm = new ChannelMode("NONOTICE", modechar[0]);
ModeManager::AddChannelMode(new InspIRCdExtban::EntryMatcher("NONOTICEBAN", "BAN", 'T'));
}
+ else if (modename.equals_cs("official-join"))
+ cm = new ChannelModeStatus("OFFICIALJOIN", modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0, 2);
else if (modename.equals_cs("op"))
cm = new ChannelModeStatus("OP", modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0, 2);
else if (modename.equals_cs("operonly"))
cm = new ChannelModeOperOnly("OPERONLY", modechar[0]);
+ else if (modename.equals_cs("operprefix"))
+ cm = new ChannelModeStatus("OPERPREFIX", modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0, 2);
else if (modename.equals_cs("permanent"))
cm = new ChannelMode("PERM", modechar[0]);
else if (modename.equals_cs("private"))