Draconic Evolution CTD
Thiana opened this issue ยท 4 comments
Attempting to harvest a bedrock draconium nether ore results in a CTD.
To replicate:
- Place nether draconium block
/bedrockores wrap
the block- Attempt to break with pickaxe.
Result Log: https://paste.ee/p/xbi5I
Versions:
- MC 1.12.1
- Forge 2467
- Bedrock Ores-MC1.12-1.2.0.29
- BrandonsCore-1.12-2.3.2.129-universal
- CodeChickenLib-1.12-3.1.2.297-universal
- Draconic-Evolution-1.12-2.3.3.261-universal
- RedstoneFlux-1.12-2.0.1.2-universal
You probably want the config.
Tellme says the blockstates are:
draconicevolution:draconium_ore: PropertyEnum{name=type, clazz=class com.brandon3055.draconicevolution.blocks.DraconiumOre$EnumType, values=[NORMAL, NETHER, END]}
Config used is:
{
"enabled": true,
"state": {
"name": "draconicevolution:draconium_ore",
"properties": {
"type": "NETHER"
}
},
"dimension": "nether",
"weight": 3,
"widthMin": 2,
"widthMax": 4,
"heightMin": 2,
"heightMax": 4,
"countMin": 2,
"countMax": 10,
"yieldMin": 10,
"yieldMax": 25,
"group": "draconium"
}
Hmm, from what I can tell this happens because the getPickBlock
implementation in DraconiumOre
does a world.getBlockState
instead of using the passed in state
parameter -- in this crash the state
arg would be the actual draconium ore block state, while the world.getBlockState
returns the wrapping bedrock ore.
@brandon3055 is there a reason for this lookup instead of using the argument? If not, would you be willing to change it? Alternatively, a world.getBlockState(pos).getActualState(world, pos)
should also fix it. Would really appreciate not having to add special cases there :)
I've added a check to avoid crashing, and try harder to get the ore now, but that still won't work for nether draconium ore. Will add a note in the issue on the DE repo.