1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-04-29 23:57:46 +00:00
sapphire/src/servers/Server_Zone/Linkshell/Linkshell.h

62 lines
1.5 KiB
C++

#ifndef CORE_LINKSHELL_H
#define CORE_LINKSHELL_H
#include <Server_Common/Common.h>
#include <set>
namespace Core
{
class Linkshell
{
private:
/*! unique ID of the linkshell */
uint64_t m_linkshellId;
/*! ID of the master character */
uint64_t m_masterCharacterId;
/*! ID list of all linkshell members */
std::set< uint64_t > m_memberIds;
/*! Name of the linkshell */
std::string m_name;
/*! List of member IDs with leader rank */
std::set< uint64_t > m_leaderIds;
/*! list of IDs of pending character invites */
std::set< uint64_t > m_inviteIds;
public:
Linkshell( uint64_t id,
const std::string& name,
uint64_t masterId,
const std::set< uint64_t >& members,
const std::set< uint64_t >& leaders,
const std::set< uint64_t >& invites );
uint64_t getId() const;
const std::string& getName() const;
uint64_t getMasterId() const;
const std::set< uint64_t >& getMemberIdList() const;
std::set< uint64_t >& getMemberIdList();
const std::set< uint64_t >& getLeaderIdList() const;
std::set< uint64_t >& getLeaderIdList();
const std::set< uint64_t >& getInviteIdList() const;
std::set< uint64_t >& getInviteIdList();
void addMember( uint64_t memberId );
void removeMember( uint64_t memberId );
void addLeader( uint64_t memberId );
void removeLeader( uint64_t memberId );
void addInvite( uint64_t memberId );
void removeInvite( uint64_t memberId );
};
}
#endif //SAPPHIRE_LINKSHELL_H