summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/channels.cpp4
-rw-r--r--src/modules.cpp2
-rw-r--r--src/modules/m_override.cpp6
3 files changed, 6 insertions, 6 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index e559f399f..4915b1614 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -63,14 +63,14 @@ std::string Channel::GetModeParameter(char mode)
int Channel::SetTopic(User *u, std::string &ntopic, bool forceset)
{
- if (u && IS_LOCAL(u))
+ if (u)
{
if(!forceset)
{
ModResult res;
/* 0: check status, 1: don't, -1: disallow change silently */
- FIRST_MOD_RESULT(ServerInstance, OnLocalTopicChange, res, (u,this,ntopic));
+ FIRST_MOD_RESULT(ServerInstance, OnPreTopicChange, res, (u,this,ntopic));
if (res == MOD_RES_DENY)
return CMD_FAILURE;
diff --git a/src/modules.cpp b/src/modules.cpp
index fe7f3fb02..59b52b5b1 100644
--- a/src/modules.cpp
+++ b/src/modules.cpp
@@ -151,7 +151,7 @@ ModResult Module::OnCheckStringExtBan(const std::string &s, Channel *c, char typ
ModResult Module::OnStats(char, User*, string_list&) { return MOD_RES_PASSTHRU; }
ModResult Module::OnChangeLocalUserHost(User*, const std::string&) { return MOD_RES_PASSTHRU; }
ModResult Module::OnChangeLocalUserGECOS(User*, const std::string&) { return MOD_RES_PASSTHRU; }
-ModResult Module::OnLocalTopicChange(User*, Channel*, const std::string&) { return MOD_RES_PASSTHRU; }
+ModResult Module::OnPreTopicChange(User*, Channel*, const std::string&) { return MOD_RES_PASSTHRU; }
void Module::OnEvent(Event*) { return; }
const char* Module::OnRequest(Request*) { return NULL; }
ModResult Module::OnPassCompare(Extensible* ex, const std::string &password, const std::string &input, const std::string& hashtype) { return MOD_RES_PASSTHRU; }
diff --git a/src/modules/m_override.cpp b/src/modules/m_override.cpp
index ae18803d3..d0ec5d8fe 100644
--- a/src/modules/m_override.cpp
+++ b/src/modules/m_override.cpp
@@ -41,7 +41,7 @@ class ModuleOverride : public Module
}
OverriddenMode = OverOther = false;
OverOps = OverDeops = OverVoices = OverDevoices = OverHalfops = OverDehalfops = 0;
- Implementation eventlist[] = { I_OnRehash, I_OnAccessCheck, I_On005Numeric, I_OnUserPreJoin, I_OnUserPreKick, I_OnPostCommand, I_OnLocalTopicChange, I_OnRequest };
+ Implementation eventlist[] = { I_OnRehash, I_OnAccessCheck, I_On005Numeric, I_OnUserPreJoin, I_OnUserPreKick, I_OnPostCommand, I_OnPreTopicChange, I_OnRequest };
ServerInstance->Modules->Attach(eventlist, this, 8);
}
@@ -116,9 +116,9 @@ class ModuleOverride : public Module
}
- virtual ModResult OnLocalTopicChange(User *source, Channel *channel, const std::string &topic)
+ virtual ModResult OnPreTopicChange(User *source, Channel *channel, const std::string &topic)
{
- if (IS_OPER(source) && CanOverride(source, "TOPIC"))
+ if (IS_LOCAL(source) && IS_OPER(source) && CanOverride(source, "TOPIC"))
{
if (!channel->HasUser(source) || (channel->IsModeSet('t') && channel->GetStatus(source) < STATUS_HOP))
{