Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (โ‹ฎ) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Gatherer7124

Members
  • Joined

  • Last visited

Everything posted by Gatherer7124

  1. I appreciate your concern, but I assure you cheating is not my purpose ๐Ÿ™‚ Anyway, after some looking online yesterday and trying to better understand Netty I stumbled on this post that has the answer to what I wanted to do! Intercepting Vanilla Minecraft Network Packets (techno.fish) In case the post is ever removed or goes offline, I'll also sketch out the solution here since I've seen this question asked multiple times on the form (I still recommend that you read the post to get a better understanding of things) First create your listener, which should be a subclass of `SimpleChannelInboundHandler` that implements `channelRead0`. @ChannelHandler.Sharable class ClientInboundHandler : SimpleChannelInboundHandler<Any>(false) { override fun channelRead0(ctx: ChannelHandlerContext?, msg: Any?) { # `msg` is your packet ctx!!.fireChannelRead(msg) } } Now register your listener when the player connects. Since I couldn't find any straightforward way to know when the client connects to a server I ended up just listening for the `EntityJoinLevelEvent` and checking that the current entity is the player @SubscribeEvent fun onClientJoinLevel(event: EntityJoinLevelEvent) { val entityName = event.entity.name val currentPlayerName = Minecraft.getInstance().player?.name if (!entityName.equals(currentPlayerName)) { return; } # get reference to netty pipeline val pipeline = Minecraft .getInstance() .connection!! # the blog post is slightly outdated with how to get this. This works on 1.19.2 .connection .channel() .pipeline() # you NEED to add it before `packet_handler`, read post for more info pipeline.addBefore("packet_handler", "custom_packet_handler", ClientInboundHandler()) }
  2. Thanks @warjort ๐Ÿ™‚ I'll read up on Netty to better understand how it works. In the meantime, can you think of an alternative approach to accomplish this? I'll still investigate Netty, but I want to make sure I'm not leaving another potential avenue unexplored
  3. Hi all, I'm playing with an idea to make a mod that runs only on the client and logs all received vanilla packets to a file, with the purpose of inspecting them later. For context, I'm building an external tool that will take these saved packets and extract useful information from them, the details are not important. However, I'm having some trouble with finding out exactly how I can achieve my goal of listening for packets ๐Ÿค” I'm aware there's no actual event for "packet received", and I did go through Forge's documentation for SimpleImpl, but unless I'm mistaken, SimpleImpl is specific for sending and receiving custom packets. I also saw some related questions in the forum where people have suggested adding a custom handler into the netty pipeline. For example: https://forums.minecraftforge.net/topic/38549-19-read-incoming-vanilla-packets/?do=findComment&comment=204747 But I'm not sure if this will allow me to do what I want to. Can someone offer me some advice as to how can I 'write' all received vanilla packets to a file?

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions โ†’ Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.