X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fmisccommands.cpp;h=c9f86d696bb6b61ebda1f346accfa273aa90ad03;hb=0a6b1e1a7de92e078a98f0b955d2624e5b85e4c1;hp=00f31d668d13ef10042b25dd6c7c6ad6ed2c5759;hpb=6089d1a685114f380cf6838dcff78bc3bb1d3bbd;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/misccommands.cpp b/src/modules/m_spanningtree/misccommands.cpp index 00f31d668..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,13 +24,48 @@ #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) +{ + FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist)); + UpdateTags(); +} + +void CmdBuilder::FireEvent(User* target, const char* cmd, ClientProtocol::TagMap& taglist) +{ + FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist)); + UpdateTags(); +} + +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 CommandSNONotice::Handle(User* user, Params& params) { ServerInstance->SNO->WriteToSnoMask(params[0][0], "From " + user->nick + ": " + params[1]); return CMD_SUCCESS; } -CmdResult CommandEndBurst::HandleServer(TreeServer* server, std::vector& params) +CmdResult CommandEndBurst::HandleServer(TreeServer* server, Params& params) { server->FinishBurst(); return CMD_SUCCESS;