From c5c8f08f422a32e7a9b698ae4968060f51f0d359 Mon Sep 17 00:00:00 2001 From: Narimm Date: Sun, 16 Jul 2017 17:29:51 +1000 Subject: [PATCH] Bugfixes - fix some contract violations as well as comparisons that would always fail. --- src/nl/Steffion/BlockHunt/ArenaHandler.java | 9 +++++---- src/nl/Steffion/BlockHunt/BlockHunt.java | 2 +- src/nl/Steffion/BlockHunt/Commands/CMDcreate.java | 1 - .../BlockHunt/Listeners/OnPlayerInteractEvent.java | 2 +- src/nl/Steffion/BlockHunt/Managers/ConfigM.java | 2 +- src/nl/Steffion/BlockHunt/PlayerArenaData.java | 2 +- src/nl/Steffion/BlockHunt/Serializables/M.java | 2 +- src/nl/Steffion/BlockHunt/SignsHandler.java | 11 ++++++----- 8 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/nl/Steffion/BlockHunt/ArenaHandler.java b/src/nl/Steffion/BlockHunt/ArenaHandler.java index 49f7b26..191a688 100644 --- a/src/nl/Steffion/BlockHunt/ArenaHandler.java +++ b/src/nl/Steffion/BlockHunt/ArenaHandler.java @@ -17,6 +17,7 @@ import org.bukkit.Bukkit; import org.bukkit.GameMode; import org.bukkit.Material; import org.bukkit.Sound; +import org.bukkit.attribute.Attribute; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; @@ -89,7 +90,7 @@ public class ArenaHandler { return; } - LocationSerializable zero = new LocationSerializable(Bukkit.getWorld(player.getWorld().getName().toString()), 0, 0, 0, 0, 0); + LocationSerializable zero = new LocationSerializable(Bukkit.getWorld(player.getWorld().getName()), 0, 0, 0, 0, 0); if (arena.lobbyWarp != null && arena.hidersWarp != null && arena.seekersWarp != null && arena.spawnWarp != null) { if (!arena.lobbyWarp.equals(zero) && !arena.hidersWarp.equals(zero) && !arena.seekersWarp.equals(zero) && !arena.spawnWarp.equals(zero)) { if (arena.gameState == ArenaState.WAITING || arena.gameState == ArenaState.STARTING) { @@ -105,7 +106,7 @@ public class ArenaHandler { Bukkit.getPluginManager().callEvent(event); PlayerArenaData pad = new PlayerArenaData(player.getLocation(), player.getGameMode(), player.getInventory().getContents(), player - .getInventory().getArmorContents(), player.getExp(), player.getLevel(), player.getMaxHealth(), player.getHealth(), player.getFoodLevel(), + .getInventory().getArmorContents(), player.getExp(), player.getLevel(), player.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue(), player.getHealth(), player.getFoodLevel(), player.getActivePotionEffects(), player.getAllowFlight()); W.pData.put(player, pad); @@ -117,7 +118,7 @@ public class ArenaHandler { } player.setFoodLevel(20); player.setHealth(20); - player.setMaxHealth(20); + player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(20); player.setLevel(arena.timer); player.setExp(0); player.getInventory().clear(); @@ -299,7 +300,7 @@ public class ArenaHandler { player.updateInventory(); player.setExp(pad.pEXP); player.setLevel(pad.pEXPL); - player.setMaxHealth(pad.pMaxHealth); + player.getAttribute(Attribute.GENERIC_MAX_HEALTH).setBaseValue(pad.pMaxHealth); player.setHealth(pad.pHealth); player.setFoodLevel(pad.pFood); player.addPotionEffects(pad.pPotionEffects); diff --git a/src/nl/Steffion/BlockHunt/BlockHunt.java b/src/nl/Steffion/BlockHunt/BlockHunt.java index d2a72cb..7fb8513 100644 --- a/src/nl/Steffion/BlockHunt/BlockHunt.java +++ b/src/nl/Steffion/BlockHunt/BlockHunt.java @@ -333,7 +333,7 @@ public class BlockHunt extends JavaPlugin implements Listener { // blockAnnouncer code. if ((arena.blockAnnouncerTime > 0) && (arena.timer == arena.blockAnnouncerTime)) { - ArrayList remainingBlocks = new ArrayList(); + ArrayList remainingBlocks = new ArrayList<>(); for (Player arenaPlayer : arena.playersInArena) { if (!arena.seekers.contains(arenaPlayer)) { String block = arenaPlayer.getInventory().getItem(8).getType().name(); diff --git a/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java b/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java index 4fff8c8..0a8c0ba 100644 --- a/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java +++ b/src/nl/Steffion/BlockHunt/Commands/CMDcreate.java @@ -13,7 +13,6 @@ import nl.Steffion.BlockHunt.Managers.MessageM; import org.bukkit.Bukkit; import org.bukkit.command.Command; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; public class CMDcreate extends DefaultCMD { diff --git a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java index 85a6bc4..1cb699c 100644 --- a/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java +++ b/src/nl/Steffion/BlockHunt/Listeners/OnPlayerInteractEvent.java @@ -101,7 +101,7 @@ public class OnPlayerInteractEvent implements Listener { if (event.getClickedBlock().getType().equals(Material.ENCHANTMENT_TABLE) || event.getClickedBlock().getType().equals(Material.WORKBENCH) || event.getClickedBlock().getType().equals(Material.FURNACE) || event.getClickedBlock().getType().equals(Material.CHEST) || event.getClickedBlock().getType().equals(Material.ANVIL) || event.getClickedBlock().getType().equals(Material.ENDER_CHEST) - || event.getClickedBlock().getType().equals(Material.JUKEBOX) || block.getFace(block).equals(Material.FIRE)) { + || event.getClickedBlock().getType().equals(Material.JUKEBOX) || block.getRelative(event.getBlockFace()).getType().equals(Material.FIRE)) { for (Arena arena : W.arenaList) { if (arena.playersInArena.contains(player)) { event.setCancelled(true); diff --git a/src/nl/Steffion/BlockHunt/Managers/ConfigM.java b/src/nl/Steffion/BlockHunt/Managers/ConfigM.java index 9a25a22..eeb723f 100644 --- a/src/nl/Steffion/BlockHunt/Managers/ConfigM.java +++ b/src/nl/Steffion/BlockHunt/Managers/ConfigM.java @@ -97,7 +97,7 @@ public class ConfigM { try { this.file.getParentFile().mkdirs(); this.file.createNewFile(); - if (this.fileLocation == BlockHunt.pdfFile.getName()) { + if (this.fileLocation.equals(BlockHunt.pdfFile.getName())) { W.newFiles.add(this.fileName); } else { W.newFiles.add(this.fileLocation + this.fileName); diff --git a/src/nl/Steffion/BlockHunt/PlayerArenaData.java b/src/nl/Steffion/BlockHunt/PlayerArenaData.java index f0baec2..2599efa 100644 --- a/src/nl/Steffion/BlockHunt/PlayerArenaData.java +++ b/src/nl/Steffion/BlockHunt/PlayerArenaData.java @@ -13,7 +13,7 @@ public class PlayerArenaData { public ItemStack[] pArmor; public Float pEXP; public Integer pEXPL; - public Double pMaxHealth; + public Double pMaxHealth; public Double pHealth; public Integer pFood; public Collection pPotionEffects; diff --git a/src/nl/Steffion/BlockHunt/Serializables/M.java b/src/nl/Steffion/BlockHunt/Serializables/M.java index f119413..8651d0d 100644 --- a/src/nl/Steffion/BlockHunt/Serializables/M.java +++ b/src/nl/Steffion/BlockHunt/Serializables/M.java @@ -4,6 +4,6 @@ import java.util.Map; public class M { public static Object g(Map map, String key, Object def) { - return (map.containsKey(key) ? map.get(key) : def); + return map.getOrDefault(key, def); } } \ No newline at end of file diff --git a/src/nl/Steffion/BlockHunt/SignsHandler.java b/src/nl/Steffion/BlockHunt/SignsHandler.java index 6ee42aa..02a7796 100644 --- a/src/nl/Steffion/BlockHunt/SignsHandler.java +++ b/src/nl/Steffion/BlockHunt/SignsHandler.java @@ -96,7 +96,8 @@ public class SignsHandler { Sign signblock = (Sign) loc.getBlock().getState(); String[] lines = signblock.getLines(); if (sign.contains("leave")) { - ArrayList signLines = (ArrayList) W.config.getFile().getList(ConfigC.sign_LEAVE.location); + + ArrayList signLines = (ArrayList) W.config.getFile().getStringList(ConfigC.sign_LEAVE.location); int linecount = 0; for (String line : signLines) { if (linecount <= 3) { @@ -107,7 +108,7 @@ public class SignsHandler { } signblock.update(); } else if (sign.contains("shop")) { - ArrayList signLines = (ArrayList) W.config.getFile().getList(ConfigC.sign_SHOP.location); + ArrayList signLines = (ArrayList) W.config.getFile().getStringList(ConfigC.sign_SHOP.location); int linecount = 0; for (String line : signLines) { if (linecount <= 3) { @@ -121,7 +122,7 @@ public class SignsHandler { for (Arena arena : W.arenaList) { if (lines[1].endsWith(arena.arenaName)) { if (arena.gameState.equals(ArenaState.WAITING)) { - ArrayList signLines = (ArrayList) W.config.getFile().getList(ConfigC.sign_WAITING.location); + ArrayList signLines = (ArrayList) W.config.getFile().getStringList(ConfigC.sign_WAITING.location); int linecount = 0; if (signLines != null) { for (String line : signLines) { @@ -137,7 +138,7 @@ public class SignsHandler { } signblock.update(); } else if (arena.gameState.equals(ArenaState.STARTING)) { - ArrayList signLines = (ArrayList) W.config.getFile().getList(ConfigC.sign_STARTING.location); + ArrayList signLines = (ArrayList) W.config.getFile().getStringList(ConfigC.sign_STARTING.location); int linecount = 0; if (signLines != null) { for (String line : signLines) { @@ -153,7 +154,7 @@ public class SignsHandler { } signblock.update(); } else if (arena.gameState.equals(ArenaState.INGAME)) { - ArrayList signLines = (ArrayList) W.config.getFile().getList(ConfigC.sign_INGAME.location); + ArrayList signLines = (ArrayList) W.config.getFile().getStringList(ConfigC.sign_INGAME.location); int linecount = 0; if (signLines != null) { for (String line : signLines) {