diff --git a/pom.xml b/pom.xml index 303348a..06b1b43 100644 --- a/pom.xml +++ b/pom.xml @@ -100,7 +100,7 @@ org.bukkit bukkit - 1.11-R0.1-SNAPSHOT + 1.13-R0.1-SNAPSHOT provided diff --git a/src/main/java/com/garbagemule/MobArena/ArenaClass.java b/src/main/java/com/garbagemule/MobArena/ArenaClass.java index 9166741..4049f03 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaClass.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaClass.java @@ -220,12 +220,12 @@ public class ArenaClass * Used by isWeapon() to determine if an ItemStack is a weapon type. */ private static EnumSet weaponTypes = EnumSet.of( - WOOD_SWORD, GOLD_SWORD, STONE_SWORD, IRON_SWORD, DIAMOND_SWORD, - WOOD_AXE, GOLD_AXE, STONE_AXE, IRON_AXE, DIAMOND_AXE, - WOOD_PICKAXE, GOLD_PICKAXE, STONE_PICKAXE, IRON_PICKAXE, DIAMOND_PICKAXE, - WOOD_SPADE, GOLD_SPADE, STONE_SPADE, IRON_SPADE, DIAMOND_SPADE, - WOOD_HOE, GOLD_HOE, STONE_HOE, IRON_HOE, DIAMOND_HOE, - BOW, FISHING_ROD, FLINT_AND_STEEL, SHEARS, CARROT_STICK, SHIELD + WOODEN_SWORD, GOLDEN_SWORD, STONE_SWORD, IRON_SWORD, DIAMOND_SWORD, + WOODEN_AXE, GOLDEN_AXE, STONE_AXE, IRON_AXE, DIAMOND_AXE, + WOODEN_PICKAXE, GOLDEN_PICKAXE, STONE_PICKAXE, IRON_PICKAXE, DIAMOND_PICKAXE, + WOODEN_SHOVEL, GOLDEN_SHOVEL, STONE_SHOVEL, IRON_SHOVEL, DIAMOND_SHOVEL, + WOODEN_HOE, GOLDEN_HOE, STONE_HOE, IRON_HOE, DIAMOND_HOE, + BOW, FISHING_ROD, FLINT_AND_STEEL, SHEARS, CARROT_ON_A_STICK, SHIELD ); /** @@ -258,28 +258,28 @@ public class ArenaClass case CHAINMAIL_HELMET: case IRON_HELMET: case DIAMOND_HELMET: - case GOLD_HELMET: + case GOLDEN_HELMET: return HELMET; case LEATHER_CHESTPLATE: case CHAINMAIL_CHESTPLATE: case IRON_CHESTPLATE: case DIAMOND_CHESTPLATE: - case GOLD_CHESTPLATE: + case GOLDEN_CHESTPLATE: return CHESTPLATE; case LEATHER_LEGGINGS: case CHAINMAIL_LEGGINGS: case IRON_LEGGINGS: case DIAMOND_LEGGINGS: - case GOLD_LEGGINGS: + case GOLDEN_LEGGINGS: return LEGGINGS; case LEATHER_BOOTS: case CHAINMAIL_BOOTS: case IRON_BOOTS: case DIAMOND_BOOTS: - case GOLD_BOOTS: + case GOLDEN_BOOTS: return BOOTS; default: diff --git a/src/main/java/com/garbagemule/MobArena/ArenaImpl.java b/src/main/java/com/garbagemule/MobArena/ArenaImpl.java index 332495b..856cdd3 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaImpl.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaImpl.java @@ -989,9 +989,9 @@ public class ArenaImpl implements Arena private Material bardingFromAmount(int amount) { switch ((amount >> 3) % 4) { - case 1: return Material.IRON_BARDING; - case 2: return Material.GOLD_BARDING; - case 3: return Material.DIAMOND_BARDING; + case 1: return Material.IRON_HORSE_ARMOR; + case 2: return Material.GOLDEN_HORSE_ARMOR; + case 3: return Material.DIAMOND_HORSE_ARMOR; default: return null; } } diff --git a/src/main/java/com/garbagemule/MobArena/ArenaListener.java b/src/main/java/com/garbagemule/MobArena/ArenaListener.java index f733aee..3f2f009 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaListener.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaListener.java @@ -307,7 +307,7 @@ public class ArenaListener // Otherwise, block was placed during a session. arena.addBlock(b); - if (b.getType() == Material.WOODEN_DOOR || b.getType() == Material.IRON_DOOR_BLOCK) { + if (b.getType().name().endsWith("_DOOR")) { // For doors, add the block just above (so we get both halves) arena.addBlock(b.getRelative(0, 1, 0)); } @@ -393,7 +393,6 @@ public class ArenaListener private boolean isWater(Block block) { switch (block.getType()) { case WATER: - case STATIONARY_WATER: return true; default: return false; @@ -534,7 +533,7 @@ public class ArenaListener // Cakes and liquids should just get removed. If player-placed block, drop as item. Material mat = state.getType(); - if (mat == Material.CAKE_BLOCK || mat == Material.WATER || mat == Material.LAVA) + if (mat == Material.CAKE || mat == Material.WATER || mat == Material.LAVA) arena.removeBlock(b); else if (arena.removeBlock(b)) arena.getWorld().dropItemNaturally(b.getLocation(), new ItemStack(state.getType(), 1)); @@ -852,19 +851,19 @@ public class ArenaListener private static final EnumSet REPAIRABLE_TYPES = EnumSet.of( // Tools and swords - Material.GOLD_AXE, Material.GOLD_HOE, Material.GOLD_PICKAXE, Material.GOLD_SPADE, Material.GOLD_SWORD, - Material.WOOD_AXE, Material.WOOD_HOE, Material.WOOD_PICKAXE, Material.WOOD_SPADE, Material.WOOD_SWORD, - Material.STONE_AXE, Material.STONE_HOE, Material.STONE_PICKAXE, Material.STONE_SPADE, Material.STONE_SWORD, - Material.IRON_AXE, Material.IRON_HOE, Material.IRON_PICKAXE, Material.IRON_SPADE, Material.IRON_SWORD, - Material.DIAMOND_AXE, Material.DIAMOND_HOE, Material.DIAMOND_PICKAXE, Material.DIAMOND_SPADE, Material.DIAMOND_SWORD, + Material.GOLDEN_AXE, Material.GOLDEN_HOE, Material.GOLDEN_PICKAXE, Material.GOLDEN_SHOVEL, Material.GOLDEN_SWORD, + Material.WOODEN_AXE, Material.WOODEN_HOE, Material.WOODEN_PICKAXE, Material.WOODEN_SHOVEL, Material.WOODEN_SWORD, + Material.STONE_AXE, Material.STONE_HOE, Material.STONE_PICKAXE, Material.STONE_SHOVEL, Material.STONE_SWORD, + Material.IRON_AXE, Material.IRON_HOE, Material.IRON_PICKAXE, Material.IRON_SHOVEL, Material.IRON_SWORD, + Material.DIAMOND_AXE, Material.DIAMOND_HOE, Material.DIAMOND_PICKAXE, Material.DIAMOND_SHOVEL, Material.DIAMOND_SWORD, // Armor Material.LEATHER_HELMET, Material.LEATHER_CHESTPLATE, Material.LEATHER_LEGGINGS, Material.LEATHER_BOOTS, - Material.GOLD_HELMET, Material.GOLD_CHESTPLATE, Material.GOLD_LEGGINGS, Material.GOLD_BOOTS, + Material.GOLDEN_HELMET, Material.GOLDEN_CHESTPLATE, Material.GOLDEN_LEGGINGS, Material.GOLDEN_BOOTS, Material.CHAINMAIL_HELMET, Material.CHAINMAIL_CHESTPLATE, Material.CHAINMAIL_LEGGINGS, Material.CHAINMAIL_BOOTS, Material.IRON_HELMET, Material.IRON_CHESTPLATE, Material.IRON_LEGGINGS, Material.IRON_BOOTS, Material.DIAMOND_HELMET, Material.DIAMOND_CHESTPLATE, Material.DIAMOND_LEGGINGS, Material.DIAMOND_BOOTS, // Misc - Material.BOW, Material.FLINT_AND_STEEL, Material.FISHING_ROD, Material.SHEARS, Material.CARROT_STICK, Material.SHIELD + Material.BOW, Material.FLINT_AND_STEEL, Material.FISHING_ROD, Material.SHEARS, Material.CARROT_ON_A_STICK, Material.SHIELD ); private void repairWeapon(Player p) { diff --git a/src/main/java/com/garbagemule/MobArena/ArenaMasterImpl.java b/src/main/java/com/garbagemule/MobArena/ArenaMasterImpl.java index a0daa8c..93e5600 100644 --- a/src/main/java/com/garbagemule/MobArena/ArenaMasterImpl.java +++ b/src/main/java/com/garbagemule/MobArena/ArenaMasterImpl.java @@ -57,7 +57,7 @@ public class ArenaMasterImpl implements ArenaMaster this.classes = new HashMap<>(); this.allowedCommands = new HashSet<>(); - this.spawnsPets = new SpawnsPets(Material.BONE, Material.RAW_FISH); + this.spawnsPets = new SpawnsPets(Material.BONE, Material.SALMON); this.joinInterruptTimer = new JoinInterruptTimer(); } diff --git a/src/main/java/com/garbagemule/MobArena/MAUtils.java b/src/main/java/com/garbagemule/MobArena/MAUtils.java index 46d20b8..18f0484 100644 --- a/src/main/java/com/garbagemule/MobArena/MAUtils.java +++ b/src/main/java/com/garbagemule/MobArena/MAUtils.java @@ -10,7 +10,9 @@ import com.garbagemule.MobArena.util.TextUtils; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.World; +import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; +import org.bukkit.block.data.Rotatable; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Entity; import org.bukkit.entity.Ocelot; @@ -359,9 +361,11 @@ public class MAUtils // Place the hippie signs //Iterator iterator = am.getClasses().iterator(); Iterator iterator = am.getClasses().keySet().iterator(); + Rotatable signData = (Rotatable) Material.SIGN.createBlockData(); + signData.setRotation(BlockFace.NORTH); for (int i = lx1+2; i <= lx2-2; i++) // Signs { - world.getBlockAt(i,ly1+1,lz2-1).setTypeIdAndData(63, (byte)0x8, false); + world.getBlockAt(i,ly1+1,lz2-1).setBlockData(signData); Sign sign = (Sign) world.getBlockAt(i,ly1+1,lz2-1).getState(); sign.setLine(0, TextUtils.camelCase(iterator.next())); sign.update(); diff --git a/src/main/java/com/garbagemule/MobArena/ServerVersionCheck.java b/src/main/java/com/garbagemule/MobArena/ServerVersionCheck.java index bdde3d9..4595616 100644 --- a/src/main/java/com/garbagemule/MobArena/ServerVersionCheck.java +++ b/src/main/java/com/garbagemule/MobArena/ServerVersionCheck.java @@ -7,8 +7,8 @@ import java.util.StringJoiner; class ServerVersionCheck { - private static final String[] EXACTS = {"1.11", "1.12"}; - private static final String[] PREFIXES = {"1.11.", "1.12."}; + private static final String[] EXACTS = {"1.13"}; + private static final String[] PREFIXES = {"1.13."}; static void check(Server server) { String version = getMinecraftVersion(server); diff --git a/src/main/java/com/garbagemule/MobArena/commands/setup/SetupCommand.java b/src/main/java/com/garbagemule/MobArena/commands/setup/SetupCommand.java index c06873a..706128c 100644 --- a/src/main/java/com/garbagemule/MobArena/commands/setup/SetupCommand.java +++ b/src/main/java/com/garbagemule/MobArena/commands/setup/SetupCommand.java @@ -161,31 +161,31 @@ public class SetupCommand implements Command, Listener { private ItemStack[] getToolbox() { // Arena region tool ItemStack areg = makeTool( - Material.GOLD_AXE, AREG_NAME, + Material.GOLDEN_AXE, AREG_NAME, color("Set &ep1"), color("Set &ep2") ); // Warps tool ItemStack warps = makeTool( - Material.GOLD_HOE, WARPS_NAME, + Material.GOLDEN_HOE, WARPS_NAME, color("&eSet &rselected warp"), color("&eCycle &rbetween warps") ); // Spawns tool ItemStack spawns = makeTool( - Material.GOLD_SWORD, SPAWNS_NAME, + Material.GOLDEN_SWORD, SPAWNS_NAME, color("&eAdd &rspawnpoint on block"), color("&eRemove &rspawnpoint on block") ); // Chests tool ItemStack chests = makeTool( - Material.GOLD_SPADE, CHESTS_NAME, + Material.GOLDEN_SHOVEL, CHESTS_NAME, color("&eAdd &rcontainer"), color("&eRemove &rcontainer") ); // Lobby region tool ItemStack lreg = makeTool( - Material.GOLD_AXE, LREG_NAME, + Material.GOLDEN_AXE, LREG_NAME, color("Set &el1"), color("Set &el2") ); @@ -640,7 +640,7 @@ public class SetupCommand implements Command, Listener { toShow.equals("spec") ? region.getSpecWarp() : toShow.equals("spectator") ? region.getSpecWarp() : toShow.equals("exit") ? region.getExitWarp() : null; - region.showBlock(player, loc, 35, (byte) 14); + region.showBlock(player, loc); return this; } diff --git a/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java b/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java index 9347df8..ffb9939 100644 --- a/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java +++ b/src/main/java/com/garbagemule/MobArena/region/ArenaRegion.java @@ -11,9 +11,11 @@ import com.garbagemule.MobArena.util.Enums; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockState; +import org.bukkit.block.data.BlockData; import org.bukkit.command.CommandSender; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; @@ -650,18 +652,19 @@ public class ArenaRegion showBlocks(p, map.values()); } - public void showBlock(final Player p, final Location loc, final int id, final byte data) { + public void showBlock(final Player p, final Location loc) { + BlockData wool = Material.RED_WOOL.createBlockData(); arena.scheduleTask(new Runnable() { @Override public void run() { - p.sendBlockChange(loc, id, data); + p.sendBlockChange(loc, wool); arena.scheduleTask(new Runnable() { @Override public void run() { if (!p.isOnline()) return; Block b = loc.getBlock(); - p.sendBlockChange(loc, b.getTypeId(), b.getData()); + p.sendBlockChange(loc, b.getBlockData()); } }, 100); } @@ -669,6 +672,7 @@ public class ArenaRegion } private void showBlocks(final Player p, final Collection points) { + BlockData wool = Material.RED_WOOL.createBlockData(); arena.scheduleTask(new Runnable() { @Override public void run() { @@ -677,7 +681,7 @@ public class ArenaRegion for (Location l : points) { Block b = l.getBlock(); blocks.put(l, b.getState()); - p.sendBlockChange(l, 35, (byte) 14); + p.sendBlockChange(l, wool); } arena.scheduleTask(new Runnable() { public void run() { @@ -690,10 +694,9 @@ public class ArenaRegion for (Map.Entry entry : blocks.entrySet()) { Location l = entry.getKey(); BlockState b = entry.getValue(); - int id = b.getTypeId(); - byte data = b.getRawData(); + BlockData data = b.getBlockData(); - p.sendBlockChange(l, id, data); + p.sendBlockChange(l, data); } } }, 100); diff --git a/src/main/java/com/garbagemule/MobArena/repairable/Repairable.java b/src/main/java/com/garbagemule/MobArena/repairable/Repairable.java index 57db87e..76eb918 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/Repairable.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/Repairable.java @@ -3,6 +3,7 @@ package com.garbagemule.MobArena.repairable; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.BlockState; +import org.bukkit.block.data.BlockData; public interface Repairable { @@ -11,8 +12,7 @@ public interface Repairable BlockState getState(); Material getType(); - int getId(); - byte getData(); + BlockData getData(); World getWorld(); int getX(); diff --git a/src/main/java/com/garbagemule/MobArena/repairable/RepairableAttachable.java b/src/main/java/com/garbagemule/MobArena/repairable/RepairableAttachable.java index 655fafe..f77449c 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/RepairableAttachable.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/RepairableAttachable.java @@ -1,5 +1,6 @@ package com.garbagemule.MobArena.repairable; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; @@ -23,14 +24,14 @@ public class RepairableAttachable extends RepairableBlock y = attached.getY(); z = attached.getZ(); - state.getBlock().setTypeId(1); + state.getBlock().setType(Material.STONE); } public void repair() { Block b = getWorld().getBlockAt(x,y,z); - if (b.getTypeId() == 0) - b.setTypeId(1); + if (b.getType() == Material.AIR) + b.setType(Material.STONE); super.repair(); } diff --git a/src/main/java/com/garbagemule/MobArena/repairable/RepairableBed.java b/src/main/java/com/garbagemule/MobArena/repairable/RepairableBed.java index db1a642..70249c6 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/RepairableBed.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/RepairableBed.java @@ -19,6 +19,6 @@ public class RepairableBed extends RepairableBlock return; super.repair(); - other.getBlock().setTypeIdAndData(getId(), (byte) (getData() + 8), false); + other.getBlock().setBlockData(other.getBlockData()); } } diff --git a/src/main/java/com/garbagemule/MobArena/repairable/RepairableBlock.java b/src/main/java/com/garbagemule/MobArena/repairable/RepairableBlock.java index a4d5b34..467d4f7 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/RepairableBlock.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/RepairableBlock.java @@ -3,14 +3,15 @@ package com.garbagemule.MobArena.repairable; import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.BlockState; +import org.bukkit.block.data.BlockData; public class RepairableBlock implements Repairable { private BlockState state; private World world; - private int id, x, y, z; + private BlockData data; + private int x, y, z; private Material type; - private byte data; public RepairableBlock(BlockState state) { @@ -22,9 +23,8 @@ public class RepairableBlock implements Repairable y = state.getY(); z = state.getZ(); - id = state.getTypeId(); + data = state.getBlockData(); type = state.getType(); - data = state.getRawData(); } /** @@ -32,7 +32,7 @@ public class RepairableBlock implements Repairable */ public void repair() { - world.getBlockAt(x,y,z).setTypeIdAndData(id, data, false); + world.getBlockAt(x,y,z).setBlockData(data); } public BlockState getState() @@ -50,12 +50,7 @@ public class RepairableBlock implements Repairable return type; } - public int getId() - { - return id; - } - - public byte getData() + public BlockData getData() { return data; } diff --git a/src/main/java/com/garbagemule/MobArena/repairable/RepairableComparator.java b/src/main/java/com/garbagemule/MobArena/repairable/RepairableComparator.java index f2f7b6b..22b0473 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/RepairableComparator.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/RepairableComparator.java @@ -1,11 +1,11 @@ package com.garbagemule.MobArena.repairable; import org.bukkit.Material; -import org.bukkit.material.Attachable; -import org.bukkit.material.Bed; -import org.bukkit.material.Door; -import org.bukkit.material.MaterialData; -import org.bukkit.material.Redstone; +import org.bukkit.block.data.Attachable; +import org.bukkit.block.data.BlockData; +import org.bukkit.block.data.type.Bed; +import org.bukkit.block.data.type.Door; +import org.bukkit.block.data.type.RedstoneWire; import java.util.Comparator; @@ -28,8 +28,8 @@ public class RepairableComparator implements Comparator private boolean restoreLast(Repairable r) { Material t = r.getType(); - MaterialData m = r.getState().getData(); + BlockData data = r.getData(); - return (m instanceof Attachable || m instanceof Redstone || m instanceof Door || m instanceof Bed || t == Material.STATIONARY_LAVA || t == Material.STATIONARY_WATER || t == Material.FIRE); + return (data instanceof Attachable || data instanceof RedstoneWire || data instanceof Door || data instanceof Bed || t == Material.LAVA || t == Material.WATER || t == Material.FIRE); } } diff --git a/src/main/java/com/garbagemule/MobArena/repairable/RepairableDoor.java b/src/main/java/com/garbagemule/MobArena/repairable/RepairableDoor.java index c6fe66e..f27cb99 100644 --- a/src/main/java/com/garbagemule/MobArena/repairable/RepairableDoor.java +++ b/src/main/java/com/garbagemule/MobArena/repairable/RepairableDoor.java @@ -1,5 +1,6 @@ package com.garbagemule.MobArena.repairable; +import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.BlockState; @@ -27,10 +28,10 @@ public class RepairableDoor extends RepairableAttachable//RepairableBlock return; Block b = getWorld().getBlockAt(x,y,z); - if (b.getTypeId() == 0) - b.setTypeId(1); + if (b.getType() == Material.AIR) + b.setType(Material.STONE); super.repair(); - other.getBlock().setTypeIdAndData(getId(), (byte) (getData() + 8), false); + other.getBlock().setBlockData(other.getBlockData()); } } diff --git a/src/main/java/com/garbagemule/MobArena/things/Equippable.java b/src/main/java/com/garbagemule/MobArena/things/Equippable.java index 9293298..dfa99d8 100644 --- a/src/main/java/com/garbagemule/MobArena/things/Equippable.java +++ b/src/main/java/com/garbagemule/MobArena/things/Equippable.java @@ -15,28 +15,28 @@ class Equippable { Material.LEATHER_HELMET, Material.IRON_HELMET, Material.CHAINMAIL_HELMET, - Material.GOLD_HELMET, + Material.GOLDEN_HELMET, Material.DIAMOND_HELMET ); private static EnumSet chestplates = EnumSet.of( Material.LEATHER_CHESTPLATE, Material.IRON_CHESTPLATE, Material.CHAINMAIL_CHESTPLATE, - Material.GOLD_CHESTPLATE, + Material.GOLDEN_CHESTPLATE, Material.DIAMOND_CHESTPLATE ); private static EnumSet leggings = EnumSet.of( Material.LEATHER_LEGGINGS, Material.IRON_LEGGINGS, Material.CHAINMAIL_LEGGINGS, - Material.GOLD_LEGGINGS, + Material.GOLDEN_LEGGINGS, Material.DIAMOND_LEGGINGS ); private static EnumSet boots = EnumSet.of( Material.LEATHER_BOOTS, Material.IRON_BOOTS, Material.CHAINMAIL_BOOTS, - Material.GOLD_BOOTS, + Material.GOLDEN_BOOTS, Material.DIAMOND_BOOTS ); diff --git a/src/main/java/com/garbagemule/MobArena/util/ClassChests.java b/src/main/java/com/garbagemule/MobArena/util/ClassChests.java index f02e57c..073203b 100644 --- a/src/main/java/com/garbagemule/MobArena/util/ClassChests.java +++ b/src/main/java/com/garbagemule/MobArena/util/ClassChests.java @@ -48,7 +48,7 @@ public class ClassChests { Block blockBehind = blockBelow.getRelative(backwards); // If the block below this sign is a class sign, swap the order - if (blockBelow.getType() == Material.WALL_SIGN || blockBelow.getType() == Material.SIGN_POST) { + if (blockBelow.getType() == Material.WALL_SIGN || blockBelow.getType() == Material.SIGN) { String className = ChatColor.stripColor(((Sign) blockBelow.getState()).getLine(0)).toLowerCase(); if (arena.getClasses().containsKey(className)) { blockSign = blockBehind; // Use blockSign as a temp while swapping diff --git a/src/main/java/com/garbagemule/MobArena/util/ItemParser.java b/src/main/java/com/garbagemule/MobArena/util/ItemParser.java index 824fc1d..8e09960 100644 --- a/src/main/java/com/garbagemule/MobArena/util/ItemParser.java +++ b/src/main/java/com/garbagemule/MobArena/util/ItemParser.java @@ -1,43 +1,21 @@ package com.garbagemule.MobArena.util; import org.bukkit.Bukkit; -import org.bukkit.DyeColor; import org.bukkit.Material; +import org.bukkit.NamespacedKey; import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.PotionMeta; -import org.bukkit.material.Dye; -import org.bukkit.material.MaterialData; -import org.bukkit.material.Wool; import org.bukkit.potion.PotionData; import org.bukkit.potion.PotionType; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.Optional; public class ItemParser { - private static final Map POTION_TYPE_MAP = new HashMap<>(); - static { - POTION_TYPE_MAP.put((short) 8193, PotionType.REGEN); - POTION_TYPE_MAP.put((short) 8194, PotionType.SPEED); - POTION_TYPE_MAP.put((short) 8195, PotionType.FIRE_RESISTANCE); - POTION_TYPE_MAP.put((short) 8196, PotionType.POISON); - POTION_TYPE_MAP.put((short) 8197, PotionType.INSTANT_HEAL); - POTION_TYPE_MAP.put((short) 8198, PotionType.NIGHT_VISION); - POTION_TYPE_MAP.put((short) 8200, PotionType.WEAKNESS); - POTION_TYPE_MAP.put((short) 8201, PotionType.STRENGTH); - POTION_TYPE_MAP.put((short) 8202, PotionType.SLOWNESS); - POTION_TYPE_MAP.put((short) 8203, PotionType.JUMP); - POTION_TYPE_MAP.put((short) 8204, PotionType.INSTANT_DAMAGE); - POTION_TYPE_MAP.put((short) 8205, PotionType.WATER_BREATHING); - POTION_TYPE_MAP.put((short) 8206, PotionType.INVISIBILITY); - } - public static List parseItems(String s) { if (s == null) { return new ArrayList<>(1); @@ -118,12 +96,7 @@ public class ItemParser return withPotionMeta(stack, data); } - MaterialData md = getData(data, type); - if (md == null) { - return null; - } - - return md.toItemStack(stack.getAmount()); + return stack; } private static ItemStack withPotionMeta(ItemStack stack, String data) { @@ -138,29 +111,6 @@ public class ItemParser } private static PotionType getPotionType(String data) { - if (data.matches("[0-9]+")) { - short d = Short.parseShort(data); - - // Compensate for splash potions - if (d > (2 * 8192)) { - d -= 8192; - } - - boolean extended = (d & 64) > 0; - boolean upgraded = (d & 32) > 0; - if (extended) { - d -= 64; - } - if (upgraded) { - d -= 32; - } - - PotionType type = POTION_TYPE_MAP.get(d); - if (type != null) { - warn(type.name(), data); - } - return type; - } try { return PotionType.valueOf(data.toUpperCase()); } catch (IllegalArgumentException e) { @@ -169,65 +119,9 @@ public class ItemParser } private static Optional getType(String item) { - if (item.matches("(-)?[1-9][0-9]*")) { - Material type = Material.getMaterial(Integer.parseInt(item)); - if (type == null) { - return Optional.empty(); - } - - warn(type.name(), item); - - return Optional.of(type); - } return Optional.ofNullable(Material.getMaterial(item.toUpperCase())); } - private static MaterialData getData(String data, Material type) { - if (type == Material.INK_SACK) { - return getDyeData(data); - } - if (type == Material.WOOL) { - return getWoolData(data); - } - return null; - } - - private static Wool getWoolData(String data) { - if (data.matches("(-)?[1-9][0-9]*")) { - DyeColor color = DyeColor.getByWoolData(Byte.parseByte(data)); - if (color == null) { - return null; - } - - warn(color.name(), data); - - return new Wool(color); - } - try { - return new Wool(DyeColor.valueOf(data.toUpperCase())); - } catch (IllegalArgumentException e) { - return null; - } - } - - private static Dye getDyeData(String data) { - if (data.matches("(-)?[1-9][0-9]*")) { - DyeColor color = DyeColor.getByDyeData(Byte.parseByte(data)); - if (color == null) { - return null; - } - - warn(color.name(), data); - - return new Dye(color); - } - try { - return new Dye(DyeColor.valueOf(data.toUpperCase())); - } catch (IllegalArgumentException e) { - return null; - } - } - private static int getAmount(String amount) { if (amount.matches("(-)?[1-9][0-9]*")) { return Integer.parseInt(amount); @@ -246,7 +140,7 @@ public class ItemParser private static void addEnchantment(ItemStack stack, String ench) { String[] parts = ench.split(":"); - if (parts.length != 2 || !parts[1].matches("[0-9]*")) { + if (parts.length != 2) { return; } @@ -266,25 +160,6 @@ public class ItemParser } private static Enchantment getEnchantment(String ench) { - if (ench.matches("[1-9][0-9]*")) { - Enchantment enchantment = Enchantment.getById(Integer.parseInt(ench)); - if (enchantment == null) { - return null; - } - - warn(enchantment.getName(), ench); - - return enchantment; - } - return Enchantment.getByName(ench.toUpperCase()); - } - - private static void warn(String name, String value) { - String msg = String.format( - "Consider using '%s' instead of '%s'", - name.toLowerCase(), - value - ); - Bukkit.getLogger().warning("[MobArena] " + msg); + return Enchantment.getByKey(NamespacedKey.minecraft(ench)); } } diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 8d0c39f..8acd934 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,6 +2,7 @@ name: ${project.name} author: garbagemule main: com.garbagemule.MobArena.MobArena version: '${project.version}' +api-version: 1.13 softdepend: [Multiverse-Core,Towny,Heroes,MagicSpells,Vault] commands: ma: diff --git a/src/main/resources/res/classes.yml b/src/main/resources/res/classes.yml index 736ab38..1878fd3 100644 --- a/src/main/resources/res/classes.yml +++ b/src/main/resources/res/classes.yml @@ -6,7 +6,7 @@ Tank: armor: diamond_helmet, diamond_chestplate, diamond_leggings, diamond_boots effects: slow, health_boost Archer: - items: wood_sword, bow, arrow:256, potion:instant_heal:3, bone + items: wooden_sword, bow, arrow:256, potion:instant_heal:3, bone armor: leather_helmet, leather_chestplate, leather_leggings, leather_boots effects: speed Chemist: diff --git a/src/main/resources/res/global-settings.yml b/src/main/resources/res/global-settings.yml index 5bf3b99..eb382ca 100644 --- a/src/main/resources/res/global-settings.yml +++ b/src/main/resources/res/global-settings.yml @@ -4,4 +4,4 @@ update-notification: true prefix: '&a[MobArena] ' pet-items: wolf: bone - ocelot: raw_fish + ocelot: salmon diff --git a/src/main/resources/res/rewards.yml b/src/main/resources/res/rewards.yml index ef24487..452f5c5 100644 --- a/src/main/resources/res/rewards.yml +++ b/src/main/resources/res/rewards.yml @@ -4,6 +4,6 @@ waves: '5': dirt:4, gravel:4, stone:4 '10': iron_ingot:10, gold_ingot:8 after: - '7': minecart, storage_minecart, powered_minecart - '13': iron_sword, iron_pickaxe, iron_spade + '7': minecart, chest_minecart, furnace_minecart + '13': iron_sword, iron_pickaxe, iron_shovel '16': diamond_sword \ No newline at end of file