diff options
| author | 2010-03-02 12:04:53 -0600 | |
|---|---|---|
| committer | 2010-08-03 17:32:39 -0400 | |
| commit | 89f72a4d63c6868ac3c191197f37e08341b8bc16 (patch) | |
| tree | 619fc74cfc57928de1bd0a9b08a8ad65903a8e7b /src/modules/m_silence.cpp | |
| parent | Unset 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.cpp | 8 |
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) |
