Skip to content

Releases: retrooper/packetevents

1.8-pre-13

21 Apr 18:06
Compare
Choose a tag to compare
1.8-pre-13 Pre-release
Pre-release

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

09 Apr 07:50
Compare
Choose a tag to compare
1.8-pre-12 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-12

1.8-pre-11

07 Apr 17:23
Compare
Choose a tag to compare
1.8-pre-11 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-11

1.8-pre-10

04 Apr 14:31
Compare
Choose a tag to compare
1.8-pre-10 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-10

1.8-pre-9

11 Mar 09:08
Compare
Choose a tag to compare
1.8-pre-9 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-9

1.8-pre-8

06 Mar 12:38
Compare
Choose a tag to compare
1.8-pre-8 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-8

1.8-pre-7

05 Mar 21:08
Compare
Choose a tag to compare
1.8-pre-7 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-7

1.8-pre-6

27 Feb 22:47
Compare
Choose a tag to compare
1.8-pre-6 Pre-release
Pre-release

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

Example for packetevents-1.8-pre-6

1.8-pre-5

26 Feb 10:41
Compare
Choose a tag to compare
1.8-pre-5 Pre-release
Pre-release

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

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.

EXAMPLE USAGE

Example for packetevents-1.8-pre-5

1.8-pre-4

12 Feb 21:46
Compare
Choose a tag to compare
1.8-pre-4 Pre-release
Pre-release

CHANGELOG

BUG FIXES

  • Rare concurrent modification exceptions when registering packet listeners fixed.
  • WrappedPacketOutChat bug fix when compiled on a different java version.
  • Random "lol" debug removed since last pre-release.

NEW FEATURES

  • Injection rescheduling is now toggleable. The last pre-release would re-inject when an injection failed by default. This had one down-side. PacketEvents won't be able to detect client-versions without any dependencies if it ever has to re-inject. Re-injection would usually be required if a user joined while the server was still booting up. If you don't care about client-versions, you are recommended to enable this setting. It is disabled by default FYI.
  • Registering listeners is now thread safe!
  • WrapperUnsupportedUsageException exception will be thrown whenever you attempt to use a packet-wrapper which happens to be unsupported on the local server version. Its stacktrace will explain the wrapper you attempted to use, but it won't mention what versions that wrapper is supported on. Decompile the class/view the documentation to check what versions it is supported on.

OPTIMIZATIONS

  • WrappedPacketInBlockDig optimized by @True-cc
  • WrappedPacketInBlockPlace optimized by @True-cc
  • WrappedPacketInUpdateSign optimized by @True-cc
  • Internal NMS utils cleaned up by @True-cc

CHANGES

  • You can no longer un-register packet event listeners.