summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoderic Morris <roderic@ccs.neu.edu>2008-06-10 00:47:40 +0000
committerRoderic Morris <roderic@ccs.neu.edu>2008-06-10 00:47:40 +0000
commit6aabeb561db6cdda61a9dff00fd75e9c0efffc23 (patch)
tree577db9c083f280814a551a67b976bc4ccc40a700
parentaf045b4818333b4360f14981c695817c4c8adb21 (diff)
downloadmanaserv-6aabeb561db6cdda61a9dff00fd75e9c0efffc23.tar.gz
manaserv-6aabeb561db6cdda61a9dff00fd75e9c0efffc23.tar.bz2
manaserv-6aabeb561db6cdda61a9dff00fd75e9c0efffc23.tar.xz
manaserv-6aabeb561db6cdda61a9dff00fd75e9c0efffc23.zip
fix for listing and quitting channels
-rw-r--r--ChangeLog6
-rw-r--r--src/chat-server/chatchannelmanager.cpp8
2 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 5865eda5..d7404f8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-06-09 Roderic Morris <roderic@ccs.neu.edu>
+
+ * src/chat-server/chatchannelmanager.cpp: List channels that can
+ be joined, not ones that can't, and tell players that a person has
+ left their channels when they've disconnected from the chat server.
+
2008-06-03 Roderic Morris <roderic@ccs.neu.edu>
* src/account-server/dalstorage.cpp, src/account-server/dalstorage.hpp,
diff --git a/src/chat-server/chatchannelmanager.cpp b/src/chat-server/chatchannelmanager.cpp
index e9ba7708..7a98f2cb 100644
--- a/src/chat-server/chatchannelmanager.cpp
+++ b/src/chat-server/chatchannelmanager.cpp
@@ -28,6 +28,7 @@
#include "defines.h"
#include "account-server/dalstorage.hpp"
#include "chat-server/chatclient.hpp"
+#include "chat-server/chathandler.hpp"
ChatChannelManager::ChatChannelManager() : mNextChannelId(1)
{
@@ -74,7 +75,7 @@ std::list<const ChatChannel*> ChatChannelManager::getPublicChannels()
i_end = mChatChannels.end();
i != i_end; ++i)
{
- if (!i->second.canJoin())
+ if (i->second.canJoin())
{
channels.push_back(&i->second);
}
@@ -123,7 +124,10 @@ void ChatChannelManager::removeUserFromAllChannels(ChatClient *user)
for (std::vector<ChatChannel *>::const_reverse_iterator
i = channels.rbegin(), i_end = channels.rend(); i != i_end; ++i)
{
- (*i)->removeUser(user);
+ chatHandler->warnUsersAboutPlayerEventInChat((*i),
+ user->characterName,
+ CHAT_EVENT_LEAVING_PLAYER);
+ (*i)->removeUser(user);
}
}