]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules/m_monitor.cpp
Advertise the available extbans for services.
[user/henk/code/inspircd.git] / src / modules / m_monitor.cpp
index 38e7ccc3ea39ef1302ce0ac0e1d02598f5338282..ea631b2e86830d6bf6ee31decb0f0a691d5ef3be 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2019 Robby <robby@chatbelgie.be>
+ *   Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
  *
  * This file is part of InspIRCd.  InspIRCd is free software: you can
@@ -79,15 +81,12 @@ class IRCv3::Monitor::Manager
 
                void unset(Extensible* container)
                {
-                       free(unset_raw(container));
+                       free(container, unset_raw(container));
                }
 
-               std::string serialize(SerializeFormat format, const Extensible* container, void* item) const CXX11_OVERRIDE
+               std::string ToInternal(const Extensible* container, void* item) const CXX11_OVERRIDE
                {
                        std::string ret;
-                       if (format == FORMAT_NETWORK)
-                               return ret;
-
                        const ExtData* extdata = static_cast<ExtData*>(item);
                        for (WatchedList::const_iterator i = extdata->list.begin(); i != extdata->list.end(); ++i)
                        {
@@ -99,9 +98,9 @@ class IRCv3::Monitor::Manager
                        return ret;
                }
 
-               void unserialize(SerializeFormat format, Extensible* container, const std::string& value) CXX11_OVERRIDE;
+               void FromInternal(Extensible* container, const std::string& value) CXX11_OVERRIDE;
 
-               void free(void* item) CXX11_OVERRIDE
+               void free(Extensible* container, void* item) CXX11_OVERRIDE
                {
                        delete static_cast<ExtData*>(item);
                }
@@ -245,12 +244,8 @@ class IRCv3::Monitor::Manager
        WatchedList emptywatchedlist;
 };
 
-// inline is needed in static builds to support m_watch including the Manager code from this file
-inline void IRCv3::Monitor::Manager::ExtItem::unserialize(SerializeFormat format, Extensible* container, const std::string& value)
+void IRCv3::Monitor::Manager::ExtItem::FromInternal(Extensible* container, const std::string& value)
 {
-       if (format == FORMAT_NETWORK)
-               return;
-
        irc::spacesepstream ss(value);
        for (std::string nick; ss.GetToken(nick); )
                manager.Watch(static_cast<LocalUser*>(container), nick, UINT_MAX);
@@ -316,7 +311,7 @@ class CommandMonitor : public SplitCommand
        {
                Penalty = 2;
                allow_empty_last_param = false;
-               syntax = "[C|L|S|+ <nick1>[,<nick2>]|- <nick1>[,<nick2>]";
+               syntax = "C|L|S|(+|-) <nick>[,<nick>]+";
        }
 
        CmdResult HandleLocal(LocalUser* user, const Params& parameters) CXX11_OVERRIDE
@@ -435,7 +430,7 @@ class ModuleMonitor : public Module
 
        Version GetVersion() CXX11_OVERRIDE
        {
-               return Version("Provides MONITOR support", VF_VENDOR);
+               return Version("Adds the /MONITOR command which allows users to find out when their friends are connected to the server.", VF_VENDOR);
        }
 };