mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-13 10:21:13 +01:00
89d51d5f29
Because this exploit has been widely known for years and has not been fixed by Mojang, we decided that it was worth allowing people to toggle it on/off due to how easy it is to make it configurable. It should be noted that this decision does not promise all future exploits will be configurable.
32 lines
1.5 KiB
Diff
32 lines
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: LemonCaramel <admin@caramel.moe>
|
|
Date: Mon, 10 Apr 2023 20:48:26 +0900
|
|
Subject: [PATCH] Fix NPE on Boat getStatus
|
|
|
|
Boat status is null until the entity is added to the world and the tick() method is called.
|
|
|
|
== AT ==
|
|
public net.minecraft.world.entity.vehicle.Boat getStatus()Lnet/minecraft/world/entity/vehicle/Boat$Status;
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
|
|
index d161cbf9c83cd78593864850b98f688da2c85aa5..e33b1b6fd50a4eea57500cc00dba20d6edcab75d 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftBoat.java
|
|
@@ -88,6 +88,17 @@ public class CraftBoat extends CraftVehicle implements Boat {
|
|
|
|
@Override
|
|
public Status getStatus() {
|
|
+ // Paper start - Fix NPE on Boat getStatus
|
|
+ final net.minecraft.world.entity.vehicle.Boat handle = this.getHandle();
|
|
+ if (handle.status == null) {
|
|
+ if (handle.valid) {
|
|
+ // Don't actually set the status because it would skew the old status check in the next tick
|
|
+ return CraftBoat.boatStatusFromNms(handle.getStatus());
|
|
+ } else {
|
|
+ return Status.NOT_IN_WORLD;
|
|
+ }
|
|
+ }
|
|
+ // Paper end - Fix NPE on Boat getStatus
|
|
return CraftBoat.boatStatusFromNms(this.getHandle().status);
|
|
}
|
|
|