From 70c32d288fa2134c63c70964611da646fcdfe4e9 Mon Sep 17 00:00:00 2001 From: LaG1924 <12997935+LaG1924@users.noreply.github.com> Date: Thu, 30 Jul 2020 04:36:24 +0500 Subject: Minor protocol support improvement --- src/GameState.cpp | 10 +++++++++ src/Packet.hpp | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) diff --git a/src/GameState.cpp b/src/GameState.cpp index fdb453f..03b13ae 100644 --- a/src/GameState.cpp +++ b/src/GameState.cpp @@ -268,6 +268,16 @@ void GameState::UpdatePacket(std::shared_ptr ptr) { LOG(INFO) << "Gamemode is " << gameStatus.gamemode << ", Difficulty is " << (int)gameStatus.difficulty << ", Level Type is " << gameStatus.levelType; PUSH_EVENT("PlayerConnected", 0); + + auto packetSettings = std::make_shared("en_us", 0x14, 0, true, 0x7F, 1); + PUSH_EVENT("SendPacket", std::static_pointer_cast(packetSettings)); + + std::string brandStr("\x08""AltCraft"); + std::vector brandData; + std::copy(brandStr.begin(), brandStr.end(), std::back_inserter(brandData)); + auto packetPluginBrand = std::make_shared("MC|Brand", brandData); + PUSH_EVENT("SendPacket", std::static_pointer_cast(packetPluginBrand)); + break; } diff --git a/src/Packet.hpp b/src/Packet.hpp index cca01ec..ccc486f 100644 --- a/src/Packet.hpp +++ b/src/Packet.hpp @@ -1169,3 +1169,64 @@ struct PacketRespawn : Packet { unsigned char Gamemode; std::string LevelType; }; + +struct PacketPluginMessageSB : Packet { + void ToStream(StreamOutput* stream) override { + stream->WriteString(Channel); + stream->WriteByteArray(Data); + } + + void FromStream(StreamInput* stream) override { + + } + + int GetPacketId() override { + return PacketNamePlaySB::PluginMessageSB; + } + + PacketPluginMessageSB(const std::string& channel, const std::vector data) : Channel(channel), Data(data) {} + + std::string Channel; + std::vector Data; +}; + +struct PacketClientSettings : Packet { + void ToStream(StreamOutput* stream) override { + stream->WriteString(Locale); + stream->WriteByte(ViewDistance); + stream->WriteVarInt(ChatMode); + stream->WriteBool(ChatColors); + stream->WriteUByte(DisplayedSkinParts); + stream->WriteVarInt(MainHand); + } + + void FromStream(StreamInput* stream) override { + + } + + int GetPacketId() override { + return PacketNamePlaySB::ClientSettings; + } + + PacketClientSettings( + const std::string locale, + unsigned char viewDistance, + int chatMode, + bool chatColors, + unsigned char displayedSkinParts, + int mainHand) : + Locale(locale), + ViewDistance(viewDistance), + ChatMode(chatMode), + ChatColors(chatColors), + DisplayedSkinParts(displayedSkinParts), + MainHand(mainHand) {} + + std::string Locale; + unsigned char ViewDistance; + int ChatMode; + bool ChatColors; + unsigned char DisplayedSkinParts; + int MainHand; +}; + -- cgit v1.2.3