From 76f06d4e993e1eee4379a5d86de52da0a5514674 Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Fri, 26 Apr 2024 22:35:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=8E=A9=E5=AE=B6?= =?UTF-8?q?=E5=9D=90=E6=A4=85=E5=AD=90=E6=97=B6=E5=8F=AF=E8=83=BD=E4=BC=9A?= =?UTF-8?q?=E5=8D=A1=E5=9C=A8=E5=9C=B0=E4=B8=8B=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- .../cn/lunadeer/essentialsd/ChairEvent.java | 34 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9043c12..f208728 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ cn.lunadeer EssentialsD - 1.17.2 + 1.17.4 jar EssentialsD diff --git a/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java b/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java index ad277f9..70fd73e 100644 --- a/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java +++ b/src/main/java/cn/lunadeer/essentialsd/ChairEvent.java @@ -17,7 +17,9 @@ import org.bukkit.event.block.Action; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerQuitEvent; +import org.bukkit.event.player.PlayerTeleportEvent; import org.bukkit.util.Vector; +import org.spigotmc.event.entity.EntityDismountEvent; public class ChairEvent implements Listener { @@ -104,6 +106,38 @@ public class ChairEvent implements Listener { event.setUseInteractedBlock(Event.Result.DENY); } + @EventHandler + public void onPassengerLeave(EntityDismountEvent event) { + if (!EssentialsD.config.getChairEnable()) { + return; + } + Entity vehicle = event.getDismounted(); + Entity passenger = event.getEntity(); + if (!(vehicle instanceof ArmorStand)) { + return; + } + if (!(passenger instanceof Player)) { + return; + } + vehicle.remove(); + passenger.teleportAsync(passenger.getLocation().add(0, EssentialsD.config.getChairSitHeight() * -1, 0)); + } + + @EventHandler + public void onPlayerTeleport(PlayerTeleportEvent event) { + if (!EssentialsD.config.getChairEnable()) { + return; + } + Entity vehicle = event.getPlayer().getVehicle(); + if (vehicle == null) { + return; + } + if (!(vehicle instanceof ArmorStand)) { + return; + } + event.setTo(event.getTo().add(0, EssentialsD.config.getChairSitHeight() * -1, 0)); + } + @EventHandler public void onBlockBreak(BlockBreakEvent event) { if (!EssentialsD.config.getChairEnable()) {