Releases: retrooper/packetevents
1.8.4
CHANGELOG
- Added support for 2.0 beta PacketEvents. You can now safely run a plugin shading PacketEvents Beta 2.0.0 and another plugin running 1.8.4 without any issues. There used to be an issue where packets sent by 2.0 would be discarded. (cancelled)
- Deprecated PacketEvents#loadAsync and PacketEvents#loadAsyncNewThread. This "feature" was removed in 2.0, so I decided to deprecate it here. It really made no sense having that.
EXAMPLE USAGE
1.8.3
CHANGELOG
- Fixed our injector for 1.7.10 servers.
Just a little note to the 1.7.10 users... Dear developers, please forward this to your users.
Consider updating your server to 1.8.8. There shouldn't be anything holding you guys back from updating your network. Run a 1.8.8 server with ViaVersion & ViaBackwards & ViaRewind to still support 1.7.10 clients if you want. I'm trying to eliminate all 1.7.10 server users. 1.7.10 support might be dropped in future releases in exchange for smaller file size & sustainability. We have to use jars thankfully hosted by funkemunky to support 1.7. If these jars ever get taken down, packetevents would not be able to be built, and we'd abruptly have to end 1.7.10 support.
EXAMPLE USAGE
1.8.2
CHANGELOG
- Added support for new snapshot versions of ProtocolLib.
Background information
Almost 2 weeks ago, I made an issue on ProtocolLib's GitHub repository. I noticed some flaws in their channel pipeline injector. (In monkey words, how to hack into server code and listen to packets) Thankfully a developer called derklaro improved their injector. This leads to better performance for ProtocolLib.
So why would you care?
If you ever came across a ProtocolLib plugin that modified packets, you'd notice packetevents wouldn't get these modifications. This would lead to player velocity modifying ProtocolLib plugins causing issues, especially for anti-cheats. These snapshot builds of ProtocolLib fix this too. ProtocolLib will always process outgoing packets before us.
EXAMPLE USAGE
1.8.1
CHANGELOG
- Fixed update checker.
All builds of packetevents older than v1.8.1 will now have a broken update checker. (if it were enabled) Us now following semantic versioning breaks this. Good side is our current new update-checker will work for the future releases (including 2.0)
EXAMPLE USAGE
1.8.0
1.8.0 IS OUT
Happy valentines day ❤️ Oh.. I'm quite late.
I now release PacketEvents v1.8.0. I've been releasing pre-releases for a while. Our last "stable" release was 1.7.9 which was released in November 2020...
If you are a beta-tester of 2.0 PacketEvents, you can ignore this update.
If you were on a pre-release of v1.8.0 packetevents, please update to this.
We now report to bStats how many users run this PacketEvents version. 2.0 releasing is hopefully around the corner, we currently have just under 100 beta testers. Please join my discord if you have interest in learning more about 2.0.
CHANGELOG
- Now support 1.18.2
- PacketEvents now uses Geyser 2.0 API. This means very old versions of Geyser won't work.
- No longer injecting NPCs(fake connections).
- WrappedPacketOutEntity(and its subclasses) and WrappedPacketOutEntityHeadRotation constructor accepting rotations now works with normal yaw and pitch as a float. This should hopefully fix bugs with our NPC API rotations breaking.
EXAMPLE USAGE
1.8-pre-19
Please remember this is only a summary of the changes. This update doesn't have many enhancements and focuses on adding 1.18 support and fixing some bugs. I also took time to try add a few optimizations. A pre-release for 2.0 is planned to release soon, it technically is already usable, but might not be as stable on older server versions. Big thanks to the contributors involved in this update, I have to admit that this update definitely wouldn't have been possible without them. Thanks to the donators. As always, thanks to everyone for using packetevents.
And lastly, Merry Christmas! 🎄 🎅
CHANGELOG
BUG FIXES
- Bug fixes for WrappedPacketOutSetCooldown 52e7385
- Bug fixes for many inventory wrappers (Thanks @MWHunter , @LIWKK )
- WrappedPacket#readGameMode fixed for some packet-wrappers 935c978
- Many other minor bug fixes
NEW FEATURES
- 1.18/1.18.1 support
- You can now unregister packet listeners 9f8a14b
- Attempted GitHub building actions support(WIP, At the moment builds without plugin.yml) 62685e9
Edit: GitHub actions works perfectly fine now.
EXAMPLE USAGE
1.8-pre-18
Changelog summary
About the upcoming 2.0 release
As many of you probably know, I have been working on packetevents 2.0 for about a month now.
This is likely the last 1.8 pre-release I'm making before I'll push the first 2.0 pre-release.
Will a stable 1.8 packetevents version ever officially release?
Probably not, there is really no point. The first 2.0 pre-release is planned to release soon, there is no point in quickly putting out 1.8.
Well, then... why are you making this pre-release?
I am just making this pre-release, because I have fixed a few critical bugs.
This is just for the users that want a quick fix to some issues they were encountering as they wait for 2.0 to come out.
Will you still provide support for packetevents 1.8 once 2.0 comes out?
No. As soon as a pre-release for 2.0 comes out, I will not provide support for packetevents 1.8.
But, I will help anyone that needs help migrating from an older version of packetevents to 2.0.
Shading packetevents
If you are shading PacketEvents, you need to soft-depend ProtocolLib, ViaVersion, ProtocolSupport and Geyser-Spigot in your plugin.
Example plugin.yml
name: myplugin
version: 1.0.0
main: me.opdeveloper.myplugin.MainClass
author: myname
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
- Geyser-Spigot
API CHANGES
- WrappedPacketInCustomPayload#getTag -> WrappedPacketInCustomPayload#getChannelName;
- WrappedPacketOutCustomPayload#getTag -> WrappedPacketOutCustomPayload#getChannelName;
- WrappedPacketLoginOutCustomPayload#getTag -> WrappedPacketLoginOutCustomPayload#getChannelName;
The channel names in the wrappers above now also contains the namespace on newer server versions, it can be "minecraft:brand" on newer server versions instead of just "brand". Older versions such as 1.8 always had the namespace. I just made the names consistent. This is a sort of breaking change, that is why I didn't end up deprecating getTag, i want you guys to be aware of the breaking change.
BUG FIXES
- FIxed flying packet on 1.17 and added support for GROUND packet, thanks @MWHunter
- Fixed WrappedPacketOutEntityDestroy for 1.17.1
- Fix ServerVersion comparison, thanks @MWHunter
- Fixed sending WrappedPacketOutPosition for 1.9 -> 1.16.5
- ViaVersion API usage for newer ViaVersion releases fixed (they deprecated their old API)
- Removed invalid/redundant enum constants in ServerVersion
- ServerUtils#getEntityById bug fixes
- Fixed a bug with cancelling events.
NEW FEATURES
- Added/Tested 1.17.1 support
- WrappedPacketOutCollect created, thanks @Tecnio
- WrappedPacketInUseItem created, thanks @MWHunter
- WrappedPacketOutSpawnEntity created
- WrappedPacketLoginOutCustomPayload is now sendable
- Copied Bukkit's BoundingBox util, please use ours, because Bukkit's util doesn't exist on older server versions
- ServerUtils#getEntityBoundingBox created
- NPC#teleport created
- PlayerUtils#writePacket and PlayerUtils#flushPackets created
EXAMPLE USAGE
Example will be posted shortly
1.8-pre-17
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable.
IMPORTANT NOTES
I know I may have not added all wrappers/features that might have been suggested. They will be ready when they are ready. We focus on quality and not quantity when it comes to wrappers. Giving deadlines usually results in rushed and bad products. The same applies when it comes to our 1.8 stable release, it will be ready when its ready. Speed up the process by updating to the pre-releases and reporting bugs! 🙂
If you are shading PacketEvents, you need to soft-depend ProtocolLib, ViaVersion, ProtocolSupport and Geyser-Spigot in your plugin.
Example plugin.yml
name: myplugin
version: 1.0.0
main: me.opdeveloper.myplugin.MainClass
author: myname
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
- Geyser-Spigot
DEPRECATIONS
- WrappedPacketInFlying#hasPositionChanged deprecated, use isMoving.
- WrappedPacketInFlying#hasRotationChanged deprecated, use isRotating.
- WrappedPacketOutMapChunk#getPrimaryBitMap deprecated, use getPrimaryBitMask.
The previous name was a mistake.
BUG FIXES
- WrappedPacketInBlockPlace bug fix.
- WrappedPacket#readGameMode, WrappedPacket#writeGameMode fixed.
- Duplicate-handler exceptions on server reload fixed.
NEW FEATURES
- 1.17 support (1.17.1 has not been tested)
- ServerVersion#v_1_17_1 created.
- ClientVersion#v_1_17_1 created.
- PacketType IDs created for all packets that have been added in 1.17.
- WrappedPacketInPong created.
- WrappedPacketOutPing created.
- WrappedPacketOutMapChunk#getPrimaryBitMaskBitSet created for 1.17, use getPrimaryBitMask for older versions.
EXAMPLE USAGE
1.8-pre-16
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable.
IMPORTANT NOTES
I know I may have not added all wrappers/features that might have been suggested. They will be ready when they are ready. We focus on quality and not quantity when it comes to wrappers. Giving deadlines usually results in rushed and bad products. The same applies when it comes to PacketEvents' 1.8 stable release, it will be ready when its ready. Speed up the process by updating to the pre-releases and reporting bugs! 🙂
If you are shading PacketEvents, you need to soft-depend ProtocolLib, ViaVersion, ProtocolSupport and Geyser-Spigot in your plugin.
Example plugin.yml
name: myplugin
version: 1.0.0
main: me.opdeveloper.myplugin.MainClass
author: myname
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
- Geyser-Spigot
DEPRECATIONS
-
PacketEventPriority deprecated, please use PacketListenerPriority now.
-
PlayerUtils#getNMSPing(Player) deprecated.
-
PlayerUtils#getSmoothedPing(Player) deprecated;
-
PlayerUtils#getSmoothedPing(UUID) deprecated;
-
PlayerUtils#getPing(UUID) deprecated;
Use PlayerUtils#getPing(Player) for ping. -
WrappedPacketOutEntityVelocity#getVelocity and setVelocity created, the other velocity accessors deprecated. (getVelocityX, ...)
-
WrappedPacketOutExplosion#getPosition and setPosition created, the other position accessors are deprecated. (getX, getY, ...)
-
WrappedPacketInFlying#getPosition and setPosition created, the other position accessors are deprecated. (getX, getY, ...)
-
WrappedPacketInFlying#hasPositionChanged created, isPosition deprecated.
-
WrappedPacketInFlying#hasRotationChanged created, isLook deprecated.
-
WrappedPacketOutExplosion#getPlayerVelocity and setPlayerVelocity created, the getPlayerMotionX/Y/Z methods are deprecated.
-
WrappedPacketInVehicleMove#getPosition and setPosition created, the other position accessors are deprecated. (getX, getY, ...)
BUG FIXES
- Early injector now supports late-bind and won't revert to the compatibility injector.
- Paper injector added for support for newer versions of paper. (Thank you ViaVersion)
- WrappedPacketOutBlockBreakAnimation#getBlockPosition always {0, 0, 0} fixed.
- WrappedPacketOutGameStateChange bug fix.
- Geyser incompatibilities fixed by @Camotoy .
NEW FEATURES
-
ServerVersion#v_1_17 created.
-
ClientVersion#v_1_17 created.
-
PlayerUtils#isGeyserPlayer(Player) created.
-
PlayerUtils#isGeyserPlayer(UUID) created.
-
PlayerUtils#changeSkinProperty created.
-
ServerUtils#isGeyserAvailable created.
You are now able to schedule a task right after the server sends a specific packet.
-
PacketPlaySendEvent#setPostTask created;
-
PacketLoginSendEvent#setPostTask created;
-
PacketStatusSendEvent#setPostTask created;
-
WrappedPacketOutMapChunk created, but incomplete.
-
WrappedPacketOutSpawnEntity created, but incomplete.
-
WrappedPacketOutSetCooldown created.
-
WrappedPacketOutTitle created.
-
WrappedPacketOutSpawnEntityLiving created.
-
WrappedPacketOutWindowItems created.
-
WrappedPacketOutBlockAction created by @Tecnio .
-
WrappedPacketInBEdit created by @Tecnio .
-
WrappedPacketInJigsawGenerate created by @Tecnio .
-
WrappedPacketLoginOutDisconnect completed by @Tecnio .
-
WrappedPacketLoginOutSuccess completed by @Tecnio .
CHANGES
- Proper license notice in source-files now.
EXAMPLE USAGE
1.8-pre-15
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable.
IMPORTANT NOTES
I know I may have not added all wrappers/features that might have been suggested. They will be ready when they are ready. We focus on quality and not quantity when it comes to wrappers. Giving deadlines usually results in rushed and bad products. The same applies when it comes to PacketEvents' 1.8 stable release, it will be ready when its ready. Speed up the process by updating to the pre-releases! 🙂
BUG FIXES
- Early injector now support late-bind on older server versions, it should no longer revert to the compatibility injector for that reason.
NEW FEATURES
- WrappedPacketOutMount created
- WrappedPacketOutEntityEquipment created
- Missing ServerVersion enum constants added
- Added bStats support (toggleable in the PacketEventsSettings)