summaryrefslogtreecommitdiff
path: root/src/chat-server
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat-server')
-rw-r--r--src/chat-server/guild.cpp9
-rw-r--r--src/chat-server/guild.hpp5
-rw-r--r--src/chat-server/guildmanager.cpp11
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);
}
}