From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: MrPowerGamerBR Date: Sat, 4 Jan 2025 23:58:55 -0300 Subject: [PATCH] Add PlayerMoveControllableVehicleEvent diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java index af4bcc57a9ad361de5da8c62ef7928b728c033de..ac0af5da6646df1cfe66aead3f945a9f77efa5de 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -611,6 +611,31 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl ServerGamePacketListenerImpl.LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", new Object[]{entity.getName().getString(), this.player.getName().getString(), Math.sqrt(d10)}); } + // SparklyPaper start - Add PlayerMoveControllableVehicleEvent + Player craftPlayer = this.getCraftPlayer(); + org.bukkit.entity.Entity bukkitVehicle = entity.getBukkitEntity(); + if (bukkitVehicle instanceof org.bukkit.entity.Vehicle) { + net.sparklypower.sparklypaper.event.player.PlayerMoveControllableVehicleEvent playerMoveControllableVehicleEvent = new net.sparklypower.sparklypaper.event.player.PlayerMoveControllableVehicleEvent( + craftPlayer, + (org.bukkit.entity.Vehicle) bukkitVehicle, + new org.bukkit.Location(craftPlayer.getWorld(), d0, d1, d2, f, f1), + new org.bukkit.Location(craftPlayer.getWorld(), d3, d4, d5, f, f1) + ); + if (!playerMoveControllableVehicleEvent.callEvent()) { + // Cancelled, move back! + entity.absMoveTo(d0, d1, d2, f, f1); + this.player.absMoveTo(d0, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit + this.send(new ClientboundMoveVehiclePacket(entity)); + return; + } + d3 = playerMoveControllableVehicleEvent.getTo().x(); + d4 = playerMoveControllableVehicleEvent.getTo().y(); + d5 = playerMoveControllableVehicleEvent.getTo().z(); + f = playerMoveControllableVehicleEvent.getTo().getYaw(); + f1 = playerMoveControllableVehicleEvent.getTo().getPitch(); + } + // SparklyPaper end + entity.absMoveTo(d3, d4, d5, f, f1); this.player.absMoveTo(d3, d4, d5, this.player.getYRot(), this.player.getXRot()); // CraftBukkit