summaryrefslogtreecommitdiff
path: root/include/snomasks.h
diff options
context:
space:
mode:
authordanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-02-25 19:42:08 +0000
committerdanieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7>2010-02-25 19:42:08 +0000
commit61197974c5f7ce009096468b208c3abf2c25810b (patch)
tree9a7cf7a895941d1d734093a3bbc7f9c27f6e734c /include/snomasks.h
parent52a42b48cd63bd49991130f9cf7f2b0e13c76448 (diff)
Make remote/local snomasks consistent and allow use without naming
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12568 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'include/snomasks.h')
-rw-r--r--include/snomasks.h43
1 files changed, 7 insertions, 36 deletions
diff --git a/include/snomasks.h b/include/snomasks.h
index 92773a1b0..d0062e162 100644
--- a/include/snomasks.h
+++ b/include/snomasks.h
@@ -17,71 +17,48 @@
class Snomask
{
public:
- char MySnomask;
std::string Description;
std::string LastMessage;
+ int Count;
bool LastBlocked;
- unsigned int Count;
+ char LastLetter;
/** Create a new Snomask
*/
- Snomask(char snomask, const std::string &description) : MySnomask(snomask), Description(description), LastMessage(""), Count(0)
+ Snomask() : Count(0), LastBlocked(false), LastLetter(0)
{
}
/** Sends a message to all opers with this snomask.
*/
- void SendMessage(const std::string &message);
+ void SendMessage(const std::string &message, char letter);
/** Sends out the (last message repeated N times) message
*/
void Flush();
};
-/** A list of snomasks which are valid, and their descriptive texts
- */
-typedef std::map<char, Snomask *> SnoList;
-
/** Snomask manager handles routing of SNOMASK (usermode +n) messages to opers.
* Modules and the core can enable and disable snomask characters. If they do,
* then sending snomasks using these characters becomes possible.
*/
class CoreExport SnomaskManager
{
- private:
- /** Currently active snomask list
- */
- SnoList SnoMasks;
-
- /** Set up the default (core available) snomask chars
- */
- void SetupDefaults();
public:
+ Snomask masks[26];
+
/** Create a new SnomaskManager
*/
SnomaskManager();
- /** Delete SnomaskManager
- */
- ~SnomaskManager();
-
/** Enable a snomask.
* @param letter The snomask letter to enable. Once enabled,
* server notices may be routed to users with this letter in
* their list, and users may add this letter to their list.
* @param description The descriptive text sent along with any
* server notices, at the start of the notice, e.g. "GLOBOPS".
- * @return True if the snomask was enabled, false if it already
- * exists.
- */
- bool EnableSnomask(char letter, const std::string &description);
-
- /** Disable a snomask.
- * @param letter The snomask letter to disable.
- * @return True if the snomask was disabled, false if it didn't
- * exist.
*/
- bool DisableSnomask(char letter);
+ void EnableSnomask(char letter, const std::string &description);
/** Write to all users with a given snomask (local server only)
* @param letter The snomask letter to write to
@@ -119,12 +96,6 @@ class CoreExport SnomaskManager
* is not particularly significant, in order to keep notices going out.
*/
void FlushSnotices();
-
- /** Check if a snomask is enabled.
- * @param letter The snomask letter to check.
- * @return True if the snomask has been enabled.
- */
- bool IsEnabled(char letter);
};
#endif