Vein Miner

Vein Miner

263k Downloads

Wildcard (`*`) will break any available nearby block when vein mining, even if it doesn't match

mapokapo opened this issue · 6 comments

commented

Currently, there is no way to mimic VeinMiner/OreExcavation functionality in which you can mine any block using any tool (eg. you can vein mine stone with a hoe, and you can vein mine glass with your hand)

There are a few things I've tried to mimic this behavior, but each had some caveats:

  • adding the "*" block type to the "hand". Caveat: "hand" quite literally means only the hand, and nothing else (will not work while holding a torch or pickaxe, for example). Also the following issue applies:
  • the "*" block type. Caveat: "*" does not mean "all adjacent blocks of the same type", it means "all adjacent blocks". This means if you mine a leaf block of a tree, it will mine the adjacent leaf blocks as well as the closest logs.
  • adding the "*" block type to the "All" category in the config file. Caveat: does not work.
  • adding every block in the game manually to the "All" category in the config file. Caveat: would theoretically work, but would need to be updated on every new MC version and is generally inconvenient.

My suggestions:

  • add another special block type similar to "*", called "adjacent" (this is just an example name, it could be named something else) - it would function similar to "*", but would mine only blocks of the same type, instead of every adjacent block.
  • Make the "All" category work with both the "*" and "adjacent" block types.

I understand that this might be an overpowered feature, but here are some reasons why I'm suggesting this:

  • extra parity with the VeinMiner/OreExcavation mods, which already allow this through their configuration files.
  • no technical downsides such as lag, because the amount of blocks that can be vein mined can be configured.
  • customization - even though it might be overpowered, having this feature as an opt-in setting in the config would give more power to the user.

I missed this feature from the VeinMiner and OreExcavation mods since I always enable them in my own playthroughs. Let me know what you think and if it's a good idea.

commented

I think my issue is that I sort of hate the concept of "categories" as it is currently in VeinMiner. I don't at all like the "All" category and I'm unhappy with how the "Hand" category works specifically for this reason:

"hand" quite literally means only the hand, and nothing else (will not work while holding a torch or pickaxe, for example)

Those specific categories are something I definitely want to revisit for the upcoming update. It not working with a pickaxe makes sense because it should use the pickaxe category, but what if there isn't a pickaxe category because someone decided to configure it out? A pickaxe, at least to me, should not be considered a "hand" category even if there are no other matching categories, but maybe "hand" is just a misnomer. I'm unsure how to tackle this.

All that aside, I think I'm confused with the difference between * and what you're proposing, adjacent because

"*" does not mean "all adjacent blocks of the same type", it means "all adjacent blocks". This means if you mine a leaf block of a tree, it will mine the adjacent leaf blocks as well as the closest logs

isn't how * works at all. It actually works the way that you expect it to. VeinMiner will only ever consider the first block that was mined. The only situation where it will mine unlike blocks is if they're aliased under the Aliases configuration (which is done by default for logs and wood because they're practically identical blocks just with different textures). Could you maybe clarify the difference between * and adjacent because the way you're describing OreExcavator's adjacent feature is exactly what VeinMiner's * does.

commented

Those specific categories are something I definitely want to revisit for the upcoming update.

I think the tool-based categories system are good for ensuring a more vanilla experience, but I see what you mean. Maybe there could be 2 override options in the config, one for "you can vein mine all blocks" and another one for "you can vein mine using any item? The combination of these two would allow you to vein mine any block using any item (including an empty hand).

Could you maybe clarify the difference between * and adjacent because the way you're describing OreExcavator's adjacent feature is exactly what VeinMiner's * does.

It might be a problem with my config, but for me * just tends to mine everything. I added a video for reference (sorry for the choppiness, it's due to my recording software)

out5.mp4
commented

That's very strange. I wonder if that's just a bug in VeinMiner. I'll have to verify when I get home because that's certainly not how it's supposed to work. At a quick glance I'm not certain that's VeinMiner's fault because the client is only outlining the blocks I would expect it to mine but the server seems to disagree. Do you have any other plugins that might cause that sort of behaviour as well?

EDIT: Yeah, this has to be another plugin causing this issue. The VeinMiner client sends a request to the server to calculate which blocks should be broken and then those positions are sent back to the client to render an outline. The blocks that are being highlighted are the only ones that will break according to the server so it's clearly correctly calculating which blocks to break. What plugins do you have installed?

commented

The only culprits I can think of are CoreProtect and WorldGuard/WorldEdit, since they are the only plugins I have other than VeinMiner that change the way you interact with blocks. Other reasons might be ProtocolLib (does not officially support 1.20 but is reported to work).

Full plugins list:

commented

Nothing immediately jumps out to me. I'll revisit this next week when I have my setup available. I'm still away from home and can't test but will see if maybe it's something I can replicate. This is definitely not expected behaviour. Thank you for the detailed list of plugins!

commented

I've finally gotten an opportunity to test this and I can confirm in fact that this is a bug not with the hand category, but the wildcard block list entry (*). It just treats all blocks as matching, including air, and so it will mine all around it. I'll have to figure something out but I'm going to rename this issue accordingly.