ProtocolLib icon

ProtocolLib -----

Provides read/write access to the Minecraft protocol




Note: This will be the final release supporting Java 8. ProtocolLib 5.4.0 will require Java 17.

This release primarily focuses on support for 1.20.5/6 and 1.21. This includes support for Mojang Mappings, support for Java 23, and improvements to ProtocolLib's underlying network injector.

Special thanks to @ingrim4 for his excellent contributions to this release.

If you would like, and are comfortably able, to support development work, consider sponsoring the project.

Full changelog: https://github.com/dmulloy2/ProtocolLib/releases/tag/5.3.0
----------, Oct 20, 2024

Big thank you to my sponsors @aternosorg @pebblehost @Fanfaryy @SimplyVanilla and @GomorrhaDev. If ProtocolLib is an important part of your server, consider supporting the project at https://github.com/sponsors/dmulloy2

Changelog
Full Changelog: 5.1.0...5.2.0
----------, Apr 7, 2024

Thank you to my sponsors @aternosorg @CJCrafter @pebblehost and @GomorrhaDev for their support! Help support the project at https://github.com/sponsors/dmulloy2, it really means a lot :)

What's changed:
  • Ignore static fields in wrapper class for AutoWrapper by @lukalt
  • Added method to get RemoteChatSession from player by @lukalt
  • Cleanup3 by @Photon-GitHub
  • Correctly resize integer map by @lukalt
  • Update to 1.20 by @lukalt
  • Init Folia support by @mani1232
  • Fix metrics scheduler for Folia by @lukalt
  • Added support for dust color transition particles by @RobotHanzo
  • Implement getNewEntityTracker for Folia by @LOOHP
  • Some folia fixes by @Anon8281
Full Changelog: https://github.com/dmulloy2/ProtocolLib/compare/5.0.0...5.1.0
----------, Aug 5, 2023

  • Performance improvements in channel injection (#1524)
  • Updates for 1.19-1.19.4
  • Added support for bundled packets in 1.19.4 (#2258)
  • Support Mojang mapped servers (#1816)
  • Use MethodHandles for reflection to improve performance (#1561)
  • Support Java 20
  • Added modifiers
  • Various other performance improvements and bug fixes
----------, May 12, 2023

First, a big shoutout to @derklaro for many of the fixes and updates in this release! Make sure to send some love (and donations) his way. This will likely be the last release in the 4.x series as a large rewrite of the injection code and some impressive performance gains are incoming.

Changes
  • Support for 1.17-1.18.x
  • Add long jump pose
  • Fix entity tracker
  • Remove stray debug stak
  • Fix NPE with PlayerInfoData
  • Fix player protocol version
  • Fix a memory leak
  • Improve auto wrapper
And, as always, thank you to my generous sponsors who support the project!
----------, Mar 4, 2022

First, a big shoutout to @derklaro for many of the fixes and updates in this release! Make sure to send some love (and donations) his way. This will likely be the last release in the 4.x series as a large rewrite of the injection code and some impressive performance gains are incoming.

Changes
  • Support for 1.17-1.18.x
  • Add long jump pose
  • Fix entity tracker
  • Remove stray debug stak
  • Fix NPE with PlayerInfoData
  • Fix player protocol version
  • Fix a memory leak
  • Improve auto wrapper
And, as always, thank you to my generous sponsors who support the project!
----------, Mar 4, 2022

First, a big shoutout to my GitHub sponsors for supporting the update to 1.17. Monthly and one-time donations of any amount are greatly appreciated.

Changelog
  • Support for Java 16
  • Support for Minecraft 1.17.x
  • Metrics improvements
  • Fix performance issue with list converter
  • Add converter for Paper's adventure API
  • Add modifier for internal classes via internal structure
  • Only set chat packet UUID if not already set
  • Support for unix domain sockets in paper
  • Properly translate MotD to components for new RGB colors
----------, Jul 9, 2021

Huge thank you to my GitHub sponsors @PaulBGD and @Yive.
Sponsorships and donations are greatly appreciated and help keep me motivated.


Additions
  • Support for 1.16.x
  • Support for Java 15 (#1025)
  • Serialization to/from byte arrays (#875)
Improvements
  • Cache perm gen bean to improve performance (#876)
  • Removed legacy code and dependencies
  • Better support for MCP packet names (#862)
Bug Fixes
  • Skip non-vanilla packets (#959)
  • Fix issue with Chat Extensions
  • Various other bug fixes
As always, report any issues you encounter on GitHub Issues
----------, Feb 15, 2021

If ProtocolLib has made your life easier, please consider donating. It really means a lot!

Additions
  • 1.15.2 support
  • Support for CatServer/Magma
Bug Fixes
  • Fix error with legacy block data (#809)
  • Fix an incompatibility with CraftBukkit
  • Fix direction and dimension enums in 1.15.2
Improvements
  • Use the new Spigot updater
  • More useful metrics
  • Only fetch AttributeModifier$Operation if viable (#773)
  • Be more specific in which sendPacket method we choose (PaperMC/Paper#3282)
  • Cache PacketType#hashCode (#818)
  • Improve WrappedDataWatcher hasIndex performance (#850)
This release has no known bugs. Report any you find on GitHub
----------, Jun 4, 2020

Merry Christmas, everyone! My gift to y'all is a new release:

Additions
  • MC 1.14.x and 1.15.x support
  • VillagerData wrapper, long array NBT type, new packets

Bug Fixes
  • Fixed entity tracking issues with Citizens and Holographic Displays
  • Fixed block data deep clone
  • Fixed error filtering reports
  • Fixed linkage error on enable
  • Fixed statistic wrapper error

Improvements
  • Improved legacy packet name compatibility
  • Reduced exception wrapping with ViaVersion

If ProtocolLib has made your life easier, please consider donating. It really means a lot!

This update requires that you run Spigot, not CraftBukkit (Paper should be good). While this was an inadvertent change, we have been building against Spigot for years now and there really isn’t any reason to use CB over Spigot.
----------, Dec 24, 2019

Additions
  • API method to check for temporary players
  • 1.12.x and 1.13.x support
  • Ability to clone NBT tags, as well as new 1.13.x classes
  • Support for Java optionals and 1.13.x particles

Bug Fixes
  • Fixed an issue with the component array converter
  • Fixed an issue reloading (still not recommended)
  • Fixed an issue with 1.8.0 support
  • Fixed an issue with the Bukkit updater, treat Paper as "Spigot"
  • Fixed an issue where the byte buffer in a WirePacket was not released

Improvements
  • Java 9/10 support (still not recommended due to reflection performance)
  • Reworked internal conversion and cloning logic to be cleaner and more efficient
  • Replaced MCstats (RIP) with bStats
  • More consistent packet metadata API
  • Handle AIR item stacks properly
  • Use real players wherever possible instead of temporary players

Note to developers: This will be the last release of the ProtocolLib-API module. Lots of people have been having issues with the plugin failing to load, and the best solution I see is to recombine the modules. Resuming with 4.5.0, use ProtocolLib as a whole as your dependency.
----------, Sep 22, 2018

Additions
  • Added support for 1.12
  • Added new ChatType enum
Improvements
  • Updated to Java 8
  • Restored getProtocolVersion functionality
Bug Fixes
  • Fixed issues with packet type deprecation
  • Fixed a typo that broke 1.8.0 compatibility
  • Fixed an issue with another fork
If you like ProtocolLib, please leave a positive review or consider donating!
----------, Jun 14, 2017

Additions
  • Added debugging mechanism to print out all packet contents (/packetlog)
  • Added missing fallingdust particle
Improvements
  • Made Sound conversion more robust
Bug Fixes
  • Removed unnecessary updater spam
  • Fixed component parsing in 1.8
If you like ProtocolLib, please leave a positive review or consider donating!
----------, Apr 10, 2017

Additions
  • Added modifier for ItemStack lists
  • Added mechanism to clone NonNullLists
Improvements
  • Updated for 1.11-1.11.2
  • Avoid looking up classes multiple times to improve performance
  • Avoid errors with invalid entities
----------, Dec 21, 2016

I realize versioning got a little ...complicated... since I decided to drop legacy support. So, with the release of 4.1.0, the main branch of ProtocolLib will support 1.8 and up. The legacy branch, 3.7.0, will support 1.7.10 and below. I encourage all developers who added ProtocolLib version checks to adjust these checks accordingly or remove them altogether. Now, on to the meat of the update.

Additions:
  • Support for Minecraft 1.8.x
  • Conversion methods for WirePackets
  • Modifiers for UUIDs, Directions, and NBT Lists

Improvements:
  • Made ProtocolLib locale independent
  • Cache null classes to improve performance
  • Wrap all serializable objects in DataWatchers

Bug Fixes:
  • Fixed issues with cloning DataWatchers
  • Fixed missing TileEntity write methods
  • Fixed issues with "proxied" players (non-Bungee)

Development build equivalent: http://ci.dmulloy2.net/job/ProtocolLib/325/
A full list of changes can be found here: https://github.com/dmulloy2/ProtocolLib/commits/master
----------, Sep 18, 2016

This update contains a few bug fixes before work begins on 4.1.

API Improvements:
  • Added block data to the cloning mechanism
  • Reworked the component array modifier to work with 1.9.4 and up
  • Automatically wrap and unwrap values in Optionals
General Improvements:
  • Updated to 1.10 and 1.10.2
Bugs, etc:
  • Fixed another entity tracking issue with Paper
  • Improved error messages for entity tracking
  • Improved error message when the login packet class doesn't exist
----------, Jul 10, 2016

This is a collection of bug fixes from the 4.0.0 release.

Updater:
  • Auto download is now disabled by default
  • Build numbers are no longer taken into account
  • A warning is now printed if the updater section is missing
Performance:
  • Fixed the registry being refreshed more often than necessary
----------, May 22, 2016

Hello everyone!

It's time for a major release, the first one since 2013. The reason for this is major changes in the project structure and removal of backwards compatibility.

For server owners:

ProtocolLib will no longer provide backwards compatibility. The released version will only support the latest minor version of Minecraft, so in this case it will only support 1.9.x. The reasoning behind this is two-fold:
First, it would have been a pain and required lots of extra code to maintain backwards compatibility with 1.7 and 1.8 due to the changes in 1.9.
Second, the public API remains relatively constant between updates, so as long as you're using the proper version of ProtocolLib for your server, plugins will work just fine.

For developers:

The biggest change in 1.9 involves data watchers. Mojang added a few new data watcher related classes, most notably the data watcher object and the data watcher serializer. Watcher objects are generally created and registered in entity classes and store the item's index and serializer. Serializers serialize watcher values into the packet stream. What this means for developers is that now, in order to register a new object in a data watcher, you must specify a valid watcher object, and by extension, a serializer. Check the documentation for the WrappedDataWatcher and its subclasses here:
http://ci.dmulloy2.net/job/ProtocolLib/javadoc/com/comphenix/protocol/wrappers/package-summary.html

The API has been split off into its own module, ProtocolLib-API. Developers are encouraged to use it as the dependency. I plan to do more with the new project structure in the future.

Changes since 3.7:
  • Added modifiers for ItemSlot, Sonds, Hands, SoundCategory, and MobEffects
  • Added the ability to use user-created enums (See here)
  • Full support for 1.9-1.9.4
  • More DataWatcher improvements
  • Fixed block data errors
  • Fixed false update notifications with beta releases
  • Fixed an issue with chat components
----------, May 15, 2016

Hello everyone!

This is a beta build of ProtocolLib with 1.9 support. It's a beta build because it has not been fully tested, nor is it backwards compatible. I will work on restoring backwards compatibility and further testing for the full release.

A side effect of the 1.9 update was the changes made to data watchers. Basically, Mojang added a bunch of bloat, so I was forced to add that same bloat to ProtocolLib, which broke backwards compatibility.

Special thanks to @NavidK0 for his help with data watchers and testing with LibsDisguises, as well as all of you who provided bug reports and support in the issues section!

If you like ProtocolLib, please leave a review or consider donating. It really means a lot. :)
----------, Mar 8, 2016

Additions
  • /protocol dump - useful information for debugging
  • Optional update checking and automatic downloads
  • WrappedBlockData#getData()
  • BlockPosition#toLocation(World)
Improvements
  • Updated to 1.8.8
  • 1.9 future proofing
Bug Fixes
  • Fixed lag issues with background compilation
  • Fixed issues with server pings and ClosedChannelExceptions
  • Fixed conflict checking when the plugin folder was changed
  • Fixed the StreamSerializer for 1.8
  • Fixed issues with custom packets
  • Many fixes with backwards compatibility
Note: If the auto updater section is missing from your config, you must regenerate it or add the section manually to disable updates.

This will be the last version of ProtocolLib that supports Java 6!

Development Build Equivalent: http://ci.dmulloy2.net/job/ProtocolLib/222/
Full Changelog: https://github.com/dmulloy2/ProtocolLib/commits/master
----------, Feb 17, 2016

Additions:
  • Added many enum wrappers
  • Added wrappers for BlockData, MultiBlockChange, PlayerInfoData, and BlockPosition
  • Added basic metadata API for packets
  • Added ability to convert to and from the BungeeCord Chat API
Improvements:
  • Made non-existent field messages more descriptive
  • Restored compatibility with Java 6 and Java 8
  • Restored compatibility with all versions of CraftBukkit, Spigot, and MCPC/Cauldron, including 1.2.5, 1.6.4, 1.7.10 (and the protocol hack), and 1.8.7.
  • Updated metrics to revision 7
Bug Fixes:
  • Fixed outgoing chat messages appearing empty
  • Fixed a few ClassNotFoundExceptions with inner classes (like AttributeSnapshot)
  • Fixed protocol numbers
  • Fixed uncaught exception console spam
  • Fixed a bunch of minor errors and typos
Download: https://www.spigotmc.org/resources/protocollib.1997/download?version=33748
Issue Tracker: https://github.com/dmulloy2/ProtocolLib/issues

If you love ProtocolLib, leave a positive review! It really means a lot.
----------, Jul 12, 2015

This update contains the following additions:
  • Added wrapped BlockPosition (replaces ChunkPosition)
And the following bug fixes:
  • Fixes an issue that would arise from plugins using data watchers (like Holographic Displays)
Download: http://ci.shadowvolt.com/job/ProtocolLib/20/
Issue Tracker: https://github.com/dmulloy2/ProtocolLib/issues
----------, Nov 29, 2014

This update contains the following bug fixes:
  • Fixes players being disconnected on login
Download: http://ci.shadowvolt.com/job/ProtocolLib/17/
Issue Tracker: https://github.com/dmulloy2/ProtocolLib/issues
----------, Nov 29, 2014

Note: There is an issue involving player logins, a fix is available here.

This update contains the following improvements:
  • Updated to Spigot 1.8
Download: http://ci.shadowvolt.com/job/ProtocolLib/16/
Issue Tracker: https://github.com/dmulloy2/ProtocolLib/issues
----------, Nov 29, 2014

Resource Information
Author:
----------
Total Downloads: 2,647,024
First Release: Nov 24, 2014
Last Update: Oct 20, 2024
Category: ---------------
All-Time Rating:
21 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings