
PacketAPI is designed to make networking easier in Minecraft.
Briefly:
- No more handlers for each packet, keeping OOP style and processing synchronous
- Registering packets without the need to specify descriminators and other things
- Callbacks. Sending requests to the server and asynchronously waiting for a response, and then processing the result synchronously, all in one line of code
- Control over packages. Suppression of spam with packets of one annotation
- Rich functionality for sending packets in packs with filtering and black jack
- Converting Object <-> byte[] without pain
- Full BukkitAPI and Forge support
- Lazy data sending without packets
- The author's method of packing data, similar to serialization, but with optimization of the weight of objects up to 4.5 times
Usage examples
It looks like CurseForge doesn't support source code blocks. Therefore, examples are on Github.
Tools
- Forge client tools:
PacketHandlerClient is a tool handling and sending packets from the client side
Base packets:
IPacketInClient is a base incoming packet
IPacketOutClient is a base outgoing packet
ICallbackOut is a base outgoing callback packet
- Forge server tools:
PacketHandlerServer is a tool handling and sending packets from the server side
Base packets:
IPacketInServer is a base incoming packet
IPacketOutServer is a base outgoing packet
ICallbackInServer is a base incoming callback packet
- Bukkit tools:
PacketHandlerBukkitServer is a tool handling and sending packets from the bukkit side
Base packets:
IPacketInBukkit is a base incoming packet
IPacketOutBukkit is a base outgoing packet
ICallbackInBukkit is a base incoming callback packet
- Misc tools:
Composable is a type of objects that can be sent without packets. See examples and docs for more information
Sender is a one of the main tools for sending outgoing packets, callbacks and Composable objects. See examples and docs for more information
RequestController is a tool for filtering and scheduling packet execution. See examples and docs for more information
Packet and PacketSubscriber are annotations to automatically register your packets. See examples and docs for more information
Install
Go to Files and download one of them.
ACHTUNG! PacketAPI was developed for Minecraft `v1.7.10` and `v1.12.2` and works correctly there. It does not mean that it will
definitely fail on other versions, but you should use it at your own peril and risk.
p.s. use a jar file called `packetapi-@VERSION@-no-reobf.jar` if you cannot run the game with this library from the IDE.
It's possible when working with `Minecraft v1.7.10`
License
See the License