summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Athay <ko2fan@gmail.com>2008-05-14 15:27:10 +0000
committerDavid Athay <ko2fan@gmail.com>2008-05-14 15:27:10 +0000
commitebe0c66a036ff159cf4bdbdcaf7a755c95aef83c (patch)
treed0ac159d83cc970b279938df26a0ead0188959ab /src
parenta53d47c4867cdd29b3e4425f1a10ee3c222b48f3 (diff)
downloadmanaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.gz
manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.bz2
manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.tar.xz
manaserv-ebe0c66a036ff159cf4bdbdcaf7a755c95aef83c.zip
Added channel registration check to ensure that channel name is not in use
Diffstat (limited to 'src')
-rw-r--r--src/chat-server/chatchannelmanager.cpp5
-rw-r--r--src/chat-server/chatchannelmanager.hpp1
-rw-r--r--src/chat-server/chathandler.cpp4
3 files changed, 9 insertions, 1 deletions
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);
+
}
}