Dropt

Dropt

3M Downloads

OreExcavation detects it as only 1 time

Xaikii opened this issue ยท 4 comments

commented

https://pastebin.com/VRGx9NzS

Title says it all, I am using OreExcavation at leaves and when breaking all at once I only get 1 single item doesn't matter how I change the values

commented

Ok, so here's what's happening.

The meta values for block states aren't always the same as meta values for the block's item.

For example, when I break an oak leaf block, it's meta value is 0, but when broken, it changes the block state of all leaves around it to signal a leaf decay check, which changes the meta value of all leaves around it to 8. This new value no longer matches.

Using Dropt's debug output shows that it matches a meta of 0 first, then tries to match a meta of 8 for all remaining leaves, which fails.

You can set a rule's debug output flag like this:

{
  "rules": [
    {
      "debug": true,
      "match": {
        ...
      },
      ...
    }
  ]
}

Also, see DEBUG.md

You can see the block state change here:

[EventHandler:onHarvestDropsEvent:69]: minecraft:leaves[check_decay=false,decayable=true,variant=oak]
[EventHandler:onHarvestDropsEvent:69]: minecraft:leaves[check_decay=true,decayable=true,variant=oak]
[EventHandler:onHarvestDropsEvent:69]: minecraft:leaves[check_decay=true,decayable=true,variant=oak]
[EventHandler:onHarvestDropsEvent:69]: minecraft:leaves[check_decay=true,decayable=true,variant=oak]
[EventHandler:onHarvestDropsEvent:69]: minecraft:leaves[check_decay=true,decayable=true,variant=oak]

If I use the following, it will only match the first block broken:

"match": {
  "blocks": {
    "blocks": [
      "minecraft:leaves:0"
    ]
  }
}

However, if I use the following, it will match both states of the block:

"match": {
  "blocks": {
    "blocks": [
      "minecraft:leaves:0,8"
    ]
  }
}

Unfortunately, there is nothing that I can do to change this behavior.

commented

To assist in determining the meta values of blocks broken, I could introduce a new command:

/dropt verbose

When this mode is active, Dropt would log the domain:path:meta value of all blocks broken to the console. Do you think this would be helpful?

The output would look like this:

minecraft:leaves:0
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
minecraft:leaves:8
...
commented

Yes this would definetly help.
Thanks

commented

Feature available in version 1.12.2-1.8.0