From a370af7eb539c9a576cd4480f79aff9765ea1c2b Mon Sep 17 00:00:00 2001 From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com> Date: Wed, 26 Apr 2023 14:24:29 +0300 Subject: [PATCH] Vanilla parity fix on Folia --- .../java/xyz/hynse/foliaflow/util/SchedulerUtil.java | 2 +- .../java/xyz/hynse/foliaflow/watcher/PortalWatcher.java | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/main/java/xyz/hynse/foliaflow/util/SchedulerUtil.java b/src/main/java/xyz/hynse/foliaflow/util/SchedulerUtil.java index 95b2720..52c4038 100644 --- a/src/main/java/xyz/hynse/foliaflow/util/SchedulerUtil.java +++ b/src/main/java/xyz/hynse/foliaflow/util/SchedulerUtil.java @@ -16,7 +16,7 @@ public class SchedulerUtil { return false; } - private static Boolean isFolia() { + public static Boolean isFolia() { if (IS_FOLIA == null) IS_FOLIA = tryFolia(); return IS_FOLIA; } diff --git a/src/main/java/xyz/hynse/foliaflow/watcher/PortalWatcher.java b/src/main/java/xyz/hynse/foliaflow/watcher/PortalWatcher.java index ed7cdd5..a2202ba 100644 --- a/src/main/java/xyz/hynse/foliaflow/watcher/PortalWatcher.java +++ b/src/main/java/xyz/hynse/foliaflow/watcher/PortalWatcher.java @@ -25,7 +25,7 @@ public class PortalWatcher implements Listener { Vector vel = entity.getVelocity(); Block movingTo = getBlockMovingTo(loc, vel); - if(movingTo != null && movingTo.getType() == Material.END_PORTAL){ + if(movingTo.getType() == Material.END_PORTAL){ Location spawnLoc = movingTo.getLocation(); spawnLoc.add(0.5, 0.5, 0.5); @@ -37,8 +37,11 @@ public class PortalWatcher implements Listener { dummy.setVelocity(dummyVel); // Add vector seems vanilla. - SchedulerUtil.runLaterEntity(dummy, FoliaFlow.instance, - () -> dummy.setVelocity(dummyVel.add(new Vector(0, 0.45, 0))), + SchedulerUtil.runLaterEntity(dummy, FoliaFlow.instance, () -> { + // Portal teleportation on Folia is a bit below vanilla, so we teleport it above + if (SchedulerUtil.isFolia()) dummy.teleportAsync(dummy.getLocation().add(0, 0.5, 0)); + dummy.setVelocity(dummyVel.add(new Vector(0, 0.2, 0))); + }, 2 ); }