Domum Ornamentum

Domum Ornamentum

26M Downloads

[CRASH + Player Corruption] No Enum Constant - V1.20.1-1.0.184-BETA

Shadowner opened this issue ยท 5 comments

commented

Instant crash + Player Data file corruption for v1.20.1-1.0.184-BETA

Context : I was using Forgematica (Litematic) to place a schematic using types, and it corrupted my entire player data file

I think that this is the same problem in #157

Time: 2024-06-17 23:31:04
Description: Unexpected error

java.lang.IllegalArgumentException: No enum constant com.ldtteam.domumornamentum.block.types.TrapdoorType.
	at java.lang.Enum.valueOf(Enum.java:273) ~[?:?] {re:mixin}
	at com.ldtteam.domumornamentum.block.types.TrapdoorType.valueOf(TrapdoorType.java:10) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.block.decorative.PanelBlock.m_5573_(PanelBlock.java:124) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.client.render.ModelGhostRenderer.renderGhost(ModelGhostRenderer.java:88) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.client.event.handlers.MateriallyTexturedBlockPreviewRenderHandler.renderGhost(MateriallyTexturedBlockPreviewRenderHandler.java:50) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.client.event.handlers.MateriallyTexturedBlockPreviewRenderHandler.renderMateriallyTexturedBlockPreview(MateriallyTexturedBlockPreviewRenderHandler.java:43) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.client.event.handlers.MateriallyTexturedBlockPreviewRenderHandler.onRenderLevelStage(MateriallyTexturedBlockPreviewRenderHandler.java:25) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading}
	at com.ldtteam.domumornamentum.client.event.handlers.__MateriallyTexturedBlockPreviewRenderHandler_onRenderLevelStage_RenderLevelStageEvent.invoke(.dynamic) ~[domum_ornamentum-1.20.1-1.0.184-BETA-universal.jar%23663!/:1.20.1-1.0.184-BETA] {re:classloading,pl:eventbus:B}
	at net.minecraftforge.eventbus.ASMEventHandler.invoke(ASMEventHandler.java:73) ~[eventbus-6.0.5.jar%2389!/:?] {}

Here is a screen of the NBT that made my Player Data File corrupted if it can help ! (Still have the complete file if needed)
image

commented

You cannot place Domum blocks via commands as those would be lacking necessary data.

commented

You can place them as long as they will have both BETag and 'type' blockstate tag, we will look into providing more crash-less experience, but as said you have to provide the data else you will get garbage/random looking block. Indeed a dupe of #157

commented

Also duplicate of #234 and #237

commented

Totally agree, but this bug might hide some scenarios like :

  • What if you use the mod with another mod that add compatible material, and then delete the previous mods (i know it's extreme) but gaining a glitched item in the inventory might cause the player data file to be corrupted, or worse, the chunks data file

  • What if in some glitch way you obtained an untagged NBT items of the mods, still a data glitch

a simple security as a default material or fallback item might be a simple fix to this problem.

(Still theory I don't have the time to watch the source code)

commented

Fixed in 1.20.4 and newer by using vanilla logic, in 1.20.1 and earlier it should be easily fixable - just might need fix on more than this crash place