From 2139a8d5d30237b6066691af3f29bf1105e4298a Mon Sep 17 00:00:00 2001 From: Tyler Murphy Date: Mon, 6 Feb 2023 12:15:09 -0500 Subject: spawn patch, bounds checks, drop items, regen --- src/main/java/net/tylermurphy/hideAndSeek/game/Game.java | 4 +++- .../net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java | 2 +- .../net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) (limited to 'src/main/java/net/tylermurphy/hideAndSeek/game') diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java index e18a309..fbae413 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/Game.java @@ -186,7 +186,9 @@ public class Game { PlayerLoader.unloadPlayer(player); if(saveInventory) { ItemStack[] data = Main.getInstance().getDatabase().getInventoryData().getInventory(player.getUniqueId()); - player.getInventory().setContents(data); + try { + player.getInventory().setContents(data); + } catch (NullPointerException ignored){} } if (announceMessagesToNonPlayers) Bukkit.broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player)); else broadcastMessage(messagePrefix + message("GAME_LEAVE").addPlayer(player)); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java index 1dd6cfc..290b679 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/MovementHandler.java @@ -51,7 +51,7 @@ public class MovementHandler implements Listener { if (!Main.getInstance().getBoard().contains(event.getPlayer())) return; if (!event.getPlayer().getWorld().getName().equals(Main.getInstance().getGame().getCurrentMap().getGameSpawnName())) return; if (!event.getTo().getWorld().getName().equals(Main.getInstance().getGame().getCurrentMap().getGameSpawnName())) return; - if (event.getPlayer().hasPermission("hideandseek.leavebounds")) return; + if (event.getPlayer().hasPermission("hs.leavebounds")) return; Map map = Main.getInstance().getGame().getCurrentMap(); if (event.getTo().getBlockX() < map.getBoundsMin().getBlockX() || event.getTo().getBlockX() > map.getBoundsMax().getBlockX() || event.getTo().getBlockZ() < map.getBoundsMin().getZ() || event.getTo().getBlockZ() > map.getBoundsMax().getZ()) { event.setCancelled(true); diff --git a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java index d34cb11..64ed728 100644 --- a/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java +++ b/src/main/java/net/tylermurphy/hideAndSeek/game/listener/PlayerHandler.java @@ -13,6 +13,9 @@ import org.bukkit.event.entity.ItemSpawnEvent; import org.bukkit.event.player.PlayerDropItemEvent; import org.bukkit.inventory.ItemStack; +import static net.tylermurphy.hideAndSeek.configuration.Config.dropItems; +import static net.tylermurphy.hideAndSeek.configuration.Config.regenHealth; + public class PlayerHandler implements Listener { @EventHandler(priority = EventPriority.HIGHEST) @@ -25,6 +28,7 @@ public class PlayerHandler implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onPlayerRegainHealth(EntityRegainHealthEvent event) { + if (regenHealth) return; if (event.getRegainReason() == EntityRegainHealthEvent.RegainReason.SATIATED || event.getRegainReason() == EntityRegainHealthEvent.RegainReason.REGEN) { if (event.getEntity() instanceof Player) { if (!Main.getInstance().getBoard().contains((Player) event.getEntity())) return; @@ -35,7 +39,7 @@ public class PlayerHandler implements Listener { @EventHandler(priority = EventPriority.HIGHEST) public void onItemDrop(PlayerDropItemEvent event) { - if (Main.getInstance().getBoard().contains(event.getPlayer())) { + if (!dropItems && Main.getInstance().getBoard().contains(event.getPlayer())) { event.setCancelled(true); } } -- cgit v1.2.3-freya