- parameterlist plist(params.begin() + 2, params.end());
- ServerInstance->Parser->CallHandler(params[1], plist, user);
+ CommandBase::Params plist(params.begin() + 2, params.end());
+
+ // XXX: Workaround for SVS* commands provided by spanningtree not being registered in the core
+ if ((params[1] == "SVSNICK") || (params[1] == "SVSJOIN") || (params[1] == "SVSPART"))
+ {
+ ServerCommand* const scmd = Utils->Creator->CmdManager.GetHandler(params[1]);
+ if (scmd)
+ scmd->Handle(user, plist);
+ return CMD_SUCCESS;
+ }
+
+ Command* cmd = NULL;
+ ServerInstance->Parser.CallHandler(params[1], plist, user, &cmd);