diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | src/chat-server/chatchannelmanager.cpp | 5 | ||||
-rw-r--r-- | src/chat-server/chatchannelmanager.hpp | 1 | ||||
-rw-r--r-- | src/chat-server/chathandler.cpp | 4 |
4 files changed, 16 insertions, 1 deletions
@@ -1,3 +1,10 @@ +2008-05-14 David Athay <ko2fan@gmail.com> + + * src/chat-server/chatchannelmanager.cpp, + src/chat-server/chatchannelmanager.hpp, + src/chat-server/chathandler.cpp: Added check to ensure channel name + not already in use. + 2008-05-08 Philipp Sehmisch <tmw@crushnet.org> * src/game-server/trigger.cpp, src/game-server/trigger.hpp, diff --git a/src/chat-server/chatchannelmanager.cpp b/src/chat-server/chatchannelmanager.cpp index 258b2d60..43cfdb44 100644 --- a/src/chat-server/chatchannelmanager.cpp +++ b/src/chat-server/chatchannelmanager.cpp @@ -135,6 +135,11 @@ bool ChatChannelManager::channelExists(int channelId) return mChatChannels.find(channelId) != mChatChannels.end(); } +bool ChatChannelManager::channelExists(const std::string &channelName) +{ + return getChannel(channelName) != NULL; +} + int ChatChannelManager::nextUsable() { int channelId = 0; diff --git a/src/chat-server/chatchannelmanager.hpp b/src/chat-server/chatchannelmanager.hpp index c6cbf5d7..86591606 100644 --- a/src/chat-server/chatchannelmanager.hpp +++ b/src/chat-server/chatchannelmanager.hpp @@ -103,6 +103,7 @@ class ChatChannelManager * @param channelId a channel ID */ bool channelExists(int channelId); + bool channelExists(const std::string &channelName); /** * Get next usable channel ID diff --git a/src/chat-server/chathandler.cpp b/src/chat-server/chathandler.cpp index 423ee743..113ad1f8 100644 --- a/src/chat-server/chathandler.cpp +++ b/src/chat-server/chathandler.cpp @@ -339,7 +339,7 @@ ChatHandler::handleRegisterChannelMessage(ChatClient &client, MessageIn &msg) { reply.writeByte(ERRMSG_INVALID_ARGUMENT); } - else if (guildManager->doesExist(channelName)) + else if (guildManager->doesExist(channelName) || chatChannelManager->channelExists(channelName)) { // Channel already exists reply.writeByte(ERRMSG_ALREADY_TAKEN); @@ -835,6 +835,8 @@ void ChatHandler::sendGuildRejoin(ChatClient &client) client.send(msg); + sendGuildListUpdate(guildName, client.characterName); + } } |