summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/commands/cs_akick.cpp10
-rw-r--r--modules/commands/cs_set.cpp6
-rw-r--r--modules/commands/cs_suspend.cpp4
-rw-r--r--modules/commands/os_forbid.cpp21
-rw-r--r--modules/pseudoclients/operserv.cpp4
5 files changed, 23 insertions, 22 deletions
diff --git a/modules/commands/cs_akick.cpp b/modules/commands/cs_akick.cpp
index b54fca191..17a20a0dd 100644
--- a/modules/commands/cs_akick.cpp
+++ b/modules/commands/cs_akick.cpp
@@ -394,7 +394,7 @@ class CommandCSAKick : public Command
ChanUserContainer *uc = it->second;
++it;
- if (ci->CheckKick(uc->user))
+ if (c->CheckKick(uc->user))
++count;
}
@@ -514,14 +514,14 @@ class CSAKick : public Module
{
}
- EventReturn OnCheckKick(User *u, ChannelInfo *ci, Anope::string &mask, Anope::string &reason) anope_override
+ EventReturn OnCheckKick(User *u, Channel *c, Anope::string &mask, Anope::string &reason) anope_override
{
- if (ci->c->MatchesList(u, "EXCEPT"))
+ if (!c->ci || c->MatchesList(u, "EXCEPT"))
return EVENT_CONTINUE;
- for (unsigned j = 0, end = ci->GetAkickCount(); j < end; ++j)
+ for (unsigned j = 0, end = c->ci->GetAkickCount(); j < end; ++j)
{
- AutoKick *autokick = ci->GetAkick(j);
+ AutoKick *autokick = c->ci->GetAkick(j);
bool kick = false;
if (autokick->nc)
diff --git a/modules/commands/cs_set.cpp b/modules/commands/cs_set.cpp
index 1211c5ed0..d07e544cc 100644
--- a/modules/commands/cs_set.cpp
+++ b/modules/commands/cs_set.cpp
@@ -1130,12 +1130,12 @@ class CSSet : public Module
{
}
- EventReturn OnCheckKick(User *u, ChannelInfo *ci, Anope::string &mask, Anope::string &reason) anope_override
+ EventReturn OnCheckKick(User *u, Channel *c, Anope::string &mask, Anope::string &reason) anope_override
{
- if (!ci->HasExt("RESTRICTED") || ci->c->MatchesList(u, "EXCEPT"))
+ if (!c->ci || !c->ci->HasExt("RESTRICTED") || c->MatchesList(u, "EXCEPT"))
return EVENT_CONTINUE;
- if (ci->AccessFor(u).empty() && (!ci->GetFounder() || u->Account() != ci->GetFounder()))
+ if (c->ci->AccessFor(u).empty() && (!c->ci->GetFounder() || u->Account() != c->ci->GetFounder()))
return EVENT_STOP;
return EVENT_CONTINUE;
diff --git a/modules/commands/cs_suspend.cpp b/modules/commands/cs_suspend.cpp
index 98015a1f3..e366e5dc0 100644
--- a/modules/commands/cs_suspend.cpp
+++ b/modules/commands/cs_suspend.cpp
@@ -207,9 +207,9 @@ class CSSuspend : public Module
catch (const ConvertException &) { }
}
- EventReturn OnCheckKick(User *u, ChannelInfo *ci, Anope::string &mask, Anope::string &reason) anope_override
+ EventReturn OnCheckKick(User *u, Channel *c, Anope::string &mask, Anope::string &reason) anope_override
{
- if (u->HasMode("OPER") || !ci->HasExt("SUSPENDED"))
+ if (u->HasMode("OPER") || !c->ci || !c->ci->HasExt("SUSPENDED"))
return EVENT_CONTINUE;
reason = Language::Translate(u, _("This channel may not be used."));
diff --git a/modules/commands/os_forbid.cpp b/modules/commands/os_forbid.cpp
index bd837919c..dfb3a6fb1 100644
--- a/modules/commands/os_forbid.cpp
+++ b/modules/commands/os_forbid.cpp
@@ -282,35 +282,36 @@ class OSForbid : public Module
}
}
- void OnJoinChannel(User *u, Channel *c) anope_override
+ EventReturn OnCheckKick(User *u, Channel *c, Anope::string &mask, Anope::string &reason) anope_override
{
BotInfo *OperServ = Config->GetClient("OperServ");
if (u->HasMode("OPER") || !OperServ)
- return;
+ return EVENT_CONTINUE;
ForbidData *d = this->forbidService.FindForbid(c->name, FT_CHAN);
if (d != NULL)
{
ServiceReference<ChanServService> chanserv("ChanServService", "ChanServ");
- if (!chanserv)
- ;
- else if (IRCD->CanSQLineChannel)
+ if (IRCD->CanSQLineChannel)
{
time_t inhabit = Config->GetModule("chanserv")->Get<time_t>("inhabit", "15s");
XLine x(c->name, OperServ->nick, Anope::CurTime + inhabit, d->reason);
IRCD->SendSQLine(NULL, &x);
}
- else
+ else if (chanserv)
{
- if (chanserv)
- chanserv->Hold(c);
+ chanserv->Hold(c);
}
if (d->reason.empty())
- c->Kick(OperServ, u, _("This channel has been forbidden."));
+ reason = Language::Translate(u, _("This channel has been forbidden."));
else
- c->Kick(OperServ, u, _("This channel has been forbidden: %s"), d->reason.c_str());
+ reason = Anope::printf(Language::Translate(u, _("This channel has been forbidden: %s")), d->reason.c_str());
+
+ return EVENT_STOP;
}
+
+ return EVENT_CONTINUE;
}
EventReturn OnPreCommand(CommandSource &source, Command *command, std::vector<Anope::string> &params) anope_override
diff --git a/modules/pseudoclients/operserv.cpp b/modules/pseudoclients/operserv.cpp
index e0d3ea979..dc463e50b 100644
--- a/modules/pseudoclients/operserv.cpp
+++ b/modules/pseudoclients/operserv.cpp
@@ -233,9 +233,9 @@ class OperServCore : public Module
this->sqlines.CheckAllXLines(u);
}
- EventReturn OnCheckKick(User *u, ChannelInfo *ci, Anope::string &mask, Anope::string &reason) anope_override
+ EventReturn OnCheckKick(User *u, Channel *c, Anope::string &mask, Anope::string &reason) anope_override
{
- XLine *x = this->sqlines.CheckChannel(ci->c);
+ XLine *x = this->sqlines.CheckChannel(c);
if (x)
{
this->sqlines.OnMatch(u, x);