9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-23 00:39:20 +00:00
Files
SakuraMC/patches/server/0023-isPushedByFluid-API.patch
Samsuik 585c9eb091 Discard before changing entity handle
Fixes crash caused by retiring a bukkit entity multiple times
2024-02-11 14:57:22 +00:00

51 lines
1.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samsuik <40902469+Samsuik@users.noreply.github.com>
Date: Fri, 13 Oct 2023 20:02:04 +0100
Subject: [PATCH] isPushedByFluid API
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 5eb654f99381edf1043638bbafc1579c7206f460..dd77e2ec655af6ef1556a618aa530abf2325c850 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -680,6 +680,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
}
// Sakura end
+ public boolean pushedByFluid = true; // Sakura
public boolean isLegacyTrackingEntity = false;
@@ -4236,7 +4237,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
}
public boolean isPushedByFluid() {
- return true;
+ return pushedByFluid; // Sakura
}
public static double getViewScale() {
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index 1c3e1153d08b59d29b3613fc3b50a4780aa7a3ac..859e534d2880f4d14a2d066b4146e32cb1acfa25 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -200,6 +200,18 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
return this.entity.isInWater();
}
+ // Sakura start
+ @Override
+ public boolean isPushedByFluid() {
+ return getHandle().isPushedByFluid();
+ }
+
+ @Override
+ public void setPushedByFluid(boolean push) {
+ getHandle().pushedByFluid = push;
+ }
+ // Sakura end
+
@Override
public World getWorld() {
return this.entity.level().getWorld();