summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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);
+
}
}