aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/m_silence.cpp
diff options
context:
space:
mode:
authorGravatar Daniel De Graaf2010-03-02 12:04:53 -0600
committerGravatar Daniel De Graaf2010-08-03 17:32:39 -0400
commit89f72a4d63c6868ac3c191197f37e08341b8bc16 (patch)
tree619fc74cfc57928de1bd0a9b08a8ad65903a8e7b /src/modules/m_silence.cpp
parentUnset umode +x when a different vhost is set on a user (diff)
Create OnChannelPermissionCheck hook
Diffstat (limited to 'src/modules/m_silence.cpp')
-rw-r--r--src/modules/m_silence.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/modules/m_silence.cpp b/src/modules/m_silence.cpp
index 8c26051db..dc1d1b505 100644
--- a/src/modules/m_silence.cpp
+++ b/src/modules/m_silence.cpp
@@ -280,7 +280,7 @@ class ModuleSilence : public Module
ServerInstance->AddCommand(&cmdsilence);
ServerInstance->AddCommand(&cmdsvssilence);
- Implementation eventlist[] = { I_OnRehash, I_On005Numeric, I_OnUserPreNotice, I_OnUserPreMessage, I_OnUserPreInvite };
+ Implementation eventlist[] = { I_OnRehash, I_On005Numeric, I_OnUserPreNotice, I_OnUserPreMessage, I_OnChannelPermissionCheck };
ServerInstance->Modules->Attach(eventlist, this, 5);
}
@@ -342,9 +342,11 @@ class ModuleSilence : public Module
return PreText(user, dest, target_type, text, status, exempt_list, SILENCE_NOTICE);
}
- ModResult OnUserPreInvite(User* source,User* dest,Channel* channel, time_t timeout)
+ void OnChannelPermissionCheck(User* user,Channel* chan, PermissionData& perm)
{
- return MatchPattern(dest, source, SILENCE_INVITE);
+ if (perm.name != "invite" || perm.result != MOD_RES_PASSTHRU)
+ return;
+ perm.result = MatchPattern(static_cast<TargetedPermissionData&>(perm).target, user, SILENCE_INVITE);
}
ModResult MatchPattern(User* dest, User* source, int pattern)