aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorCraivMan <gamemaster370.carver@gmail.com>2022-12-04 14:51:26 -0600
committerCraivMan <gamemaster370.carver@gmail.com>2022-12-04 14:51:26 -0600
commit6cd94e0cb19480bb638f8bebf602b100d81f0267 (patch)
treee2eb530f96f1068990be9a5edd6548fc65614128 /src/main/java
parent001b3dc43d716443a83fab6996fe01a773b333e0 (diff)
downloadTumble-6cd94e0cb19480bb638f8bebf602b100d81f0267.tar.gz
Tumble-6cd94e0cb19480bb638f8bebf602b100d81f0267.tar.bz2
Tumble-6cd94e0cb19480bb638f8bebf602b100d81f0267.zip
Prevented shovels from losing durability
Diffstat (limited to '')
-rw-r--r--src/main/java/com/MylesAndMore/tumble/EventListener.java19
-rw-r--r--src/main/java/com/MylesAndMore/tumble/Game.java18
2 files changed, 36 insertions, 1 deletions
diff --git a/src/main/java/com/MylesAndMore/tumble/EventListener.java b/src/main/java/com/MylesAndMore/tumble/EventListener.java
index 05f82fe..3f28e89 100644
--- a/src/main/java/com/MylesAndMore/tumble/EventListener.java
+++ b/src/main/java/com/MylesAndMore/tumble/EventListener.java
@@ -3,10 +3,14 @@ package com.MylesAndMore.tumble;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
+import org.bukkit.event.block.BlockBreakEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
+import org.bukkit.event.player.PlayerItemDamageEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
+import java.util.Objects;
+
public class EventListener implements Listener{
@EventHandler
public void PlayerJoinEvent(PlayerJoinEvent event) {
@@ -47,4 +51,19 @@ public class EventListener implements Listener{
}
}
}
+
+ @EventHandler
+ public void ItemDamageEvent(PlayerItemDamageEvent event) {
+ // On a BlockBreakEvent, check to make sure there is a defined gameWorld
+ if (TumbleManager.getGameWorld() != null) {
+ // Then check to see if the block was broken in the gameWorld,
+ if (event.getPlayer().getWorld() == Bukkit.getWorld(TumbleManager.getGameWorld())) {
+ // If it was in the gameWorld, pass this event to the Game
+ Game.getGame().itemDamage(event);
+ }
+ }
+ }
}
+
+
+
diff --git a/src/main/java/com/MylesAndMore/tumble/Game.java b/src/main/java/com/MylesAndMore/tumble/Game.java
index 1326bd5..7a6512d 100644
--- a/src/main/java/com/MylesAndMore/tumble/Game.java
+++ b/src/main/java/com/MylesAndMore/tumble/Game.java
@@ -3,7 +3,11 @@ package com.MylesAndMore.tumble;
import com.MylesAndMore.tumble.api.Generator;
import org.bukkit.*;
import org.bukkit.entity.Player;
+import org.bukkit.event.Event;
+import org.bukkit.event.EventHandler;
+import org.bukkit.event.player.PlayerItemDamageEvent;
import org.bukkit.inventory.ItemStack;
+import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.util.*;
@@ -29,7 +33,7 @@ public class Game {
// Define local game vars
// The gameType keeps the current game type (shocker)
- private String gameType;
+ private static String gameType;
// The gameState keeps the current state of the game (I'm so creative, I know)
private String gameState;
@@ -61,6 +65,8 @@ public class Game {
giveItems(new ItemStack(Material.DIAMOND_SHOVEL));
// Send players to the game
sendPlayers();
+
+
// Keep in mind that after this runs, this command will complete and return true
}
else {
@@ -118,6 +124,7 @@ public class Game {
Generator.generateLayer(layer, 4, 1, Material.PODZOL);
layer.setY(layer.getY() + 2);
Generator.generateLayer(layer, 4, 2, Material.TALL_GRASS);
+ roundType = "shovels";
}
else if (Objects.equals(gameType, "snowballs")) {
layer.setY(layer.getY() - 1);
@@ -128,6 +135,7 @@ public class Game {
Generator.generateLayer(layer, 4, 1, Material.AIR);
layer.setY(layer.getY() - 1);
Generator.generateLayer(layer, 4, 1, Material.LIME_GLAZED_TERRACOTTA);
+ roundType = "snowballs";
}
else if (Objects.equals(gameType, "mixed")) {
if (Random.nextInt(2) == 0) {
@@ -176,6 +184,14 @@ public class Game {
}
}
+ public void itemDamage(PlayerItemDamageEvent event) {
+ // If the game type is shovels,
+ if (Objects.equals(roundType, "shovels")) {
+ // Cancel the event
+ event.setCancelled(true);
+ }
+ }
+
public void playerDeath(@NotNull Player player) {
player.setGameMode(GameMode.SPECTATOR);
// If there are more than 2 players in the game,