From fc5009bf0d43a9d6ad451effdba58a3912ee9ad8 Mon Sep 17 00:00:00 2001 From: HaHaWTH Date: Fri, 20 Oct 2023 21:40:16 +0800 Subject: [PATCH] Use TeleportUtils --- .../listener/LoginLocationFixListener.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/fr/xephi/authme/listener/LoginLocationFixListener.java b/src/main/java/fr/xephi/authme/listener/LoginLocationFixListener.java index 2b482322..850c2a80 100644 --- a/src/main/java/fr/xephi/authme/listener/LoginLocationFixListener.java +++ b/src/main/java/fr/xephi/authme/listener/LoginLocationFixListener.java @@ -24,6 +24,7 @@ public class LoginLocationFixListener implements Listener { } private static Material material = Material.matchMaterial("PORTAL"); + private final boolean isSmartAsyncTeleport = AuthMe.settings.getProperty(SecuritySettings.SMART_ASYNC_TELEPORT); private final boolean isFixPortalStuck = AuthMe.settings.getProperty(SecuritySettings.LOGIN_LOC_FIX_SUB_PORTAL); private final boolean isFixGroundStuck = AuthMe.settings.getProperty(SecuritySettings.LOGIN_LOC_FIX_SUB_UNDERGROUND); @@ -51,7 +52,11 @@ public class LoginLocationFixListener implements Listener { boolean solved = false; for (BlockFace face : faces) { if (JoinBlock.getRelative(face).getType().equals(Material.AIR) && JoinBlock.getRelative(face).getRelative(BlockFace.UP).getType().equals(Material.AIR)) { - TeleportUtils.teleport(player, JoinBlock.getRelative(face).getLocation().add(0.5, 0.1, 0.5)); + if (isSmartAsyncTeleport) { + TeleportUtils.teleport(player, JoinBlock.getRelative(face).getLocation().add(0.5, 0.1, 0.5)); + } else { + player.teleport(JoinBlock.getRelative(face).getLocation().add(0.5, 0.1, 0.5)); + } solved = true; break; } @@ -78,12 +83,20 @@ public class LoginLocationFixListener implements Listener { if (JoinBlock.getRelative(BlockFace.DOWN).getType().equals(Material.LAVA)) { JoinBlock.getRelative(BlockFace.DOWN).setType(Material.DIRT); } - TeleportUtils.teleport(player, JoinBlock.getLocation().add(0.5, 0.1, 0.5)); + if (isSmartAsyncTeleport) { + TeleportUtils.teleport(player, JoinBlock.getLocation().add(0.5, 0.1, 0.5)); + } else { + player.teleport(JoinBlock.getLocation().add(0.5, 0.1, 0.5)); + } player.sendMessage("§a你被埋住了, 坐标已修正, 下次下线之前请小心!"); break; } if (i == MaxHeight) { - TeleportUtils.teleport(player, JoinBlock.getLocation().add(0.5, 1.1, 0.5)); + if (isSmartAsyncTeleport) { + TeleportUtils.teleport(player, JoinBlock.getLocation().add(0.5, 1.1, 0.5)); + } else { + player.teleport(JoinBlock.getLocation().add(0.5, 1.1, 0.5)); + } player.sendMessage("§a你被埋住了, 坐标无法修正, 只好送你去了最高点, 自求多福吧少年~"); } }