summaryrefslogtreecommitdiff
path: root/src/chat-server/guildmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/chat-server/guildmanager.cpp')
-rw-r--r--src/chat-server/guildmanager.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/chat-server/guildmanager.cpp b/src/chat-server/guildmanager.cpp
index 1cc3a4b6..4976eca5 100644
--- a/src/chat-server/guildmanager.cpp
+++ b/src/chat-server/guildmanager.cpp
@@ -155,3 +155,22 @@ void GuildManager::disconnectPlayer(ChatClient *player)
GUILD_EVENT_OFFLINE_PLAYER);
}
}
+
+int GuildManager::changeMemberLevel(ChatClient *player, Guild *guild,
+ const std::string &name, int level)
+{
+ if (guild->checkInGuild(player->characterName) && guild->checkInGuild(name))
+ {
+ int playerLevel = guild->getUserPermissions(player->characterName);
+
+ if (playerLevel == GuildMember::LEADER)
+ {
+ // player can modify anyones permissions
+ guild->setUserPermissions(name, level);
+ return 0;
+ }
+ }
+
+ return -1;
+}
+