diff options
author | David Athay <ko2fan@gmail.com> | 2008-04-03 16:41:10 +0000 |
---|---|---|
committer | David Athay <ko2fan@gmail.com> | 2008-04-03 16:41:10 +0000 |
commit | dcca185bee0acac9dfc3f6d62a8f7252c2c69c6c (patch) | |
tree | 1a4a9ff138d46ff6ab04706814a53e29a4cb4144 /src/chat-server/chathandler.cpp | |
parent | 438ead13e1132da8ed9e5c3afe0ccc9f8961d787 (diff) | |
download | manaserv-dcca185bee0acac9dfc3f6d62a8f7252c2c69c6c.tar.gz manaserv-dcca185bee0acac9dfc3f6d62a8f7252c2c69c6c.tar.bz2 manaserv-dcca185bee0acac9dfc3f6d62a8f7252c2c69c6c.tar.xz manaserv-dcca185bee0acac9dfc3f6d62a8f7252c2c69c6c.zip |
Fixed accepting guild invites, and added updating the guild member list when player joins
Diffstat (limited to 'src/chat-server/chathandler.cpp')
-rw-r--r-- | src/chat-server/chathandler.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index 3d2d8742..dd56a383 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -669,8 +669,8 @@ ChatHandler::handleGuildAcceptInvite(ChatClient &client, MessageIn &msg) { guild->addMember(client.characterName); reply.writeByte(ERRMSG_OK); - reply.writeShort(guild->getId()); reply.writeString(guild->getName()); + reply.writeShort(guild->getId()); reply.writeByte(false); short id = joinGuildChannel(guild->getName(), client); @@ -881,7 +881,34 @@ int ChatHandler::joinGuildChannel(const std::string &guildName, ChatClient &clie // in the channel. warnUsersAboutPlayerEventInChat(channel, client.characterName, CHAT_EVENT_NEW_PLAYER); + + sendGuildListUpdate(guildName, client.characterName); } return channelId; } + +void ChatHandler::sendGuildListUpdate(const std::string &guildName, + const std::string &characterName) +{ + Guild *guild = guildManager->findByName(guildName); + if (guild) + { + MessageOut msg(CPMSG_GUILD_UPDATE_LIST); + + msg.writeShort(guild->getId()); + msg.writeString(characterName); + + // TODO: This should get a list of all members + // and iterate through them + std::map<std::string, ChatClient*>::iterator itr; + for (int i = 0; i < guild->totalMembers(); ++i) + { + itr = mPlayerMap.find(guild->getMember(i)); + if (itr != mPlayerMap.end()) + { + itr->second->send(msg); + } + } + } +} |