00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _TMWSERV_CHATSERVER_GUILD_H_
00022 #define _TMWSERV_CHATSERVER_GUILD_H_
00023
00024 #include <string>
00025 #include <list>
00026
00031 struct GuildMember
00032 {
00033 public:
00034 int mId;
00035 std::string mName;
00036 int mPermissions;
00037
00038 };
00039
00043 class Guild
00044 {
00045 public:
00049 Guild(const std::string &name);
00050
00054 ~Guild();
00055
00060 void addMember(int playerId, int permissions = 0);
00061
00065 void removeMember(int playerId);
00066
00070 int getOwner();
00071
00075 void setOwner(int playerId);
00076
00080 void setId(int id)
00081 { mId = id; }
00082
00086 bool checkInvited(int playerId);
00087
00091 void addInvited(int playerId);
00092
00096 std::string getName() const
00097 { return mName; }
00098
00102 int getId() const
00103 { return mId; }
00104
00108 std::list<GuildMember*> getMembers()
00109 { return mMembers; }
00110
00114 int totalMembers() const
00115 { return mMembers.size(); }
00116
00120 bool checkInGuild(int playerId);
00121
00125 bool canInvite(int playerId);
00126
00130 int getUserPermissions(int playerId);
00131
00135 void setUserPermissions(int playerId, int level);
00136
00137 protected:
00141 GuildMember* getMember(int playerId);
00142
00143 private:
00144 short mId;
00145 std::string mName;
00146 std::list<GuildMember*> mMembers;
00147 std::list<int> mInvited;
00148 };
00149
00150 #endif