X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcoremods%2Fcore_channel%2Fcore_channel.h;h=112cd0411367b416bbcb919a6b7a1f96f8c379a1;hb=cbe5b993142c218e09ae972bdce91681cc0ba485;hp=c500add07277331fe86a5ad67ffc503a2798a38b;hpb=c4955b78dced7bc399135fc64c14750f2dfc0a2b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_channel/core_channel.h b/src/coremods/core_channel/core_channel.h index c500add07..112cd0411 100644 --- a/src/coremods/core_channel/core_channel.h +++ b/src/coremods/core_channel/core_channel.h @@ -1,10 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2014 Attila Molnar - * Copyright (C) 2008 Robin Burchell - * Copyright (C) 2007 Dennis Friis - * Copyright (C) 2006 Craig Edwards + * Copyright (C) 2017-2019 Sadie Powell + * Copyright (C) 2014-2015 Attila Molnar * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -34,8 +32,31 @@ namespace Topic namespace Invite { class APIImpl; + + /** Used to indicate who we announce invites to on a channel. */ + enum AnnounceState + { + /** Don't send invite announcements. */ + ANNOUNCE_NONE, + + /** Send invite announcements to all users. */ + ANNOUNCE_ALL, + + /** Send invite announcements to channel operators and higher. */ + ANNOUNCE_OPS, + + /** Send invite announcements to channel half-operators (if available) and higher. */ + ANNOUNCE_DYNAMIC + }; } +enum +{ + // From RFC 1459. + RPL_BANLIST = 367, + RPL_ENDOFBANLIST = 368 +}; + /** Handle /INVITE. */ class CommandInvite : public Command @@ -43,6 +64,8 @@ class CommandInvite : public Command Invite::APIImpl& invapi; public: + Invite::AnnounceState announceinvites; + /** Constructor for invite. */ CommandInvite(Module* parent, Invite::APIImpl& invapiimpl); @@ -52,8 +75,8 @@ class CommandInvite : 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& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /JOIN. @@ -70,7 +93,7 @@ class CommandJoin : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /TOPIC. @@ -91,16 +114,18 @@ class CommandTopic : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; }; /** Handle /NAMES. */ class CommandNames : public SplitCommand { + private: ChanModeReference secretmode; ChanModeReference privatemode; UserModeReference invisiblemode; + Events::ModuleEventProvider namesevprov; public: /** Constructor for names. @@ -112,7 +137,7 @@ class CommandNames : public SplitCommand * @param user The user issuing the command * @return A value from CmdResult to indicate command success or failure. */ - CmdResult HandleLocal(const std::vector& parameters, LocalUser* user) CXX11_OVERRIDE; + CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE; /** Spool the NAMES list for a given channel to the given user * @param user User to spool the NAMES list to @@ -136,8 +161,8 @@ class CommandKick : 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& parameters, User* user) CXX11_OVERRIDE; - RouteDescriptor GetRouting(User* user, const std::vector& parameters) CXX11_OVERRIDE; + CmdResult Handle(User* user, const Params& parameters) CXX11_OVERRIDE; + RouteDescriptor GetRouting(User* user, const Params& parameters) CXX11_OVERRIDE; }; /** Channel mode +b @@ -146,8 +171,9 @@ class ModeChannelBan : public ListModeBase { public: ModeChannelBan(Module* Creator) - : ListModeBase(Creator, "ban", 'b', "End of channel ban list", 367, 368, true, "maxbans") + : ListModeBase(Creator, "ban", 'b', "End of channel ban list", RPL_BANLIST, RPL_ENDOFBANLIST, true) { + syntax = ""; } }; @@ -155,12 +181,13 @@ class ModeChannelBan : public ListModeBase */ class ModeChannelKey : public ParamMode { - static const std::string::size_type maxkeylen = 32; public: + static const std::string::size_type maxkeylen; ModeChannelKey(Module* Creator); ModeAction OnModeChange(User* source, User* dest, Channel* channel, std::string& parameter, bool adding) CXX11_OVERRIDE; void SerializeParam(Channel* chan, const std::string* key, std::string& out) ; ModeAction OnSet(User* source, Channel* chan, std::string& param) CXX11_OVERRIDE; + bool IsParameterSecret() CXX11_OVERRIDE; }; /** Channel mode +l