diff options
Diffstat (limited to 'src/core')
| -rw-r--r-- | src/core/cs_ban.c | 2 | ||||
| -rw-r--r-- | src/core/cs_clear.c | 40 | ||||
| -rw-r--r-- | src/core/cs_invite.c | 2 | ||||
| -rw-r--r-- | src/core/cs_kick.c | 2 | ||||
| -rw-r--r-- | src/core/cs_modes.c | 2 | ||||
| -rw-r--r-- | src/core/cs_register.c | 2 | ||||
| -rw-r--r-- | src/core/os_clearmodes.c | 30 |
7 files changed, 25 insertions, 55 deletions
diff --git a/src/core/cs_ban.c b/src/core/cs_ban.c index 7edbe0944..0d07dd370 100644 --- a/src/core/cs_ban.c +++ b/src/core/cs_ban.c @@ -72,7 +72,7 @@ class CommandCSBan : public Command c->SetMode(NULL, CMODE_BAN, mask); /* We still allow host banning while not allowing to kick */ - if (!is_on_chan(c, u2)) + if (c->FindUser(u2)) return MOD_CONT; if (ci->HasFlag(CI_SIGNKICK) || (ci->HasFlag(CI_SIGNKICK_LEVEL) && !check_access(u, ci, CA_SIGNKICK))) diff --git a/src/core/cs_clear.c b/src/core/cs_clear.c index 5f95e0cdc..0e8312f37 100644 --- a/src/core/cs_clear.c +++ b/src/core/cs_clear.c @@ -71,8 +71,6 @@ class CommandCSClear : public Command } else if (what == "ops") { - int isop, isadmin, isown; - if (ircd->svsmode_ucmode) { ircdproto->SendSVSModeChan(c, "-o", NULL); @@ -94,18 +92,11 @@ class CommandCSClear : public Command { UserContainer *uc = *it; - isop = chan_has_user_status(c, uc->user, CUS_OP); - isadmin = chan_has_user_status(c, uc->user, CUS_PROTECT); - isown = chan_has_user_status(c, uc->user, CUS_OWNER); - - if (!isop && !isadmin && !isown) - continue; - - if (isown) + if (uc->Status->HasFlag(CMODE_OWNER)) c->RemoveMode(NULL, CMODE_OWNER, uc->user->nick); - if (admin) + if (uc->Status->HasFlag(CMODE_PROTECT)) c->RemoveMode(NULL, CMODE_PROTECT, uc->user->nick); - if (isop) + if (uc->Status->HasFlag(CMODE_OP)) c->RemoveMode(NULL, CMODE_OP, uc->user->nick); } } @@ -115,18 +106,11 @@ class CommandCSClear : public Command { UserContainer *uc = *it; - isop = chan_has_user_status(c, uc->user, CUS_OP); - isadmin = chan_has_user_status(c, uc->user, CUS_PROTECT); - isown = chan_has_user_status(c, uc->user, CUS_OWNER); - - if (!isop && !isadmin && !isown) - continue; - - if (isown) + if (uc->Status->HasFlag(CMODE_OWNER)) c->RemoveMode(NULL, CMODE_OWNER, uc->user->nick); - if (isadmin) + if (uc->Status->HasFlag(CMODE_PROTECT)) c->RemoveMode(NULL, CMODE_PROTECT, uc->user->nick); - if (isop) + if (uc->Status->HasFlag(CMODE_OP)) c->RemoveMode(NULL, CMODE_OP, uc->user->nick); } } @@ -139,10 +123,8 @@ class CommandCSClear : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_HALFOP)) - continue; - - c->RemoveMode(NULL, CMODE_HALFOP, uc->user->nick); + if (uc->Status->HasFlag(CMODE_HALFOP)) + c->RemoveMode(NULL, CMODE_HALFOP, uc->user->nick); } notice_lang(Config.s_ChanServ, u, CHAN_CLEARED_HOPS, chan); @@ -153,10 +135,8 @@ class CommandCSClear : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_VOICE)) - continue; - - c->RemoveMode(NULL, CMODE_VOICE, uc->user->nick); + if (uc->Status->HasFlag(CMODE_VOICE)) + c->RemoveMode(NULL, CMODE_VOICE, uc->user->nick); } notice_lang(Config.s_ChanServ, u, CHAN_CLEARED_VOICES, chan); diff --git a/src/core/cs_invite.c b/src/core/cs_invite.c index 86a4f9b38..4dd17a335 100644 --- a/src/core/cs_invite.c +++ b/src/core/cs_invite.c @@ -54,7 +54,7 @@ class CommandCSInvite : public Command } } - if (is_on_chan(c, u2)) + if (c->FindUser(u2)) notice_lang(Config.s_ChanServ, u, CHAN_INVITE_ALREADY_IN, c->name.c_str()); else { diff --git a/src/core/cs_kick.c b/src/core/cs_kick.c index 2ea506c04..7c0c57b51 100644 --- a/src/core/cs_kick.c +++ b/src/core/cs_kick.c @@ -52,7 +52,7 @@ class CommandCSKick : public Command notice_lang(Config.s_ChanServ, u, CHAN_X_NOT_IN_USE, chan); } else if (is_same ? !(u2 = u) : !(u2 = finduser(target))) { notice_lang(Config.s_ChanServ, u, NICK_X_NOT_IN_USE, target); - } else if (!is_on_chan(c, u2)) { + } else if (!c->FindUser(u2)) { notice_lang(Config.s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick.c_str(), c->name.c_str()); } else if (!is_same ? !check_access(u, ci, CA_KICK) : !check_access(u, ci, CA_KICKME)) { diff --git a/src/core/cs_modes.c b/src/core/cs_modes.c index bbd9e7a42..d3525d7cc 100644 --- a/src/core/cs_modes.c +++ b/src/core/cs_modes.c @@ -46,7 +46,7 @@ static CommandReturn do_util(User *u, ChannelMode *cm, const char *chan, const c notice_lang(Config.s_ChanServ, u, CHAN_X_NOT_IN_USE, chan); else if (is_same ? !(u2 = u) : !(u2 = finduser(nick))) notice_lang(Config.s_ChanServ, u, NICK_X_NOT_IN_USE, nick); - else if (!is_on_chan(c, u2)) + else if (!c->FindUser(u2)) notice_lang(Config.s_ChanServ, u, NICK_X_NOT_ON_CHAN, u2->nick.c_str(), c->name.c_str()); else if (is_same ? !check_access(u, ci, levelself) : !check_access(u, ci, level)) notice_lang(Config.s_ChanServ, u, ACCESS_DENIED); diff --git a/src/core/cs_register.c b/src/core/cs_register.c index bf3472c5a..d934afb6e 100644 --- a/src/core/cs_register.c +++ b/src/core/cs_register.c @@ -49,7 +49,7 @@ class CommandCSRegister : public Command notice_lang(Config.s_ChanServ, u, CHAN_ALREADY_REGISTERED, chan); else if (!stricmp(chan, "#")) notice_lang(Config.s_ChanServ, u, CHAN_MAY_NOT_BE_REGISTERED, chan); - else if (!chan_has_user_status(c, u, CUS_OP)) + else if (!c->HasUserStatus(u, CMODE_OP)) notice_lang(Config.s_ChanServ, u, CHAN_MUST_BE_CHANOP); else if (Config.CSMaxReg && u->nc->channelcount >= Config.CSMaxReg && !u->nc->HasPriv("chanserv/no-register-limit")) notice_lang(Config.s_ChanServ, u, u->nc->channelcount > Config.CSMaxReg ? CHAN_EXCEEDED_CHANNEL_LIMIT : CHAN_REACHED_CHANNEL_LIMIT, Config.CSMaxReg); diff --git a/src/core/os_clearmodes.c b/src/core/os_clearmodes.c index d0bc4c44b..f52cd12ae 100644 --- a/src/core/os_clearmodes.c +++ b/src/core/os_clearmodes.c @@ -65,10 +65,8 @@ class CommandOSClearModes : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_OP)) - continue; - - c->RemoveMode(NULL, CMODE_OP, uc->user->nick); + if (uc->Status->HasFlag(CMODE_OP)) + c->RemoveMode(NULL, CMODE_OP, uc->user->nick); } } @@ -81,10 +79,8 @@ class CommandOSClearModes : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_VOICE)) - continue; - - c->RemoveMode(NULL, CMODE_VOICE, uc->user->nick); + if (uc->Status->HasFlag(CMODE_VOICE)) + c->RemoveMode(NULL, CMODE_VOICE, uc->user->nick); } } @@ -99,10 +95,8 @@ class CommandOSClearModes : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_HALFOP)) - continue; - - c->RemoveMode(NULL, CMODE_HALFOP, uc->user->nick); + if (uc->Status->HasFlag(CMODE_HALFOP)) + c->RemoveMode(NULL, CMODE_HALFOP, uc->user->nick); } } } @@ -121,10 +115,8 @@ class CommandOSClearModes : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_OWNER)) - continue; - - c->RemoveMode(NULL, CMODE_OWNER, uc->user->nick); + if (uc->Status->HasFlag(CMODE_OWNER)) + c->RemoveMode(NULL, CMODE_OWNER, uc->user->nick); } } } @@ -143,10 +135,8 @@ class CommandOSClearModes : public Command { UserContainer *uc = *it; - if (!chan_has_user_status(c, uc->user, CUS_PROTECT)) - continue; - - c->RemoveMode(NULL, CMODE_PROTECT, uc->user->nick); + if (uc->Status->HasFlag(CMODE_PROTECT)) + c->RemoveMode(NULL, CMODE_PROTECT, uc->user->nick); } } } |
