summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2024-02-21 20:45:38 +0000
committerSadie Powell <sadie@witchery.services>2024-02-22 00:14:08 +0000
commitaefbb4fbdab80a41c3f88566abcba4b92b2d36d5 (patch)
tree81b6ba768c99606101fbce39d54d9d521d1a1e20 /include
parent9b77fdf5b680e4a084effe56345a9d01cfbf6f11 (diff)
Rework SendModeInternal to be usable with Uplink::Send.
Diffstat (limited to 'include')
-rw-r--r--include/protocol.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/include/protocol.h b/include/protocol.h
index f2b510d96..bb0577332 100644
--- a/include/protocol.h
+++ b/include/protocol.h
@@ -31,8 +31,6 @@ public:
virtual ~IRCDProto();
virtual void SendSVSKillInternal(const MessageSource &, User *, const Anope::string &);
- virtual void SendModeInternal(const MessageSource &, const Channel *, const Anope::string &);
- virtual void SendModeInternal(const MessageSource &, User *, const Anope::string &);
virtual void SendKickInternal(const MessageSource &, const Channel *, User *, const Anope::string &);
virtual void SendNoticeInternal(const MessageSource &, const Anope::string &dest, const Anope::string &msg);
virtual void SendPrivmsgInternal(const MessageSource &, const Anope::string &dest, const Anope::string &buf);
@@ -167,8 +165,19 @@ public:
*/
virtual void SendSVSKill(const MessageSource &source, User *user, const char *fmt, ...) ATTR_FORMAT(4, 5);
- virtual void SendMode(const MessageSource &source, const Channel *dest, const char *fmt, ...) ATTR_FORMAT(4, 5);
- virtual void SendMode(const MessageSource &source, User *u, const char *fmt, ...) ATTR_FORMAT(4, 5);
+ virtual void SendModeInternal(const MessageSource &source, Channel *chan, const Anope::string &modes, const std::vector<Anope::string> &values);
+ template <typename... Args>
+ void SendMode(const MessageSource &source, Channel *chan, const Anope::string &modes, Args &&...args)
+ {
+ SendModeInternal(source, chan, modes, { stringify(args)... });
+ }
+
+ virtual void SendModeInternal(const MessageSource &source, User *u, const Anope::string &modes, const std::vector<Anope::string> &values);
+ template <typename... Args>
+ void SendMode(const MessageSource &source, User *u, const Anope::string &modes, Args &&...args)
+ {
+ SendModeInternal(source, u, modes, { stringify(args)... });
+ }
/** Introduces a client to the rest of the network
* @param u The client to introduce