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);
+ }
}
/**