mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2025-05-30 21:51:33 +00:00
130 lines
4.0 KiB
C++
130 lines
4.0 KiB
C++
/*
|
|
* Darkflame Universe
|
|
* Copyright 2018
|
|
*/
|
|
|
|
#ifndef CLIENTPACKETS_H
|
|
#define CLIENTPACKETS_H
|
|
|
|
#include <cstdint>
|
|
#include <string>
|
|
#include "BitStreamUtils.h"
|
|
#include "eGameMasterLevel.h"
|
|
#include "eChatChannel.h"
|
|
#include "dCommonVars.h"
|
|
|
|
class PositionUpdate;
|
|
|
|
struct Packet;
|
|
|
|
class User;
|
|
struct SystemAddress;
|
|
enum class eCharacterCreationResponse : uint8_t;
|
|
enum class eRenameResponse : uint8_t;
|
|
|
|
namespace ClientPackets {
|
|
struct LoadStaticZone : public LUBitStream {
|
|
LWOZONEID zoneID;
|
|
uint32_t checksum = 0;
|
|
bool editorEnabled = false;
|
|
uint8_t editorLevel = 0;
|
|
NiPoint3 position = NiPoint3Constant::ZERO;
|
|
uint32_t instanceType = 0;
|
|
|
|
LoadStaticZone() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::LOAD_STATIC_ZONE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
|
|
};
|
|
|
|
struct CharacterCreationResponse : public LUBitStream {
|
|
eCharacterCreationResponse response;
|
|
|
|
CharacterCreationResponse() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::CHARACTER_CREATE_RESPONSE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct CharacterRenameResponse : public LUBitStream {
|
|
eRenameResponse response;
|
|
|
|
CharacterRenameResponse() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::CHARACTER_RENAME_RESPONSE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct CharacterDeleteResponse : public LUBitStream {
|
|
bool success;
|
|
|
|
CharacterDeleteResponse() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::DELETE_CHARACTER_RESPONSE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct TransferToWorld : public LUBitStream {
|
|
std::string serverIP;
|
|
uint32_t serverPort = 0;
|
|
bool mythranShift = false;
|
|
|
|
TransferToWorld() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::TRANSFER_TO_WORLD) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct ServerState : public LUBitStream {
|
|
bool serverReady = false;
|
|
|
|
ServerState() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::SERVER_STATES) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct CreateCharacter : public LUBitStream {
|
|
LWOOBJID objid = LWOOBJID_EMPTY;
|
|
LOT templateID = 1;
|
|
std::u16string name;
|
|
eGameMasterLevel gmLevel = eGameMasterLevel::CIVILIAN;
|
|
int32_t chatMode = 0;
|
|
std::string_view xmlData;
|
|
int64_t reputation = 0;
|
|
|
|
CreateCharacter() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::CREATE_CHARACTER) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct ChatModerationString : public LUBitStream {
|
|
eChatChannel chatChannel = eChatChannel::SYSTEMNOTIFY;
|
|
uint8_t chatMode = 0;
|
|
std::string receiver;
|
|
std::set<std::pair<uint8_t, uint8_t>> rejectedWords;
|
|
|
|
ChatModerationString() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::CHAT_MODERATION_STRING) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct GMLevelChange : public LUBitStream {
|
|
bool success = false;
|
|
eGameMasterLevel highestLevel = eGameMasterLevel::CIVILIAN;
|
|
eGameMasterLevel prevLevel = eGameMasterLevel::CIVILIAN;
|
|
eGameMasterLevel newLevel = eGameMasterLevel::CIVILIAN;
|
|
|
|
GMLevelChange() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::MAKE_GM_RESPONSE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct DebugOutput : public LUBitStream {
|
|
std::string data;
|
|
|
|
DebugOutput() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::DEBUG_OUTPUT) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
|
|
struct HTTPMonitorInfoResponse : public LUBitStream {
|
|
uint16_t port = 80;
|
|
bool openWeb = false;
|
|
bool supportsSum = false;
|
|
bool supportsDetail = false;
|
|
bool supportsWho = false;
|
|
bool supportsObjects = false;
|
|
|
|
HTTPMonitorInfoResponse() : LUBitStream(eConnectionType::CLIENT, MessageType::Client::HTTP_MONITOR_INFO_RESPONSE) {};
|
|
void Serialize(RakNet::BitStream& bitStream) const override;
|
|
};
|
|
};
|
|
|
|
#endif // CLIENTPACKETS_H
|