DragonsPlusMinecraft / CreateEnchantmentIndustry

An add-on for Create, providing enchanting & experience related automation.
https://modrinth.com/mod/create-enchantment-industry
MIT License
45 stars 41 forks source link

Crash when disenchanting Tombstone Soulbound book #122

Closed Syndaryl closed 1 year ago

Syndaryl commented 1 year ago

Minecraft Version

1.20.1

Describe the Bug

Every time I send a Tombstone Soulbound book (from Corail Tombstone) onto the disenchanter, Minecraft crashes to desktop.

debug.log latest.log crash-2023-10-21_18.06.45-client.txt

Reproduction Steps

  1. Place depot next to disenchanter.
  2. Place brass funnel on depot side facing the disenchanter.
  3. Throw "Tomestone Soulbound" enchanting book onto depot.
  4. Book is sent out the funnel on to the disenchanter.
  5. Crash.

The crash is always an NPE thrown from a stack that traces through the DisenchanterRenderer.renderFluid().

Caused by: java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "pk" is null
    at java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1321) ~[?:?]
    at java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1235) ~[?:?]
    at net.minecraft.client.renderer.texture.TextureAtlas.m_118316_(TextureAtlas.java:126) ~[client-1.20.1-20230612.114412-srg.jar%23410!/:?]
    at com.simibubi.create.foundation.fluid.FluidRenderer.renderFluidBox(FluidRenderer.java:103) ~[create-1.20.1-0.5.1.e.jar%23317!/:0.5.1.e]
    at com.simibubi.create.foundation.fluid.FluidRenderer.renderFluidBox(FluidRenderer.java:92) ~[create-1.20.1-0.5.1.e.jar%23317!/:0.5.1.e]
    at plus.dragons.createenchantmentindustry.content.contraptions.enchanting.disenchanter.DisenchanterRenderer.renderFluid(DisenchanterRenderer.java:157) ~[create_enchantment_industry-1.20.1-for-create-0.5.1.e-1.2.7.d.jar%23319!/:1.2.7.d]
    at plus.dragons.createenchantmentindustry.content.contraptions.enchanting.disenchanter.DisenchanterRenderer.renderSafe(DisenchanterRenderer.java:35) ~[create_enchantment_industry-1.20.1-for-create-0.5.1.e-1.2.7.d.jar%23319!/:1.2.7.d]
    at plus.dragons.createenchantmentindustry.content.contraptions.enchanting.disenchanter.DisenchanterRenderer.renderSafe(DisenchanterRenderer.java:25) ~[create_enchantment_industry-1.20.1-for-create-0.5.1.e-1.2.7.d.jar%23319!/:1.2.7.d]
    at com.simibubi.create.foundation.blockEntity.renderer.SafeBlockEntityRenderer.m_6922_(SafeBlockEntityRenderer.java:16) ~[create-1.20.1-0.5.1.e.jar%23317!/:0.5.1.e]
    at net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.m_112284_(BlockEntityRenderDispatcher.java:90) ~[client-1.20.1-20230612.114412-srg.jar%23410!/:?]
    at net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.m_112297_(BlockEntityRenderDispatcher.java:79) ~[client-1.20.1-20230612.114412-srg.jar%23410!/:?]
    at net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher.m_112278_(BlockEntityRenderDispatcher.java:104) ~[client-1.20.1-20230612.114412-srg.jar%23410!/:?]
    ... 22 more

Expected Result

Book would pause on top of disenchanter as the enchantment is drained, a small amount of liquid XP would be extracted, and the book would continue its roll and exit the disenchanter opposite the side of the depot.

Without crashing. :shrug

Screenshots and Videos

No response

Crash Report or Log

https://github.com/DragonsPlusMinecraft/CreateEnchantmentIndustry/files/13061918/crash-2023-10-21_18.06.45-client.txt

Other Mods

wandering trader trades.jar                       |wandering trader trades       |wandering_trader_trades       |1.0.0               
YungsBetterDungeons-1.20-Forge-4.0.3.jar          |YUNG's Better Dungeons        |betterdungeons                |1.20-Forge-4.0.3    
supermartijn642configlib-1.1.8-forge-mc1.20.jar   |SuperMartijn642's Config Libra|supermartijn642configlib      |1.1.8               
YungsBetterWitchHuts-1.20-Forge-3.0.3.jar         |YUNG's Better Witch Huts      |betterwitchhuts               |1.20-Forge-3.0.3    
areas-1.20.1-5.0.jar                              |Areas                         |areas                         |5.0                 
YungsBetterOceanMonuments-1.20-Forge-3.0.3.jar    |YUNG's Better Ocean Monuments |betteroceanmonuments          |1.20-Forge-3.0.3    
ForgeEndertech-1.20.1-11.1.0.0-build.0142.jar     |ForgeEndertech                |forgeendertech                |11.1.0.0            
villagernames-1.20.1-5.2.jar                      |Villager Names                |villagernames                 |5.2                 
XaerosWorldMap_1.34.1_Forge_1.20.jar              |Xaero's World Map             |xaeroworldmap                 |1.34.1              
cookingforblockheads-forge-1.20-16.0.1.jar        |CookingForBlockheads          |cookingforblockheads          |16.0.1              
Controlling-forge-1.20.1-12.0.2.jar               |Controlling                   |controlling                   |12.0.2              
Prism-1.20.1-forge-1.0.5.jar                      |Prism                         |prism                         |1.0.5               
Placebo-1.20.1-8.3.7.jar                          |Placebo                       |placebo                       |8.3.7               
YungsApi-1.20-Forge-4.0.2.jar                     |YUNG's API                    |yungsapi                      |1.20-Forge-4.0.2    
mixinextras-forge-0.2.0-beta.7.jar                |MixinExtras                   |mixinextras                   |0.2.0-beta.7        
rangedpumps-1.1.0.jar                             |Ranged Pumps                  |rangedpumps                   |1.1.0               
Bookshelf-Forge-1.20.1-20.0.5.jar                 |Bookshelf                     |bookshelf                     |20.0.5              
guardvillagers-1.20-1.6.2.jar                     |Guard Villagers               |guardvillagers                |1.20-1.6.2          
create_dragon_lib-1.20.1-1.3.3.jar                |Create: Dragon Lib            |create_dragon_lib             |1.3.3               
Apotheosis-1.20.1-7.0.5.jar                       |Apotheosis                    |apotheosis                    |7.0.5               
Steam_Rails-1.5.2+forge-mc1.20.1.jar              |Create: Steam 'n' Rails       |railways                      |1.5.2+forge-mc1.20.1
keepmysoiltilled-1.20.1-2.0.jar                   |Keep My Soil Tilled           |keepmysoiltilled              |2.0                 
balm-forge-1.20.1-7.1.4.jar                       |Balm                          |balm                          |7.1.4               
carryon-forge-1.20.1-2.1.0.1.jar                  |Carry On                      |carryon                       |2.1.0.1             
JustEnoughResources-1.20.1-1.4.0.238.jar          |Just Enough Resources         |jeresources                   |1.4.0.238           
huskspawn-1.20.1-3.3.jar                          |Husk Spawn                    |huskspawn                     |3.3                 
YungsBetterNetherFortresses-1.20-Forge-2.0.5.jar  |YUNG's Better Nether Fortresse|betterfortresses              |1.20-Forge-2.0.5    
cloth-config-11.1.106-forge.jar                   |Cloth Config v10 API          |cloth_config                  |11.1.106            
stackrefill-1.20.1-4.0.jar                        |Stack Refill                  |stackrefill                   |4.0                 
ctov-3.3.5a.jar                                   |ChoiceTheorem's Overhauled Vil|ctov                          |3.3.5a              
supplementaries-1.20-2.6.12.jar                   |Supplementaries               |supplementaries               |1.20-2.6.12         
growthcraft-1.20.1-9.0.6.jar                      |Growthcraft                   |growthcraft                   |9.0.6               
athena-forge-1.20.1-3.1.1.jar                     |Athena                        |athena                        |3.1.1               
solapplepie-1.20.1-2.3.0.jar                      |Spice of Life: Apple Pie Editi|solapplepie                   |1.20.1-2.3.0        
chipped-forge-1.20.1-3.0.1.jar                    |Chipped                       |chipped                       |3.0.1               
xaeros_waystones_compability-1.0.jar              |Xaero's Map - Waystones Compab|w2w2                          |1.0                 
FarmersDelight-1.20.1-1.2.3.jar                   |Farmer's Delight              |farmersdelight                |1.20.1-1.2.3        
repurposed_structures-7.1.7+1.20.1-forge.jar      |Repurposed Structures         |repurposed_structures         |7.1.7+1.20.1-forge  
curious_armor_stands-1.20-5.0.1.jar               |Curious Armor Stands          |curious_armor_stands          |1.20-5.0.1          
betterspawnercontrol-1.20.1-4.2.jar               |Better Spawner Control        |betterspawnercontrol          |4.2                 
supermartijn642corelib-1.1.15-forge-mc1.20.jar    |SuperMartijn642's Core Lib    |supermartijn642corelib        |1.1.15              
YungsBridges-1.20-Forge-4.0.3.jar                 |YUNG's Bridges                |yungsbridges                  |1.20-Forge-4.0.3    
fishontheline-1.20.1-3.0.jar                      |Fish On The Line              |fishontheline                 |3.0                 
curios-forge-5.3.5+1.20.1.jar                     |Curios API                    |curios                        |5.3.5+1.20.1        
Patchouli-1.20.1-81-FORGE.jar                     |Patchouli                     |patchouli                     |1.20.1-81-FORGE     
corail_woodcutter-1.20.1-3.0.3.jar                |Corail Woodcutter             |corail_woodcutter             |3.0.3               
suppsquared-1.20-1.1.10.jar                       |Supplementaries Squared       |suppsquared                   |1.20-1.1.10         
torchflower_relit-1.0.0.jar                       |Torchflower: Relit            |torchflower_relit             |1.0.0               
collective-1.20.1-6.66.jar                        |Collective                    |collective                    |6.66                
Searchables-forge-1.20.1-1.0.2.jar                |Searchables                   |searchables                   |1.0.2               
YungsExtras-1.20-Forge-4.0.3.jar                  |YUNG's Extras                 |yungsextras                   |1.20-Forge-4.0.3    
FramedBlocks-9.1.6.jar                            |FramedBlocks                  |framedblocks                  |9.1.6               
ApothicAttributes-1.20.1-1.1.4.jar                |Apothic Attributes            |attributeslib                 |1.1.4               
YungsBetterStrongholds-1.20-Forge-4.0.3.jar       |YUNG's Better Strongholds     |betterstrongholds             |1.20-Forge-4.0.3    
tombstone-8.5.5-1.20.1.jar                        |Corail Tombstone              |tombstone                     |8.5.5               
overweightfarming-1.20.1-2.1.0-forge.jar          |Overweight Farming            |overweight_farming            |1.20.1-2.1.0-forge  
resourcefullib-forge-1.20.1-2.1.11.jar            |Resourceful Lib               |resourcefullib                |2.1.11              
worldedit-mod-7.2.15.jar                          |WorldEdit                     |worldedit                     |7.2.15+6463-5ca4dff 
constructionwand-1.20.1-2.11.jar                  |Construction Wand             |constructionwand              |1.20.1-2.11         
Butchersdelight beta 1.20.1 2.0.8.jar             |ButchersDelight               |butchersdelight               |1.20.12.0.8         
mcw-roofs-2.2.4b-mc1.20.1forge.jar                |Macaw's Roofs                 |mcwroofs                      |2.2.4b              
architectury-9.1.12-forge.jar                     |Architectury                  |architectury                  |9.1.12              
cryingportals-1.20.1-2.3.jar                      |Crying Portals                |cryingportals                 |2.3                 
AdChimneys-1.20.1-10.1.2.0-build.0270.jar         |Advanced Chimneys             |adchimneys                    |10.1.2.0            
JadeAddons-1.20.1-forge-5.2.0.jar                 |Jade Addons                   |jadeaddons                    |5.2.0               
inventoryessentials-forge-1.20.1-8.2.1.jar        |Inventory Essentials          |inventoryessentials           |8.2.1               
toms_storage-1.20-1.6.5.jar                       |Tom's Simple Storage Mod      |toms_storage                  |1.6.5               
strayspawn-1.20.1-3.3.jar                         |Stray Spawn                   |strayspawn                    |3.3                 
YungsBetterMineshafts-1.20-Forge-4.0.4.jar        |YUNG's Better Mineshafts      |bettermineshafts              |1.20-Forge-4.0.4    
crawlondemand-1.20.x-1.0.0.jar                    |Crawl on Demand               |crawlondemand                 |1.20.x-1.0.0        
sliceanddice-forge-3.2.0.jar                      |Create Slice & Dice           |sliceanddice                  |3.2.0               
scaffoldingdropsnearby-1.20.1-3.0.jar             |Scaffolding Drops Nearby      |scaffoldingdropsnearby        |3.0                 
randombonemealflowers-1.20.1-4.1.jar              |Random Bone Meal Flowers      |randombonemealflowers         |4.1                 
YungsBetterJungleTemples-1.20-Forge-2.0.4.jar     |YUNG's Better Jungle Temples  |betterjungletemples           |1.20-Forge-2.0.4    
BetterAdvancements-1.20.1-0.3.2.161.jar           |Better Advancements           |betteradvancements            |0.3.2.161           
inventorysorter-1.20.1-23.0.1.jar                 |Simple Inventory Sorter       |inventorysorter               |23.0.1              
InventorySpam-1.20.1-1.5.6.jar                    |Inventory Spam                |inventoryspam                 |1.5.6               
rechiseled-1.1.4a-forge-mc1.20.jar                |Rechiseled                    |rechiseled                    |1.1.4a              
harvestwithease-1.20.1-7.0.0.2-forge.jar          |Harvest with ease             |harvestwithease               |7.0.0.2             
biggerspongeabsorptionradius-1.20.1-3.1.jar       |Bigger Sponge Absorption Radiu|biggerspongeabsorptionradius  |3.1                 
jei-1.20.1-forge-15.2.0.27.jar                    |Just Enough Items             |jei                           |15.2.0.27           
mooshroomtweaks-1.20.1-3.2.jar                    |Mooshroom Tweaks              |mooshroomtweaks               |3.2                 
AttributeFix-Forge-1.20.1-21.0.2.jar              |AttributeFix                  |attributefix                  |21.0.2              
justmobheads-1.20.1-7.3.jar                       |Just Mob Heads                |justmobheads                  |7.3                 
waystones-forge-1.20-14.0.2.jar                   |Waystones                     |waystones                     |14.0.2              
Clumps-forge-1.20.1-12.0.0.3.jar                  |Clumps                        |clumps                        |12.0.0.3            
apotheoticadditions1.06.jar                       |Apotheotic Additions          |apotheotic_additions          |1.0.0               
TravelersBackpack-1.20.1-9.1.9.jar                |Traveler's Backpack           |travelersbackpack             |9.1.9               
artifacts-forge-9.1.0.jar                         |Artifacts                     |artifacts                     |9.1.0               
Dungeon Crawl-1.20.1-2.3.14.jar                   |Dungeon Crawl                 |dungeoncrawl                  |2.3.14              
anvilrestoration-1.20.1-2.0.jar                   |Anvil Restoration             |anvilrestoration              |2.0                 
rechiseledcreate-1.0.1-forge-mc1.20.jar           |Rechiseled: Create            |rechiseledcreate              |1.0.1               
everycomp-1.20-2.6.7.jar                          |Every Compat                  |everycomp                     |1.20-2.6.7          
YungsBetterDesertTemples-1.20-Forge-3.0.3.jar     |YUNG's Better Desert Temples  |betterdeserttemples           |1.20-Forge-3.0.3    
compacthelpcommand-1.20.1-2.3.jar                 |Compact Help Command          |compacthelpcommand            |2.3                 
fusion-1.0.6-forge-mc1.20.1.jar                   |Fusion                        |fusion                        |1.0.6               
fixedanvilrepaircost-1.20.1-3.1.jar               |Fixed Anvil Repair Cost       |fixedanvilrepaircost          |3.1                 
CraftTweaker-forge-1.20.1-14.0.17.jar             |CraftTweaker                  |crafttweaker                  |14.0.17             
imst-2.1.0.jar                                    |Immersive Structures          |imst                          |2.1.0               
forge-1.20.1-47.2.1-universal.jar                 |Forge                         |forge                         |47.2.1              
DungeonsArise-1.20.1-2.1.56.1-beta.jar            |When Dungeons Arise           |dungeons_arise                |2.1.56.1-1.20.1     
craftingtweaks-forge-1.20-18.2.1.jar              |CraftingTweaks                |craftingtweaks                |18.2.1              
client-1.20.1-20230612.114412-srg.jar             |Minecraft                     |minecraft                     |1.20.1              
EnchantmentDescriptions-Forge-1.20.1-17.0.8.jar   |EnchantmentDescriptions       |enchdesc                      |17.0.8              
TerraBlender-forge-1.20.1-3.0.0.169.jar           |TerraBlender                  |terrablender                  |3.0.0.169           
BiomesOPlenty-1.20.1-18.0.0.598.jar               |Biomes O' Plenty              |biomesoplenty                 |18.0.0.598          
moonlight-1.20-2.8.49-forge.jar                   |Moonlight Library             |moonlight                     |1.20-2.8.49         
nohostilesaroundcampfire-1.20.1-5.6.jar           |No Hostiles Around Campfire   |nohostilesaroundcampfire      |5.6                 
MouseTweaks-forge-mc1.20-2.25.jar                 |Mouse Tweaks                  |mousetweaks                   |2.25                
eccentrictome-1.20.1-1.10.1.jar                   |Eccentric Tome                |eccentrictome                 |1.20.1-1.10.1       
Jade-1.20.1-forge-11.6.3.jar                      |Jade                          |jade                          |11.6.3              
moresnifferflowers-1.2.1.jar                      |More Sniffer Flowers          |moresnifferflowers            |1.2.1               
mooshroomspawn-1.20.1-3.3.jar                     |Mooshroom Spawn               |mooshroomspawn                |3.3                 
spectrelib-forge-0.13.13+1.20.1.jar               |SpectreLib                    |spectrelib                    |0.13.13+1.20.1      
kffmod-4.5.0.jar                                  |Kotlin For Forge              |kotlinforforge                |4.5.0               
flywheel-forge-1.20.1-0.6.10-7.jar                |Flywheel                      |flywheel                      |0.6.10-7            
create-1.20.1-0.5.1.e.jar                         |Create                        |create                        |0.5.1.e             
create-structures-0.1.1-1.20.1-FORGE.jar          |Create: Structures            |create_structures             |0.1.1               
reliquary-1.20.1-2.0.36.1199.jar                  |Reliquary                     |reliquary                     |1.20.1-2.0.36.1199  
Xaeros_Minimap_23.8.2_Forge_1.20.jar              |Xaero's Minimap               |xaerominimap                  |23.8.2              
cyclepaintings-1.20.1-3.2.jar                     |Cycle Paintings               |cyclepaintings                |3.2                 
polymorph-forge-0.49.0+1.20.1.jar                 |Polymorph                     |polymorph                     |0.49.0+1.20.1       
corail_recycler-5.9.1-1.20.1.jar                  |Corail Recycler               |corail_recycler               |5.9.1               
storagedrawers-1.20.1-12.0.2.jar                  |Storage Drawers               |storagedrawers                |12.0.2              
randomvillagenames-1.20.1-3.3.jar                 |Random Village Names          |randomvillagenames            |3.3                 
oceansdelight-1.0.2-1.20.jar                      |Ocean's Delight               |oceansdelight                 |1.0.2-1.20          
appleskin-forge-mc1.20.1-2.5.1.jar                |AppleSkin                     |appleskin                     |2.5.1+mc1.20.1      
CrabbersDelight-1.20.1-1.1.2.jar                  |Crabber's Delight             |crabbersdelight               |1.1.2               
convenientcurioscontainer-1.13-forge-1.20.1.jar   |Convenient Curios Container   |convenientcurioscontainer     |1.13-forge-1.20.1   
expandability-forge-9.0.0.jar                     |ExpandAbility                 |expandability                 |9.0.0               
create_enchantment_industry-1.20.1-for-create-0.5.|Create Enchantment Industry   |create_enchantment_industry   |1.2.7.d             
healingcampfire-1.20.1-5.1.jar                    |Healing Campfire              |healingcampfire               |5.1                 
snowballsfreezemobs-1.20.1-3.1.jar                |Snowballs Freeze Mobs         |snowballsfreezemobs           |3.1                 
createaddition-1.20.1-1.1.1.jar                   |Create Crafts & Additions     |createaddition                |1.20.1-1.1.1        

Mod Version

1.2.7.d (also able to replicate with 1.2.7.c)

Forge Version

47.2.1

Syndaryl commented 1 year ago

I've replicated with a significantly stripped down modpack and superflat test world. Bug is still present in 1.2.7.e

debug.log latest.log crash-2023-10-22_07.46.15-client.txt

Syndaryl commented 1 year ago

Other testing:

When I load the world after the crash, a disenchanted book is on my output depot, but there doesn't seem to be XP anywhere in the system for it. I didn't do a good job of remembering how much XP was in my tank before putting the book donw though, so if it counts as a level 1 enchant it might just be too small.

Since the crash report was a render-fluid error for the disenchanter, I gave myself 30 levels and stood on a disenchanter with no pump attached. I successfully filled it with XP and had it rendered in the disenchanter without crashing.

I gave a diamond pickaxe Efficiency 5 and disenchanted it.

I gave myself an Efficiency 5 book and disenchanted it.

I gave a diamond pickaxe tombstone soulbound and tried to disenchant it but caused the crash again.

latest.log debug.log crash-2023-10-22_07.57.21-client.txt

When I re-entered the world the pick was on the output depot. (Disenchanted)

I set up a simple enchantment production line with a single blaze burner using an Enchantment Guide with the Tombstone Soulbound enchantment, and successfully enchanted a pick. It costs 13 mB

I also tried the Corail Tombstone enchantment "Blessing 1" - the book disenchanted, the pickaxe disenchanted, and I could enchant the sword with it. So it's not a general incompatibility with the mod, it's that specific enchantment.

Syndaryl commented 1 year ago

Thank you for your attention to this issue!