diff options
Diffstat (limited to 'src/chat-server/guildmanager.cpp')
-rw-r--r-- | src/chat-server/guildmanager.cpp | 19 |
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; +} + |