yeelp / Distinct-Damage-Descriptions

Adding physical D&D-style damage types to Minecraft to deepen the combat
MIT License
9 stars 4 forks source link

[BUG][Crash] mob thaumcraft:taintacle #70

Closed Xarmat-GitHub closed 3 years ago

Xarmat-GitHub commented 3 years ago

Bug Report: https://pastebin.com/dEFRFUFq Note: I have some mods in my pack too. Maybe its one of them that can cause this. I have experienced something like this also with "Grimore of Gaia" mod. (will post them when it crashes again)

Reproduce:

Important Note:

More Notes:

If you can not reproduce this, then the bug will be on my side and I have to dig through my mods.

yeelp commented 3 years ago

Before DDD crashes, it should have a chance to display debug info about the damage the taintacle took if debug mode is on. Not entirely sure it will help, but could you paste that info here too?

Regardless, the damage calculations is something I needed to look at anyway for the next update

Xarmat-GitHub commented 3 years ago

Yeha, there are informations: https://pastebin.com/rLZgLt75

Xarmat-GitHub commented 3 years ago

So when I have to "guess" the bug, then I would say that spawning the entity "mid air" will not cause any damage at start. When dropping to the ground, then it check the block it is on and start to tick "starve" damage like this:

[DDD (DEBUG)]Damage Type: starve Attacker: null, True Attacker: null Defender: thaumcraft:taintacle [DDD (DEBUG)]starting damage: 1.0 [DDD (DEBUG)]Damage Total: {(ddd_normal (Special, built-in), 1.0)} [DDD (DEBUG)]new damage after deductions: 1.0

But when spawning underground AND on a none taint block, then something breaks. I only can not say why this should be. At the end there can only be two damage events:

  1. Spawn in block (block stuck damage) and
  2. None tainted block nearby, so start taking damage each 20 ticks by "starve"
yeelp commented 3 years ago

I'm not entirely sure why there's a difference between the different scenarios. What I can say is that this is very likely a duplicate of #62, which is something I plan to tackle this update by redoing the calculation process. I'm delegating that issue to handle these types of crashes.

As a bit of a rule of thumb, when using version 1.3.x-beta, if the crash log starts with something like:

java.lang.NullPointerException
    at yeelp.distinctdamagedescriptions.handlers.DamageHandler.onHit(DamageHandler.java:112)

then it's likely a duplicate of #62.

That being said, it doesn't hurt to post a pastebin of any of those crash reports to #62 just in case.