Releases: retrooper/packetevents
1.8-pre-14
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable.
IMPORTANT NOTES
Make sure you set load in your plugin.yml to POSTWORLD!
Setting load to STARTUP will cause users with late-bind enabled to run into issues.
...
load: POSTWORLD
...
BUG FIXES
- WrappedPacketOutGameStateChange bug fix on 1.16 servers.
- WrappedPacketOutUpdateAttributes bug fix on newer server versions.
- WrappedPacketOutEntityMetadata recoded, fixed bugs (incomplete, but usable).
- Many other minor bug fixes.
NEW FEATURES
- WrappedPacketOutLogin created (incomplete, but usable)
OPTIMIZATIONS
- Redundant maven dependencies removed, allowing faster building.
- Lots of internal code cleanup.
CHANGES
- PacketEvents project is now using Gradle.
- PacketEvents is licensed under the GPLv3 license.
EXAMPLE USAGE
1.8-pre-13
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable.
IMPORTANT NOTES
Make sure you set load in your plugin.yml to POSTWORLD!
Setting load to STARTUP will cause users with late-bind enabled to run into issues.
...
load: POSTWORLD
...
BUG FIXES
- NPC despawning.
NEW FEATURES
- WrappedPacketOutEntityEffect created.
- WrappedPacketOutRemoveEntityEffect created.
- WrappedPacketInArmAnimation created.
OPTIMIZATIONS
- Packet Type system optimized.
CHANGES
- All wrapper getters/setters that used to throw UnsupportedOperationExceptions when they were accessed on server versions they weren't supported on now return an Optional. It should be much clearer for developers using the PacketEvents API when a field is NOT supported on all server versions.
EXAMPLE USAGE
None available
1.8-pre-12
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
Make sure you set load in your plugin.yml to POSTWORLD!!! Or just don't specify anything as its default value is POSTWORLD.
Not doing this will break late-bind support.
...
load: POSTWORLD
...
BUG FIXES
- Late/Compatibility injector fixed. (broken since pre-10 update)
- Finally added late-bind support, but it still might break if some other packet-based plugins are present.
CHANGES
- WrappedPacketOutPlayerInfo now accepts arrays, we don't support lists anymore.
- PacketEventsSettings#backupServerVersion deprecated, use PacketEventsSettings#fallbackServerVersion
OPTIMIZATIONS
- Internal injector cleanup.
EXAMPLE USAGE
1.8-pre-11
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
BUG FIXES
- All CustomPayload wrappers' getData() methods can be used outside of the netty thread, under one condition. You need to call its "retain" method while on the netty thread, and once you are done using it on your custom thread you "release" it. Or you might aswell just process the packet on the netty thread.
- Java 16+ incompatibilities fixed.
- Few plugins with custom NMS Player Connection classes should now work.(For example for NPCs)
CHANGES
- PacketListenerDynamic is deprecated, PacketListenerAbstract is the new class.
OPTIMIZATIONS
- Internal optimizations and cleanup.
EXAMPLE USAGE
1.8-pre-10
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
BUG FIXES
- Few concurrent modification exceptions fixed.
- All injector bypasses
- WrappedPacketOutBlockChange broken on 1.7.10 fixed.
- Reloading should be working. We won't claim to officially support it. You can expect bugs when reloading.
- Packet ID issues with some obfuscators fixed.
NEW FEATURES
- NPCManager created to store your NPCs.
- WrappedPacketOutEntityHeadRotation created.
- WrappedPacketOutEntityTeleport created.
- WrappedPacketOutEntityDestroy created, thanks @yanjulang .
CHANGES
- We give a warning when late-bind is enabled on older versions of minecraft. It breaks a ton of plugins and we do not support it.
OPTIMIZATIONS
- Cleaned up injectors.
- Players are no longer ejected when they leave the server.
- Internal cleanups and reflection caches thanks @terrarier2111 .
EXAMPLE USAGE
1.8-pre-9
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
- You need to soft-depend ProtocolLib, ViaVersion and ProtocolSupport in your plugin. (if you are shading PacketEvents)
- You are recommended to make your plugin load at server STARTUP, not POSTWORLD.
Example plugin.yml
name: myplugin
version: 1.0.0
main: me.opdeveloper.myplugin.MainClass
load: STARTUP
author: myname
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
BUG FIXES
- Early injector now supports Java 12 and above.
- Early injector will automatically revert to the compatibility/late injector if it fails.(and warn you in the console that it failed)
- WrappedPacketInEntityAction issues on spigot 1.8.0 fixed.
NEW FEATURES
- WrappedPacketOutPlayerInfo created.
- WrappedPacketOutNamedEntitySpawn created.
(CREATING AND MOVING NPCS is now possible) - WrappedPacketOutEntity.WrappedPacketOutEntityLook created
- WrappedPacketOutEntity.WrappedPacketOutEntityMove created,
- WrappedPacketOutEntity.WrappedPacketOutRelEntityMoveLook created
CHANGES
- PacketEvents#init() no longer requires a plugin instance. Old function with the plugin instance argument is now deprecated.
EXAMPLE USAGE
1.8-pre-8
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
- You need to soft-depend ProtocolLib, ViaVersion and ProtocolSupport in your plugin. (if you are shading PacketEvents)
- You are recommended to make your plugin load at server STARTUP, not POSTWORLD.
Example plugin.yml
name: plugin-name
version: 1.0.0
main: package.MainClass
load: STARTUP
author: username
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
BUG FIXES
- All PacketType IDs are now final, you can use them in switch statements again!
EXAMPLE USAGE
1.8-pre-7
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
- You need to soft-depend ProtocolLib, ViaVersion and ProtocolSupport in your plugin. (if you are shading PacketEvents)
- You are recommended to make your plugin load at server STARTUP, not POSTWORLD.
Example plugin.yml
name: plugin-name
version: 1.0.0
main: package.MainClass
load: STARTUP
author: username
softdepend:
- ProtocolLib
- ProtocolSupport
- ViaVersion
BUG FIXES
- Pretty rare ConcurrentModificationExceptions when accessing an Entity in a wrapper.
- Reloading support added(NOT RECOMMENDED)
NEW FEATURES
- PacketEvents ASYNCHRONOUS loading. You can now load asynchronously.
PacketEvents#loadAsync(ExecutorService)
or
PacketEvents#loadAsyncNewThread()
- Most wrappers that contain an Entity getter, will now have a second Entity getter, but with a World argument. This can potentially allow faster entity resolving. If the entity wasn't found in the specified world, it will be searched for in all other worlds.
For example:
@Override
public void onPacketPlayReceive(PacketPlayReceiveEvent event) {
Player player = event.getPlayer();
byte packetID = event.getPacketId();
if (packetID == PacketType.Play.Client.USE_ENTITY) {
WrappedPacketInUseEntity useEntity = new WrappedPacketInUseEntity(event.getNMSPacket());
Entity entity = useEntity.getEntity(player.getWorld());
}
}
- WrappedPacketOutBlockBreakAnimation created
- WrappedPacketOutUpdateAttributes created
CHANGES
- PacketType IDs in different states will never have the same value. For example if you accidentally use a PacketType.Status ID on a Play event, you shouldn't get weird results. Nothing will call. Each ID is unique. Do not try to hardcode the ID values, use the variables.
EXAMPLE USAGE
1.8-pre-6
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
- You now need to soft-depend ProtocolLib, ViaVersion and ProtocolSupport in your plugin(if you are shading PacketEvents)
- You are recommended to make your plugin load at server STARTUP, not POSTWORLD.
Example plugin.yml
BUG FIXES
- ProtocolSupport incompatibilities fixed
- Other minor bug fixes
NEW FEATURES
- WrappedPacketOutBlockChange now supports org.bukkit.Material instead of illogical Block IDs.
- WrappedPacketInBoatMove created by @Tecnio
- WrappedPacketInDifficultyChange created by @Tecnio
- WrappedPacketInDifficultyLock created by @Tecnio
- WrappedPacketOutOpenWindowHorse created by @Tecnio , finished by me
- WrappedPacketOutUnloadChunk created by @Tecnio , finished by me
OPTIMIZATIONS
- Code cleanup
CHANGES
- PacketListenerDynamic#onPacketHandshakeReceiveEvent renamed to PacketListenerDynamic#onPacketHandshakeReceive
EXAMPLE USAGE
1.8-pre-5
CHANGELOG
Please remember this is only a summary of the changes, I won't list every single change to keep this readable. I only specify the most important changes.
IMPORTANT NOTES
- You now need to soft-depend ProtocolLib, ViaVersion and ProtocolSupport in your plugin(if you are shading PacketEvents)
- You are recommended to make your plugin load at server STARTUP, not POSTWORLD.
Example plugin.yml
BUG FIXES
- Early injector "Failed to inject" issue fixed!
- PlayerAction returning wrong values on 1.7.10 fixed by @LIWKK
- PacketEvents not loading on 1.7.10 fixed by @LIWKK
- Rare concurrent modification exception when accessing entity in most wrappers really fixed this time.
- Accessing player ping NPE fixed.
- Many more bug fixes in multiple wrappers.
NEW FEATURES
- WrappedPacketOutEntityMetadata created by @DragonHunt3r (UNTESTED)
- WrappedPacketOutSetSlot created by @AoElite
- WrappedPacketOutBlockChange created
- All wrappers now have setters, allowing you to modify packets easily(Not so tested).
- ByteBufUtil#setBytes created by @terrarier2111 (Used internally)
OPTIMIZATIONS
- ServerUtils OS lookup optimized by @terrarier2111
CHANGES
- Many PacketEvents settings removed, a lot of them were to account for flaws in the injector.
- PacketEvents no longer uses ProtocolLib as a dependency to resolve player client versions.