mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-04-27 09:06:31 +00:00
more misc work
This commit is contained in:
parent
8364e60799
commit
48d32f2c77
@ -450,9 +450,6 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) {
|
|||||||
|
|
||||||
|
|
||||||
switch (data.channel) {
|
switch (data.channel) {
|
||||||
case eChatChannel::LOCAL: {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case eChatChannel::TEAM: {
|
case eChatChannel::TEAM: {
|
||||||
auto* team = Game::playerContainer.GetTeam(data.sender.playerID);
|
auto* team = Game::playerContainer.GetTeam(data.sender.playerID);
|
||||||
if (team == nullptr) return;
|
if (team == nullptr) return;
|
||||||
@ -466,7 +463,7 @@ void ChatPacketHandler::HandleChatMessage(Packet* packet) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
LOG("Unhandled Chat channel [%s]", StringifiedEnum::ToString(data.channel).data());
|
LOG_DEBUG("Unhandled Chat channel [%s]", StringifiedEnum::ToString(data.channel).data());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ChatWeb::SendWSChatMessage(data);
|
ChatWeb::SendWSChatMessage(data);
|
||||||
|
@ -150,12 +150,9 @@ namespace ChatWeb {
|
|||||||
json data;
|
json data;
|
||||||
data["message"] = chatMessage.message.GetAsString();
|
data["message"] = chatMessage.message.GetAsString();
|
||||||
data["sender"] = chatMessage.sender;
|
data["sender"] = chatMessage.sender;
|
||||||
|
|
||||||
data["channel"] = magic_enum::enum_name(chatMessage.channel);
|
data["channel"] = magic_enum::enum_name(chatMessage.channel);
|
||||||
|
|
||||||
switch (chatMessage.channel) {
|
switch (chatMessage.channel) {
|
||||||
case eChatChannel::LOCAL:
|
|
||||||
break;
|
|
||||||
case eChatChannel::TEAM:
|
case eChatChannel::TEAM:
|
||||||
data["teamID"] = chatMessage.teamID;
|
data["teamID"] = chatMessage.teamID;
|
||||||
break;
|
break;
|
||||||
|
@ -61,6 +61,9 @@ struct LUBitStream {
|
|||||||
void WriteHeader(RakNet::BitStream& bitStream) const;
|
void WriteHeader(RakNet::BitStream& bitStream) const;
|
||||||
bool ReadHeader(RakNet::BitStream& bitStream);
|
bool ReadHeader(RakNet::BitStream& bitStream);
|
||||||
void Send(const SystemAddress& sysAddr) const;
|
void Send(const SystemAddress& sysAddr) const;
|
||||||
|
void Broadcast() const {
|
||||||
|
Send(UNASSIGNED_SYSTEM_ADDRESS);
|
||||||
|
};
|
||||||
|
|
||||||
virtual void Serialize(RakNet::BitStream& bitStream) const {}
|
virtual void Serialize(RakNet::BitStream& bitStream) const {}
|
||||||
virtual bool Deserialize(RakNet::BitStream& bitStream) { return true; }
|
virtual bool Deserialize(RakNet::BitStream& bitStream) { return true; }
|
||||||
|
@ -54,6 +54,55 @@ namespace ChatPackets {
|
|||||||
//TODO: Implement this
|
//TODO: Implement this
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
void ChatMessage::Handle(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void WorldChatMessage::Serialize(RakNet::BitStream& bitStream) const {
|
||||||
|
|
||||||
|
}
|
||||||
|
bool WorldChatMessage::Deserialize(RakNet::BitStream& inStream) {
|
||||||
|
VALIDATE_READ(inStream.Read(chatChannel));
|
||||||
|
uint16_t padding;
|
||||||
|
VALIDATE_READ(inStream.Read(padding));
|
||||||
|
uint32_t messageLength;
|
||||||
|
VALIDATE_READ(inStream.Read(messageLength));
|
||||||
|
string message_tmp;
|
||||||
|
for (uint32_t i = 0; i < messageLength; ++i) {
|
||||||
|
uint16_t character;
|
||||||
|
VALIDATE_READ(inStream.Read(character));
|
||||||
|
message_tmp.push_back(character);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
void WorldChatMessage::Handle() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void PrivateChatMessage::Serialize(RakNet::BitStream& bitStream) const {
|
||||||
|
|
||||||
|
}
|
||||||
|
bool PrivateChatMessage::Deserialize(RakNet::BitStream& inStream) {
|
||||||
|
|
||||||
|
}
|
||||||
|
void PrivateChatMessage::Handle() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UserChatMessage::Serialize(RakNet::BitStream& bitStream) const {
|
||||||
|
|
||||||
|
}
|
||||||
|
bool UserChatMessage::Deserialize(RakNet::BitStream& inStream) {
|
||||||
|
|
||||||
|
}
|
||||||
|
void UserChatMessage::Handle() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void SendSystemMessage(const SystemAddress& sysAddr, const std::u16string& message, const bool broadcast) {
|
void SendSystemMessage(const SystemAddress& sysAddr, const std::u16string& message, const bool broadcast) {
|
||||||
CBITSTREAM;
|
CBITSTREAM;
|
||||||
|
@ -61,6 +61,25 @@ namespace ChatPackets {
|
|||||||
ChatMessage() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::GENERAL_CHAT_MESSAGE) {};
|
ChatMessage() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::GENERAL_CHAT_MESSAGE) {};
|
||||||
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
||||||
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
||||||
|
virtual void Handle() override {};
|
||||||
|
};
|
||||||
|
|
||||||
|
struct WorldChatMessage : public ChatMessage {
|
||||||
|
virtual bool Deserialize(RakNet::BitStream& bitStream) override;
|
||||||
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
||||||
|
virtual void Handle() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PrivateChatMessage : public ChatMessage {
|
||||||
|
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
||||||
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
||||||
|
virtual void Handle() override;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct UserChatMessage : public ChatMessage {
|
||||||
|
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
||||||
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
||||||
|
virtual void Handle() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
// Should be in client packets since it is a client connection type, but whatever
|
// Should be in client packets since it is a client connection type, but whatever
|
||||||
|
@ -13,12 +13,6 @@ class PositionUpdate;
|
|||||||
|
|
||||||
struct Packet;
|
struct Packet;
|
||||||
|
|
||||||
struct ChatMessage {
|
|
||||||
uint8_t chatChannel = 0;
|
|
||||||
uint16_t unknown = 0;
|
|
||||||
std::u16string message;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct ChatModerationRequest {
|
struct ChatModerationRequest {
|
||||||
uint8_t chatLevel = 0;
|
uint8_t chatLevel = 0;
|
||||||
uint8_t requestID = 0;
|
uint8_t requestID = 0;
|
||||||
@ -27,7 +21,6 @@ struct ChatModerationRequest {
|
|||||||
};
|
};
|
||||||
|
|
||||||
namespace ClientPackets {
|
namespace ClientPackets {
|
||||||
ChatMessage HandleChatMessage(Packet* packet);
|
|
||||||
PositionUpdate HandleClientPositionUpdate(Packet* packet);
|
PositionUpdate HandleClientPositionUpdate(Packet* packet);
|
||||||
ChatModerationRequest HandleChatModerationRequest(Packet* packet);
|
ChatModerationRequest HandleChatModerationRequest(Packet* packet);
|
||||||
int32_t SendTop5HelpIssues(Packet* packet);
|
int32_t SendTop5HelpIssues(Packet* packet);
|
||||||
|
@ -10,9 +10,6 @@ struct SystemAddress;
|
|||||||
enum class eGameMasterLevel : uint8_t;
|
enum class eGameMasterLevel : uint8_t;
|
||||||
enum class eCharacterCreationResponse : uint8_t;
|
enum class eCharacterCreationResponse : uint8_t;
|
||||||
enum class eRenameResponse : uint8_t;
|
enum class eRenameResponse : uint8_t;
|
||||||
namespace RakNet {
|
|
||||||
class BitStream;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct HTTPMonitorInfo {
|
struct HTTPMonitorInfo {
|
||||||
uint16_t port = 80;
|
uint16_t port = 80;
|
||||||
|
@ -1321,7 +1321,7 @@ void HandlePacket(Packet* packet) {
|
|||||||
if (chatDisabled) {
|
if (chatDisabled) {
|
||||||
ChatPackets::MessageFailure().Send(packet->systemAddress);
|
ChatPackets::MessageFailure().Send(packet->systemAddress);
|
||||||
} else {
|
} else {
|
||||||
auto chatMessage = ClientPackets::HandleChatMessage(packet);
|
ChatPackets::WorldChatMessage inChatMessage;
|
||||||
// TODO: Find a good home for the logic in this case.
|
// TODO: Find a good home for the logic in this case.
|
||||||
User* user = UserManager::Instance()->GetUser(packet->systemAddress);
|
User* user = UserManager::Instance()->GetUser(packet->systemAddress);
|
||||||
if (!user) {
|
if (!user) {
|
||||||
@ -1342,15 +1342,12 @@ void HandlePacket(Packet* packet) {
|
|||||||
|
|
||||||
std::string sMessage = GeneralUtils::UTF16ToWTF8(chatMessage.message);
|
std::string sMessage = GeneralUtils::UTF16ToWTF8(chatMessage.message);
|
||||||
LOG("%s: %s", playerName.c_str(), sMessage.c_str());
|
LOG("%s: %s", playerName.c_str(), sMessage.c_str());
|
||||||
//(packet->systemAddress, chatMessage.chatChannel, playerName, user->GetLoggedInChar(), isMythran, chatMessage.message);
|
|
||||||
|
|
||||||
ChatPackets::ChatMessage outChatMessage;
|
ChatPackets::ChatMessage outChatMessage;
|
||||||
outChatMessage.chatChannel = chatMessage.chatChannel;
|
outChatMessage.chatChannel = chatMessage.chatChannel;
|
||||||
outChatMessage.message = chatMessage.message;
|
outChatMessage.message = chatMessage.message;
|
||||||
outChatMessage.senderMythran = isMythran;
|
|
||||||
outChatMessage.senderName = playerName;
|
outChatMessage.Broadcast();
|
||||||
outChatMessage.playerObjectID = user->GetLoggedInChar();
|
|
||||||
outChatMessage.Send(packet->systemAddress);
|
|
||||||
|
|
||||||
{
|
{
|
||||||
// TODO: make it so we don't write this manually, but instead use a proper read and writes
|
// TODO: make it so we don't write this manually, but instead use a proper read and writes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user