/*
* InspIRCd -- Internet Relay Chat Daemon
*
- * Copyright (C) 2016 Attila Molnar <attilamolnar@hush.com>
+ * Copyright (C) 2018-2020 Sadie Powell <sadie@witchery.services>
+ * Copyright (C) 2018 Attila Molnar <attilamolnar@hush.com>
*
* 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
}
Param(int, const char* s)
- : owned(true)
+ : ptr(NULL)
+ , owned(true)
{
new(str) std::string(s);
}
Param(int, const std::string& s)
- : owned(true)
+ : ptr(NULL)
+ , owned(true)
{
- new(str) std::string(s);
+ new(str) std::string(s);
}
Param(const Param& other)
/** Add a parameter to the parameter list.
* @param str String to add.
- * The string will NOT be copied, it must remain alive until ClearParams() is called or until the object is destroyed.
+ * The string will NOT be copied, it must remain alive until ClearParams() is called or until the object is destroyed.
*/
void PushParamRef(const std::string& str) { params.push_back(str); }
/** Constructor.
* @param protoeventprov Protocol event provider the event is an instance of.
- * @param msg Message to include in this event by default.
+ * @param msg Message to include in this event by default.
*/
Event(EventProvider& protoeventprov, ClientProtocol::Message& msg)
: event(&protoeventprov)
void GetMessagesForUser(LocalUser* user, MessageList& messagelist);
};
+class ClientProtocol::MessageTagEvent
+ : public Events::ModuleEventProvider
+{
+ public:
+ MessageTagEvent(Module* mod)
+ : ModuleEventProvider(mod, "event/messagetag")
+ {
+ }
+};
+
/** Base class for message tag providers.
* All message tags belong to a message tag provider. Message tag providers can populate messages
* with tags before the message is sent and they have the job of determining whether a user should
*/
class CoreExport ClientProtocol::Serializer : public DataProvider
{
- Events::ModuleEventProvider evprov;
+ private:
+ ClientProtocol::MessageTagEvent evprov;
/** Make a white list containing which tags a user should get.
* @param user User in question.
* @param tagname Name of the tag.
* @param tagvalue Tag value, may be empty.
* @param tags TagMap to place the tag into, if it gets accepted.
- * @return True if no error occured, false if the tag name is invalid or if this tag already exists.
+ * @return True if no error occurred, false if the tag name is invalid or if this tag already exists.
*/
bool HandleTag(LocalUser* user, const std::string& tagname, std::string& tagvalue, TagMap& tags) const;