22
33#include < ll/api/memory/Memory.h>
44#include < mc/deps/core/common/bedrock/Result.h>
5+ #include < mc/deps/core/utility/BinaryStream.h>
56#include < mc/enums/MinecraftPacketIds.h>
67#include < mc/network/packet/Packet.h>
78#include < string>
89#include < string_view>
910
1011namespace lse ::api {
1112
12- constexpr auto PacketName = " NetworkPacket" ;
13- constexpr auto WriteOffset = 96 ;
14-
15- template <int packetId, bool batching = true , bool compress = true >
13+ template <MinecraftPacketIds packetId>
1614class NetworkPacket final : public Packet {
1715public:
18- NetworkPacket (std::string_view data) : mData (data) {}
16+ NetworkPacket (std::string data) : mData (std::move( data) ) {}
1917
2018 NetworkPacket () = default ;
2119 NetworkPacket (NetworkPacket&&) = default ;
@@ -25,23 +23,18 @@ class NetworkPacket final : public Packet {
2523 NetworkPacket (const NetworkPacket&) = delete ;
2624 auto operator =(const NetworkPacket&) -> NetworkPacket& = delete ;
2725
28- [[nodiscard]] auto getId () const -> MinecraftPacketIds override {
29- return static_cast <MinecraftPacketIds>(packetId);
30- }
26+ [[nodiscard]] auto getId () const -> MinecraftPacketIds override { return packetId; }
3127
32- [[nodiscard]] auto getName () const -> std::string override { return PacketName ; }
28+ [[nodiscard]] auto getName () const -> std::string override { return " NetworkPacket " ; }
3329
34- void write (BinaryStream& stream) const override {
35- auto & target = *ll::memory::dAccess<std::string*>(&stream, WriteOffset);
36- target.append (mData );
37- }
30+ void write (BinaryStream& stream) const override { stream.mBuffer ->append (mData ); }
3831
3932 auto _read (class ReadOnlyBinaryStream & /* stream*/ ) -> Bedrock::Result<void> override {
4033 return Bedrock::Result<void >{};
4134 }
4235
4336private:
44- std::string_view mData ;
37+ std::string mData ;
4538};
4639
4740} // namespace lse::api
0 commit comments