diff options
author | Adam <Adam@anope.org> | 2016-10-04 21:45:22 -0400 |
---|---|---|
committer | Adam <Adam@anope.org> | 2016-10-04 21:45:45 -0400 |
commit | d4bf0957d1868fae2d48e9349e91daca5c7c9bd9 (patch) | |
tree | 7881720df2c900314e8718187b05ac7b517d3dda /modules/protocol/inspircd20.cpp | |
parent | 99acdcf168f16764012869e7c9f85e6bfae6f23b (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
Diffstat (limited to 'modules/protocol/inspircd20.cpp')
-rw-r--r-- | modules/protocol/inspircd20.cpp | 4 |
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")) |