From c8a3b7825d59fd39a81b13eaa6714178084ca12a Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Sat, 2 Jul 2022 13:07:23 -0500 Subject: [PATCH] Particle packets are only sent to players in the particle's world now. --- .../java/noppes/npcs/NoppesUtilServer.java | 9 +++++++-- .../java/noppes/npcs/client/NoppesUtil.java | 4 ++-- .../npcs/client/PacketHandlerClient.java | 2 +- .../noppes/npcs/scripted/ScriptParticle.java | 11 +++-------- .../npcs/scripted/entity/ScriptEntity.java | 18 ++++++------------ 5 files changed, 19 insertions(+), 25 deletions(-) diff --git a/src/main/java/noppes/npcs/NoppesUtilServer.java b/src/main/java/noppes/npcs/NoppesUtilServer.java index a39f3b1c2..6b4f5ccfb 100644 --- a/src/main/java/noppes/npcs/NoppesUtilServer.java +++ b/src/main/java/noppes/npcs/NoppesUtilServer.java @@ -315,8 +315,13 @@ public class NoppesUtilServer { Server.sendAssociatedData(entity, EnumPacketClient.PARTICLE, entity.posX, entity.posY, entity.posZ, entity.height, entity.width, entity.yOffset, particle); } - public static void spawnScriptedParticle(NBTTagCompound compound){ - Server.sendToAll(EnumPacketClient.SCRIPTED_PARTICLE, compound); + public static void spawnScriptedParticle(NBTTagCompound compound, int dimensionId){ + List list = MinecraftServer.getServer().getConfigurationManager().playerEntityList; + for (EntityPlayer player : list) { + if (player.worldObj.provider.dimensionId == dimensionId) { + Server.sendData((EntityPlayerMP) player, EnumPacketClient.SCRIPTED_PARTICLE, compound); + } + } } public static void deleteNpc(EntityNPCInterface npc,EntityPlayer player) { diff --git a/src/main/java/noppes/npcs/client/NoppesUtil.java b/src/main/java/noppes/npcs/client/NoppesUtil.java index c5e8c972e..7d1b4c1b5 100644 --- a/src/main/java/noppes/npcs/client/NoppesUtil.java +++ b/src/main/java/noppes/npcs/client/NoppesUtil.java @@ -85,7 +85,7 @@ public class NoppesUtil { Client.skinOverlays.put(player.getUniqueID(), skinOverlays); } - public static void spawnScriptedParticle(ByteBuf buffer){ + public static void spawnScriptedParticle(EntityPlayer player, ByteBuf buffer){ Minecraft minecraft = Minecraft.getMinecraft(); NBTTagCompound compound; @@ -97,7 +97,7 @@ public class NoppesUtil { return; } - World worldObj = DimensionManager.getWorld(compound.getInteger("DimensionID")); + World worldObj = player.worldObj; if (worldObj == null) { return; } diff --git a/src/main/java/noppes/npcs/client/PacketHandlerClient.java b/src/main/java/noppes/npcs/client/PacketHandlerClient.java index 0588efb08..fca92c895 100644 --- a/src/main/java/noppes/npcs/client/PacketHandlerClient.java +++ b/src/main/java/noppes/npcs/client/PacketHandlerClient.java @@ -154,7 +154,7 @@ public class PacketHandlerClient extends PacketHandlerServer{ CustomNpcs.proxy.openGui(NoppesUtil.getLastNpc(), gui, buffer.readInt(), buffer.readInt(), buffer.readInt()); } else if(type == EnumPacketClient.SCRIPTED_PARTICLE){ - NoppesUtil.spawnScriptedParticle(buffer); + NoppesUtil.spawnScriptedParticle(player, buffer); } else if(type == EnumPacketClient.PARTICLE){ NoppesUtil.spawnParticle(buffer); diff --git a/src/main/java/noppes/npcs/scripted/ScriptParticle.java b/src/main/java/noppes/npcs/scripted/ScriptParticle.java index 12dddddac..9053206e7 100644 --- a/src/main/java/noppes/npcs/scripted/ScriptParticle.java +++ b/src/main/java/noppes/npcs/scripted/ScriptParticle.java @@ -133,23 +133,18 @@ public class ScriptParticle implements IParticle { NBTTagCompound compound = this.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", entity.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, entity.getWorld().getDimensionID()); } public void spawnInWorld(ScriptWorld world){ NBTTagCompound compound = this.writeToNBT(); - compound.setInteger("DimensionID", world.getDimensionID()); - - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, world.getDimensionID()); } public void spawnInWorld(ScriptWorld world, double x, double y, double z){ NBTTagCompound compound = this.writeToNBT(); - compound.setInteger("DimensionID", world.getDimensionID()); - - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, world.getDimensionID()); } public void setGlows(boolean glows) { this.glows = glows; } diff --git a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java index 22e91a1b4..7164998eb 100644 --- a/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java +++ b/src/main/java/noppes/npcs/scripted/entity/ScriptEntity.java @@ -97,8 +97,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } @Deprecated @@ -139,8 +138,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } @Deprecated @@ -175,8 +173,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } @Deprecated @@ -205,8 +202,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } @Deprecated @@ -230,8 +226,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } @Deprecated @@ -250,8 +245,7 @@ public class ScriptEntity implements IEntity { NBTTagCompound compound = particle.writeToNBT(); compound.setInteger("EntityID", entityID); - compound.setInteger("DimensionID", this.getWorld().getDimensionID()); - NoppesUtilServer.spawnScriptedParticle(compound); + NoppesUtilServer.spawnScriptedParticle(compound, this.getWorld().getDimensionID()); } public void spawnParticle(IParticle entityParticle) { entityParticle.spawnOnEntity(this); }