Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Wiki improvement suggestion #779

Open
IamMusavaRibica opened this issue May 15, 2024 · 0 comments
Open

Wiki improvement suggestion #779

IamMusavaRibica opened this issue May 15, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@IamMusavaRibica
Copy link

Is your feature request related to a problem? Please describe.
Not really, I just want to share some suggestions for improving Shading PacketEvents wiki page.

Describe the solution you'd like

  • I suggest removing "Step 3 - (Optional) Minimize PacketEvents" or giving a warning about usage of the mentioned minimizeJar option. It can break because some classes are loaded dynamically, and the plugin doesn't recognize that, see below for more context.
  • Add somewhere that there is an example available: https://github.com/retrooper/packetevents-example (a week old), however the example pom.xml uses Java 8, Spigot 1.17.1 and maven shade plugin 3.2.4. There should be a note stating that, it's better and more concise than having people look pom.xml themselves. Also, it should be stated that Java 21 (for 1.20.6+) is only supported by maven shade plugin 3.5.1 and up (I'm not sure for Java 17).

Describe alternatives you've considered to solve your solution without
us adding this as a feature?

I think this doesn't apply in this request

Additional context
When I built an uber jar with minimizeJar true, this exception hinted that this option could be breaking because of dynamically loading classes, the compiler thinks that a class is not used just because it's not directly referenced in the code:

[19:43:23] [Netty Server IO #2/WARN]: An exception 'java.lang.NoClassDefFoundError: dev/ribica/magic/packets/util/ExceptionUtil' [enable DEBUG level for full stacktrace] was thrown by a user handler's exceptionCaught() method while handling the following exception:
io.netty.handler.codec.EncoderException: java.lang.NoClassDefFoundError: dev/ribica/magic/packets/util/Vector3i
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:107) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.write(PacketEventsEncoder.java:101) ~[?:?]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:113) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:120) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:863) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:968) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:856) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.ChannelOutboundHandlerAdapter.write(ChannelOutboundHandlerAdapter.java:113) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at net.minecraft.network.NetworkManager$2.write(NetworkManager.java:543) ~[spigot-1.20.6-R0.1-SNAPSHOT.jar:4168-Spigot-e2c1eee-2ea1e7a]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:881) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:940) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:966) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:934) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.DefaultChannelPipeline.writeAndFlush(DefaultChannelPipeline.java:1020) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.AbstractChannel.writeAndFlush(AbstractChannel.java:311) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:227) ~[?:?]
        at com.comphenix.protocol.injector.netty.channel.NettyChannelProxy.writeAndFlush(NettyChannelProxy.java:233) ~[?:?]
        at net.minecraft.network.NetworkManager.c(NetworkManager.java:366) ~[spigot-1.20.6-R0.1-SNAPSHOT.jar:4168-Spigot-e2c1eee-2ea1e7a]
        at net.minecraft.network.NetworkManager.lambda$sendPacket$12(NetworkManager.java:359) ~[spigot-1.20.6-R0.1-SNAPSHOT.jar:4168-Spigot-e2c1eee-2ea1e7a]
        at com.comphenix.protocol.injector.netty.channel.NettyEventLoopProxy.lambda$proxyRunnable$2(NettyEventLoopProxy.java:48) ~[?:?]
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.97.Final.jar:4.1.97.Final]
        at java.base/java.lang.Thread.run(Thread.java:1583) [?:?]
Caused by: java.lang.NoClassDefFoundError: dev/ribica/magic/packets/util/Vector3i
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readBlockPosition(PacketWrapper.java:877) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readWorldBlockPosition(PacketWrapper.java:1069) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readOptional(PacketWrapper.java:1335) ~[?:?]
        at dev.ribica.magic.packets.wrapper.play.server.WrapperPlayServerJoinGame.read(WrapperPlayServerJoinGame.java:200) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readEvent(PacketWrapper.java:244) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.<init>(PacketWrapper.java:149) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.<init>(PacketWrapper.java:139) ~[?:?]
        at dev.ribica.magic.packets.wrapper.play.server.WrapperPlayServerJoinGame.<init>(WrapperPlayServerJoinGame.java:65) ~[?:?]
        at dev.ribica.magic.packets.manager.InternalPacketListener.onPacketSend(InternalPacketListener.java:130) ~[?:?]
        at dev.ribica.magic.packets.event.PacketSendEvent.call(PacketSendEvent.java:51) ~[?:?]
        at dev.ribica.magic.packets.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
        at dev.ribica.magic.packets.util.PacketEventsImplHelper.handleClientBoundPacket(PacketEventsImplHelper.java:44) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.handleClientBoundPacket(PacketEventsEncoder.java:82) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.encode(PacketEventsEncoder.java:67) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.encode(PacketEventsEncoder.java:46) ~[?:?]
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        ... 40 more
Caused by: java.lang.ClassNotFoundException: dev.ribica.magic.packets.util.Vector3i
        at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:160) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:112) ~[spigot-api-1.20.6-R0.1-SNAPSHOT.jar:?]
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readBlockPosition(PacketWrapper.java:877) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readWorldBlockPosition(PacketWrapper.java:1069) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readOptional(PacketWrapper.java:1335) ~[?:?]
        at dev.ribica.magic.packets.wrapper.play.server.WrapperPlayServerJoinGame.read(WrapperPlayServerJoinGame.java:200) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.readEvent(PacketWrapper.java:244) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.<init>(PacketWrapper.java:149) ~[?:?]
        at dev.ribica.magic.packets.wrapper.PacketWrapper.<init>(PacketWrapper.java:139) ~[?:?]
        at dev.ribica.magic.packets.wrapper.play.server.WrapperPlayServerJoinGame.<init>(WrapperPlayServerJoinGame.java:65) ~[?:?]
        at dev.ribica.magic.packets.manager.InternalPacketListener.onPacketSend(InternalPacketListener.java:130) ~[?:?]
        at dev.ribica.magic.packets.event.PacketSendEvent.call(PacketSendEvent.java:51) ~[?:?]
        at dev.ribica.magic.packets.event.EventManager.callEvent(EventManager.java:52) ~[?:?]
        at dev.ribica.magic.packets.util.PacketEventsImplHelper.handleClientBoundPacket(PacketEventsImplHelper.java:44) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.handleClientBoundPacket(PacketEventsEncoder.java:82) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.encode(PacketEventsEncoder.java:67) ~[?:?]
        at dev.ribica.magic.packetsio.injector.handlers.PacketEventsEncoder.encode(PacketEventsEncoder.java:46) ~[?:?]
        at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:90) ~[netty-codec-4.1.97.Final.jar:4.1.97.Final]
        ... 40 more
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant