31 [[nodiscard]]
constexpr explicit Packet(
32 PacketPriority priority = PacketPriority::MediumPriority,
33 NetworkPeer::Reliability reliability = NetworkPeer::Reliability::ReliableOrdered,
34 SubClientId clientSubId = SubClientId::PrimaryClient,
37 : mPriority(priority),
38 mReliability(reliability),
39 mSenderSubId(clientSubId),
40 mCompressible(compress ? Compressibility::Compressible : Compressibility::Incompressible) {}
88 LLAPI
void sendToServer()
const;
93 ::PacketPriority mPriority;
94 ::NetworkPeer::Reliability mReliability;
95 ::SubClientId mSenderSubId;
96 mutable bool mIsHandled;
97 ::std::chrono::steady_clock::time_point mReceiveTimepoint;
99 ::Compressibility mCompressible;
105 virtual ~Packet() =
default;
107 virtual ::MinecraftPacketIds getId()
const = 0;
109 virtual ::std::string_view getName()
const = 0;
111 virtual uint64 getMaxSize()
const;
113 virtual ::Bedrock::Result<void> checkSize(uint64 packetSize,
bool receiverIsServer)
const;
115 virtual void writeWithSerializationMode(
118 ::std::optional<::SerializationMode> overrideMode
125 virtual ::Bedrock::Result<void>
130 virtual bool disallowBatching()
const;
132 virtual bool isValid()
const;
134 virtual ::SerializationMode getSerializationMode()
const;
136 virtual void setSerializationMode(::SerializationMode mode);
138 virtual ::std::string toString()
const;
140 virtual ::Bedrock::Result<void>
149 MCAPI ::Bedrock::Result<void> readNoHeader(
152 ::SubClientId
const& subid
159 MCFOLD uint64 $getMaxSize()
const;
161 MCAPI ::Bedrock::Result<void> $checkSize(uint64 packetSize,
bool receiverIsServer)
const;
163 MCAPI
void $writeWithSerializationMode(
166 ::std::optional<::SerializationMode> overrideMode
171 MCAPI ::Bedrock::Result<void>
176 MCFOLD
bool $disallowBatching()
const;
178 MCFOLD
bool $isValid()
const;
180 MCFOLD ::SerializationMode $getSerializationMode()
const;
182 MCFOLD
void $setSerializationMode(::SerializationMode mode);
184 MCFOLD ::std::string $toString()
const;
186 MCAPI ::Bedrock::Result<void>
195 MCAPI
static void** $vftable();