Jeryn99 / Regeneration

Minecraft Mod - Adds the concept of Regeneration from the show Doctor who
https://minecraft.curseforge.com/projects/regeneration
GNU Lesser General Public License v3.0
31 stars 19 forks source link

Incompatibility with Corpse #294

Closed Ritzumi closed 3 years ago

Ritzumi commented 3 years ago

Mod

Forge: 35.1.29 Corpse: 1.16.4-1.0.4 Regeneration: 1.16.X-1.0.7

Description

In the corpse mod, when player died, the mod will collect items and store it inside an entity called 'corpse' which will use player skin as a reference. Look like when this mod change skin of player, it cause the corpse mod to not be able to get the user skin when they died, resulting in NullPointerException.

How to reproduce

  1. Use the watch to become time lord
  2. Attempt to die and regenerate
  3. Die during post-regeneration (after post should also work too)

Crash log

https://gist.github.com/Ritzumi/cf08abc543da396fec97d99fd45b297f

Jeryn99 commented 3 years ago

Hello, I've investigated this briefly and think this build here may fix it: https://drive.google.com/file/d/1hg-YkOvnXR_Z0sbhxI9Q23PRCU8y0cp9/view?usp=sharing

Could you please test and let me know how it goes? If it does not work, I will investigate it further

Ritzumi commented 3 years ago

Look like it does solve the issue, no crash after testing so far. However, seem like this version introduce new issues: The regeneration animation (Most obvious in fiery) doesn't work (player just stand still, no hand lift up). Second is skin inconsistency, the skin after regeneration is constantly shift between default skin and post-regen one.

Jeryn99 commented 3 years ago

Quark can sometimes cause that issue with the arms, sadly there isn't a lot I can do to fix it When you say constantly shift, do you mean on the corpse or on the player itself? Any chance of a video showing me what you mean?

Ritzumi commented 3 years ago

Here is the video: https://youtu.be/6NTREF54YiQ (Sorry about frame rate. I forgot to set frame rate during capture >> )

Timestamp: 1:23 - I have only 2 mods during test: corpse and regeneration. Still, the fiery animation hands didn't get lift up. 2:02 - During test I found a minor bug: In the first time that you died, corpse create 2 entity. I waited until the empty corpse disappeared so that I can gather my stuff back. (I am not sure is this regen's bug or corpse's bug) (This bug is also inconsistent, sometime it don't occur) 3:10 - In this regeneration, the bug occurred. When I rotate my character around, the skin will shift between default and the regenerated one.

However, I found more information on the 3:10 bug. I seem not to trigger every time but rather the time I open the preference to choose regeneration skin. I did some test before hand without open and it didn't occur. Also, the bug seem to happen after first regeneration. First regeneration work normally.

Jeryn99 commented 3 years ago

Interesting will look into it more overall over time

Jeryn99 commented 3 years ago

Hey, I need you to remake the video you made for me so I can see the issue more clearly Getting around to addressing this issue correctly now that I have a lot more time on my hands The issue isn't 100% clear to me, but I have a faint understanding, but not enough to fully understand the issue

Ritzumi commented 3 years ago

Here is the new video: https://youtu.be/wK_a0E7B9aI The mod's versions are the following during the test (May not be latest version): Forge: 35.1.36 Corpse: 1.16.4-1.0.4 Regeneration: 1.16.X-1.0.7 [Issue #294]

Timestamp: 0:54 - The hand didn't get lift up as expected. (1) On first regeneration, no unexpected interaction with corpse occurred. 1:59 - Second regeneration 2:36 - After died during post-regen state, I tried to retrieved item. However, there is an empty corpse on top of the true corpse. (2) 2:59 - It take a moment for empty corpse to disappeared. After that, I can retrieve my item back.

P.S. 1) I found the third skin visual bug to be inconsistent and decided to not reproduce it. 2) Sorry for late response. I have become much more busy lately and decided to stop playing Minecraft for time being. I will try to help as much as I can.