summaryrefslogtreecommitdiffstats
path: root/src/chat-server/guildmanager.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-08-13 15:31:48 +0000
committerDavid Athay <ko2fan@gmail.com>2008-08-13 15:31:48 +0000
commit67cb713c0fcd65f9f842c589c7e1c08f9af597f0 (patch)
tree408d79af670e143211deb311dc6aa291fbda9034 /src/chat-server/guildmanager.cpp
parent4e800b21494755958b0e30bba9045cee204b1a76 (diff)
downloadmanaserv-67cb713c0fcd65f9f842c589c7e1c08f9af597f0.tar.gz
manaserv-67cb713c0fcd65f9f842c589c7e1c08f9af597f0.tar.xz
manaserv-67cb713c0fcd65f9f842c589c7e1c08f9af597f0.zip
Added permission levels to guilds, and operator permissions to channels.
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 1cc3a4b..4976eca 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;
+}
+