PacketEvents API icon

PacketEvents API -----

PacketEvents is an open-source Packet Processing API.




Version: 2.7.0
PacketEvents saved me from the NMS hell!!
Thank you for creating such a great Packet library!

Version: 2.7.0
Guys i think erooror like the plugin. Also, it's a rly great plugin, never had issues with it!

Version: 2.6.0
Nice plugin, but once installed, I couldn't get into the game, and the console display showed PacketEvents 2.0 failed to inject
I was in China so I couldn't go to Discord to get help
-
Author's response
What means of contact is viable? Thanks for the review, try get in contact with us somehow!

Version: 2.6.0
best plugin! I love it! and best api for my server!
I would not recommend anything else.

Version: 2.6.0
Great plugin. Could you make a few changes to the plugin for Purpur 1.21.3? I have an error ingame that says: Chat validation error
-
Author's response
Please reach out on Discord if you haven't, feel free to ping me!

Version: 2.6.0
Best API for packets and especially anti cheats! Easy to set up and it even comes with built in packet wrappers.

Version: 2.5.0
Great work from The Great Author. Glad that we have "retrooper" in this community.
-
Author's response
I appreciate your review.

Version: 2.4.0
best plugin best plugin best plugin best plugin best plugin best plugin best plugin best plugin
-
Author's response
Thank you for the review.

Version: 2.4.0
Go-to solution for packets. I would not recommend anything else. Thanks for keeping it free and open-source!
-
Author's response
Thanks. We should encourage others to remain free (as in freedom) as well!

Version: 2.4.0
[12:09:15] [Netty Epoll Server IO #2/WARN]: [com.github.retrooper.packetevents.PacketEventsAPI] PacketEvents caught an unhandled exception while calling your listener.
java.lang.NullPointerException: null
at io.github.retrooper.packetevents.util.viaversion.ViaVersionAccessorImpl.getProtocolVersion(ViaVersionAccessorImpl.java:45) ~[?:?]
at io.github.retrooper.packetevents.util.viaversion.ViaVersionUtil.getProtocolVersion(ViaVersionUtil.java:66) ~[?:?]
at io.github.retrooper.packetevents.manager.InternalBukkitPacketListener.onPacketReceive(InternalBukkitPacketListener.java:29) ~[?:?]
at com.github.retrooper.packetevents.event.PacketReceiveEvent.call(PacketReceiveEvent.java:45) ~[?:?]
at com.github.retrooper.packetevents.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
at com.github.retrooper.packetevents.util.PacketEventsImplHelper.handleServerBoundPacket(PacketEventsImplHelper.java:82) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:56) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:63) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at net.minecraft.server.v1_12_R1.LegacyPingHandler.channelRead(LegacyPingHandler.java:121) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) ~[server.jar:git-Paper-33d42c8e]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[server.jar:git-Paper-33d42c8e]
at java.lang.Thread.run(Thread.java:851) [?:?]
[12:09:16] [Netty Epoll Server IO #3/WARN]: [com.github.retrooper.packetevents.PacketEventsAPI] PacketEvents caught an unhandled exception while calling your listener.
java.lang.NullPointerException: null
at io.github.retrooper.packetevents.util.viaversion.ViaVersionAccessorImpl.getProtocolVersion(ViaVersionAccessorImpl.java:45) ~[?:?]
at io.github.retrooper.packetevents.util.viaversion.ViaVersionUtil.getProtocolVersion(ViaVersionUtil.java:66) ~[?:?]
at io.github.retrooper.packetevents.manager.InternalBukkitPacketListener.onPacketReceive(InternalBukkitPacketListener.java:29) ~[?:?]
at com.github.retrooper.packetevents.event.PacketReceiveEvent.call(PacketReceiveEvent.java:45) ~[?:?]
at com.github.retrooper.packetevents.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
at com.github.retrooper.packetevents.util.PacketEventsImplHelper.handleServerBoundPacket(PacketEventsImplHelper.java:82) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:56) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:63) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at net.minecraft.server.v1_12_R1.LegacyPingHandler.channelRead(LegacyPingHandler.java:121) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) ~[server.jar:git-Paper-33d42c8e]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[server.jar:git-Paper-33d42c8e]
at java.lang.Thread.run(Thread.java:851) [?:?]
[12:09:17] [Netty Epoll Server IO #0/WARN]: [com.github.retrooper.packetevents.PacketEventsAPI] PacketEvents caught an unhandled exception while calling your listener.
java.lang.NullPointerException: null
at io.github.retrooper.packetevents.util.viaversion.ViaVersionAccessorImpl.getProtocolVersion(ViaVersionAccessorImpl.java:45) ~[?:?]
at io.github.retrooper.packetevents.util.viaversion.ViaVersionUtil.getProtocolVersion(ViaVersionUtil.java:66) ~[?:?]
at io.github.retrooper.packetevents.manager.InternalBukkitPacketListener.onPacketReceive(InternalBukkitPacketListener.java:29) ~[?:?]
at com.github.retrooper.packetevents.event.PacketReceiveEvent.call(PacketReceiveEvent.java:45) ~[?:?]
at com.github.retrooper.packetevents.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
at com.github.retrooper.packetevents.util.PacketEventsImplHelper.handleServerBoundPacket(PacketEventsImplHelper.java:82) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:56) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:63) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at net.minecraft.server.v1_12_R1.LegacyPingHandler.channelRead(LegacyPingHandler.java:121) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) ~[server.jar:git-Paper-33d42c8e]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[server.jar:git-Paper-33d42c8e]
at java.lang.Thread.run(Thread.java:851) [?:?]
[12:09:17] [Netty Epoll Server IO #1/WARN]: [com.github.retrooper.packetevents.PacketEventsAPI] PacketEvents caught an unhandled exception while calling your listener.
java.lang.NullPointerException: null
at io.github.retrooper.packetevents.util.viaversion.ViaVersionAccessorImpl.getProtocolVersion(ViaVersionAccessorImpl.java:45) ~[?:?]
at io.github.retrooper.packetevents.util.viaversion.ViaVersionUtil.getProtocolVersion(ViaVersionUtil.java:66) ~[?:?]
at io.github.retrooper.packetevents.manager.InternalBukkitPacketListener.onPacketReceive(InternalBukkitPacketListener.java:29) ~[?:?]
at com.github.retrooper.packetevents.event.PacketReceiveEvent.call(PacketReceiveEvent.java:45) ~[?:?]
at com.github.retrooper.packetevents.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
at com.github.retrooper.packetevents.util.PacketEventsImplHelper.handleServerBoundPacket(PacketEventsImplHelper.java:82) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:56) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:63) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at net.minecraft.server.v1_12_R1.LegacyPingHandler.channelRead(LegacyPingHandler.java:121) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) ~[server.jar:git-Paper-33d42c8e]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[server.jar:git-Paper-33d42c8e]
at java.lang.Thread.run(Thread.java:851) [?:?]
[12:09:19] [Netty Epoll Server IO #2/WARN]: [com.github.retrooper.packetevents.PacketEventsAPI] PacketEvents caught an unhandled exception while calling your listener.
java.lang.NullPointerException: null
at io.github.retrooper.packetevents.util.viaversion.ViaVersionAccessorImpl.getProtocolVersion(ViaVersionAccessorImpl.java:45) ~[?:?]
at io.github.retrooper.packetevents.util.viaversion.ViaVersionUtil.getProtocolVersion(ViaVersionUtil.java:66) ~[?:?]
at io.github.retrooper.packetevents.manager.InternalBukkitPacketListener.onPacketReceive(InternalBukkitPacketListener.java:29) ~[?:?]
at com.github.retrooper.packetevents.event.PacketReceiveEvent.call(PacketReceiveEvent.java:45) ~[?:?]
at com.github.retrooper.packetevents.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
at com.github.retrooper.packetevents.util.PacketEventsImplHelper.handleServerBoundPacket(PacketEventsImplHelper.java:82) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.read(PacketEventsDecoder.java:56) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:63) ~[?:?]
at io.github.retrooper.packetevents.injector.handlers.PacketEventsDecoder.decode(PacketEventsDecoder.java:40) ~[?:?]
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:297) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:413) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:265) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at net.minecraft.server.v1_12_R1.LegacyPingHandler.channelRead(LegacyPingHandler.java:121) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:286) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:808) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:404) ~[server.jar:git-Paper-33d42c8e]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:304) ~[server.jar:git-Paper-33d42c8e]
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884) ~[server.jar:git-Paper-33d42c8e]
at java.lang.Thread.run(Thread.java:851) [?:?]
-
Author's response
Sending a huge stacktrace in SpigotMC is not how you get support. If you want this solved, you can reach out in the Discord.

Version: 2.4.0
excelent API, but i need help

[21:24:06 INFO]: VonVisha lost connection: Internal Exception: io.netty.handler.codec.EncoderException: java.lang.NullPointerException: Cannot invoke "com.github.retrooper.packetevents.protocol.item.enchantment.type.EnchantmentType.getId(com.github.retrooper.packetevents.protocol.player.ClientVersion)" because "enchantment" is null
-
Author's response
Please reach out in the Discord for a temporary resolution until the next release.

Version: 2.3.0
tHANK YOU SO MUCH congratulations you author of matrix ac start to do good impovements and get motivation because your plugin is so comfortable and nice and thnak you so much because u good developer i wish one million dollars and long life thank you so much bro good luck
-
Author's response
Glad you're enjoying it.

Version: 2.3.0
Nice API! I have been using ProtocolLib for several years, the migration to PacketEvents has been much easier than I thought. Highly recommended!
-
Author's response
Thanks.

Version: 2.3.0
Very useful packet plugins, and also thanks for the fixed update, cuz it had issue on the previous version
-
Author's response
Thanks for the support Eclises, glad it helps.

Version: 2.3.0
The best Packet manipulation library you can find, easy to use packetwrappers with cross version support (1.7-1.20), very fast and has good support on discord definitely recommend
-
Author's response
Thanks for the review.

Version: 2.3.0
Great library with a great community! I have used other packet libraries before as well, but I must say that PacketEvents is just so much better than everything I have used before. It's fast, easy to understand, and just straight-up convenient. Their wrapper idea really helped me understand how packets work, and how they can be used. I would definitely recommend this to everyone!
-
Author's response
I'm glad it had such an effect on you. Thanks for the review and goodluck with your packet journey!

Version: 2.2.1
Great library, really makes using packets much easier than alternatives.

My only issue is that it causes incompatibilities with other plugins (I have reported the issue on the github already)
-
Author's response
Thanks for the positive review. Unfortunately your PR causes breaking changes which deterred me from merging it right away. We are still considering it and will hopefully find the best way to proceed.

Version: 2.2.1
Love it! Better than any other packet API by now. Support and documentation could be a bit improved but there is no better alternative.

Version: 2.2.1
--- Follow-Up Review ---

Rating: ★★★★★ 4.80/5.00

After thoroughly testing all the features provided by PacketEvents over the course of a month, and comparing them with those of competitors, I must revise my previous assessment and award this software a well-deserved 5-star review.

Thanks to PacketEvents' API, I have seamlessly integrated networking features into the SystemInfo plugin. Remarkably, the library has had no adverse effects on server gameplay performance or quality.

Presently, ProtocolLib is dysfunctional, resulting in a cumbersome and outdated codebase within my plugin. In contrast, PacketEvents stands out as a reliable resource.

The only downside as of today is that it kinda lacks of documentation.

Yet I highly recommend this software.

~ CMarco
-
Author's response
Thanks for the review.

Version: 2.2.0
Rating (★★★★☆) 3.90/5

Review from CMarco Development

REVISION 3 of ORIGINAL REVIEW.

Positive Aspects:

Updates and Development:
The resource seems to greatly benefit from a noticeable active community of contributors and developers. This overall grants the server owners a calmness of mind when updating into the latest versions, for they can rest assured of the software compatibility with the latests SpigotMC releases.

Different Approach:
Although the better performance of this approach compared to other projects remains to be unknown, the author does use a unique approach to read the server packets and provide them to developers through this API.
It might be the perfect solution for experimental environments.

Negative Aspects:

Lack of Proof for Efficiency Claims
The scarce introduction to this software written on this resource page claims to be fast and efficient, however I have not been able to find any data provided by the author to support this claim.

Lack of Documentation:
The project's code lacks proper comments, making it challenging for other developers to understand and navigate. The absence of Javadoc further compounds this issue, hindering the API's accessibility and ease of use. The same scarcity may be applied to the resource page, which is pretty blank when presented.

Incomplete Annotation and Safety Checks:
The inconsistency in the use of JetBrains @NotNull annotations and the scarcity of safety checks on passed parameters raise concerns about the API's reliability. The potential for breaking down with insufficient stacktrace information poses a significant risk.

-----------------------------
Extra Notice:
How can the developer obtain a full 5.0/5.0 EXTREME QUALITY rating?
+ Add full Javadoc
+ Improve resource page and graphics
+ Implement further checking and annotations for this library
+ Implement an annotation-based Listener

Version: 2.2.0
Rating (★★★☆☆) 3.50/5

Review from CMarco Development

Positive Aspects:

Updates and Development:
The resource seems to greatly benefit from a noticeable active community of contributors and developers. This overall grants the server owners a calmness of mind when updating into the latest versions, for they can rest assured of the software compatibility with the latests SpigotMC releases.

Different Approach:
Although the better performance of this approach compared to other projects remains to be unknown, the author does use a unique approach to read the server packets and provide them to developers through this API.
It might be the perfect solution for experimental environments.

Negative Aspects:

Lack of Proof for Efficiency Claims
The scarce introduction to this software written on this resource page claims to be fast and efficient, however I have not been able to find any data provided by the author to support this claim.

Lack of Documentation:
The project's code lacks proper comments, making it challenging for other developers to understand and navigate. The absence of Javadoc further compounds this issue, hindering the API's accessibility and ease of use.

Incomplete Annotation and Safety Checks:
The inconsistency in the use of JetBrains @NotNull annotations and the scarcity of safety checks on passed parameters raise concerns about the API's reliability. The potential for breaking down with insufficient stacktrace information poses a significant risk.

Metrics Data Management:
While PacketEvents utilizes bStats for metrics, the absence of a user-friendly option to individually disable metrics data is a notable drawback. Users may want to selectively opt out of data collection without disabling the entire service.

Sparse Resource Page:
The resource page falls short of expectations by lacking meaningful descriptions and explanations about the API's usage, content, and overall value. A more informative resource page is crucial for potential users to evaluate its suitability for their projects.

Version: 2.2.0
Rating: (★★☆☆☆) 2.5/5

Review from CMarco Development

Negative Aspects:

PacketEvents API 2.2.0 presents itself as a promising packet processing library with multi-version support, but its potential is marred by several drawbacks:

Lack of Proof for Efficiency Claims
The scarce text found on this resource page claim this software to be fast and efficient, however nowhere on this page or the GitHub does the author provide factual proof or hints to verify this.
There is no evidence to sustain that this software performs any better than competitors, and after some testing I verified this myself.

Lack of Documentation:

The project's code lacks proper comments, making it challenging for other developers to understand and navigate. The absence of Javadoc further compounds this issue, hindering the API's accessibility and ease of use.
Poorly Structured Examples:

While examples are crucial for developers to grasp the implementation, the current examples provided are poorly structured and displaced. This hampers the learning curve for those trying to utilize the API effectively.
Incomplete Annotation and Safety Checks:

The inconsistency in the use of JetBrains @NotNull annotations and the scarcity of safety checks on passed parameters raise concerns about the API's reliability. The potential for breaking down with insufficient stacktrace information poses a significant risk.
Metrics Data Management:

While PacketEvents utilizes bStats for metrics, the absence of a user-friendly option to individually disable metrics data is a notable drawback. Users may want to selectively opt out of data collection without disabling the entire service.

Sparse Resource Page:
The resource page falls short of expectations by lacking meaningful descriptions and explanations about the API's usage, content, and overall value. A more informative resource page is crucial for potential users to evaluate its suitability for their projects.

Version: 2.1.0
Лучший пакетный api из существующих. могу только рекомендовать. Заслуживает более 5 звезд. Спасибо.
-
Author's response
Thank you so much!

Version: 2.0.2
The absolute best packet library currently available. Plenty of features and amazing developer, very lightweight. Miles ahead of the competition
-
Author's response
Thanks!

Version: 2.0.0
Всё отлично сделали, спасибо вам :P
Супер плагин для защиты сервера, рекомендую всем!
-
Author's response
thanks

Version: 1.8.4
Обновите пожалуйста до 1.19.2, после изменю отзыв.
Заранее спасибо, нужно ваше API для ClientDetector
-
Author's response
Пожалуйста, сообщите разработчику этого плагина, чтобы он обновился до PacketEvents 2.0.0.

Version: 1.8.4
I spent 10 hours finding the bug, and the bug was a regression from packetevents.
-
Author's response
???

Version: 1.8.4
Best PacketAPI for Anti-Cheat coding stuff for example.
Better than ProtocolLib or something.
Please support 1.19.3 ty.

Version: 1.8.4
I want to use ClientDetector, so please support 1.19.2 soon!

I'm waiting with my head up.
-
Author's response
We already do, I just haven't pushed a new release for it. Tell the developer to contact me through Discord.

Version: 1.8.3
PacketEvents is an open-source Packet API. It has many cross-version packet-wrappers. You can process incoming and outgoing packets on the server. You can even send packets with our packet-wrappers. We are here to save you a ton of time.
-
Author's response
Yes.

Version: 1.8-pre-19
Wow the best packet api that i have ever used. It helped me alot. Also thank the author who created this !!! ♡

Version: 1.8-pre-12
super great plugin developer has much swag andd is very hot he get alot of females super segsy and dsuper cool hes gud at coding and plugin more amazing than ur moms booty

Version: 1.8-pre-12
Honestly best packet api out there, super easy to use, its easy to switch from events to packets.

1.7 - 1.17 is amazing, also cant wait for 2.0!

Version: 1.8-pre-12
extremely hot developer
a very big chad with lots of weman freidns
very handsome
and compossianote
-
Author's response
are you reviewing me or the product? hmu tho ;)

Version: 1.8-pre-12
sexy developer coding a sexy API what can I say this is very good ngl op packet API I recommend this to everyone!

Version: 1.7.9
The API is by far the best I've seen for listening to packets. Very simple to use and to get into.

Version: 1.7.8
Amazing API, gets better and better every update. Extremely easy to use and the developer is actively willing to help and answer any questions and fix any issues. Definitely recommend!

Version: 1.6.9
A great packet API. Extremely simple to use, wrappers for everything you could need.
-
Author's response
Thanks for your kind review!

Version: 1.6.7
Incredible API ! Simplifies a lot the development of my plugins, and the fact the API is available on GitHub is just amazing ! Wonderful work !
-
Author's response
Appreciate your review! Thanks a lot

Version: 1.6.7
Amazing API, only keeps getting better. Would recommend to anyone who is looking for a lightweight packet API which is loaded with features!!

Version: 1.6.7
The last time I reviewed PacketEvents, it was a bit buggy and inefficient. However, taking a look at 1.6.7 vs 1.2 (or something like that), the API has become my favorite packet api out there. It has so many new features like dynamic wrapper creation (being able to read packets directly and create wrappers while using them), protocollib support (it literally uses protocollib if its present to maintain support with other plugins that use protocollib, which is very good ;D), event system and more. It is also extremely fast and optimized and I myself have even ran extensive stress tests against it and it still ran great.
-
Author's response
Thanks a lot for using the API, really appreciate it.
Will be looking on 1.16.3 support once Spigot releases 1.16.3.

Version: 1.6.5
Once again an amazing update, Thank you for maintaining this API, Well done!!!!!
-
Author's response
Thanks for the review, 1.6.6 has just been released

Version: 1.6.2
RATING THIS AGAIN because the 1.6 update literally fixed everything and performance has really improved over time.
-
Author's response
Update to 1.6.5 :)

Version: 1.6.1
Making a review on this again, Still one of the best if not The best packet related Api on spigot! Highly recommended, The perfomance has also improved quite a lot and it's fairly easy to use!
-
Author's response
Thanks a lot for your kind review.

Version: 1.6.1
rating this 5 stars again, the performance is much improved, lots of nice utilities to use, and it's better than ever.
-
Author's response
Thanks a lot, use 1.6.5, 1.6.5 should be able to perform well on servers with hundreds of players without any problem.

Version: 1.5.5
Best packet API out there, I was looking for a good library for my anticheat, and this is by far the best!
-
Author's response
Thanks for the review, who knows if it is the best?
There might be one better than this. ‍♂️

Version: 1.5.4.2
Amazing API, Very lightweight and easy to use. Highly Recommended!

80 Characters
-
Author's response
Thank you for your kind review and your awesome video tutorial on the API.
https://youtu.be/EzQ5VAN2FGw

Version: 1.5.4
The latest updates fixed a lot of issues and improved performance a lot. The dev is a chad and was very helpful with any issue I had.
-
Author's response
Thanks a lot for the review!

Version: 1.4.2
Awesome API. Extremely simple and lightweight, and developer is extremely active and friendly. Would recommend to anyone!
-
Author's response
Thanks a lot, recently pushed out 1.5.3

Version: 1.3.8
Good API updated a lot and easy to use. Developer is very respected and a good person.
-
Author's response
Thank you, make sure to use the latest version!

Version: 1.3.7
Very easy to use, but when making anticheats the code isn't that clean if you don't make the packets call your own events. Friendly and helpful developer.
-
Author's response
Thanks so much for the review, glad you liked it!

Version: 1.3.3.1
PacketEvents is a great API, very easy to use, and lightweight. The author is very friendly and helpful.
-
Author's response
thanks

Version: 1.3.2
I like this API as it is very user friendly and also very lightweight.

..................................................................80charlol
-
Author's response
Thanks, bug requests, feature requests, let me know in my discord server.

Version: 1.3.2
I use this in my project called Luna Anticheat. I was looking for something that wasn't too complex syntax wise, and retrooper came to me and asked me to try out PacketEvents. I use it now and I'm very happy I did. If I could give this API 6 stars, I would.
-
Author's response
I am glad you liked it, I am trying to update it as often as possible!

Resource Information
Author:
----------
Total Downloads: 19,225
First Release: Jun 16, 2020
Last Update: Dec 10, 2024
Category: ---------------
All-Time Rating:
49 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings