33 [[nodiscard]]
constexpr explicit Packet(
34 PacketPriority priority = PacketPriority::MediumPriority,
35 NetworkPeer::Reliability reliability = NetworkPeer::Reliability::ReliableOrdered,
36 SubClientId clientSubId = SubClientId::PrimaryClient,
39 : mPriority(priority),
40 mReliability(reliability),
41 mSenderSubId(clientSubId),
42 mCompressible(compress ? Compressibility::Compressible : Compressibility::Incompressible) {}
90 LLAPI
void sendToServer()
const;
95 ::PacketPriority mPriority;
96 ::NetworkPeer::Reliability mReliability;
97 ::SubClientId mSenderSubId;
99 ::std::chrono::steady_clock::time_point mReceiveTimepoint;
101 ::Compressibility mCompressible;
107 virtual ~Packet() =
default;
109 virtual ::MinecraftPacketIds getId()
const = 0;
111 virtual ::std::string_view getName()
const = 0;
113 virtual uint64 getMaxSize()
const;
115 virtual ::Bedrock::Result<void> checkSize(uint64 packetSize,
bool receiverIsServer)
const;
117 virtual void writeWithSerializationMode(
120 ::std::optional<::SerializationMode> overrideMode
127 virtual ::Bedrock::Result<void>
132 virtual bool disallowBatching()
const;
134 virtual bool isValid()
const;
136 virtual ::SerializationMode getSerializationMode()
const;
138 virtual void setSerializationMode(::SerializationMode mode);
140 virtual ::std::string toString()
const;
153 MCAPI ::Bedrock::Result<void> readNoHeader(
156 ::SubClientId
const& subid
163 MCAPI uint64 $getMaxSize()
const;
165 MCAPI ::Bedrock::Result<void> $checkSize(uint64 packetSize,
bool receiverIsServer)
const;
167 MCAPI
void $writeWithSerializationMode(
170 ::std::optional<::SerializationMode> overrideMode
175 MCFOLD ::Bedrock::Result<void>
180 MCFOLD
bool $disallowBatching()
const;
182 MCFOLD
bool $isValid()
const;
184 MCFOLD ::SerializationMode $getSerializationMode()
const;
186 MCFOLD
void $setSerializationMode(::SerializationMode mode);
188 MCFOLD ::std::string $toString()
const;
198 MCAPI
static void** $vftable();