1,204 bytes added
, 12:35, 25 October 2020
<code>PacketBuffer</code>s are essentially a byte array of zero or more bytes to sync information across a network. It works similarly to a queue: the information is written in to a specific order and read in the order it was written.
== Using <code>PacketBuffer</code>s ==
In most cases, one will use a premade <code>PacketBuffer</code> passed in from some network. Most of the time this is a heap buffer of some sort; however, understanding how it works is best left as an explanation of data structures.
When you are <code>writing</code> to a <code>PacketBuffer</code>, you are calling one of the many write functions to store information as bytes (e.g. <code>writeBlockPos</code> or <code>writeVarInt</code>). There are a couple of helpers for objects like <code>CompoundNBT</code>, <code>ItemStack</code>s, etc. if they are needed.
When you are <code>reading</code> from a <code>PacketBuffer</code>, you are calling the equivalent read function in the same order. For example, if you call <code>writeBlockPos</code> and then <code>writeVarInt</code>, you would call <code>readBlockPos</code> and then <code>readVarInt</code> in that order. Each of these method returns the value from the buffer.