From d4bf0957d1868fae2d48e9349e91daca5c7c9bd9 Mon Sep 17 00:00:00 2001 From: Adam Date: Tue, 4 Oct 2016 21:45:22 -0400 Subject: [PATCH] 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 --- modules/protocol/inspircd20.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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"))