From 0d112886980787ffd5c69e514eebe476bcec8343 Mon Sep 17 00:00:00 2001 From: Adam Date: Wed, 7 Dec 2016 15:23:29 -0500 Subject: Fix numerics to be sent to uids --- modules/protocol/inspircd20.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'modules/protocol') diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index d7bff8be0..3a3c13619 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -223,7 +223,18 @@ class InspIRCd20Proto : public IRCDProto void SendNumeric(int numeric, User *dest, IRCMessage &message) { - Uplink::Send("PUSH", dest->GetUID(), Format(message)); + std::vector params = message.GetParameters(); + if (params.empty()) + return; + + /* First parameter is the UID, change it to nick because it is pushed */ + params[0] = dest->nick; + + IRCMessage m(message.GetSource(), message.GetCommand()); + for (const Anope::string &s : params) + m.Push(s); + + Uplink::Send("PUSH", dest->GetUID(), Format(m)); } void SendMode(const MessageSource &source, Channel *dest, const Anope::string &buf) override -- cgit