diff --git a/src/main/java/fr/efreicraft/eclobby/listeners/AdminPortal.java b/src/main/java/fr/efreicraft/eclobby/listeners/AdminPortal.java index 912f6c0..177bc79 100644 --- a/src/main/java/fr/efreicraft/eclobby/listeners/AdminPortal.java +++ b/src/main/java/fr/efreicraft/eclobby/listeners/AdminPortal.java @@ -4,6 +4,9 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; +import org.bukkit.util.Vector; + +import static fr.efreicraft.eclobby.Main.INSTANCE; public class AdminPortal implements Listener { @EventHandler @@ -12,8 +15,15 @@ public void onGoToPortal(PlayerMoveEvent event) { double x = loc.getX(); double y = loc.getY(); double z = loc.getZ(); - if (x >= -41.5 && y >= 52.0 && y <= 57.0 && z >= -0.7 && z <= 1.7) { - event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), -12.5, 50, 0.5, -90, 0)); + float yaw = loc.getYaw(); + float pitch = loc.getPitch(); + Vector velocity = event.getPlayer().getVelocity().clone(); + if (x >= -42 && x <= -41 && y >= 52.0 && y <= 57.0 && z >= -0.7 && z <= 1.7) { + if (yaw >= 0 && yaw <= 180) { + yaw -= 180; + } + event.getPlayer().teleport(new Location(event.getPlayer().getWorld(), -12.5, y-1, 0.5, yaw, pitch)); + INSTANCE.getServer().getScheduler().runTaskLater(INSTANCE, () -> event.getPlayer().setVelocity(velocity), 1L); } } }