mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-04-27 00:56:30 +00:00
95 lines
3.0 KiB
C++
95 lines
3.0 KiB
C++
/*
|
|
* Darkflame Universe
|
|
* Copyright 2018
|
|
*/
|
|
|
|
#ifndef CHATPACKETS_H
|
|
#define CHATPACKETS_H
|
|
|
|
struct SystemAddress;
|
|
|
|
#include <string>
|
|
#include "dCommonVars.h"
|
|
#include "BitStreamUtils.h"
|
|
#include "MessageType/Chat.h"
|
|
#include "eChatMessageResponseCode.h"
|
|
|
|
enum class eCannedText : uint8_t {
|
|
CHAT_DISABLED = 0,
|
|
F2P_CHAT_DISABLED = 1
|
|
};
|
|
|
|
namespace ChatPackets {
|
|
void SendSystemMessage(const SystemAddress& sysAddr, const std::u16string& message, const bool broadcast = false);
|
|
|
|
struct ShowAllRequest : public LUBitStream {
|
|
LWOOBJID requestor = LWOOBJID_EMPTY;
|
|
bool displayZoneData = true;
|
|
bool displayIndividualPlayers = true;
|
|
|
|
ShowAllRequest() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::WHO) {};
|
|
|
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
|
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
|
};
|
|
|
|
struct FindPlayerRequest : public LUBitStream {
|
|
LWOOBJID requestor = LWOOBJID_EMPTY;
|
|
LUWString playerName;
|
|
FindPlayerRequest() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::WHO) {};
|
|
|
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
|
virtual bool Deserialize(RakNet::BitStream& inStream) override;
|
|
};
|
|
|
|
struct Announcement : public LUBitStream {
|
|
std::string title;
|
|
std::string message;
|
|
|
|
Announcement() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::GM_ANNOUNCE) {};
|
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct ChatMessage : public LUBitStream {
|
|
char chatChannel;
|
|
std::string senderName;
|
|
LWOOBJID playerObjectID;
|
|
bool senderMythran;
|
|
eChatMessageResponseCode responseCode = eChatMessageResponseCode::SENT;
|
|
LUWString message;
|
|
|
|
ChatMessage() : LUBitStream(eConnectionType::CHAT, MessageType::Chat::GENERAL_CHAT_MESSAGE) {};
|
|
virtual void Serialize(RakNet::BitStream& bitStream) const 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
|
|
struct MessageFailure : public LUBitStream {
|
|
eCannedText cannedText = eCannedText::CHAT_DISABLED;
|
|
|
|
MessageFailure() : LUBitStream(eConnectionType::CLIENT, MessageType::Chat::SEND_CANNED_TEXT) {};
|
|
virtual void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
};
|
|
|
|
#endif // CHATPACKETS_H
|