]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/misccommands.cpp
Add a shun option to only apply when users are fully connected.
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / misccommands.cpp
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2018-2019 Sadie Powell <sadie@witchery.services>
5  *   Copyright (C) 2013 Attila Molnar <attilamolnar@hush.com>
6  *
7  * This file is part of InspIRCd.  InspIRCd is free software: you can
8  * redistribute it and/or modify it under the terms of the GNU General Public
9  * License as published by the Free Software Foundation, version 2.
10  *
11  * This program is distributed in the hope that it will be useful, but WITHOUT
12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
14  * details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20
21 #include "inspircd.h"
22
23 #include "main.h"
24 #include "commands.h"
25 #include "treeserver.h"
26
27 void CmdBuilder::FireEvent(Server* target, const char* cmd, ClientProtocol::TagMap& taglist)
28 {
29         if (!Utils->Creator || Utils->Creator->dying)
30                 return;
31
32         FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist));
33         UpdateTags();
34 }
35
36 void CmdBuilder::FireEvent(User* target, const char* cmd, ClientProtocol::TagMap& taglist)
37 {
38         if (!Utils->Creator || Utils->Creator->dying)
39                 return;
40
41         FOREACH_MOD_CUSTOM(Utils->Creator->GetMessageEventProvider(), ServerProtocol::MessageEventListener, OnBuildMessage, (target, cmd, taglist));
42         UpdateTags();
43 }
44
45 void CmdBuilder::UpdateTags()
46 {
47         std::string taglist;
48         if (!tags.empty())
49         {
50                 char separator = '@';
51                 for (ClientProtocol::TagMap::const_iterator iter = tags.begin(); iter != tags.end(); ++iter)
52                 {
53                         taglist.push_back(separator);
54                         separator = ';';
55                         taglist.append(iter->first);
56                         if (!iter->second.value.empty())
57                         {
58                                 taglist.push_back('=');
59                                 taglist.append(iter->second.value);
60                         }
61                 }
62                 taglist.push_back(' ');
63         }
64         content.replace(0, tagsize, taglist);
65         tagsize = taglist.length();
66 }
67
68 CmdResult CommandSNONotice::Handle(User* user, Params& params)
69 {
70         ServerInstance->SNO->WriteToSnoMask(params[0][0], "From " + user->nick + ": " + params[1]);
71         return CMD_SUCCESS;
72 }
73
74 CmdResult CommandEndBurst::HandleServer(TreeServer* server, Params& params)
75 {
76         server->FinishBurst();
77         return CMD_SUCCESS;
78 }