diff --git a/src/main/java/re/imc/geysermodelengine/model/BedrockMountControl.java b/src/main/java/re/imc/geysermodelengine/model/BedrockMountControl.java index 0f0938b..9f41327 100644 --- a/src/main/java/re/imc/geysermodelengine/model/BedrockMountControl.java +++ b/src/main/java/re/imc/geysermodelengine/model/BedrockMountControl.java @@ -2,12 +2,14 @@ package re.imc.geysermodelengine.model; import com.comphenix.protocol.wrappers.Pair; import com.ticxo.modelengine.api.ModelEngineAPI; +import com.ticxo.modelengine.api.entity.BukkitEntity; import com.ticxo.modelengine.api.model.ActiveModel; import com.ticxo.modelengine.api.model.bone.type.Mount; import com.ticxo.modelengine.api.mount.controller.MountController; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; +import org.geysermc.floodgate.api.FloodgateApi; import re.imc.geysermodelengine.GeyserModelEngine; public class BedrockMountControl { @@ -17,7 +19,11 @@ public class BedrockMountControl { @Override public void run() { for (Player player : Bukkit.getOnlinePlayers()) { - float pitch = player.getPitch(); + if (!FloodgateApi.getInstance().isFloodgatePlayer(player.getUniqueId())) { + continue; + } + + float pitch = player.getLocation().getPitch(); Pair seat = GeyserModelEngine.getInstance().getDrivers().get(player); if (seat != null) { if (pitch < -30) { @@ -31,9 +37,15 @@ public class BedrockMountControl { } } } - if (pitch > 50) { + if (pitch > 80) { + if (seat.getFirst().getModeledEntity().getBase() instanceof BukkitEntity bukkitEntity) { + if (bukkitEntity.getOriginal().isOnGround()) { + return; + } + } MountController controller = ModelEngineAPI.getMountPairManager() .getController(player.getUniqueId()); + if (controller != null) { MountController.MountInput input = controller.getInput(); if (input != null) { diff --git a/src/main/java/re/imc/geysermodelengine/model/EntityTask.java b/src/main/java/re/imc/geysermodelengine/model/EntityTask.java index 12cef5a..8eadc95 100644 --- a/src/main/java/re/imc/geysermodelengine/model/EntityTask.java +++ b/src/main/java/re/imc/geysermodelengine/model/EntityTask.java @@ -357,10 +357,6 @@ public class EntityTask { setAnimationProperty(1); return 0; } - if (animationProperty.getName().equalsIgnoreCase("spawn")) { - setAnimationProperty(0); - return 0; - } boolean play = false; if (currentAnimationPriority.get() < p) {