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.

Featured Replies

Posted

When I spawn a projectile with a high velocity it seems to render in the incorrect location but it ends up hitting the correct block. Better explained by watching this clip: https://youtu.be/ENmASw9UQVQ

 

Here is the basic code I used to spawn the projectile:

spacer.png

 

The only thing that I could think of as the cause would be some kind of de-sync with the client because the projectile doesn't hit mobs or blocks that would be in the way if it was actually where it's rendering.

Any clues on how to fix this would be very helpful.

  • Author
  On 2/19/2021 at 8:19 AM, diesieben07 said:

ArrowEntity uses SSpawnObjectPacket, which can only handle motion between -3.9 and +3.9.

Okay I see what you mean in SSpawnObjectPacket but I'm not sure how I could change that or if there's a different packet I could send. I tried creating a new packet extending SSpawnObjectPacket but minecraft doesn't render custom non-living entities with that packet. Before I was using 'NetworkHooks.getEntitySpawningPacket(this);' which ultimately creates a SCustomPayloadPlayPacket packet which does render custom non-living entities but I don't know how I could edit that packet either. (Both clamp the motion)

 

Edited by MysticalMike

  • Author
  On 2/20/2021 at 7:03 PM, diesieben07 said:

Do not make your own "vanilla style" packet (i.e. subclass of IPacket). It won't work.

 

You can implement IEntityAdditionalSpawnData on your entity and encode the motion again, without clamping. This requires the use of NetworkHooks.getEntitySpawningPacket (like all modded entities).

Okay so I got it to write and read my data but how can I use that to actually change the speed for the client?

image.png.c8095e092bf03e14c283ddfea4f2838f.png

  • Author
  On 2/22/2021 at 7:17 AM, diesieben07 said:

Is the method called? Does it read the correct values?

Yeah, but even setting the motion even to (0, 0, 0) doesn't seem to change it.

  • Author
  On 2/22/2021 at 7:33 AM, diesieben07 said:

I can't see why that would happen.

Can you post a Git repo of your mod?

Okay I posted it to my github: https://github.com/MysticalMike/GunMod

I use EMPGun to spawn the projectile: io/github/mysticalmike/gunmod/common/items/EMPGun

And BulletEntity is the projectile spawned: io/github/mysticalmike/gunmod/common/entities/BulletEntity

Edited by MysticalMike

  • Author

I'm just going to bump this because I don't think you got a notification since I edited the last message, but there's my project ^^^

  • Author
  On 2/20/2021 at 7:03 PM, diesieben07 said:

Do not make your own "vanilla style" packet (i.e. subclass of IPacket). It won't work.

 

You can implement IEntityAdditionalSpawnData on your entity and encode the motion again, without clamping. This requires the use of NetworkHooks.getEntitySpawningPacket (like all modded entities).

How exactly does one write a packet and get forge to send it?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

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.