diff --git a/pom.xml b/pom.xml
index 9b7614b..48fd4a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.retrohaven
pickup
- 1.0.1
+ 1.0.2
8
diff --git a/src/main/java/org/retrohaven/listeners/PickupBlocksListener.java b/src/main/java/org/retrohaven/listeners/PickupBlocksListener.java
index 14ca6a9..08ec322 100644
--- a/src/main/java/org/retrohaven/listeners/PickupBlocksListener.java
+++ b/src/main/java/org/retrohaven/listeners/PickupBlocksListener.java
@@ -19,6 +19,7 @@ public void onBlockBreak(BlockBreakEvent event) {
// Check if the player has the right tool and permission for each block type
if (block.getType() == Material.GRASS) {
if (player.getItemInHand().getType() == Material.GOLD_SPADE && player.hasPermission("pickup.use")) {
+ useTool(player); // Decrease tool durability
event.setCancelled(true); // Prevent normal block breaking
block.setType(Material.AIR); // Set block to air
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.GRASS, 1));
@@ -27,6 +28,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.GLASS) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.GLASS, 1));
@@ -35,6 +37,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.GLOWSTONE) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.GLOWSTONE, 1));
@@ -43,6 +46,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.ICE) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.ICE, 1));
@@ -51,6 +55,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.SNOW_BLOCK) {
if (player.getItemInHand().getType() == Material.GOLD_SPADE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.SNOW_BLOCK, 1));
@@ -59,6 +64,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.SNOW) {
if (player.getItemInHand().getType() == Material.GOLD_SPADE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.SNOW, 1));
@@ -67,6 +73,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.COBBLESTONE_STAIRS) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.COBBLESTONE_STAIRS, 1));
@@ -75,6 +82,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.WOOD_STAIRS) {
if ((player.getItemInHand().getType() == Material.GOLD_SWORD || player.getItemInHand().getType() == Material.GOLD_AXE) && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.WOOD_STAIRS, 1));
@@ -83,6 +91,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.CLAY) {
if (player.getItemInHand().getType() == Material.GOLD_SPADE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.CLAY, 1));
@@ -91,10 +100,18 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.CAKE_BLOCK) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE && player.hasPermission("pickup.use")) {
+ useTool(player);
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.CAKE_BLOCK, 1));
}
}
}
+
+ public void useTool(Player player) {
+ if(player.getItemInHand().getDurability() > 31) {
+ player.setItemInHand(null);
+ }
+ player.getItemInHand().setDurability((short)(player.getItemInHand().getDurability() + 1));
+ }
}
diff --git a/src/main/java/org/retrohaven/listeners/SpawnerBreakListener.java b/src/main/java/org/retrohaven/listeners/SpawnerBreakListener.java
index 432188b..71928c0 100644
--- a/src/main/java/org/retrohaven/listeners/SpawnerBreakListener.java
+++ b/src/main/java/org/retrohaven/listeners/SpawnerBreakListener.java
@@ -6,6 +6,7 @@
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockBreakEvent;
+import org.bukkit.event.player.PlayerItemDamageEvent;
import org.bukkit.inventory.ItemStack;
public class SpawnerBreakListener implements Listener {
@@ -18,6 +19,7 @@ public void onBlockBreak(BlockBreakEvent event) {
if (block.getType() == Material.MOB_SPAWNER) {
if (player.getItemInHand().getType() == Material.GOLD_PICKAXE) {
if (player.hasPermission("pickup.use")) {
+ useTool(player); // Decrease tool durability
event.setCancelled(true);
block.setType(Material.AIR);
block.getWorld().dropItemNaturally(block.getLocation(), new ItemStack(Material.MOB_SPAWNER, 1));
@@ -25,4 +27,11 @@ public void onBlockBreak(BlockBreakEvent event) {
}
}
}
+
+ public void useTool(Player player) {
+ if(player.getItemInHand().getDurability() > 31) {
+ player.setItemInHand(null);
+ }
+ player.getItemInHand().setDurability((short)(player.getItemInHand().getDurability() + 1));
+ }
}