ProtocolLib 3.3.1
Details
-
FilenameProtocolLib-3.3.1.jar
-
Uploaded by
-
UploadedApr 17, 2014
-
Size1.21 MB
-
Downloads116,085
-
MD5aaa59387cc43fe55090e1f17ce101fab
Supported Bukkit Versions
- CB 1.7.2-R0.3
- 1.6.4
- 1.2.5
Changelog
Build: #241
This is a major release with a number of smaller bug fixes and improvements, along with a compatibility fix for CraftBukkit 1.7.8. The latter mainly affects plugins that modify the server ping packet, and plugins that read/write NBT tags using the built-in NBT library. But even if you're not affected, I'd recommend upgrading for the improved stability and performance.
Minecraft 1.7.8
- Added compatibility with Minecraft 1.7.8 - doesn't quite work with protocol hacks.
- Interpret the empty string as 0-0-0-0-0 as well, in case some plugins relied on this behavior.
- Use the newer server ping version (5) in 1.7.8.
Features
Fixes
- Ensure Player.getAddress() returns the client's address, not the server.
- Properly cancel or modify packets intercepted in the channel thread.
- Fixed a bug introduced in #218 causing packet loops. FIXES 202.
- Ensure sendServerPacket() works in the channel thread as well.
- Fixed a bug preventing dual side packets from working in 1.6.4.
Warnings
- Warn instead of throwing an exception on packet type change. Developers should take note and not change the packet type in a packet event (discussion).
API
Improvements to the API. Developers rejoice!
- Add the ability to load or save NBT compounds from files. This has been possible before, but only through Java verbosity.
- Add the ability to see registered asynchronous listeners.
- Expose configuration to plugins.
- Added support for serializing/deserializing WrappedServerPing to JSON.
Compatibility
- Regression: Add back support for CraftBukkit 1.1.0
- Don't attempt to register a client packet as a server packet. This should fix plugins that rely on the old deprecated API.
- Ensure output handlers function correctly in 1.7.2
- Don't load converters that belong in 1.7.2.
- Refresh the Netty registry when packet listeners are added. FIXES #40. This adds support for custom packet types.
Small fixes
- Fix NPE in getId(). Thanks Johni0702.
- Never downgrade ProtocolLib after an update. This protects us against an issue often plaguing TagAPI.
- Add the ability to clonse java.util.Arrays$ArrayList. Rare event, but better safe than sorry.
- Handle the possibility that getSuperclass() returns NULL.
- Handle errors in Apache.
- Don't intercept catastrophic errors such as ThreadDeath and OOM.
- Don't update the player instances on the LOGIN packet.
- No need to throw an exception if the "last updated" file is corrupt.
- Properly display blocks using the packet monitoring system.
- Throw a more descriptive error of a packet type hasn't got a class.
Performance
- Don't fetch NetworkMarker uncessarily.
- Don't poll the current time more than once a second for updates.
- Optimize lookup of getBukkitEntity.
- Get rid of the other weak maps, and use thread local fields instead.
- Remove concurrent "processed" and "ignore" hash maps.
- Don't cache the NetHandler when checking if it has changed.
Concurrency
These issues are related to concurrency, and are often very rare and difficult to trigger. But it's best to fix them regardless.