/*
* InspIRCd -- Internet Relay Chat Daemon
*
+ * Copyright (C) 2015 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2013, 2017-2019 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2012 Robby <robby@chatbelgie.be>
+ * Copyright (C) 2010 Craig Edwards <brain@inspircd.org>
* Copyright (C) 2009 Daniel De Graaf <danieldg@inspircd.org>
*
* This file is part of InspIRCd. InspIRCd is free software: you can
#pragma once
+#ifdef __GNUC__
+# pragma GCC diagnostic push
+# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+
#include "event.h"
namespace ServerProtocol
{
class BroadcastEventListener;
class LinkEventListener;
+ class MessageEventListener;
class SyncEventListener;
}
{
}
- /** Fired when a server finishes burst
- * @param server Server that recently linked and finished burst
+ /** Fired when a server has linked to the network.
+ * @param server Server that recently linked.
*/
virtual void OnServerLink(const Server* server) { }
- /** Fired when a server splits
- * @param server Server that split
- */
- virtual void OnServerSplit(const Server* server) { }
+ /** Fired when a server has finished bursting.
+ * @param server Server that recently finished bursting.
+ */
+ virtual void OnServerBurst(const Server* server) { }
+
+ /** Fired when a server splits
+ * @param server Server that split
+ * @param error Whether the server split because of an error.
+ */
+ virtual void OnServerSplit(const Server* server, bool error) { OnServerSplit(server); }
+
+ /** Fired when a server splits
+ * @param server Server that split
+ */
+ DEPRECATED_METHOD(virtual void OnServerSplit(const Server* server)) { }
+};
+
+class ServerProtocol::MessageEventListener
+ : public Events::ModuleEventListener
+{
+ public:
+ MessageEventListener(Module* mod)
+ : ModuleEventListener(mod, "event/server-message")
+ {
+ }
+
+ /** Fired when a server message is being sent by a user.
+ * @param source The user who sent the message.
+ * @param name The name of the command which was sent.
+ * @param tags The tags which will be sent with the message.
+ */
+ virtual void OnBuildMessage(User* source, const char* name, ClientProtocol::TagMap& tags) { }
+
+ /** Fired when a server message is being sent by a server.
+ * @param source The server who sent the message.
+ * @param name The name of the command which was sent.
+ * @param tags The tags which will be sent with the message.
+ */
+ virtual void OnBuildMessage(Server* source, const char* name, ClientProtocol::TagMap& tags) { }
};
class ServerProtocol::SyncEventListener
{
}
};
+
+#ifdef __GNUC__
+# pragma GCC diagnostic pop
+#endif
+