From daada3cb8a789042cacfa7b3299e707571667804 Mon Sep 17 00:00:00 2001 From: "Luis C.M" <42545778+c0508383@users.noreply.github.com> Date: Wed, 15 Mar 2023 19:17:39 -0500 Subject: [PATCH] IEntity: -Added setDimension function for all entities (not just players now). --- .../npcs/scripted/entity/ScriptEntity.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java index 4c6346aa1..acd8ec079 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java @@ -14,6 +14,7 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagIntArray; import net.minecraft.nbt.NBTTagString; import net.minecraft.util.MathHelper; +import net.minecraft.world.World; import noppes.npcs.NoppesUtilServer; import noppes.npcs.api.INbt; import noppes.npcs.api.IParticle; @@ -423,6 +424,24 @@ public class ScriptEntity implements IEntity { return entity.dimension; } + public void setDimension(int dimensionId) { + IWorld world = NpcAPI.Instance().getIWorld(dimensionId); + if (world != null) { + World mcWorld = world.getMCWorld(); + if (this.entity.riddenByEntity != null) + { + this.entity.riddenByEntity.mountEntity((Entity)null); + } + if (this.entity.ridingEntity != null) + { + this.entity.mountEntity((Entity)null); + } + this.entity.worldObj = mcWorld; + this.entity.dimension = dimensionId; + mcWorld.addLoadedEntities(new ArrayList(Collections.singleton(this.entity))); + } + } + /** * @param range The search range for entities around this entity * @return Array of entities within range