Bedrock Ores

Bedrock Ores

541k Downloads

Draconic Evolution CTD

Thiana opened this issue ยท 4 comments

commented

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
commented

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"
}
commented

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 :)

commented

95bcf41 b76f528

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.

commented

Thank you :)