Skip to content

Commit

Permalink
2.1.29 - Double Drop Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
nossr50 committed Mar 29, 2019
1 parent 39b22d0 commit 74908cd
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 20 deletions.
3 changes: 3 additions & 0 deletions Changelog.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.gmail.nossr50.mcMMO</groupId>
<artifactId>mcMMO</artifactId>
<version>2.1.28</version>
<version>2.1.29</version>
<name>mcMMO</name>
<url>https://github.com/mcMMO-Dev/mcMMO</url>
<scm>
Expand Down
13 changes: 7 additions & 6 deletions src/main/java/com/gmail/nossr50/listeners/BlockListener.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,7 @@
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;
Expand All @@ -55,9 +52,13 @@ public BlockListener(final mcMMO plugin) {
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());
Expand Down Expand Up @@ -88,7 +89,7 @@ else if(event.getBlock().getState().getMetadata(mcMMO.tripleDropKey).size() > 0)
event.getBlock().getState().getWorld().dropItemNaturally(event.getBlockState().getLocation(), is);
}
}
}
}*/

/**
* Monitor BlockPistonExtend events.
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/com/gmail/nossr50/mcMMO.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private static int calculateChorusPlantDropsRecursive(Block target, HashSet<Bloc
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})
Expand Down Expand Up @@ -110,7 +110,7 @@ protected static int countAndMarkDoubleDropsMultiBlockPlant(BlockState blockStat
dropAmount++;

if(herbalismManager.checkDoubleDrop(relativeBlock.getState()))
BlockUtils.markBlocksForBonusDrops(relativeBlock.getState(), triple);
BlockUtils.spawnBonusDrops(relativeBlock.getState(), triple);
}
}
}
Expand Down Expand Up @@ -142,7 +142,7 @@ protected static int countAndMarkDoubleDropsKelp(BlockState blockState, boolean
amount += 1;

if(herbalismManager.checkDoubleDrop(relativeUpBlock.getState()))
BlockUtils.markBlocksForBonusDrops(relativeUpBlock.getState(), triple);
BlockUtils.spawnBonusDrops(relativeUpBlock.getState(), triple);

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ public void herbalismBlockCheck(BlockState blockState) {

if (Permissions.isSubSkillEnabled(player, SubSkillType.HERBALISM_DOUBLE_DROPS) && customBlock.isDoubleDropEnabled()) {
if(checkDoubleDrop(blockState))
BlockUtils.markBlocksForBonusDrops(blockState, greenTerra);
BlockUtils.spawnBonusDrops(blockState, greenTerra);
}
}
else {
Expand All @@ -165,7 +165,7 @@ public void herbalismBlockCheck(BlockState blockState) {
} else {
/* MARK SINGLE BLOCK CROP FOR DOUBLE DROP */
if(checkDoubleDrop(blockState))
BlockUtils.markBlocksForBonusDrops(blockState, greenTerra);
BlockUtils.spawnBonusDrops(blockState, greenTerra);
}

if (Permissions.greenThumbPlant(player, material)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ public void miningBlockCheck(BlockState blockState) {

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

Expand Down
15 changes: 10 additions & 5 deletions src/main/java/com/gmail/nossr50/util/BlockUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@
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;

Expand All @@ -26,12 +28,15 @@ private 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);
}
}

/**
Expand Down

0 comments on commit 74908cd

Please sign in to comment.