diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | src/chat-server/chatchannelmanager.cpp | 8 |
2 files changed, 12 insertions, 2 deletions
@@ -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); } } |