summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--src/chat-server/chatchannelmanager.cpp5
-rw-r--r--src/chat-server/chatchannelmanager.hpp1
-rw-r--r--src/chat-server/chathandler.cpp4
4 files changed, 16 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 04deda07..bd2efa57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);
+
}
}