9
0
mirror of https://github.com/SparklyPower/SparklyPaper.git synced 2025-12-30 12:29:07 +00:00
Files
SparklyPaperMC/sparklypaper-server/minecraft-patches/features/0014-Add-PlayerMoveControllableVehicleEvent.patch
MrPowerGamerBR 09aebcf7f5 (NOT FINISHED) Update to Paper 1.21.5
Yes, the update is COMPLETELY borked, there are broken patches, it does not compile, there are even diff conflict things inside of patches

This is still very unfinished and you should not use it
2025-04-23 15:36:07 -03:00

43 lines
2.7 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: MrPowerGamerBR <git@mrpowergamerbr.com>
Date: Sat, 4 Jan 2025 23:58:55 -0300
Subject: [PATCH] Add PlayerMoveControllableVehicleEvent
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 3c6f9180059246244dcd52237a85c6715e154422..de161c0101043e0b8511fbee1c15a46a7986acf8 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -581,6 +581,31 @@ public class ServerGamePacketListenerImpl
LOGGER.warn("{} (vehicle of {}) moved wrongly! {}", rootVehicle.getName().getString(), this.player.getName().getString(), Math.sqrt(d7));
}
+ // SparklyPaper start - Add PlayerMoveControllableVehicleEvent
+ org.bukkit.entity.Player craftPlayer = this.getCraftPlayer();
+ org.bukkit.entity.Entity bukkitVehicle = rootVehicle.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(), x, y, z, f, f1),
+ new org.bukkit.Location(craftPlayer.getWorld(), d, d1, d2, f, f1)
+ );
+ if (!playerMoveControllableVehicleEvent.callEvent()) {
+ // Cancelled, move back!
+ rootVehicle.absSnapTo(x, y, z, f, f1);
+ this.player.absSnapTo(x, y, z, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
+ this.send(ClientboundMoveVehiclePacket.fromEntity(rootVehicle));
+ return;
+ }
+ d = playerMoveControllableVehicleEvent.getTo().x();
+ d1 = playerMoveControllableVehicleEvent.getTo().y();
+ d2 = playerMoveControllableVehicleEvent.getTo().z();
+ f = playerMoveControllableVehicleEvent.getTo().getYaw();
+ f1 = playerMoveControllableVehicleEvent.getTo().getPitch();
+ }
+ // SparklyPaper end
+
rootVehicle.absSnapTo(d, d1, d2, f, f1);
this.player.absSnapTo(d, d1, d2, this.player.getYRot(), this.player.getXRot()); // CraftBukkit
// Paper start - optimise out extra getCubes