From 6f3509d12e9dccdb4f253513e13ebaebad181852 Mon Sep 17 00:00:00 2001 From: md_5 Date: Fri, 3 Dec 2021 15:05:20 +1100 Subject: [PATCH] Release POIs when villagers are removed by plugins --- .../net/minecraft/world/entity/npc/EntityVillager.patch | 9 +++++++++ .../org/bukkit/craftbukkit/entity/CraftVillager.java | 7 +++++++ 2 files changed, 16 insertions(+) diff --git a/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch b/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch index fd8b3f2af..b2a64d7c1 100644 --- a/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch +++ b/nms-patches/net/minecraft/world/entity/npc/EntityVillager.patch @@ -58,6 +58,15 @@ Logger logger = EntityVillager.LOGGER; Objects.requireNonNull(logger); +@@ -630,7 +645,7 @@ + super.die(damagesource); + } + +- private void releaseAllPois() { ++ public void releaseAllPois() { + this.releasePoi(MemoryModuleType.HOME); + this.releasePoi(MemoryModuleType.JOB_SITE); + this.releasePoi(MemoryModuleType.POTENTIAL_JOB_SITE); @@ -816,7 +831,12 @@ } diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java index 0b34da11d..69adeeb98 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftVillager.java @@ -38,6 +38,13 @@ public class CraftVillager extends CraftAbstractVillager implements Villager { return EntityType.VILLAGER; } + @Override + public void remove() { + getHandle().releaseAllPois(); + + super.remove(); + } + @Override public Profession getProfession() { return CraftVillager.nmsToBukkitProfession(getHandle().getVillagerData().getProfession());