]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - include/modules/exemption.h
Add GetTypeStr to the DNS API.
[user/henk/code/inspircd.git] / include / modules / exemption.h
index 2f4ee02fc47a207add1fd8e427bbfd2350bee23a..a33d67f98d3bc449809b1062207b65fb49f57bc0 100644 (file)
@@ -25,14 +25,24 @@ namespace CheckExemption
 {
        class EventListener;
        class EventProvider;
+
+       /** Helper function for calling the CheckExemption::EventListener::OnCheckExemption event.
+        * @param prov The CheckExemption::EventProvider which is calling the event.
+        * @param user The user to check exemption for.
+        * @param chan The channel to check exemption on.
+        * @param restriction The restriction to check for.
+        * @return Either MOD_RES_ALLOW if the exemption was confirmed, MOD_RES_DENY if the exemption was
+        *         denied or MOD_RES_PASSTHRU if no module handled the event.
+        */
+       inline ModResult Call(const CheckExemption::EventProvider& prov, User* user, Channel* chan, const std::string& restriction);
 }
 
 class CheckExemption::EventListener
        : public Events::ModuleEventListener
 {
  protected:
-       EventListener(Module* mod)
-               : ModuleEventListener(mod, "event/exemption")
+       EventListener(Module* mod, unsigned int eventprio = DefaultPriority)
+               : ModuleEventListener(mod, "event/exemption", eventprio)
        {
        }
 
@@ -56,3 +66,10 @@ class CheckExemption::EventProvider
        {
        }
 };
+
+inline ModResult CheckExemption::Call(const CheckExemption::EventProvider& prov, User* user, Channel* chan, const std::string& restriction)
+{
+       ModResult result;
+       FIRST_MOD_RESULT_CUSTOM(prov, CheckExemption::EventListener, OnCheckExemption, result, (user, chan, restriction));
+       return result;
+}