LeviLamina
Loading...
Searching...
No Matches
Packet.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/common/SubClientId.h"
7#include "mc/deps/raknet/PacketPriority.h"
8#include "mc/network/Compressibility.h"
9#include "mc/network/MinecraftPacketIds.h"
10#include "mc/network/NetworkPeer.h"
11#include "mc/network/packet/cerealize/core/SerializationMode.h"
12#include "mc/platform/Result.h"
13
14// auto generated forward declare list
15// clang-format off
16class BinaryStream;
19namespace cereal { struct ReflectionCtx; }
20// clang-format on
21
22class Player;
23class Actor;
24class BlockPos;
27
28class Packet {
29public:
30 [[nodiscard]] constexpr explicit Packet(
31 PacketPriority priority = PacketPriority::MediumPriority,
32 NetworkPeer::Reliability reliability = NetworkPeer::Reliability::ReliableOrdered,
33 SubClientId clientSubId = SubClientId::PrimaryClient,
34 bool compress = true
35 )
36 : mPriority(priority),
37 mReliability(reliability),
38 mSenderSubId(clientSubId),
39 mCompressible(compress ? Compressibility::Compressible : Compressibility::Incompressible) {}
40
46 LLAPI void sendTo(Player const& player) const;
47
54 LLAPI void sendTo(BlockPos const& pos, DimensionType dimId, optional_ref<Player const> except = std::nullopt) const;
55
62 LLAPI void sendTo(Actor const& actor, optional_ref<Player const> except = std::nullopt) const;
63
70 LLAPI void sendToClient(NetworkIdentifier const& identifier, ::SubClientId clientId) const;
71
72 LLAPI void sendToClient(NetworkIdentifierWithSubId const& identifierWithSubId) const;
73
77 LLAPI void sendToClients() const;
78
79 LLAPI void sendToClients(NetworkIdentifier const& exceptId, ::SubClientId exceptSubid) const;
80
81public:
82 // member variables
83 // NOLINTBEGIN
84 ::PacketPriority mPriority;
85 ::NetworkPeer::Reliability mReliability;
86 ::SubClientId mSenderSubId;
87 bool mIsHandled;
88 ::std::chrono::steady_clock::time_point mReceiveTimepoint;
89 ::IPacketHandlerDispatcher const* mHandler;
90 ::Compressibility mCompressible;
91 // NOLINTEND
92
93public:
94 // virtual functions
95 // NOLINTBEGIN
96 // vIndex: 0
97 virtual ~Packet();
98
99 // vIndex: 1
100 virtual ::MinecraftPacketIds getId() const = 0;
101
102 // vIndex: 2
103 virtual ::std::string getName() const = 0;
104
105 // vIndex: 3
106 virtual uint64 getMaxSize() const;
107
108 // vIndex: 4
109 virtual ::Bedrock::Result<void> checkSize(uint64 packetSize, bool receiverIsServer) const;
110
111 // vIndex: 5
112 virtual void writeWithSerializationMode(
113 ::BinaryStream& bitStream,
114 ::cereal::ReflectionCtx const& reflectionCtx,
115 ::std::optional<::SerializationMode>
116 ) const;
117
118 // vIndex: 7
119 virtual void write(::BinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx) const;
120
121 // vIndex: 6
122 virtual void write(::BinaryStream&) const = 0;
123
124 // vIndex: 9
125 virtual ::Bedrock::Result<void>
126 read(::ReadOnlyBinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx);
127
128 // vIndex: 8
129 virtual ::Bedrock::Result<void> read(::ReadOnlyBinaryStream& bitStream);
130
131 // vIndex: 10
132 virtual bool disallowBatching() const;
133
134 // vIndex: 11
135 virtual bool isValid() const;
136
137 // vIndex: 12
138 virtual ::SerializationMode getSerializationMode() const;
139
140 // vIndex: 13
141 virtual void setSerializationMode(::SerializationMode);
142
143 // vIndex: 14
144 virtual ::std::string toString() const;
145
146 // vIndex: 16
147 virtual ::Bedrock::Result<void>
148 _read(::ReadOnlyBinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx);
149
150 // vIndex: 15
151 virtual ::Bedrock::Result<void> _read(::ReadOnlyBinaryStream&) = 0;
152 // NOLINTEND
153
154public:
155 // member functions
156 // NOLINTBEGIN
157 MCAPI ::Bedrock::Result<void> readNoHeader(
158 ::ReadOnlyBinaryStream& bitstream,
159 ::cereal::ReflectionCtx const& reflectionCtx,
160 ::SubClientId const& subid
161 );
162 // NOLINTEND
163
164public:
165 // destructor thunk
166 // NOLINTBEGIN
167 MCFOLD void $dtor();
168 // NOLINTEND
169
170public:
171 // virtual function thunks
172 // NOLINTBEGIN
173 MCFOLD uint64 $getMaxSize() const;
174
175 MCAPI ::Bedrock::Result<void> $checkSize(uint64 packetSize, bool receiverIsServer) const;
176
177 MCAPI void $writeWithSerializationMode(
178 ::BinaryStream& bitStream,
179 ::cereal::ReflectionCtx const& reflectionCtx,
180 ::std::optional<::SerializationMode>
181 ) const;
182
183 MCAPI void $write(::BinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx) const;
184
185 MCFOLD ::Bedrock::Result<void>
186 $read(::ReadOnlyBinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx);
187
188 MCAPI ::Bedrock::Result<void> $read(::ReadOnlyBinaryStream& bitStream);
189
190 MCFOLD bool $disallowBatching() const;
191
192 MCFOLD bool $isValid() const;
193
194 MCFOLD ::SerializationMode $getSerializationMode() const;
195
196 MCFOLD void $setSerializationMode(::SerializationMode);
197
198 MCFOLD ::std::string $toString() const;
199
200 MCFOLD ::Bedrock::Result<void>
201 $_read(::ReadOnlyBinaryStream& bitStream, ::cereal::ReflectionCtx const& reflectionCtx);
202 // NOLINTEND
203
204public:
205 // vftables
206 // NOLINTBEGIN
207 MCNAPI static void** $vftable();
208 // NOLINTEND
209};
210
211namespace ll {
212template <class PacketPayloadT>
213class PayloadPacket : public ::Packet, public PacketPayloadT {
214public:
215 using PayloadType = PacketPayloadT;
216
217 template <typename... Args>
218 PayloadPacket(Args&&... args) : Packet(),
219 PacketPayloadT(std::forward<Args>(args)...) {}
220};
221} // namespace ll
Definition Actor.h:102
Definition AutomaticID.h:6
Definition BinaryStream.h:10
Definition BlockPos.h:17
Definition IPacketHandlerDispatcher.h:12
Definition NetworkIdentifier.h:10
Definition Packet.h:28
LLAPI void sendTo(Player const &player) const
LLAPI void sendToClient(NetworkIdentifier const &identifier, ::SubClientId clientId) const
LLAPI void sendTo(BlockPos const &pos, DimensionType dimId, optional_ref< Player const > except=std::nullopt) const
LLAPI void sendToClients() const
static MCAPI void ** $vftable()
LLAPI void sendTo(Actor const &actor, optional_ref< Player const > except=std::nullopt) const
Definition Player.h:123
Definition ReadOnlyBinaryStream.h:8
Definition Packet.h:213
Definition optional_ref.h:10
Definition NetworkIdentifierWithSubId.h:10
Definition ReflectionCtx.h:11