From 33efd8f51d16c66741288d99dccc8534456459e7 Mon Sep 17 00:00:00 2001 From: Daniel Saukel Date: Thu, 13 Jun 2019 02:01:56 +0200 Subject: [PATCH] Add block adapters and replace a lot of legacy code --- api/pom.xml | 20 +++++ .../adapter/block/BlockAdapter.java | 40 +++++++++ .../de/erethon/dungeonsxl/util/DColor.java | 9 -- bukkit_blockdata/pom.xml | 26 ++++++ .../adapter/block/BlockAdapterBlockData.java | 83 +++++++++++++++++++ bukkit_magicvalues/pom.xml | 26 ++++++ .../block/BlockAdapterMagicValues.java | 78 +++++++++++++++++ core/pom.xml | 36 ++++---- .../de/erethon/dungeonsxl/DungeonsXL.java | 6 ++ .../de/erethon/dungeonsxl/global/DPortal.java | 17 ++-- .../erethon/dungeonsxl/global/JoinSign.java | 17 +--- .../erethon/dungeonsxl/sign/LocationSign.java | 2 +- .../erethon/dungeonsxl/sign/OpenDoorSign.java | 4 +- .../dungeonsxl/world/block/LockedDoor.java | 6 +- .../dungeonsxl/world/block/TeamBed.java | 3 +- .../dungeonsxl/world/block/TeamFlag.java | 12 +-- pom.xml | 23 +++++ 17 files changed, 336 insertions(+), 72 deletions(-) create mode 100644 api/pom.xml create mode 100644 api/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapter.java rename {core => api}/src/main/java/de/erethon/dungeonsxl/util/DColor.java (95%) create mode 100644 bukkit_blockdata/pom.xml create mode 100644 bukkit_blockdata/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterBlockData.java create mode 100644 bukkit_magicvalues/pom.xml create mode 100644 bukkit_magicvalues/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterMagicValues.java diff --git a/api/pom.xml b/api/pom.xml new file mode 100644 index 00000000..ed9b8d96 --- /dev/null +++ b/api/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + de.erethon.dungeonsxl + dungeonsxl-api + 0.18-SNAPSHOT + jar + + de.erethon.dungeonsxl + dungeonsxl-parent + 0.18-SNAPSHOT + + + + org.spigotmc + spigot-api + 1.14.2-R0.1-SNAPSHOT + provided + + + diff --git a/api/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapter.java b/api/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapter.java new file mode 100644 index 00000000..f34d4ee1 --- /dev/null +++ b/api/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapter.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2012-2019 Frank Baumann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package de.erethon.dungeonsxl.adapter.block; + +import de.erethon.dungeonsxl.util.DColor; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; + +/** + * @author Daniel Saukel + */ +public interface BlockAdapter { + + boolean isBedHead(Block block); + + void openDoor(Block block); + + void setBlockWoolColor(Block block, DColor color); + + BlockFace getFacing(Block block); + + void setFacing(Block block, BlockFace facing); + + void setAxis(Block block, boolean z); + +} diff --git a/core/src/main/java/de/erethon/dungeonsxl/util/DColor.java b/api/src/main/java/de/erethon/dungeonsxl/util/DColor.java similarity index 95% rename from core/src/main/java/de/erethon/dungeonsxl/util/DColor.java rename to api/src/main/java/de/erethon/dungeonsxl/util/DColor.java index 6c236e15..a5a24826 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/util/DColor.java +++ b/api/src/main/java/de/erethon/dungeonsxl/util/DColor.java @@ -77,15 +77,6 @@ public enum DColor { return dye.getColor().asRGB(); } - /** - * @deprecated Use getDyeColor() or getMaterial() instead - * @return the wool DV - */ - @Deprecated - public byte getWoolData() { - return dye.getWoolData(); - } - /** * @return the wool material */ diff --git a/bukkit_blockdata/pom.xml b/bukkit_blockdata/pom.xml new file mode 100644 index 00000000..711f3376 --- /dev/null +++ b/bukkit_blockdata/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + de.erethon.dungeonsxl + dungeonsxl-bukkit_blockdata + 0.18-SNAPSHOT + jar + + de.erethon.dungeonsxl + dungeonsxl-parent + 0.18-SNAPSHOT + + + + de.erethon.dungeonsxl + dungeonsxl-api + ${project.parent.version} + compile + + + org.spigotmc + spigot-api + 1.14.2-R0.1-SNAPSHOT + provided + + + diff --git a/bukkit_blockdata/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterBlockData.java b/bukkit_blockdata/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterBlockData.java new file mode 100644 index 00000000..08475fb8 --- /dev/null +++ b/bukkit_blockdata/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterBlockData.java @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2012-2019 Frank Baumann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package de.erethon.dungeonsxl.adapter.block; + +import de.erethon.dungeonsxl.util.DColor; +import org.bukkit.Axis; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.data.Directional; +import org.bukkit.block.data.Openable; +import org.bukkit.block.data.Orientable; +import org.bukkit.block.data.type.Bed; + +/** + * @author Daniel Saukel + */ +public class BlockAdapterBlockData implements BlockAdapter { + + @Override + public boolean isBedHead(Block block) { + if (!(block.getBlockData() instanceof Bed)) { + throw new IllegalArgumentException("Block is not Bed"); + } + return ((Bed) block.getBlockData()).getPart() == Bed.Part.HEAD; + } + + @Override + public void openDoor(Block block) { + if (!(block.getBlockData() instanceof Openable)) { + throw new IllegalArgumentException("Block is not Openable"); + } + Openable data = ((Openable) block.getBlockData()); + data.setOpen(true); + block.setBlockData(data); + } + + @Override + public void setBlockWoolColor(Block block, DColor color) { + block.setType(color.getWoolMaterial().getMaterial()); + } + + @Override + public BlockFace getFacing(Block block) { + if (!(block.getBlockData() instanceof Directional)) { + throw new IllegalArgumentException("Block is not Directional"); + } + return ((Directional) block.getBlockData()).getFacing(); + } + + @Override + public void setFacing(Block block, BlockFace facing) { + if (!(block.getBlockData() instanceof Directional)) { + throw new IllegalArgumentException("Block is not Directional"); + } + Directional data = (Directional) block.getBlockData(); + data.setFacing(facing); + block.setBlockData(data, false); + } + + @Override + public void setAxis(Block block, boolean z) { + if (!(block.getBlockData() instanceof Orientable)) { + throw new IllegalArgumentException("Block is not Orientable"); + } + Orientable data = (Orientable) block.getBlockData(); + data.setAxis(z ? Axis.Z : Axis.X); + } + +} diff --git a/bukkit_magicvalues/pom.xml b/bukkit_magicvalues/pom.xml new file mode 100644 index 00000000..c95a7afc --- /dev/null +++ b/bukkit_magicvalues/pom.xml @@ -0,0 +1,26 @@ + + 4.0.0 + de.erethon.dungeonsxl + dungeonsxl-bukkit_magicvalues + 0.18-SNAPSHOT + jar + + de.erethon.dungeonsxl + dungeonsxl-parent + 0.18-SNAPSHOT + + + + de.erethon.dungeonsxl + dungeonsxl-api + ${project.parent.version} + compile + + + org.spigotmc + spigot-api + 1.12.2-R0.1-SNAPSHOT + provided + + + diff --git a/bukkit_magicvalues/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterMagicValues.java b/bukkit_magicvalues/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterMagicValues.java new file mode 100644 index 00000000..91e55fe3 --- /dev/null +++ b/bukkit_magicvalues/src/main/java/de/erethon/dungeonsxl/adapter/block/BlockAdapterMagicValues.java @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2012-2019 Frank Baumann + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package de.erethon.dungeonsxl.adapter.block; + +import de.erethon.dungeonsxl.util.DColor; +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.block.BlockFace; +import org.bukkit.block.BlockState; +import org.bukkit.material.Bed; +import org.bukkit.material.Directional; +import org.bukkit.material.MaterialData; + +/** + * @author Daniel Saukel + */ +public class BlockAdapterMagicValues implements BlockAdapter { + + @Override + public boolean isBedHead(Block block) { + MaterialData data = block.getState().getData(); + if (!(data instanceof Bed)) { + throw new IllegalArgumentException("Block is not Bed"); + } + return ((Bed) data).isHeadOfBed(); + } + + @Override + public void openDoor(Block block) { + block.setData((byte) (block.getData() + 4)); + } + + @Override + public void setBlockWoolColor(Block block, DColor color) { + block.setTypeIdAndData(Material.WOOL.getId(), color.getDyeColor().getWoolData(), false); + } + + @Override + public BlockFace getFacing(Block block) { + MaterialData data = block.getState().getData(); + if (!(data instanceof Directional)) { + throw new IllegalArgumentException("Block is not Directional"); + } + return ((Directional) data).getFacing(); + } + + @Override + public void setFacing(Block block, BlockFace facing) { + BlockState state = block.getState(); + MaterialData data = state.getData(); + if (!(data instanceof Directional)) { + throw new IllegalArgumentException("Block is not Directional"); + } + ((Directional) data).setFacingDirection(facing); + state.setData(data); + state.update(); + } + + @Override + public void setAxis(Block block, boolean z) { + block.setData(z ? (byte) 2 : 1); + } + +} diff --git a/core/pom.xml b/core/pom.xml index 8e621a29..aea42fc2 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -22,6 +22,24 @@ + + de.erethon.dungeonsxl + dungeonsxl-api + ${project.parent.version} + compile + + + de.erethon.dungeonsxl + dungeonsxl-bukkit_blockdata + ${project.parent.version} + compile + + + de.erethon.dungeonsxl + dungeonsxl-bukkit_magicvalues + ${project.parent.version} + compile + org.spigotmc spigot-api @@ -34,24 +52,6 @@ 1.7 provided - - de.erethon - caliburn - 0.5.4 - compile - - - de.erethon.commons - commons-dist - 6.0 - compile - - - de.erethon.vignette - vignette-dist - 1.0-SNAPSHOT - compile - io.github.dre2n commandsxl diff --git a/core/src/main/java/de/erethon/dungeonsxl/DungeonsXL.java b/core/src/main/java/de/erethon/dungeonsxl/DungeonsXL.java index fce8a455..142e8963 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/DungeonsXL.java +++ b/core/src/main/java/de/erethon/dungeonsxl/DungeonsXL.java @@ -19,10 +19,14 @@ package de.erethon.dungeonsxl; import de.erethon.caliburn.CaliburnAPI; import de.erethon.caliburn.loottable.LootTable; import de.erethon.commons.compatibility.Internals; +import de.erethon.commons.compatibility.Version; import de.erethon.commons.config.MessageConfig; import de.erethon.commons.javaplugin.DREPlugin; import de.erethon.commons.javaplugin.DREPluginSettings; import de.erethon.commons.misc.FileUtil; +import de.erethon.dungeonsxl.adapter.block.BlockAdapter; +import de.erethon.dungeonsxl.adapter.block.BlockAdapterBlockData; +import de.erethon.dungeonsxl.adapter.block.BlockAdapterMagicValues; import de.erethon.dungeonsxl.announcer.AnnouncerCache; import de.erethon.dungeonsxl.command.DCommandCache; import de.erethon.dungeonsxl.config.DMessage; @@ -68,6 +72,8 @@ public class DungeonsXL extends DREPlugin { private static DungeonsXL instance; private CaliburnAPI caliburn; + public static final BlockAdapter BLOCK_ADAPTER = Version.isAtLeast(Version.MC1_13) ? new BlockAdapterBlockData() : new BlockAdapterMagicValues(); + public static final String[] EXCLUDED_FILES = {"config.yml", "uid.dat", "DXLData.data", "data"}; public static File BACKUPS; public static File LANGUAGES; diff --git a/core/src/main/java/de/erethon/dungeonsxl/global/DPortal.java b/core/src/main/java/de/erethon/dungeonsxl/global/DPortal.java index 3dfcd5e3..1357a792 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/global/DPortal.java +++ b/core/src/main/java/de/erethon/dungeonsxl/global/DPortal.java @@ -26,7 +26,6 @@ import de.erethon.dungeonsxl.game.Game; import de.erethon.dungeonsxl.player.DGamePlayer; import de.erethon.dungeonsxl.player.DGlobalPlayer; import de.erethon.dungeonsxl.player.DGroup; -import de.erethon.dungeonsxl.util.MagicValueUtil; import de.erethon.dungeonsxl.world.DGameWorld; import de.erethon.dungeonsxl.world.DResourceWorld; import java.util.HashSet; @@ -49,7 +48,7 @@ public class DPortal extends GlobalProtection { private Block block1; private Block block2; private ExItem material = VanillaItem.NETHER_PORTAL; - private byte axis; + private boolean zAxis; private boolean active; private Set blocks; @@ -64,13 +63,13 @@ public class DPortal extends GlobalProtection { this.active = active; } - public DPortal(DungeonsXL plugin, int id, Block block1, Block block2, ExItem material, byte axis, boolean active) { + public DPortal(DungeonsXL plugin, int id, Block block1, Block block2, ExItem material, boolean zAxis, boolean active) { super(plugin, block1.getWorld(), id); this.block1 = block1; this.block2 = block2; this.material = material; - this.axis = axis; + this.zAxis = zAxis; this.active = active; } @@ -84,7 +83,7 @@ public class DPortal extends GlobalProtection { material = VanillaItem.NETHER_PORTAL; } String axis = config.getString("axis"); - this.axis = (byte) (axis != null && axis.equalsIgnoreCase("z") ? 2 : 1); + zAxis = axis != null && axis.equalsIgnoreCase("z"); active = true; create(null); } @@ -145,9 +144,9 @@ public class DPortal extends GlobalProtection { if (player != null && material == VanillaItem.NETHER_PORTAL) { float yaw = player.getPlayer().getLocation().getYaw(); if (yaw >= 45 & yaw < 135 || yaw >= 225 & yaw < 315) { - axis = 2;//z; + zAxis = true; } else if (yaw >= 315 | yaw < 45 || yaw >= 135 & yaw < 225) { - axis = 1;//x; + zAxis = false; } } @@ -184,7 +183,7 @@ public class DPortal extends GlobalProtection { Block block = getWorld().getBlockAt(xx, yy, zz); block.setType(material.getMaterial(), false); if (material == VanillaItem.NETHER_PORTAL) { - MagicValueUtil.setBlockData(block, axis); + DungeonsXL.BLOCK_ADAPTER.setAxis(block, zAxis); } } @@ -290,7 +289,7 @@ public class DPortal extends GlobalProtection { configFile.set(preString + ".material", material.getId()); if (material == VanillaItem.NETHER_PORTAL) { - configFile.set(preString + ".axis", axis == 2 ? "z" : "x"); + configFile.set(preString + ".axis", zAxis ? "z" : "x"); } } diff --git a/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java b/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java index adccd200..e46568ca 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java +++ b/core/src/main/java/de/erethon/dungeonsxl/global/JoinSign.java @@ -27,11 +27,9 @@ import java.util.Set; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; -import org.bukkit.block.BlockState; import org.bukkit.block.Sign; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.material.Attachable; /** * @author Daniel Saukel @@ -217,26 +215,15 @@ public abstract class JoinSign extends GlobalProtection { } protected static void onCreation(DungeonsXL plugin, Block startSign, String identifier, int maxElements, int startIfElementsAtLeast) { - // TODO: Replace as soon as versions older than 1.13 are dropped - World world = startSign.getWorld(); - BlockFace facing = ((Attachable) startSign.getState().getData()).getAttachedFace().getOppositeFace(); - //BlockFace facing = ((Directional) startSign.getBlockData()).getFacing().getOppositeFace(); + BlockFace facing = DungeonsXL.BLOCK_ADAPTER.getFacing(startSign); int x = startSign.getX(), y = startSign.getY(), z = startSign.getZ(); int verticalSigns = (int) Math.ceil((float) (1 + maxElements) / 4); while (verticalSigns > 1) { Block block = world.getBlockAt(x, y - verticalSigns + 1, z); block.setType(VanillaItem.WALL_SIGN.getMaterial(), false); - BlockState state = block.getState(); - org.bukkit.material.Sign signData = (org.bukkit.material.Sign) state.getData(); - signData.setFacingDirection(facing); - state.setData(signData); - state.update(true, false); - // Directional directional = (Directional) block.getBlockData(); - // directional.setFacing(facing); - // block.setBlockData(directional, false); - + DungeonsXL.BLOCK_ADAPTER.setFacing(block, facing); verticalSigns--; } diff --git a/core/src/main/java/de/erethon/dungeonsxl/sign/LocationSign.java b/core/src/main/java/de/erethon/dungeonsxl/sign/LocationSign.java index 31046e7d..0d79e99b 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/sign/LocationSign.java +++ b/core/src/main/java/de/erethon/dungeonsxl/sign/LocationSign.java @@ -38,7 +38,7 @@ public abstract class LocationSign extends DSign { double x = getSign().getX() + 0.5; double y = getSign().getY(); double z = getSign().getZ() + 0.5; - float yaw = BlockUtil.blockFaceToYaw(((org.bukkit.material.Sign) getSign().getData()).getFacing().getOppositeFace()); + float yaw = BlockUtil.blockFaceToYaw(DungeonsXL.BLOCK_ADAPTER.getFacing(getSign().getBlock()).getOppositeFace()); float pitch = 0; location = new Location(getGameWorld().getWorld(), x, y, z, yaw, pitch); } diff --git a/core/src/main/java/de/erethon/dungeonsxl/sign/OpenDoorSign.java b/core/src/main/java/de/erethon/dungeonsxl/sign/OpenDoorSign.java index ffe477ff..da2f7e4b 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/sign/OpenDoorSign.java +++ b/core/src/main/java/de/erethon/dungeonsxl/sign/OpenDoorSign.java @@ -16,6 +16,7 @@ */ package de.erethon.dungeonsxl.sign; +import de.erethon.caliburn.category.Category; import de.erethon.caliburn.item.VanillaItem; import de.erethon.commons.misc.BlockUtil; import de.erethon.dungeonsxl.DungeonsXL; @@ -24,7 +25,6 @@ import de.erethon.dungeonsxl.world.block.LockedDoor; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.block.Sign; -import org.bukkit.material.Door; /** * @author Daniel Saukel @@ -81,7 +81,7 @@ public class OpenDoorSign extends DSign { @Override public void onInit() { Block block = BlockUtil.getAttachedBlock(getSign().getBlock()); - if (block.getState().getData() instanceof Door) { + if (Category.DOORS.containsBlock(block)) { if (block.getRelative(BlockFace.DOWN).getType() == block.getType()) { door = new LockedDoor(plugin, block.getRelative(BlockFace.DOWN)); } else { diff --git a/core/src/main/java/de/erethon/dungeonsxl/world/block/LockedDoor.java b/core/src/main/java/de/erethon/dungeonsxl/world/block/LockedDoor.java index 2abe5967..d1343b53 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/world/block/LockedDoor.java +++ b/core/src/main/java/de/erethon/dungeonsxl/world/block/LockedDoor.java @@ -17,7 +17,6 @@ package de.erethon.dungeonsxl.world.block; import de.erethon.dungeonsxl.DungeonsXL; -import de.erethon.dungeonsxl.util.MagicValueUtil; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.event.block.BlockBreakEvent; @@ -57,10 +56,7 @@ public class LockedDoor extends GameBlock implements MultiBlock { * Opens the door. */ public void open() { - /*Openable data = ((Openable) block.getBlockData()); - data.setOpen(true); - block.setBlockData(data);*/ - MagicValueUtil.setBlockData(block, (byte) (block.getData() + 4)); + DungeonsXL.BLOCK_ADAPTER.openDoor(block); } @Override diff --git a/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamBed.java b/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamBed.java index 126d430e..9f1d42ef 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamBed.java +++ b/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamBed.java @@ -27,7 +27,6 @@ import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockBreakEvent; -import org.bukkit.material.Bed; /** * @author Daniel Saukel @@ -86,7 +85,7 @@ public class TeamBed extends TeamBlock implements MultiBlock { owner.getGameWorld().sendMessage(DMessage.GROUP_BED_DESTROYED.getMessage(owner.getName(), DGamePlayer.getByPlayer(breaker).getName())); Block block1 = event.getBlock(); - if (((Bed) block1.getState().getData()).isHeadOfBed()) { + if (DungeonsXL.BLOCK_ADAPTER.isBedHead(block)) { Block block2 = getAttachedBlock(block1); if (block2 != null) { block2.setType(VanillaItem.AIR.getMaterial()); diff --git a/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamFlag.java b/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamFlag.java index d60a9801..c073d030 100644 --- a/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamFlag.java +++ b/core/src/main/java/de/erethon/dungeonsxl/world/block/TeamFlag.java @@ -18,13 +18,10 @@ package de.erethon.dungeonsxl.world.block; import de.erethon.caliburn.item.VanillaItem; import de.erethon.commons.chat.MessageUtil; -import de.erethon.commons.compatibility.CompatibilityHandler; import de.erethon.dungeonsxl.DungeonsXL; import de.erethon.dungeonsxl.config.DMessage; import de.erethon.dungeonsxl.player.DGamePlayer; import de.erethon.dungeonsxl.player.DGroup; -import de.erethon.dungeonsxl.util.DColor; -import de.erethon.dungeonsxl.util.MagicValueUtil; import org.bukkit.block.Block; import org.bukkit.entity.Player; import org.bukkit.event.block.BlockBreakEvent; @@ -44,7 +41,7 @@ public class TeamFlag extends TeamBlock { * Reset a team flag when the capturer dies. */ public void reset() { - setBlockWoolColor(block, owner.getDColor()); + DungeonsXL.BLOCK_ADAPTER.setBlockWoolColor(block, owner.getDColor()); } @Override @@ -66,11 +63,4 @@ public class TeamFlag extends TeamBlock { return true; } - public static void setBlockWoolColor(Block block, DColor color) { - block.setType(color.getWoolMaterial().getMaterial()); - if (!CompatibilityHandler.getInstance().getVersion().useNewMaterials()) { - MagicValueUtil.setBlockData(block, color.getWoolData()); - } - } - } diff --git a/pom.xml b/pom.xml index 37ec53e1..6eba4391 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,9 @@ https://dre2n.github.io Create custom dungeons and adventure maps with ease! + api + bukkit_blockdata + bukkit_magicvalues core dist @@ -17,6 +20,26 @@ 1.8 1.8 + + + de.erethon.commons + commons-dist + 6.0 + compile + + + de.erethon + caliburn + 0.5.4 + compile + + + de.erethon.vignette + vignette-dist + 1.0-SNAPSHOT + compile + + spigot-repo