diff options
Diffstat (limited to 'src/chat-server')
-rw-r--r-- | src/chat-server/guild.cpp | 9 | ||||
-rw-r--r-- | src/chat-server/guild.hpp | 5 | ||||
-rw-r--r-- | src/chat-server/guildmanager.cpp | 11 |
3 files changed, 22 insertions, 3 deletions
diff --git a/src/chat-server/guild.cpp b/src/chat-server/guild.cpp index 3110b05f..7320ed7e 100644 --- a/src/chat-server/guild.cpp +++ b/src/chat-server/guild.cpp @@ -84,6 +84,15 @@ bool Guild::checkLeader(const std::string &playerName) } +void Guild::setLeader(const std::string &playerName) +{ + GuildMember *member = getMember(playerName); + if (member) + { + member->setPermission(GuildMember::LEADER); + } +} + bool Guild::checkInvited(const std::string &playerName) { return std::find(mInvited.begin(), mInvited.end(), playerName) != mInvited.end(); diff --git a/src/chat-server/guild.hpp b/src/chat-server/guild.hpp index c5952fd9..05a8bd70 100644 --- a/src/chat-server/guild.hpp +++ b/src/chat-server/guild.hpp @@ -100,6 +100,11 @@ class Guild bool checkLeader(const std::string &playerName); /** + * Set player as leader of the guild. + */ + void setLeader(const std::string &playerName); + + /** * Set the ID of the guild. */ void setId(int id) diff --git a/src/chat-server/guildmanager.cpp b/src/chat-server/guildmanager.cpp index 95159175..1cc3a4b6 100644 --- a/src/chat-server/guildmanager.cpp +++ b/src/chat-server/guildmanager.cpp @@ -54,6 +54,11 @@ Guild* GuildManager::createGuild(const std::string &name, const std::string &pla mGuilds.push_back(guild); addGuildMember(guild, playerName); + // Set and save the member rights + storage->setMemberRights(playerName, GuildMember::LEADER); + + guild->setLeader(playerName); + return guild; } @@ -126,7 +131,7 @@ bool GuildManager::doesExist(const std::string &name) std::vector<Guild*> GuildManager::getGuildsForPlayer(const std::string &name) { std::vector<Guild*> guildList; - + for (std::list<Guild*>::iterator itr = mGuilds.begin(); itr != mGuilds.end(); ++itr) { @@ -145,8 +150,8 @@ void GuildManager::disconnectPlayer(ChatClient *player) for (std::vector<Guild*>::const_iterator itr = guildList.begin(); itr != guildList.end(); ++itr) { - chatHandler->sendGuildListUpdate((*itr)->getName(), - player->characterName, + chatHandler->sendGuildListUpdate((*itr)->getName(), + player->characterName, GUILD_EVENT_OFFLINE_PLAYER); } } |