From 485f43d405084f697383d917207e4a5f9e9e5864 Mon Sep 17 00:00:00 2001 From: Ben Woo <30431861+benwoo1110@users.noreply.github.com> Date: Sun, 2 May 2021 19:05:29 +0800 Subject: [PATCH] Add material mapping to support legacy types. --- .../configuration/EntryFee.java | 8 +++--- .../listeners/MVMapListener.java | 6 ++-- .../listeners/MVPlayerListener.java | 4 +-- .../listeners/MVPortalListener.java | 8 ++---- .../MultiverseCore/utils/MVMaterials.java | 28 +++++++++++++++++++ .../utils/SimpleBlockSafety.java | 20 ++++++------- .../utils/SimpleSafeTTeleporter.java | 15 ++++------ 7 files changed, 56 insertions(+), 33 deletions(-) create mode 100644 src/main/java/com/onarandombox/MultiverseCore/utils/MVMaterials.java diff --git a/src/main/java/com/onarandombox/MultiverseCore/configuration/EntryFee.java b/src/main/java/com/onarandombox/MultiverseCore/configuration/EntryFee.java index 3fff6fe3..2bca1126 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/configuration/EntryFee.java +++ b/src/main/java/com/onarandombox/MultiverseCore/configuration/EntryFee.java @@ -1,16 +1,16 @@ package com.onarandombox.MultiverseCore.configuration; -import java.util.Map; - +import com.onarandombox.MultiverseCore.utils.MVMaterials; import com.onarandombox.MultiverseCore.utils.MaterialConverter; import me.main__.util.SerializationConfig.Property; import me.main__.util.SerializationConfig.SerializationConfig; - import me.main__.util.SerializationConfig.Serializor; import org.bukkit.Material; import org.bukkit.configuration.serialization.SerializableAs; import org.jetbrains.annotations.Nullable; +import java.util.Map; + /** * Entryfee-settings. */ @@ -22,7 +22,7 @@ public class EntryFee extends SerializationConfig { @Nullable private Material currency; - private final Material DISABLED_MATERIAL = Material.AIR; + private final Material DISABLED_MATERIAL = MVMaterials.AIR; public EntryFee() { super(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVMapListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVMapListener.java index 2443337a..1e3f30a4 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVMapListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVMapListener.java @@ -1,9 +1,9 @@ package com.onarandombox.MultiverseCore.listeners; import com.onarandombox.MultiverseCore.MultiverseCore; +import com.onarandombox.MultiverseCore.utils.MVMaterials; import org.bukkit.Bukkit; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -28,8 +28,8 @@ public class MVMapListener implements Listener { @EventHandler public void mapInitialize(final MapInitializeEvent event) { for (final Player player : Bukkit.getOnlinePlayers()) { - if ((player.getItemInHand().getType() == Material.MAP - || player.getItemInHand().getType() == Material.FILLED_MAP) + if ((player.getItemInHand().getType() == MVMaterials.MAP + || player.getItemInHand().getType() == MVMaterials.FILLED_MAP) && player.getItemInHand().getDurability() == event.getMap().getId()) { final Location playerLoc = player.getLocation(); final MapView map = event.getMap(); diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java index 2921f9c5..45f6fed9 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPlayerListener.java @@ -14,10 +14,10 @@ import com.onarandombox.MultiverseCore.api.MultiverseWorld; import com.onarandombox.MultiverseCore.enums.RespawnType; import com.onarandombox.MultiverseCore.event.MVRespawnEvent; import com.onarandombox.MultiverseCore.utils.CompatibilityLayer; +import com.onarandombox.MultiverseCore.utils.MVMaterials; import com.onarandombox.MultiverseCore.utils.PermissionTools; import org.bukkit.GameMode; import org.bukkit.Location; -import org.bukkit.Material; import org.bukkit.World; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; @@ -260,7 +260,7 @@ public class MVPlayerListener implements Listener { // REMEMBER! getTo MAY be NULL HERE!!! // If the player was actually outside of the portal, adjust the from location - if (event.getFrom().getWorld().getBlockAt(event.getFrom()).getType() != Material.NETHER_PORTAL) { + if (event.getFrom().getWorld().getBlockAt(event.getFrom()).getType() != MVMaterials.NETHER_PORTAL) { Location newloc = this.plugin.getSafeTTeleporter().findPortalBlockNextTo(event.getFrom()); // TODO: Fix this. Currently, we only check for PORTAL blocks. I'll have to figure out what // TODO: we want to do here. diff --git a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java index c348ac3d..720789a5 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java +++ b/src/main/java/com/onarandombox/MultiverseCore/listeners/MVPortalListener.java @@ -10,7 +10,7 @@ package com.onarandombox.MultiverseCore.listeners; import com.dumptruckman.minecraft.util.Logging; import com.onarandombox.MultiverseCore.MultiverseCore; import com.onarandombox.MultiverseCore.api.MultiverseWorld; -import org.bukkit.Material; +import com.onarandombox.MultiverseCore.utils.MVMaterials; import org.bukkit.PortalType; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; @@ -19,8 +19,6 @@ import org.bukkit.event.entity.EntityCreatePortalEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.world.PortalCreateEvent; -import java.util.logging.Level; - /** * A custom listener for portal related events. */ @@ -72,10 +70,10 @@ public class MVPortalListener implements Listener { if (event.getAction() != Action.RIGHT_CLICK_BLOCK) { return; } - if (event.getClickedBlock().getType() != Material.END_PORTAL_FRAME) { + if (event.getClickedBlock().getType() != MVMaterials.END_PORTAL_FRAME) { return; } - if (event.getItem() == null || event.getItem().getType() != Material.ENDER_EYE) { + if (event.getItem() == null || event.getItem().getType() != MVMaterials.ENDER_EYE) { return; } MultiverseWorld world = this.plugin.getMVWorldManager().getMVWorld(event.getPlayer().getWorld()); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/MVMaterials.java b/src/main/java/com/onarandombox/MultiverseCore/utils/MVMaterials.java new file mode 100644 index 00000000..732fcf2f --- /dev/null +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/MVMaterials.java @@ -0,0 +1,28 @@ +package com.onarandombox.MultiverseCore.utils; + +import org.bukkit.Material; + +import static com.onarandombox.MultiverseCore.utils.MaterialConverter.convertTypeString; + +public class MVMaterials { + public static final Material ENDER_EYE = convertTypeString("ENDER_EYE"); + public static final Material END_PORTAL_FRAME = convertTypeString("END_PORTAL_FRAME"); + public static final Material NETHER_PORTAL = convertTypeString("NETHER_PORTAL"); + public static final Material GRASS = convertTypeString("GRASS"); + public static final Material VINE = convertTypeString("VINE"); + public static final Material SNOW = convertTypeString("SNOW"); + public static final Material AIR = convertTypeString("AIR"); + public static final Material WATER = convertTypeString("WATER"); + public static final Material LAVA = convertTypeString("LAVA"); + public static final Material FIRE = convertTypeString("FIRE"); + public static final Material WATER_BUCKET = convertTypeString("WATER_BUCKET"); + public static final Material LAVA_BUCKET = convertTypeString("LAVA_BUCKET"); + public static final Material FLINT_AND_STEEL = convertTypeString("FLINT_AND_STEEL"); + public static final Material WOODEN_AXE = convertTypeString("WOODEN_AXE"); + public static final Material POWERED_RAIL = convertTypeString("POWERED_RAIL"); + public static final Material DETECTOR_RAIL = convertTypeString("DETECTOR_RAIL"); + public static final Material RAIL = convertTypeString("RAIL"); + public static final Material ACTIVATOR_RAIL = convertTypeString("ACTIVATOR_RAIL"); + public static final Material MAP = convertTypeString("MAP"); + public static final Material FILLED_MAP = convertTypeString("FILLED_MAP"); +} diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleBlockSafety.java b/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleBlockSafety.java index 3072d8a8..ff129f2e 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleBlockSafety.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleBlockSafety.java @@ -52,7 +52,7 @@ public class SimpleBlockSafety implements BlockSafety { public boolean isBlockAboveAir(Location l) { Location downOne = l.clone(); downOne.setY(downOne.getY() - 1); - return (downOne.getBlock().getType() == Material.AIR); + return (downOne.getBlock().getType() == MVMaterials.AIR); } /** @@ -90,12 +90,12 @@ public class SimpleBlockSafety implements BlockSafety { return false; } - if (downOne.getBlock().getType() == Material.LAVA) { + if (downOne.getBlock().getType() == MVMaterials.LAVA) { Logging.finer("Error Here (downOne)? (%s)[%s]", downOne.getBlock().getType(), isSolidBlock(downOne.getBlock().getType())); return false; } - if (downOne.getBlock().getType() == Material.FIRE) { + if (downOne.getBlock().getType() == MVMaterials.FIRE) { Logging.finer("There's fire below! (%s)[%s]", actual.getBlock().getType(), isSolidBlock(actual.getBlock().getType())); return false; } @@ -211,10 +211,10 @@ public class SimpleBlockSafety implements BlockSafety { @Override public boolean isEntitiyOnTrack(Location l) { Material currentBlock = l.getBlock().getType(); - return (currentBlock == Material.POWERED_RAIL - || currentBlock == Material.DETECTOR_RAIL - || currentBlock == Material.RAIL - || currentBlock == Material.ACTIVATOR_RAIL); + return (currentBlock == MVMaterials.POWERED_RAIL + || currentBlock == MVMaterials.DETECTOR_RAIL + || currentBlock == MVMaterials.RAIL + || currentBlock == MVMaterials.ACTIVATOR_RAIL); } /** @@ -229,12 +229,12 @@ public class SimpleBlockSafety implements BlockSafety { } Location oneBelow = l.clone(); oneBelow.subtract(0, 1, 0); - if (oneBelow.getBlock().getType() == Material.WATER) { + if (oneBelow.getBlock().getType() == MVMaterials.WATER) { Location twoBelow = oneBelow.clone(); twoBelow.subtract(0, 1, 0); - return (oneBelow.getBlock().getType() == Material.WATER); + return (oneBelow.getBlock().getType() == MVMaterials.WATER); } - if (oneBelow.getBlock().getType() != Material.AIR) { + if (oneBelow.getBlock().getType() != MVMaterials.AIR) { return false; } return hasTwoBlocksofWaterBelow(oneBelow); diff --git a/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleSafeTTeleporter.java b/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleSafeTTeleporter.java index 4ce22348..ea4000fd 100644 --- a/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleSafeTTeleporter.java +++ b/src/main/java/com/onarandombox/MultiverseCore/utils/SimpleSafeTTeleporter.java @@ -9,11 +9,10 @@ package com.onarandombox.MultiverseCore.utils; import com.dumptruckman.minecraft.util.Logging; import com.onarandombox.MultiverseCore.MultiverseCore; -import com.onarandombox.MultiverseCore.api.SafeTTeleporter; import com.onarandombox.MultiverseCore.api.MVDestination; +import com.onarandombox.MultiverseCore.api.SafeTTeleporter; import com.onarandombox.MultiverseCore.destination.InvalidDestination; import com.onarandombox.MultiverseCore.enums.TeleportResult; - import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; @@ -25,8 +24,6 @@ import org.bukkit.entity.Player; import org.bukkit.entity.Vehicle; import org.bukkit.util.Vector; -import java.util.logging.Level; - /** * The default-implementation of {@link SafeTTeleporter}. */ @@ -293,19 +290,19 @@ public class SimpleSafeTTeleporter implements SafeTTeleporter { public Location findPortalBlockNextTo(Location l) { Block b = l.getWorld().getBlockAt(l); Location foundLocation = null; - if (b.getType() == Material.NETHER_PORTAL) { + if (b.getType() == MVMaterials.NETHER_PORTAL) { return l; } - if (b.getRelative(BlockFace.NORTH).getType() == Material.NETHER_PORTAL) { + if (b.getRelative(BlockFace.NORTH).getType() == MVMaterials.NETHER_PORTAL) { foundLocation = getCloserBlock(l, b.getRelative(BlockFace.NORTH).getLocation(), foundLocation); } - if (b.getRelative(BlockFace.SOUTH).getType() == Material.NETHER_PORTAL) { + if (b.getRelative(BlockFace.SOUTH).getType() == MVMaterials.NETHER_PORTAL) { foundLocation = getCloserBlock(l, b.getRelative(BlockFace.SOUTH).getLocation(), foundLocation); } - if (b.getRelative(BlockFace.EAST).getType() == Material.NETHER_PORTAL) { + if (b.getRelative(BlockFace.EAST).getType() == MVMaterials.NETHER_PORTAL) { foundLocation = getCloserBlock(l, b.getRelative(BlockFace.EAST).getLocation(), foundLocation); } - if (b.getRelative(BlockFace.WEST).getType() == Material.NETHER_PORTAL) { + if (b.getRelative(BlockFace.WEST).getType() == MVMaterials.NETHER_PORTAL) { foundLocation = getCloserBlock(l, b.getRelative(BlockFace.WEST).getLocation(), foundLocation); } return foundLocation;