diff --git a/Changelog.txt b/Changelog.txt index 7a55120e9..c0898f16a 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -7,6 +7,9 @@ Key: ! Change - Removal +Version 2.1.29 + Fixed a bug where double drops and triple drops were not activating + Version 2.1.28 Fixed a bug where Archery could not gain XP diff --git a/pom.xml b/pom.xml index bd73668a6..c34c8e55c 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.28 + 2.1.29 mcMMO https://github.com/mcMMO-Dev/mcMMO diff --git a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java index 9cf7452d1..a1aa57a67 100644 --- a/src/main/java/com/gmail/nossr50/listeners/BlockListener.java +++ b/src/main/java/com/gmail/nossr50/listeners/BlockListener.java @@ -29,10 +29,7 @@ import com.gmail.nossr50.util.sounds.SoundManager; import com.gmail.nossr50.util.sounds.SoundType; import com.gmail.nossr50.worldguard.WorldGuardManager; import com.gmail.nossr50.worldguard.WorldGuardUtils; -import org.bukkit.GameMode; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.Tag; +import org.bukkit.*; import org.bukkit.block.*; import org.bukkit.entity.EntityType; import org.bukkit.entity.Item; @@ -55,9 +52,13 @@ public class BlockListener implements Listener { this.plugin = plugin; } - @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) +/* @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockDropItemEvent(BlockDropItemEvent event) { + + Bukkit.broadcastMessage("Debug: Drop Item Event"); + + for(Item item : event.getItems()) { ItemStack is = new ItemStack(item.getItemStack()); @@ -88,7 +89,7 @@ public class BlockListener implements Listener { event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is); } } - } + }*/ /** * Monitor BlockPistonExtend events. diff --git a/src/main/java/com/gmail/nossr50/mcMMO.java b/src/main/java/com/gmail/nossr50/mcMMO.java index 365fb124d..aceebcded 100644 --- a/src/main/java/com/gmail/nossr50/mcMMO.java +++ b/src/main/java/com/gmail/nossr50/mcMMO.java @@ -114,8 +114,6 @@ public class mcMMO extends JavaPlugin { public final static String disarmedItemKey = "mcMMO: Disarmed Item"; public final static String playerDataKey = "mcMMO: Player Data"; public final static String greenThumbDataKey = "mcMMO: Green Thumb"; - public final static String doubleDropKey = "mcMMO: Double Drop"; - public final static String tripleDropKey = "mcMMO: Triple Drop"; public final static String databaseCommandKey = "mcMMO: Processing Database Command"; public final static String bredMetadataKey = "mcMMO: Bred Animal"; diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java index dd9e0cdf2..eb7b01c5b 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/Herbalism.java @@ -67,7 +67,7 @@ public class Herbalism { dropAmount++; if(herbalismManager.checkDoubleDrop(target.getState())) - BlockUtils.markBlocksForBonusDrops(target.getState(), triple); + BlockUtils.spawnBonusDrops(target.getState(), triple); } for (BlockFace blockFace : new BlockFace[] { BlockFace.UP, BlockFace.NORTH, BlockFace.SOUTH, BlockFace.EAST ,BlockFace.WEST}) @@ -110,7 +110,7 @@ public class Herbalism { dropAmount++; if(herbalismManager.checkDoubleDrop(relativeBlock.getState())) - BlockUtils.markBlocksForBonusDrops(relativeBlock.getState(), triple); + BlockUtils.spawnBonusDrops(relativeBlock.getState(), triple); } } } @@ -142,7 +142,7 @@ public class Herbalism { amount += 1; if(herbalismManager.checkDoubleDrop(relativeUpBlock.getState())) - BlockUtils.markBlocksForBonusDrops(relativeUpBlock.getState(), triple); + BlockUtils.spawnBonusDrops(relativeUpBlock.getState(), triple); } diff --git a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java index accd2ab56..f7501bc86 100644 --- a/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java +++ b/src/main/java/com/gmail/nossr50/skills/herbalism/HerbalismManager.java @@ -147,7 +147,7 @@ public class HerbalismManager extends SkillManager { if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) { if(checkDoubleDrop(blockState)) - BlockUtils.markBlocksForBonusDrops(blockState, greenTerra); + BlockUtils.spawnBonusDrops(blockState, greenTerra); } } else { @@ -165,7 +165,7 @@ public class HerbalismManager extends SkillManager { } else { /* MARK SINGLE BLOCK CROP FOR DOUBLE DROP */ if(checkDoubleDrop(blockState)) - BlockUtils.markBlocksForBonusDrops(blockState, greenTerra); + BlockUtils.spawnBonusDrops(blockState, greenTerra); } if (Permissions.greenThumbPlant(player, material)) { diff --git a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java index c9d54579c..a5dd723d9 100644 --- a/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java +++ b/src/main/java/com/gmail/nossr50/skills/mining/MiningManager.java @@ -91,7 +91,7 @@ public class MiningManager extends SkillManager { //TODO: Make this readable if (RandomChanceUtil.checkRandomChanceExecutionSuccess(getPlayer(), SubSkillType.MINING_DOUBLE_DROPS, true)) { - BlockUtils.markBlocksForBonusDrops(blockState, mcMMOPlayer.getAbilityMode(skill.getAbility())); + BlockUtils.spawnBonusDrops(blockState, mcMMOPlayer.getAbilityMode(skill.getAbility())); } } diff --git a/src/main/java/com/gmail/nossr50/util/BlockUtils.java b/src/main/java/com/gmail/nossr50/util/BlockUtils.java index 129e5c1aa..2730ce501 100644 --- a/src/main/java/com/gmail/nossr50/util/BlockUtils.java +++ b/src/main/java/com/gmail/nossr50/util/BlockUtils.java @@ -9,11 +9,13 @@ import com.gmail.nossr50.skills.repair.Repair; import com.gmail.nossr50.skills.salvage.Salvage; import com.gmail.nossr50.util.random.RandomChanceSkill; import com.gmail.nossr50.util.random.RandomChanceUtil; +import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.block.BlockState; import org.bukkit.block.data.Ageable; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; import java.util.HashSet; @@ -26,12 +28,15 @@ public final class BlockUtils { * @param blockState target blockstate * @param triple marks the block to give triple drops */ - public static void markBlocksForBonusDrops(BlockState blockState, boolean triple) + public static void spawnBonusDrops(BlockState blockState, boolean triple) { - if(triple) - blockState.setMetadata(mcMMO.tripleDropKey, mcMMO.metadataValue); - else - blockState.setMetadata(mcMMO.doubleDropKey, mcMMO.metadataValue); + for(ItemStack spawnItem : blockState.getBlock().getDrops()) + { + if(triple) + blockState.getWorld().dropItemNaturally(blockState.getLocation(), spawnItem); + + blockState.getWorld().dropItemNaturally(blockState.getLocation(), spawnItem); + } } /**