X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_spanningtree%2Fmisccommands.cpp;h=78ff4db5a1d36dd51d07e441335f27deed76793f;hb=102c54990c8ae10943f4f0ac36b5e80b7b900268;hp=8fc1b178f4134a738ff8f96ec7bd43ff9c71b3d2;hpb=b2ac8cc0a6405946a388b80df3be21bc276a61f3;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_spanningtree/misccommands.cpp b/src/modules/m_spanningtree/misccommands.cpp index 8fc1b178f..78ff4db5a 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-2020 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,6 +24,47 @@ #include "commands.h" #include "treeserver.h" +void CmdBuilder::FireEvent(Server* target, const char* cmd, ClientProtocol::TagMap& taglist) +{ + if (!Utils->Creator || Utils->Creator->dying) + return; + + FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist)); + UpdateTags(); +} + +void CmdBuilder::FireEvent(User* target, const char* cmd, ClientProtocol::TagMap& taglist) +{ + if (!Utils->Creator || Utils->Creator->dying) + return; + + 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]);