[Bug]: Please add requiresCorrectToolForDrops to custom blocks
purejosh opened this issue · 1 comments
Minecraft Version
1.19.2
BYG Version
2.0.0.10
Terrablender Version
2.0.1.125
Mod Loader
Fabric
Mod Loader Version
0.14.9
Bug Severity
Major
What happened?
The following is a transcript from the dev of Emerald Tools. Essentially, many custom blocks are not registered with requiresCorrectToolForDrops, which causes some custom tools to not know how to handle them, as well as allows the block to be broken and dropped by using your hand.
.purejosh — Today at 5:51 PM
I really only tested on the Scoria Stone, the other variants I can't definitively speak for.
.purejosh — Today at 5:51 PM
I just checked the byg jar that I have installed, and those tags are in the right folder. That's so weird.
kwpugh — Today at 5:59 PM
hmmm, I think it might be because the author did not assign any mining level to the blocks
.purejosh — Today at 6:00 PM
Oh, interesting.
kwpugh — Today at 6:01 PM
can you break those blocks by hand?
.purejosh — Today at 6:02 PM
I haven't tried, let me see.
.purejosh — Today at 6:09 PM
It can break by hand, and it's slightly faster than wood.
kwpugh — Today at 6:09 PM
break stone by hand, that does not seem consistent with everything else, right?
.purejosh — Today at 6:13 PM
Not at all lol. definitely shouldn't be allowed to break stone by hand. It drops the scoria stone too, which is even worse.
kwpugh — Today at 6:26 PM
the author put a lot of the block in needs_iron_tool.json and need_diamond_tool.json. I think a bunch also need to be in the needs_wood_tool.json or needs_stone_tool.json
if a block is not added to tag, fabric will default it to mining level -1 (break by hand) for tools that check for a block's mining level before breaking it, which my hammers do.
.purejosh — Today at 6:36 PM
Gotcha! Thanks for the details, it's good to know these things now that I'm starting to mod myself.
kwpugh — Today at 7:11 PM
so, I believe the problem with scoria, soapstone, and a few others is that that are not give the
private static BlockRegistryObject<Block> createScoria(String id) {
return createBlock(() -> new Block(BlockBehaviour.Properties.of(Material.STONE, MaterialColor.TERRACOTTA_RED).sound(SoundType.STONE).strength(1.5f, 6.0f)), id);
}
..requiresCorrectToolForDrops() item setting when registered. My hammer checks that the block requires a tool to break and that it is within the mining level. The author would need to address that, I cannot.
the mods other blocks are correctly assigned and break correctly
private static BlockRegistryObject<Block> createRedRock(String id) {
return createBlock(() -> new Block(BlockBehaviour.Properties.of(Material.STONE, MaterialColor.TERRACOTTA_ORANGE).requiresCorrectToolForDrops().sound(SoundType.STONE).strength(1.5f, 6.0f)), id);
}
without the
.requiresCorrectToolForDrops()
item setting, the block can be broken by hand with drops given. I do not think that is what the author intended.
latest.log
No logs to post.
Did you isolate BYG?
I tried BYG alone