diff options
| author | CraivMan <gamemaster370.carver@gmail.com> | 2022-12-04 14:51:26 -0600 | 
|---|---|---|
| committer | CraivMan <gamemaster370.carver@gmail.com> | 2022-12-04 14:51:26 -0600 | 
| commit | 6cd94e0cb19480bb638f8bebf602b100d81f0267 (patch) | |
| tree | e2eb530f96f1068990be9a5edd6548fc65614128 /src/main/java/com/MylesAndMore | |
| parent | 001b3dc43d716443a83fab6996fe01a773b333e0 (diff) | |
| download | Tumble-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.java | 19 | ||||
| -rw-r--r-- | src/main/java/com/MylesAndMore/tumble/Game.java | 18 | 
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,  | 
