summaryrefslogtreecommitdiff
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/cs_ban.c2
-rw-r--r--src/core/cs_clear.c40
-rw-r--r--src/core/cs_invite.c2
-rw-r--r--src/core/cs_kick.c2
-rw-r--r--src/core/cs_modes.c2
-rw-r--r--src/core/cs_register.c2
-rw-r--r--src/core/os_clearmodes.c30
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);
}
}
}