From 81e84056170f4f25a8dd0647739486f28fb5edcd Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Mon, 26 Feb 2024 18:01:03 +0000 Subject: Move SVSJOIN/SVSNICK/SVSPART to the services module. --- src/modules/m_spanningtree/compat.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/modules/m_spanningtree/compat.cpp') diff --git a/src/modules/m_spanningtree/compat.cpp b/src/modules/m_spanningtree/compat.cpp index 5d61272ea..d193d5e5a 100644 --- a/src/modules/m_spanningtree/compat.cpp +++ b/src/modules/m_spanningtree/compat.cpp @@ -109,3 +109,20 @@ void TreeSocket::WriteLine(const std::string& original_line) WriteLineInternal(line); } + +bool TreeSocket::PreProcessOldProtocolMessage(User*& who, std::string& cmd, CommandBase::Params& params) +{ + if (irc::equals(cmd, "SVSJOIN") || irc::equals(cmd, "SVSNICK") || irc::equals(cmd, "SVSPART")) + { + if (params.empty()) + return false; // Malformed. + + auto* target = ServerInstance->Users.FindUUID(params[0]); + if (!target) + return false; // User gone. + + params.insert(params.begin(), { cmd, target->uuid }); + cmd = "ENCAP"; + } + return true; +} -- cgit v1.3.1-10-gc9f91