mirror of
https://bitbucket.org/seefoe/src.git
synced 2026-07-30 00:15:46 -04:00
another one, and remove the voice chat crap as we don't use it
This commit is contained in:
@@ -44,9 +44,10 @@
|
||||
#include "sharedNetworkMessages/ChatUninviteFromRoom.h"
|
||||
#include "sharedNetworkMessages/VerifyPlayerNameMessage.h"
|
||||
#include "sharedNetworkMessages/VerifyPlayerNameResponseMessage.h"
|
||||
#include "sharedNetworkMessages/VoiceChatMiscMessages.h"
|
||||
#include "UnicodeUtils.h"
|
||||
|
||||
#include "sharedFoundation/CrcConstexpr.hpp"
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
|
||||
ConnectionServerConnection::ConnectionServerConnection(const std::string & a, const unsigned short p) :
|
||||
@@ -100,49 +101,54 @@ void ConnectionServerConnection::onReceive(const Archive::ByteStream & message)
|
||||
++count;
|
||||
|
||||
ri = message.begin();
|
||||
|
||||
const uint32 messageType = m.getType();
|
||||
|
||||
//LOG("ConnectionServerConnection", ("onReceive() message(%s)", m.getCmdName().c_str()));
|
||||
|
||||
if(m.isType("ChatConnectAvatar"))
|
||||
{
|
||||
//printf("ConnectionServerConnection -- ChatConnectAvatar\n");
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatConnectAvatar");
|
||||
ChatConnectAvatar c(ri);
|
||||
// break surname from last name
|
||||
std::string name = c.getCharacterName();
|
||||
size_t pos = name.find_first_of(" ");
|
||||
if(pos != std::string::npos)
|
||||
name = name.substr(0, pos);
|
||||
ChatServer::connectPlayer(this, c.getStationId(), name, c.getCharacterId(), c.getIsSecure(), c.getIsSubscribed());
|
||||
}
|
||||
else if(m.isType("ChatDisconnectAvatar"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDisconnectAvatar");
|
||||
//printf("ConnectionServerConnection -- ChatDisconnectAvatar\n");
|
||||
static MessageDispatch::Transceiver<const ChatDisconnectAvatar &> disconn;
|
||||
ChatDisconnectAvatar d(ri);
|
||||
disconn.emitMessage(d);
|
||||
ChatServer::disconnectPlayer(d.getCharacterId());
|
||||
}
|
||||
else if(m.isType("GameClientMessage"))
|
||||
{
|
||||
// chat message forwarded by the connection server
|
||||
GameClientMessage c(ri);
|
||||
//deliverMessageToClientObject(c.getNetworkId(), c.getByteStream());
|
||||
Archive::ReadIterator cri = c.getByteStream().begin();
|
||||
GameNetworkMessage cm(cri);
|
||||
std::vector<NetworkId>::const_iterator i;
|
||||
for(i = c.getDistributionList().begin(); i != c.getDistributionList().end(); ++i)
|
||||
switch(messageType) {
|
||||
case constcrc("ChatConnectAvatar") :
|
||||
{
|
||||
const ChatAvatar * avatar = ChatServer::getAvatarByNetworkId(*i);
|
||||
if (!avatar && cm.isType("ChatInstantMessageToCharacter"))
|
||||
//printf("ConnectionServerConnection -- ChatConnectAvatar\n");
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatConnectAvatar");
|
||||
ChatConnectAvatar c(ri);
|
||||
// break surname from last name
|
||||
std::string name = c.getCharacterName();
|
||||
size_t pos = name.find_first_of(" ");
|
||||
if(pos != std::string::npos)
|
||||
name = name.substr(0, pos);
|
||||
ChatServer::connectPlayer(this, c.getStationId(), name, c.getCharacterId(), c.getIsSecure(), c.getIsSubscribed());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatDisconnectAvatar") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDisconnectAvatar");
|
||||
//printf("ConnectionServerConnection -- ChatDisconnectAvatar\n");
|
||||
static MessageDispatch::Transceiver<const ChatDisconnectAvatar &> disconn;
|
||||
ChatDisconnectAvatar d(ri);
|
||||
disconn.emitMessage(d);
|
||||
ChatServer::disconnectPlayer(d.getCharacterId());
|
||||
break;
|
||||
}
|
||||
case constcrc("GameClientMessage") :
|
||||
{
|
||||
// chat message forwarded by the connection server
|
||||
GameClientMessage c(ri);
|
||||
//deliverMessageToClientObject(c.getNetworkId(), c.getByteStream());
|
||||
Archive::ReadIterator cri = c.getByteStream().begin();
|
||||
GameNetworkMessage cm(cri);
|
||||
std::vector<NetworkId>::const_iterator i;
|
||||
for(i = c.getDistributionList().begin(); i != c.getDistributionList().end(); ++i)
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInstantMessageToCharacter");
|
||||
//printf("!Sending via the shortcut\n");
|
||||
cri = c.getByteStream().begin();
|
||||
|
||||
if(cm.isType("ChatInstantMessageToCharacter"))
|
||||
const ChatAvatar * avatar = ChatServer::getAvatarByNetworkId(*i);
|
||||
const uint32 cmtype = cm.getType();
|
||||
|
||||
if (!avatar && cmtype == constcrc("ChatInstantMessageToCharacter"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInstantMessageToCharacter");
|
||||
//printf("!Sending via the shortcut\n");
|
||||
cri = c.getByteStream().begin();
|
||||
|
||||
// deliver IM to character
|
||||
ChatInstantMessageToCharacter chat(cri);
|
||||
ChatAvatarId characterName = chat.getCharacterName();
|
||||
@@ -167,279 +173,246 @@ void ConnectionServerConnection::onReceive(const Archive::ByteStream & message)
|
||||
ChatServer::getChatInterface()->sendMessageToPendingAvatar(fromName, response);
|
||||
return;
|
||||
}
|
||||
|
||||
if(avatar)
|
||||
{
|
||||
cri = c.getByteStream().begin();
|
||||
|
||||
switch(cmtype) {
|
||||
case constcrc("ChatDeleteAllPersistentMessages") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDeleteAllPersistentMessages");
|
||||
ChatDeleteAllPersistentMessages chatDeleteAllPersistentMessages(cri);
|
||||
ChatServer::deleteAllPersistentMessages(chatDeleteAllPersistentMessages.getSourceNetworkId(), chatDeleteAllPersistentMessages.getTargetNetworkId());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatInstantMessageToCharacter") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInstantMessageToCharacter");
|
||||
//printf("ConnectionServerConnection -- ChatInstantMessageToCharacter\n");
|
||||
// deliver IM to character
|
||||
ChatInstantMessageToCharacter chat(cri);
|
||||
ChatAvatarId characterName = chat.getCharacterName();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
|
||||
ChatServer::sendInstantMessage(*i, chat.getSequence(), characterName, chat.getMessage(), chat.getOutOfBand());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatQueryRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatQueryRoom");
|
||||
//printf("ConnectionServerConnection -- ChatQueryRoom\n");
|
||||
ChatQueryRoom chat(cri);
|
||||
ChatServer::queryRoom((*i), this, chat.getSequence(), chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatPersistentMessageToServer") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatPeristentMessageToServer");
|
||||
//printf("ConnectionServerConnection -- ChatPersistentMessageToServer\n");
|
||||
ChatPersistentMessageToServer chat(cri);
|
||||
ChatAvatarId characterName = chat.getToCharacterName();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
|
||||
ChatServer::sendPersistentMessage((*i), chat.getSequence(), characterName, chat.getSubject(), chat.getMessage(), chat.getOutOfBand());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatRequestPersistentMessage") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRequestPersistentMessage");
|
||||
//printf("ConnectionServerConnection -- ChatRequestPersistentMessage\n");
|
||||
ChatRequestPersistentMessage chat(cri);
|
||||
ChatServer::requestPersistentMessage((*i), chat.getSequence(), chat.getMessageId());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatDeletePersistentMessage") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDeletePersistentMessage");
|
||||
//printf("ConnectionServerConnection -- ChatDeletePersistentMessage\n");
|
||||
ChatDeletePersistentMessage chat(cri);
|
||||
ChatServer::deletePersistentMessage((*i), chat.getMessageId());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatCreateRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatCreateRoom");
|
||||
//printf("ConnectionServerConnection -- ChatCreateRoom\n");
|
||||
ChatCreateRoom chat(cri);
|
||||
ChatServer::createRoom((*i), chat.getSequence(), chat.getRoomName(), chat.getIsModerated(), chat.getIsPublic(), chat.getRoomTitle());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatEnterRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatEnterRoom");
|
||||
//printf("ConnectionServerConnection -- ChatEnterRoom\n");
|
||||
// entering a room by name
|
||||
ChatEnterRoom chat(cri);
|
||||
ChatServer::enterRoom((*i), chat.getSequence(), chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatEnterRoomById") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatEnterRoomById");
|
||||
//printf("ConnectionServerConnection -- ChatEnterRoomById\n");
|
||||
// entering a room by room id
|
||||
ChatEnterRoomById chat(cri);
|
||||
ChatServer::enterRoom((*i), chat.getSequence(), chat.getRoomId());
|
||||
break;
|
||||
|
||||
}
|
||||
case constcrc("ChatSendToRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatSendToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatSendToRoom\n");
|
||||
ChatSendToRoom chat(cri);
|
||||
ChatServer::sendRoomMessage((*i), chat.getSequence(), chat.getRoomId(), chat.getMessage(), chat.getOutOfBand());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatRequestRoomList") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRequestRoomList");
|
||||
//printf("ConnectionServerConnection -- ChatRequestRoomList\n");
|
||||
ChatServer::requestRoomList((*i), this);
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatDestroyRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDestroyRoom");
|
||||
//printf("ConnectionServerConnection -- ChatDestroyRoom\n");
|
||||
ChatDestroyRoom chat(cri);
|
||||
ChatServer::destroyRoom((*i), chat.getSequence(), chat.getRoomId());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatAddModeratorToRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatAddModeratorToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatAddModeratorToRoom\n");
|
||||
ChatAddModeratorToRoom chat(cri);
|
||||
ChatServer::addModeratorToRoom(chat.getSequenceId(), (*i), chat.getAvatarId(), chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatRemoveModeratorFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRemoveModeratorFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatREmoveModeratorFromRoom\n");
|
||||
ChatRemoveModeratorFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::removeModeratorFromRoom(chat.getSequenceId(), (*i), characterName, chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatRemoveAvatarFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRemoveAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatREmoveAvatarFromRoom\n");
|
||||
ChatRemoveAvatarFromRoom chat(cri);
|
||||
ChatServer::removeAvatarFromRoom((*i), chat.getAvatarId(), chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatKickAvatarFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatKickAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatKickAvatarFromRoom\n");
|
||||
ChatKickAvatarFromRoom chat(cri);
|
||||
ChatServer::kickAvatarFromRoom((*i), chat.getAvatarId(), chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatAddFriend") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatAddFriend");
|
||||
//printf("ConnectionServerConnection -- ChatAddFriend\n");
|
||||
ChatAddFriend chat(ri);
|
||||
ChatServer::addFriend((*i), chat.getSequence(), chat.getCharacterName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatInviteAvatarToRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInviteAvatarToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatInviteAvatarToRoom\n");
|
||||
ChatInviteAvatarToRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::invite((*i), characterName, chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatUninviteFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatUninviteFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatUninviteAvatarToRoom\n");
|
||||
ChatUninviteFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatar();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::uninvite((*i), chat.getSequence(), characterName, chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatBanAvatarFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatBanAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatBanAvatarFromRoom\n");
|
||||
ChatBanAvatarFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::banFromRoom(chat.getSequence(), (*i), characterName, chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("ChatUnbanAvatarFromRoom") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatUnbanAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatUnbanAvatarFromRoom\n");
|
||||
ChatUnbanAvatarFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::unbanFromRoom(chat.getSequence(), (*i), characterName, chat.getRoomName());
|
||||
break;
|
||||
}
|
||||
case constcrc("VerifyPlayerNameMessage") :
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - VerifyPlayerNameMessage");
|
||||
VerifyPlayerNameMessage message(cri);
|
||||
|
||||
bool const valid = ChatServer::isValidChatAvatarName(message.getPlayerName());
|
||||
|
||||
VerifyPlayerNameResponseMessage response(valid, message.getPlayerName());
|
||||
|
||||
ChatServer::fileLog(true, "ConnectionServerConnection", "onReceive() message(VerifyPlayerNameMessage) name(%s) valid(%s)", Unicode::wideToNarrow(message.getPlayerName()).c_str(), (valid ? "yes" : "no"));
|
||||
|
||||
sendToClient(message.getSourceNetworkId(), response);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// @todo : how is a message sent to anyone with a station account?
|
||||
|
||||
else
|
||||
{
|
||||
// defer until avatar is connected to chat backend
|
||||
ChatServer::deferChatMessageFor((*i), message);
|
||||
}
|
||||
|
||||
}
|
||||
if(avatar)
|
||||
{
|
||||
cri = c.getByteStream().begin();
|
||||
|
||||
if(cm.isType("ChatDeleteAllPersistentMessages"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDeleteAllPersistentMessages");
|
||||
ChatDeleteAllPersistentMessages chatDeleteAllPersistentMessages(cri);
|
||||
ChatServer::deleteAllPersistentMessages(chatDeleteAllPersistentMessages.getSourceNetworkId(), chatDeleteAllPersistentMessages.getTargetNetworkId());
|
||||
}
|
||||
else if(cm.isType("ChatInstantMessageToCharacter"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInstantMessageToCharacter");
|
||||
//printf("ConnectionServerConnection -- ChatInstantMessageToCharacter\n");
|
||||
// deliver IM to character
|
||||
ChatInstantMessageToCharacter chat(cri);
|
||||
ChatAvatarId characterName = chat.getCharacterName();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
|
||||
ChatServer::sendInstantMessage(*i, chat.getSequence(), characterName, chat.getMessage(), chat.getOutOfBand());
|
||||
}
|
||||
else if(cm.isType("ChatQueryRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatQueryRoom");
|
||||
//printf("ConnectionServerConnection -- ChatQueryRoom\n");
|
||||
ChatQueryRoom chat(cri);
|
||||
ChatServer::queryRoom((*i), this, chat.getSequence(), chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatPersistentMessageToServer"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatPeristentMessageToServer");
|
||||
//printf("ConnectionServerConnection -- ChatPersistentMessageToServer\n");
|
||||
ChatPersistentMessageToServer chat(cri);
|
||||
ChatAvatarId characterName = chat.getToCharacterName();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
|
||||
ChatServer::sendPersistentMessage((*i), chat.getSequence(), characterName, chat.getSubject(), chat.getMessage(), chat.getOutOfBand());
|
||||
}
|
||||
else if(cm.isType("ChatRequestPersistentMessage"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRequestPersistentMessage");
|
||||
//printf("ConnectionServerConnection -- ChatRequestPersistentMessage\n");
|
||||
ChatRequestPersistentMessage chat(cri);
|
||||
ChatServer::requestPersistentMessage((*i), chat.getSequence(), chat.getMessageId());
|
||||
}
|
||||
else if(cm.isType("ChatDeletePersistentMessage"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDeletePersistentMessage");
|
||||
//printf("ConnectionServerConnection -- ChatDeletePersistentMessage\n");
|
||||
ChatDeletePersistentMessage chat(cri);
|
||||
ChatServer::deletePersistentMessage((*i), chat.getMessageId());
|
||||
}
|
||||
else if(cm.isType("ChatCreateRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatCreateRoom");
|
||||
//printf("ConnectionServerConnection -- ChatCreateRoom\n");
|
||||
ChatCreateRoom chat(cri);
|
||||
ChatServer::createRoom((*i), chat.getSequence(), chat.getRoomName(), chat.getIsModerated(), chat.getIsPublic(), chat.getRoomTitle());
|
||||
}
|
||||
else if(cm.isType("ChatEnterRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatEnterRoom");
|
||||
//printf("ConnectionServerConnection -- ChatEnterRoom\n");
|
||||
// entering a room by name
|
||||
ChatEnterRoom chat(cri);
|
||||
ChatServer::enterRoom((*i), chat.getSequence(), chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatEnterRoomById"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatEnterRoomById");
|
||||
//printf("ConnectionServerConnection -- ChatEnterRoomById\n");
|
||||
// entering a room by room id
|
||||
ChatEnterRoomById chat(cri);
|
||||
ChatServer::enterRoom((*i), chat.getSequence(), chat.getRoomId());
|
||||
|
||||
}
|
||||
else if(cm.isType("ChatSendToRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatSendToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatSendToRoom\n");
|
||||
ChatSendToRoom chat(cri);
|
||||
ChatServer::sendRoomMessage((*i), chat.getSequence(), chat.getRoomId(), chat.getMessage(), chat.getOutOfBand());
|
||||
}
|
||||
else if(cm.isType("ChatRequestRoomList"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRequestRoomList");
|
||||
//printf("ConnectionServerConnection -- ChatRequestRoomList\n");
|
||||
ChatServer::requestRoomList((*i), this);
|
||||
}
|
||||
else if(cm.isType("ChatDestroyRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatDestroyRoom");
|
||||
//printf("ConnectionServerConnection -- ChatDestroyRoom\n");
|
||||
ChatDestroyRoom chat(cri);
|
||||
ChatServer::destroyRoom((*i), chat.getSequence(), chat.getRoomId());
|
||||
}
|
||||
else if(cm.isType("ChatAddModeratorToRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatAddModeratorToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatAddModeratorToRoom\n");
|
||||
ChatAddModeratorToRoom chat(cri);
|
||||
ChatServer::addModeratorToRoom(chat.getSequenceId(), (*i), chat.getAvatarId(), chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatRemoveModeratorFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRemoveModeratorFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatREmoveModeratorFromRoom\n");
|
||||
ChatRemoveModeratorFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::removeModeratorFromRoom(chat.getSequenceId(), (*i), characterName, chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatRemoveAvatarFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatRemoveAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatREmoveAvatarFromRoom\n");
|
||||
ChatRemoveAvatarFromRoom chat(cri);
|
||||
ChatServer::removeAvatarFromRoom((*i), chat.getAvatarId(), chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatKickAvatarFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatKickAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatKickAvatarFromRoom\n");
|
||||
ChatKickAvatarFromRoom chat(cri);
|
||||
ChatServer::kickAvatarFromRoom((*i), chat.getAvatarId(), chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatAddFriend"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatAddFriend");
|
||||
//printf("ConnectionServerConnection -- ChatAddFriend\n");
|
||||
ChatAddFriend chat(ri);
|
||||
ChatServer::addFriend((*i), chat.getSequence(), chat.getCharacterName());
|
||||
}
|
||||
else if(cm.isType("ChatInviteAvatarToRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatInviteAvatarToRoom");
|
||||
//printf("ConnectionServerConnection -- ChatInviteAvatarToRoom\n");
|
||||
ChatInviteAvatarToRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::invite((*i), characterName, chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatUninviteFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatUninviteFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatUninviteAvatarToRoom\n");
|
||||
ChatUninviteFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatar();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::uninvite((*i), chat.getSequence(), characterName, chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatBanAvatarFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatBanAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatBanAvatarFromRoom\n");
|
||||
ChatBanAvatarFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::banFromRoom(chat.getSequence(), (*i), characterName, chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("ChatUnbanAvatarFromRoom"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - ChatUnbanAvatarFromRoom");
|
||||
//printf("ConnectionServerConnection -- ChatUnbanAvatarFromRoom\n");
|
||||
ChatUnbanAvatarFromRoom chat(cri);
|
||||
ChatAvatarId characterName = chat.getAvatarId();
|
||||
if(characterName.gameCode.empty())
|
||||
characterName.gameCode = "SWG";
|
||||
if(characterName.cluster.empty())
|
||||
characterName.cluster = ConfigChatServer::getClusterName();
|
||||
ChatServer::unbanFromRoom(chat.getSequence(), (*i), characterName, chat.getRoomName());
|
||||
}
|
||||
else if(cm.isType("VerifyPlayerNameMessage"))
|
||||
{
|
||||
PROFILER_AUTO_BLOCK_DEFINE("ConnectionServer - VerifyPlayerNameMessage");
|
||||
VerifyPlayerNameMessage message(cri);
|
||||
|
||||
bool const valid = ChatServer::isValidChatAvatarName(message.getPlayerName());
|
||||
|
||||
VerifyPlayerNameResponseMessage response(valid, message.getPlayerName());
|
||||
|
||||
ChatServer::fileLog(true, "ConnectionServerConnection", "onReceive() message(VerifyPlayerNameMessage) name(%s) valid(%s)", Unicode::wideToNarrow(message.getPlayerName()).c_str(), (valid ? "yes" : "no"));
|
||||
|
||||
sendToClient(message.getSourceNetworkId(), response);
|
||||
}
|
||||
|
||||
//messages to allow personal channels
|
||||
else if (cm.isType(VoiceChatRequestPersonalChannel::cms_name))
|
||||
{
|
||||
VoiceChatRequestPersonalChannel message(cri);
|
||||
|
||||
std::string userName, playerName;
|
||||
if(ChatServer::getVoiceChatLoginInfoFromId(message.getOwner(), userName, playerName))
|
||||
{
|
||||
std::list<std::string> modlist;
|
||||
modlist.push_back(userName);
|
||||
|
||||
if(message.getShouldCreate())
|
||||
{
|
||||
// 400 is the current vivox channel size limit when this was written
|
||||
ChatServer::requestGetChannel(message.getOwner(), ChatServer::getVChatInterface()->buildPersonalChannelName(message.getOwner()), false, false, 400, modlist);
|
||||
}
|
||||
else
|
||||
{
|
||||
ChatServer::getVChatInterface()->sendChannelData(message.getOwner(), ChatServer::getVChatInterface()->buildPersonalChannelName(message.getOwner()), "", true, true);
|
||||
}
|
||||
}
|
||||
//@TODO: error message?
|
||||
}
|
||||
else if (cm.isType(VoiceChatInvite::cms_name))
|
||||
{
|
||||
VoiceChatInvite message(cri);
|
||||
if(message.getChannelName() == ChatServer::getVChatInterface()->buildPersonalChannelName(message.getRequester()))
|
||||
{
|
||||
NetworkId targetId = message.getInviteeId();
|
||||
std::string const & targetName = message.getInviteeName();
|
||||
if(targetId.isValid() ||
|
||||
(!targetName.empty() && ChatServer::getVoiceChatLoginInfoFromName(targetName, targetId)))
|
||||
{
|
||||
ChatServer::requestInvitePlayerToChannel(message.getRequester(), targetId, message.getChannelName());
|
||||
}
|
||||
}
|
||||
//@TODO: error message?
|
||||
}
|
||||
else if (cm.isType(VoiceChatKick::cms_name))
|
||||
{
|
||||
VoiceChatKick message(cri);
|
||||
if(message.getChannelName() == ChatServer::getVChatInterface()->buildPersonalChannelName(message.getRequester()))
|
||||
{
|
||||
NetworkId targetId = message.getKickeeId();
|
||||
std::string const & targetName = message.getKickeeName();
|
||||
if(targetId.isValid() ||
|
||||
(!targetName.empty() && (ChatServer::getVoiceChatLoginInfoFromName(targetName, targetId))))
|
||||
{
|
||||
ChatServer::requestKickPlayerFromChannel(message.getRequester(), targetId, message.getChannelName());
|
||||
}
|
||||
}
|
||||
//@TODO: error message?
|
||||
}
|
||||
else if (cm.isType(VoiceChatRequestChannelInfo::cms_name))
|
||||
{
|
||||
VoiceChatRequestChannelInfo message(cri);
|
||||
ChatServer::requestChannelInfo(message.getRequester(), message.getChannelName());
|
||||
}
|
||||
}
|
||||
|
||||
// @todo : how is a message sent to anyone with a station account?
|
||||
|
||||
else
|
||||
{
|
||||
// defer until avatar is connected to chat backend
|
||||
ChatServer::deferChatMessageFor((*i), message);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user