]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/coremods/core_channel/core_channel.h
Add a helper function for calling the OnCheckExemption event.
[user/henk/code/inspircd.git] / src / coremods / core_channel / core_channel.h
index d3adbc9c9dcdf11c1f42e4560b0cd012361bad64..19a98482767e84f7ad015e8940306b8532287c80 100644 (file)
 #pragma once
 
 #include "inspircd.h"
+#include "modules/exemption.h"
+
+namespace Topic
+{
+       void ShowTopic(LocalUser* user, Channel* chan);
+}
+
+namespace Invite
+{
+       class APIImpl;
+}
 
 /** Handle /INVITE.
  */
 class CommandInvite : public Command
 {
+       Invite::APIImpl& invapi;
+
  public:
        /** Constructor for invite.
         */
-       CommandInvite (Module* parent);
+       CommandInvite(Module* parent, Invite::APIImpl& invapiimpl);
 
        /** Handle command.
         * @param parameters The parameters to the command
@@ -60,6 +73,7 @@ class CommandJoin : public SplitCommand
  */
 class CommandTopic : public SplitCommand
 {
+       CheckExemption::EventProvider exemptionprov;
        ChanModeReference secretmode;
        ChanModeReference topiclockmode;
 
@@ -78,9 +92,11 @@ class CommandTopic : public SplitCommand
 
 /** Handle /NAMES.
  */
-class CommandNames : public Command
+class CommandNames : public SplitCommand
 {
        ChanModeReference secretmode;
+       ChanModeReference privatemode;
+       UserModeReference invisiblemode;
 
  public:
        /** Constructor for names.
@@ -92,7 +108,14 @@ class CommandNames : public Command
         * @param user The user issuing the command
         * @return A value from CmdResult to indicate command success or failure.
         */
-       CmdResult Handle(const std::vector<std::string>& parameters, User *user);
+       CmdResult HandleLocal(const std::vector<std::string>& parameters, LocalUser* user);
+
+       /** Spool the NAMES list for a given channel to the given user
+        * @param user User to spool the NAMES list to
+        * @param chan Channel whose nicklist to send
+        * @param show_invisible True to show invisible (+i) members to the user, false to omit them from the list
+        */
+       void SendNames(LocalUser* user, Channel* chan, bool show_invisible);
 };
 
 /** Handle /KICK.