Jump to content

[1.19.4] How can I reduce knockback on entity hurt


Feroov

Recommended Posts

So I've created an entity that shoots projectiles, and everything works as intended, the problem is since my entity shoots really fast (Machinegun) obviously whoever is getting hit by the projectiles will constantly get knockback. Is there a way to decrease or completely remove knockback when the projectile entity hits another entity? Thank you in advance 😁

Link to comment
Share on other sites

There is a LivingKnockBackEvent where you can adjust the knockback strength and direction.

But it doesn't tell you the DamageSource so you wouldn't be able to check it is your projectile.

 

There is a LivingEntity.getLastDamageSource(), but if you look at the code for LivingEntity.hurt() it doesn't set that value until after the knockback() is calculated.

Maybe you could still use it but only to stop knockback if the previous damage was from your projectile? i.e. the knockback would still occur for the first one.

If you look at getLastDamageSource(), it removes that value after a certain amount of time though.

 

An alternative would be to suggest a patch to Forge where that event makes the DamageSource available.

Boilerplate:

If you don't post your logs/debug.log we can't help you. For curseforge you need to enable the forge debug.log in its minecraft settings. You should also post your crash report if you have one.

If there is no error in the log file and you don't have a crash report then post the launcher_log.txt from the minecraft folder. Again for curseforge this will be in your curseforge/minecraft/Install

Large files should be posted to a file sharing site like https://gist.github.com  You should also read the support forum sticky post.

Link to comment
Share on other sites

On 4/27/2023 at 10:06 PM, Feroov said:

So I've created an entity that shoots projectiles, and everything works as intended, the problem is since my entity shoots really fast (Machinegun) obviously whoever is getting hit by the projectiles will constantly get knockback. Is there a way to decrease or completely remove knockback when the projectile entity hits another entity? Thank you in advance 😁

One thing you could do is set a persistent data tag and check in LivingKnockbackEvent if that entity has that tag if so do whatever and remove that tag 

Link to comment
Share on other sites

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...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

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