diff options
| author | 2024-02-26 18:01:03 +0000 | |
|---|---|---|
| committer | 2024-02-27 13:15:08 +0000 | |
| commit | 81e84056170f4f25a8dd0647739486f28fb5edcd (patch) | |
| tree | 53259cc51942bb1db0149eb429a95780481b14e4 /src/modules/m_spanningtree/compat.cpp | |
| parent | Merge branch 'insp3' into master. (diff) | |
Move SVSJOIN/SVSNICK/SVSPART to the services module.
Diffstat (limited to 'src/modules/m_spanningtree/compat.cpp')
| -rw-r--r-- | src/modules/m_spanningtree/compat.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
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; +} |
