Mana
Loading...
Searching...
No Matches
guild.h
Go to the documentation of this file.
1/*
2 * The Mana Client
3 * Copyright (C) 2004-2009 The Mana World Development Team
4 * Copyright (C) 2009-2012 The Mana Developers
5 *
6 * This file is part of The Mana Client.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
24#include "avatar.h"
25
27
28#include <map>
29#include <string>
30#include <vector>
31
32class Guild;
33
34class GuildMember : public Avatar
35{
36public:
37 int getID() const { return mId; }
38
39 void setID(int id) { mId = id; }
40
41 Guild *getGuild() const { return mGuild; }
42
43protected:
44 friend class Guild;
45
46 GuildMember(Guild *guild, int id, const std::string &name);
47
48 GuildMember(Guild *guild, const std::string &name);
49
50 int mId = 0;
52};
53
54class Guild : public AvatarListModel
55{
56public:
57
61 void setName(const std::string &name)
62 {
63 mName = name;
64 }
65
69 GuildMember *addMember(int id, const std::string &name);
70
74 GuildMember *addMember(const std::string &name);
75
81 GuildMember *getMember(int id) const;
82
88 GuildMember *getMember(const std::string &name) const;
89
94 const std::string &getName() const
95 {
96 return mName;
97 }
98
103 short getId() const
104 {
105 return mId;
106 }
107
111 void removeMember(GuildMember *member);
112
116 void removeMember(int id);
117
121 void removeMember(const std::string &name);
122
123 void removeFromMembers();
124
125 void clearMembers() { mMembers.clear(); }
126
131 int getNumberOfElements() override {
132 return mMembers.size();
133 }
134
135 Avatar *getAvatarAt(int i) override;
136
141 bool getInviteRights() const
142 {
143 return mCanInviteUsers;
144 }
145
146 void setRights(short rights);
147
148 bool isMember(GuildMember *member) const;
149
150 bool isMember(int id) const;
151
152 bool isMember(const std::string &name) const;
153
154 void getNames(std::vector<std::string> &names) const;
155
156 static Guild *getGuild(int id);
157
158private:
159 using GuildMap = std::map<int, Guild *>;
161
165 Guild(short id);
166
167 std::vector<GuildMember *> mMembers;
168 std::string mName;
169 short mId;
170 bool mCanInviteUsers = false;
171};
Guild * getGuild() const
Definition guild.h:41
Guild * mGuild
Definition guild.h:51
void setID(int id)
Definition guild.h:39
int getID() const
Definition guild.h:37
int mId
Definition guild.h:50
Definition guild.h:55
GuildMember * addMember(int id, const std::string &name)
Adds member to the list.
Definition guild.cpp:44
bool mCanInviteUsers
Definition guild.h:170
void setName(const std::string &name)
Set the guild's name.
Definition guild.h:61
void getNames(std::vector< std::string > &names) const
Definition guild.cpp:175
bool getInviteRights() const
Get whether user can invite users to this guild.
Definition guild.h:141
static GuildMap guilds
Definition guild.h:160
std::string mName
Definition guild.h:168
GuildMember * getMember(int id) const
Find a member by ID.
Definition guild.cpp:74
void setRights(short rights)
Definition guild.cpp:141
int getNumberOfElements() override
Get size of members list.
Definition guild.h:131
void clearMembers()
Definition guild.h:125
const std::string & getName() const
Get the name of the guild.
Definition guild.h:94
bool isMember(GuildMember *member) const
Definition guild.cpp:148
void removeFromMembers()
Definition guild.cpp:127
static Guild * getGuild(int id)
Definition guild.cpp:183
void removeMember(GuildMember *member)
Removes a member from the guild.
Definition guild.cpp:92
std::map< int, Guild * > GuildMap
Definition guild.h:159
Avatar * getAvatarAt(int i) override
Definition guild.cpp:136
short getId() const
Get the id of the guild.
Definition guild.h:103
short mId
Definition guild.h:169
std::vector< GuildMember * > mMembers
Definition guild.h:167