Files
OldSliceMC/patches/server/0029-Add-canDespawn-to-Warden.patch
2024-02-13 21:54:38 -06:00

67 lines
3.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Cryptite <cryptite@gmail.com>
Date: Fri, 23 Jun 2023 08:22:19 -0500
Subject: [PATCH] Add canDespawn to Warden
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
index 09e8445a3f8c6b3ebc852a75a9a25b41a51ba659..a6ef7eda2cecaca50c63801b58ec59d43e1f306a 100644
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
@@ -595,7 +595,7 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
if (generation) entity.generation = true; // Paper - Don't fire sync event during generation
entity.load(nbt);
}, () -> {
- EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.getString("id"));
+ //EntityType.LOGGER.warn("Skipping Entity with id {}", nbt.toString());
});
}
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
index 937f81a859953498abe73bea560c86e6560e1c33..b925176496639524d80de33c2b4e7a42877c4bca 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/Warden.java
@@ -112,6 +112,7 @@ public class Warden extends Monster implements VibrationSystem {
private final VibrationSystem.User vibrationUser = new Warden.VibrationUser();
private VibrationSystem.Data vibrationData = new VibrationSystem.Data();
AngerManagement angerManagement = new AngerManagement(this::canTargetEntity, Collections.emptyList());
+ public boolean canDespawn; // Slice
public Warden(EntityType<? extends Monster> type, Level world) {
super(type, world);
diff --git a/src/main/java/net/minecraft/world/entity/monster/warden/WardenAi.java b/src/main/java/net/minecraft/world/entity/monster/warden/WardenAi.java
index 03f16a5541de6bc95407aaa24741570c1993dc9e..07600fdd32a058d0e3f9828efdc18f5e76448663 100644
--- a/src/main/java/net/minecraft/world/entity/monster/warden/WardenAi.java
+++ b/src/main/java/net/minecraft/world/entity/monster/warden/WardenAi.java
@@ -139,7 +139,13 @@ public class WardenAi {
public static void setDigCooldown(LivingEntity warden) {
if (warden.getBrain().hasMemoryValue(MemoryModuleType.DIG_COOLDOWN)) {
- warden.getBrain().setMemoryWithExpiry(MemoryModuleType.DIG_COOLDOWN, Unit.INSTANCE, 1200L);
+ // Slice start
+ if (warden instanceof Warden nmsWarden && !nmsWarden.canDespawn) {
+ warden.getBrain().setMemory(MemoryModuleType.DIG_COOLDOWN, Unit.INSTANCE);
+ } else {
+ warden.getBrain().setMemoryWithExpiry(MemoryModuleType.DIG_COOLDOWN, Unit.INSTANCE, 1200L);
+ }
+ // Slice end
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java
index c284eb96a1e330078076cbe61f0f6e2ff4ed89bd..b9ffe3d49f0253353fb2b726f974effe18e521ec 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWarden.java
@@ -86,4 +86,11 @@ public class CraftWarden extends CraftMonster implements org.bukkit.entity.Warde
case ANGRY -> AngerLevel.ANGRY;
};
}
+
+ // Slice start
+ @Override
+ public void setCanDespawn(boolean canDespawn) {
+ this.getHandle().canDespawn = canDespawn;
+ }
+ // Slice end
}