diff --git a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java index 23c2532..1bae699 100644 --- a/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java +++ b/api/src/main/java/net/islandearth/rpgregions/requirements/PreventType.java @@ -9,27 +9,27 @@ import org.bukkit.event.player.PlayerMoveEvent; public enum PreventType { TELEPORT, + TELEPORT_SYNC, PUSH, CANCEL; + private static final String[] SPLIT_VERSION = Bukkit.getBukkitVersion().split("-")[0].split("\\."); + private static final int VERSION_INT = Integer.parseInt(SPLIT_VERSION[1]); + public void prevent(PlayerMoveEvent event) { if (event.getTo() == null) return; Player player = event.getPlayer(); switch (this) { case TELEPORT -> PaperLib.teleportAsync(player, event.getFrom()); + case TELEPORT_SYNC -> player.teleport(event.getFrom()); case PUSH -> player.setVelocity(event.getTo().toVector().subtract(event.getFrom().toVector()).multiply(-3)); case CANCEL -> event.setCancelled(true); } - if (getVersionNumber() <= 17) { + if (VERSION_INT <= 17) { player.spawnParticle(Particle.valueOf("BARRIER"), event.getTo().getBlock().getLocation().add(0.5, 0.5, 0.5), 1); } else { player.spawnParticle(Particle.BLOCK_MARKER, event.getTo().getBlock().getLocation().add(0.5, 0.5, 0.5), 1, Material.BARRIER.createBlockData()); } } - - private int getVersionNumber() { - String[] split = Bukkit.getBukkitVersion().split("-")[0].split("\\."); - return Integer.parseInt(split[1]); - } }