#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
*/
class CommandTopic : public SplitCommand
{
+ CheckExemption::EventProvider exemptionprov;
ChanModeReference secretmode;
ChanModeReference topiclockmode;
/** Handle /NAMES.
*/
-class CommandNames : public Command
+class CommandNames : public SplitCommand
{
ChanModeReference secretmode;
+ ChanModeReference privatemode;
+ UserModeReference invisiblemode;
public:
/** Constructor for names.
* @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.