diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/commands/cs_access.cpp | 2 | ||||
-rw-r--r-- | modules/extra/m_statusupdate.cpp | 5 | ||||
-rw-r--r-- | modules/pseudoclients/bs_main.cpp | 1 |
3 files changed, 4 insertions, 4 deletions
diff --git a/modules/commands/cs_access.cpp b/modules/commands/cs_access.cpp index 7c444b52c..a8e90aadd 100644 --- a/modules/commands/cs_access.cpp +++ b/modules/commands/cs_access.cpp @@ -326,7 +326,7 @@ class CommandCSAccess : public Command if (mask.equals_ci(access->mask)) { /* Don't allow lowering from a level >= u_level */ - if (AccessChanAccess::DetermineLevel(access) >= u_level && !u->HasPriv("chanserv/access/modify")) + if (AccessChanAccess::DetermineLevel(access) >= u_level && !u_access.Founder && !u->HasPriv("chanserv/access/modify")) { source.Reply(ACCESS_DENIED); return; diff --git a/modules/extra/m_statusupdate.cpp b/modules/extra/m_statusupdate.cpp index 2b23492ec..6f98c1345 100644 --- a/modules/extra/m_statusupdate.cpp +++ b/modules/extra/m_statusupdate.cpp @@ -41,10 +41,9 @@ class StatusUpdate : public Module if (access->Matches(user, user->Account())) { for (int i = 0; modeInfo[i].priv != CA_SIZE; ++i) - if (access->HasPriv(modeInfo[i].priv)) - ci->c->SetMode(NULL, modeInfo[i].name, user->nick); - else + if (!access->HasPriv(modeInfo[i].priv)) ci->c->RemoveMode(NULL, modeInfo[i].name, user->nick); + chan_set_correct_modes(user, ci->c, 1); } } } diff --git a/modules/pseudoclients/bs_main.cpp b/modules/pseudoclients/bs_main.cpp index 34214ad3d..488c30de6 100644 --- a/modules/pseudoclients/bs_main.cpp +++ b/modules/pseudoclients/bs_main.cpp @@ -104,6 +104,7 @@ class BotServCore : public Module if (!command->HasFlag(CFLAG_STRIP_CHANNEL)) params.insert(params.begin(), this->fantasy_channel->name); source.c = this->fantasy_channel; + source.service = this->fantasy_channel->ci->WhoSends(); } return EVENT_CONTINUE; |