]> git.netwichtig.de Git - user/henk/code/inspircd.git/blob - src/modules/m_spanningtree/translate.cpp
Get rid of CommandBuilder::push_back.
[user/henk/code/inspircd.git] / src / modules / m_spanningtree / translate.cpp
1 /*
2  * InspIRCd -- Internet Relay Chat Daemon
3  *
4  *   Copyright (C) 2014 Attila Molnar <attilamolnar@hush.com>
5  *
6  * This file is part of InspIRCd.  InspIRCd is free software: you can
7  * redistribute it and/or modify it under the terms of the GNU General Public
8  * License as published by the Free Software Foundation, version 2.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
12  * FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
13  * details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19
20 #include "inspircd.h"
21 #include "translate.h"
22
23 std::string Translate::ModeChangeListToParams(const Modes::ChangeList::List& modes)
24 {
25         std::string ret;
26         for (Modes::ChangeList::List::const_iterator i = modes.begin(); i != modes.end(); ++i)
27         {
28                 const Modes::Change& item = *i;
29                 ModeHandler* mh = item.mh;
30                 if (!mh->NeedsParam(item.adding))
31                         continue;
32
33                 ret.push_back(' ');
34
35                 if (mh->IsPrefixMode())
36                 {
37                         User* target = ServerInstance->FindNick(item.param);
38                         if (target)
39                         {
40                                 ret.append(target->uuid);
41                                 continue;
42                         }
43                 }
44
45                 ret.append(item.param);
46         }
47         return ret;
48 }