summaryrefslogtreecommitdiff
path: root/src/chat-server/chathandler.cpp
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-04-03 16:41:10 +0000
committerDavid Athay <ko2fan@gmail.com>2008-04-03 16:41:10 +0000
commitdcca185bee0acac9dfc3f6d62a8f7252c2c69c6c (patch)
tree1a4a9ff138d46ff6ab04706814a53e29a4cb4144 /src/chat-server/chathandler.cpp
parent438ead13e1132da8ed9e5c3afe0ccc9f8961d787 (diff)
downloadmanaserv-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.cpp29
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);
+ }
+ }
+ }
+}