From 455f2b9fd618a100d39edc3d346213fff7c82d5c Mon Sep 17 00:00:00 2001 From: Kam Date: Mon, 12 Feb 2024 04:10:38 -0500 Subject: [PATCH] getIWorldLoad(int dimensionId) Searches loaded worlds- If not found attempts to search unloaded worlds and force loads them to return an iWorld object --- src/api | 2 +- src/main/java/noppes/npcs/scripted/NpcAPI.java | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/api b/src/api index 021a35e25..a6c43f2e9 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit 021a35e25daa84a3bbbf2825c5bbb55b12fc2c8c +Subproject commit a6c43f2e9124404c541f182bb1b1c9b79ad2ed7e diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index b9aeaf250..f12e4ce88 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -21,6 +21,7 @@ import net.minecraft.item.*; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.ChatComponentText; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; import net.minecraft.util.math.BlockPos; @@ -422,6 +423,22 @@ public class NpcAPI extends AbstractNpcAPI { throw new CustomNPCsException("Unknown dimension id: " + dimensionId); } + public IWorld getIWorldLoad(int dimensionId) { + try { + IWorld iWorld = this.getIWorld(dimensionId); + if(iWorld != null) + return iWorld; + } + catch (CustomNPCsException ignored){} + + WorldServer worldServer = CustomNpcs.getServer().worldServerForDimension(dimensionId); + if (worldServer != null) { + return this.getIWorld(worldServer); + } + + throw new CustomNPCsException("Unknown dimension id: " + dimensionId); + } + public IContainer getIContainer(IInventory inventory) { return new ScriptContainer(inventory); }