diff --git a/Changelog.txt b/Changelog.txt index 7cf558e612..4690399242 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,4 +1,5 @@ Version 2.1.219 + Fixed double drop issue with Beetroots Added 'Skills.Mining.BlastMining.Bonus_Drops.Enabled' to advanced.yml to enable/disable bonus drops from Blast Mining Version 2.1.218 diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index fcfb8096a0..d931d6ca96 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -38,6 +38,7 @@ import org.bukkit.inventory.ItemStack; import java.util.HashSet; +import java.util.Locale; public class BlockListener implements Listener { private final mcMMO plugin; @@ -56,6 +57,12 @@ public void onBlockDropItemEvent(BlockDropItemEvent event) return; } + int tileEntityTolerance = 1; + + // beetroot hotfix, potentially other plants may need this fix + if(event.getBlockState().getType() == Material.BEETROOTS) + tileEntityTolerance = 2; + //Track how many "things" are being dropped HashSet uniqueMaterials = new HashSet<>(); boolean dontRewardTE = false; //If we suspect TEs are mixed in with other things don't reward bonus drops for anything that isn't a block @@ -70,7 +77,7 @@ public void onBlockDropItemEvent(BlockDropItemEvent event) blockCount++; } - if(uniqueMaterials.size() > 1) { + if(uniqueMaterials.size() > tileEntityTolerance) { //Too many things are dropping, assume tile entities might be duped //Technically this would also prevent something like coal from being bonus dropped if you placed a TE above a coal ore when mining it but that's pretty edge case and this is a good solution for now dontRewardTE = true;