X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fmisccommands.cpp;h=c9f86d696bb6b61ebda1f346accfa273aa90ad03;hb=3151d60c1ecc9462e4c335282ee6c31672f45111;hp=6e66c68a7edd9a4473da13f14c6353490704df68;hpb=b14ebbccf08ec34a73e1ba271e67da80d9fe805c;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/misccommands.cpp b/src/modules/m_spanningtree/misccommands.cpp index 6e66c68a7..c9f86d696 100644 --- a/src/modules/m_spanningtree/misccommands.cpp +++ b/src/modules/m_spanningtree/misccommands.cpp @@ -1,13 +1,8 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2018-2019 Sadie Powell * Copyright (C) 2013 Attila Molnar - * Copyright (C) 2007-2008, 2012 Robin Burchell - * Copyright (C) 2009-2010 Daniel De Graaf - * Copyright (C) 2007-2008 Craig Edwards - * Copyright (C) 2008 Pippijn van Steenhoven - * Copyright (C) 2008 Thomas Stagner - * Copyright (C) 2007 Dennis Friis * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -29,28 +24,49 @@ #include "commands.h" #include "treeserver.h" -CmdResult CommandSNONotice::Handle(User* user, std::vector& params) +void CmdBuilder::FireEvent(Server* target, const char* cmd, ClientProtocol::TagMap& taglist) { - ServerInstance->SNO->WriteToSnoMask(params[0][0], "From " + user->nick + ": " + params[1]); - return CMD_SUCCESS; + FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist)); + UpdateTags(); } -CmdResult CommandBurst::Handle(User* user, std::vector& params) +void CmdBuilder::FireEvent(User* target, const char* cmd, ClientProtocol::TagMap& taglist) { - if (!IS_SERVER(user)) - return CMD_INVALID; + FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist)); + UpdateTags(); +} - TreeServer* server = Utils->FindServer(user->server); - server->bursting = true; - return CMD_SUCCESS; +void CmdBuilder::UpdateTags() +{ + std::string taglist; + if (!tags.empty()) + { + char separator = '@'; + for (ClientProtocol::TagMap::const_iterator iter = tags.begin(); iter != tags.end(); ++iter) + { + taglist.push_back(separator); + separator = ';'; + taglist.append(iter->first); + if (!iter->second.value.empty()) + { + taglist.push_back('='); + taglist.append(iter->second.value); + } + } + taglist.push_back(' '); + } + content.replace(0, tagsize, taglist); + tagsize = taglist.length(); } -CmdResult CommandEndBurst::Handle(User* user, std::vector& params) +CmdResult CommandSNONotice::Handle(User* user, Params& params) { - if (!IS_SERVER(user)) - return CMD_INVALID; + ServerInstance->SNO->WriteToSnoMask(params[0][0], "From " + user->nick + ": " + params[1]); + return CMD_SUCCESS; +} - TreeServer* server = Utils->FindServer(user->server); +CmdResult CommandEndBurst::HandleServer(TreeServer* server, Params& params) +{ server->FinishBurst(); return CMD_SUCCESS; }