From 8e9d2fedc5c53bd5f30837df62cafd19ee3fd7c7 Mon Sep 17 00:00:00 2001 From: Kam Date: Mon, 19 Jan 2026 16:29:24 -0500 Subject: [PATCH 1/3] Hitbox Fixes --- src/main/java/noppes/npcs/entity/EntityNPCInterface.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java index bf382e768..5b43aa68a 100644 --- a/src/main/java/noppes/npcs/entity/EntityNPCInterface.java +++ b/src/main/java/noppes/npcs/entity/EntityNPCInterface.java @@ -1297,6 +1297,11 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti this.setRevengeTarget(null); this.deathTime = 0; //fleeingTick = 0; + + // Restore hitbox before moving entity to prevent bounding box validation issues + currentAnimation = EnumAnimation.NONE; + updateHitbox(); + if (ais.returnToStart && !hasOwner() && !this.isRemote()) setLocationAndAngles(getStartXPos(), getStartYPos(), getStartZPos(), rotationYaw, rotationPitch); killedtime = 0; @@ -1310,8 +1315,6 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti } moveEntityWithHeading(0, 0); distanceWalkedModified = 0; - currentAnimation = EnumAnimation.NONE; - updateHitbox(); updateAI = true; ais.movingPos = 0; if (getOwner() != null) { From 9a07bb36a40b3309b2e3d3026fe132bce134c12c Mon Sep 17 00:00:00 2001 From: zeng-github01 <95841646+zeng-github01@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:24:13 +0800 Subject: [PATCH 2/3] Support for loading quest data from legacy CustomNPCs formats (1.6.4) --- dependencies.gradle | 2 +- .../npcs/controllers/data/QuestCategory.java | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/dependencies.gradle b/dependencies.gradle index a7c959872..bde8582b3 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,7 +35,7 @@ */ def embedMixin = !project.hasProperty("nomixin"); dependencies { - runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev") + runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.75-GTNH:dev") runtimeOnlyNonPublishable("curse.maven:Nashorn-374413:2924946") if(embedMixin){ diff --git a/src/main/java/noppes/npcs/controllers/data/QuestCategory.java b/src/main/java/noppes/npcs/controllers/data/QuestCategory.java index c35c41dff..7dcca4cb5 100644 --- a/src/main/java/noppes/npcs/controllers/data/QuestCategory.java +++ b/src/main/java/noppes/npcs/controllers/data/QuestCategory.java @@ -2,6 +2,7 @@ package noppes.npcs.controllers.data; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import net.minecraftforge.common.util.Constants; import noppes.npcs.api.handler.data.IQuest; import noppes.npcs.api.handler.data.IQuestCategory; @@ -21,8 +22,8 @@ public class QuestCategory implements IQuestCategory { public void readNBT(NBTTagCompound nbttagcompound) { id = nbttagcompound.getInteger("Slot"); title = nbttagcompound.getString("Title"); - NBTTagList questList = nbttagcompound.getTagList("Quests", 10); - if (questList != null) { + NBTTagList questList = getFirstValidList(nbttagcompound, Constants.NBT.TAG_COMPOUND, "Quests", "Dialogs"); + if (questList.tagCount() > 0) { for (int ii = 0; ii < questList.tagCount(); ii++) { NBTTagCompound nbttagcompound2 = questList.getCompoundTagAt(ii); Quest quest = new Quest(); @@ -33,6 +34,18 @@ public class QuestCategory implements IQuestCategory { } } + private NBTTagList getFirstValidList(NBTTagCompound nbt, int type, String... keys) { + for (String key : keys) { + if (nbt.hasKey(key, Constants.NBT.TAG_LIST)) { + NBTTagList list = nbt.getTagList(key, type); + if (list.tagCount() > 0) { + return list; + } + } + } + return new NBTTagList(); + } + public NBTTagCompound writeNBT(NBTTagCompound nbttagcompound) { nbttagcompound.setInteger("Slot", id); nbttagcompound.setString("Title", title); From 4e1b4dda586b117aa23730914c35eaf9885bbee2 Mon Sep 17 00:00:00 2001 From: zeng-github01 <95841646+zeng-github01@users.noreply.github.com> Date: Wed, 11 Mar 2026 09:45:38 +0800 Subject: [PATCH 3/3] resolve conflict --- dependencies.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dependencies.gradle b/dependencies.gradle index bde8582b3..a7c959872 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -35,7 +35,7 @@ */ def embedMixin = !project.hasProperty("nomixin"); dependencies { - runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.8.75-GTNH:dev") + runtimeOnlyNonPublishable("com.github.GTNewHorizons:NotEnoughItems:2.5.4-GTNH:dev") runtimeOnlyNonPublishable("curse.maven:Nashorn-374413:2924946") if(embedMixin){