From 6aabeb561db6cdda61a9dff00fd75e9c0efffc23 Mon Sep 17 00:00:00 2001 From: Roderic Morris Date: Tue, 10 Jun 2008 00:47:40 +0000 Subject: fix for listing and quitting channels --- ChangeLog | 6 ++++++ src/chat-server/chatchannelmanager.cpp | 8 ++++++-- 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 + + * 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 * 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 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::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); } } -- cgit v1.2.3-70-g09d2