summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd20.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/protocol/inspircd20.cpp')
-rw-r--r--modules/protocol/inspircd20.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp
index 3bc521a63..7d85bcc3f 100644
--- a/modules/protocol/inspircd20.cpp
+++ b/modules/protocol/inspircd20.cpp
@@ -454,7 +454,7 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage
ChannelMode *cm = NULL;
if (modename.equals_cs("admin"))
- cm = new ChannelModeStatus(CMODE_PROTECT, modechar[1], modechar[0]);
+ cm = new ChannelModeStatus(CMODE_PROTECT, modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0);
else if (modename.equals_cs("allowinvite"))
cm = new ChannelMode(CMODE_ALLINVITE, modechar[0]);
else if (modename.equals_cs("auditorium"))
@@ -476,9 +476,9 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage
else if (modename.equals_cs("flood"))
cm = new ChannelModeFlood(modechar[0], true);
else if (modename.equals_cs("founder"))
- cm = new ChannelModeStatus(CMODE_OWNER, modechar[1], modechar[0]);
+ cm = new ChannelModeStatus(CMODE_OWNER, modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0);
else if (modename.equals_cs("halfop"))
- cm = new ChannelModeStatus(CMODE_HALFOP, modechar[1], modechar[0]);
+ cm = new ChannelModeStatus(CMODE_HALFOP, modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0);
else if (modename.equals_cs("invex"))
cm = new InspIRCdExtBan<ChannelModeList>(CMODE_INVITEOVERRIDE, 'I');
else if (modename.equals_cs("inviteonly"))
@@ -508,7 +508,7 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage
else if (modename.equals_cs("nonotice"))
cm = new ChannelMode(CMODE_NONOTICE, modechar[0]);
else if (modename.equals_cs("op"))
- cm = new ChannelModeStatus(CMODE_OP, modechar[1], modechar[0]);
+ cm = new ChannelModeStatus(CMODE_OP, modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0);
else if (modename.equals_cs("operonly"))
cm = new ChannelModeOper(modechar[0]);
else if (modename.equals_cs("permanent"))
@@ -530,7 +530,7 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage
else if (modename.equals_cs("topiclock"))
cm = new ChannelMode(CMODE_TOPIC, modechar[0]);
else if (modename.equals_cs("voice"))
- cm = new ChannelModeStatus(CMODE_VOICE, modechar[1], modechar[0]);
+ cm = new ChannelModeStatus(CMODE_VOICE, modechar.length() > 1 ? modechar[1] : modechar[0], modechar.length() > 1 ? modechar[0] : 0);
/* Unknown status mode, (customprefix) - add it */
else if (modechar.length() == 2)
cm = new ChannelModeStatus(CMODE_END, modechar[1], modechar[0]);