]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - include/snomasks.h
b318fdc265bff0677767565284b8bcbcfd1e41c8
[user/henk/code/inspircd.git] / include / snomasks.h
1 /*       +------------------------------------+\r *       | Inspire Internet Relay Chat Daemon |\r *       +------------------------------------+\r *\r *  InspIRCd: (C) 2002-2007 InspIRCd Development Team\r * See: http://www.inspircd.org/wiki/index.php/Credits\r *\r * This program is free but copyrighted software; see\r *            the file COPYING for details.\r *\r * ---------------------------------------------------\r */\r\r#ifndef __SNOMASKS_H__\r#define __SNOMASKS_H__\r\r#include <string>\r#include <vector>\r#include <map>\r#include "configreader.h"\r#include "inspircd.h"\r\r/** A list of snomasks which are valid, and their descriptive texts\r */\rtypedef std::map<char, std::string> SnoList;\r\r/** Snomask manager handles routing of SNOMASK (usermode +n) messages to opers.\r * Modules and the core can enable and disable snomask characters. If they do,\r * then sending snomasks using these characters becomes possible.\r */\rclass CoreExport SnomaskManager : public Extensible\r{\r private:\r      /** Creator/owner\r       */\r    InspIRCd* ServerInstance;\r      /** Currently active snomask list\r       */\r    SnoList SnoMasks;\r      /** Set up the default (core available) snomask chars\r   */\r    void SetupDefaults();\r public:\r /** Create a new SnomaskManager\r         */\r    SnomaskManager(InspIRCd* Instance);\r    /** Delete SnomaskManager\r       */\r    ~SnomaskManager();\r\r    /** Enable a snomask.\r   * @param letter The snomask letter to enable. Once enabled,\r    * server notices may be routed to users with this letter in\r    * their list, and users may add this letter to their list.\r     * @param description The descriptive text sent along with any\r  * server notices, at the start of the notice, e.g. "GLOBOPS".\r  * @return True if the snomask was enabled, false if it already\r         * exists.\r      */\r    bool EnableSnomask(char letter, const std::string &description);\r       /** Disable a snomask.\r  * @param letter The snomask letter to disable.\r         * @return True if the snomask was disabled, false if it didn't\r         * exist.\r       */\r    bool DisableSnomask(char letter);\r      /** Write to all users with a given snomask.\r    * @param letter The snomask letter to write to\r         * @param text The text to send to the users\r    */\r    void WriteToSnoMask(char letter, const std::string &text);\r     /** Write to all users with a given snomask.\r    * @param letter The snomask letter to write to\r         * @param text A format string containing text to send\r  * @param ... Format arguments\r  */\r    void WriteToSnoMask(char letter, const char* text, ...);\r       /** Check if a snomask is enabled.\r      * @param letter The snomask letter to check.\r   * @return True if the snomask has been enabled.\r        */\r    bool IsEnabled(char letter);\r};\r\r#endif\r