Merge branch 'dev' into syntax-highlighter-unified

This commit is contained in:
Kam committed 2026-02-22 17:16:30 -05:00
commit da2604e3d6
6 files changed
+134 -137

No files matched your search

+1 -1
View File
@@ -6,7 +6,7 @@ plugins {
id "dts.typescript-generator"
}
version = "1.11-beta7"
version = "1.11-beta7.2"
group= "kamkeel.customnpc-plus"
archivesBaseName = "CustomNPC-Plus"
@@ -569,7 +569,7 @@ public class PacketHandler {
DATA_PACKET.registerPacket(new DialogPacket());
DATA_PACKET.registerPacket(new RolePacket());
DATA_PACKET.registerPacket(new WeaponNpcPacket());
// DATA_PACKET.registerPacket(new RequestProperSpawnData());
// DATA_PACKET.registerPacket(new RequestProperSpawnData());
// Data | Script Packets
DATA_PACKET.registerPacket(new ScriptedParticlePacket());
@@ -23,7 +23,7 @@ public enum EnumDataPacket {
DELETE_NPC,
CLONE_NPC,
WEAPON_NPC,
REQUEST_SPAWN_DATA,
// REQUEST_SPAWN_DATA,
// Data
SCROLL_LIST,
@@ -1,127 +1,125 @@
package kamkeel.npcs.network.packets.data;
import cpw.mods.fml.common.FMLCommonHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import io.netty.buffer.ByteBuf;
import kamkeel.npcs.network.AbstractPacket;
import kamkeel.npcs.network.PacketChannel;
import kamkeel.npcs.network.PacketClient;
import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumDataPacket;
import kamkeel.npcs.network.packets.data.npc.UpdateNpcPacket;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.nbt.NBTTagCompound;
import noppes.npcs.LogWriter;
import noppes.npcs.entity.EntityNPCInterface;
import java.io.IOException;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class RequestProperSpawnData extends AbstractPacket {
public static final String packetName = "Data|SpawnData";
private static final int BATCH_LIMIT = 5;
@SideOnly(Side.CLIENT)
private static Set<Integer> entitiesToFix;
@SideOnly(Side.CLIENT)
private static long lastBatchAttemptMillis;
static {
if (FMLCommonHandler.instance().getEffectiveSide().isClient()) {
entitiesToFix = new HashSet<>();
lastBatchAttemptMillis = 0;
}
}
private int entityId;
public RequestProperSpawnData() {}
@SideOnly(Side.CLIENT)
public RequestProperSpawnData(int entityId) {
this.entityId = entityId;
}
public static void clear() {
entitiesToFix.clear();
}
@Override
public Enum getType() {
return EnumDataPacket.REQUEST_SPAWN_DATA;
}
@Override
public PacketChannel getChannel() {
return PacketHandler.DATA_PACKET;
}
@Override
@SideOnly(Side.CLIENT)
public void sendData(ByteBuf out) throws IOException {
out.writeInt(this.entityId);
}
@Override
public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
if (FMLCommonHandler.instance().getEffectiveSide().isClient())
return;
int entityId = in.readInt();
Entity entity = Minecraft.getMinecraft().theWorld.getEntityByID(entityId);
if (entity instanceof EntityNPCInterface) {
EntityNPCInterface npc = (EntityNPCInterface) entity;
NBTTagCompound compound = npc.writeSpawnData();
compound.setInteger("EntityId", npc.getEntityId());
PacketHandler.Instance.sendToPlayer(new UpdateNpcPacket(compound), (EntityPlayerMP) player);
}
}
@SideOnly(Side.CLIENT)
public static void reportMissingData(EntityNPCInterface npc) {
int entityID = npc.getEntityId();
if (npc.immediateSpawnDataFixAttempts++ < 3) {
PacketClient.sendClient(new RequestProperSpawnData(entityID));
} else {
entitiesToFix.add(entityID);
}
}
@SideOnly(Side.CLIENT)
public static boolean canDoBatchUpdate() {
return System.currentTimeMillis() - lastBatchAttemptMillis >= 5000;
}
@SideOnly(Side.CLIENT)
public static void handleBacklog() {
Minecraft mc = Minecraft.getMinecraft();
if (mc == null || mc.theWorld == null || mc.thePlayer == null)
return;
if (entitiesToFix.isEmpty())
return;
// Remove entity checks if they're no longer loaded
entitiesToFix.removeIf( value -> !(Minecraft.getMinecraft().theWorld.getEntityByID(value) instanceof EntityNPCInterface) );
Iterator<Integer> it = entitiesToFix.iterator();
int count = 0;
while (it.hasNext() && count < BATCH_LIMIT) {
PacketClient.sendClient(new RequestProperSpawnData(it.next()));
it.remove();
count++;
}
if (count != 0) {
lastBatchAttemptMillis = System.currentTimeMillis();
}
}
}
//package kamkeel.npcs.network.packets.data;
//
//import cpw.mods.fml.relauncher.Side;
//import cpw.mods.fml.relauncher.SideOnly;
//import io.netty.buffer.ByteBuf;
//import kamkeel.npcs.network.AbstractPacket;
//import kamkeel.npcs.network.PacketChannel;
//import kamkeel.npcs.network.PacketClient;
//import kamkeel.npcs.network.PacketHandler;
//import kamkeel.npcs.network.enums.EnumDataPacket;
//import kamkeel.npcs.network.packets.data.npc.UpdateNpcPacket;
//import net.minecraft.client.Minecraft;
//import net.minecraft.entity.Entity;
//import net.minecraft.entity.player.EntityPlayer;
//import net.minecraft.entity.player.EntityPlayerMP;
//import net.minecraft.nbt.NBTTagCompound;
//import noppes.npcs.entity.EntityNPCInterface;
//
//import java.io.IOException;
//import java.util.HashSet;
//import java.util.Iterator;
//import java.util.Set;
//
//public class RequestProperSpawnData extends AbstractPacket {
// public static final String packetName = "Data|SpawnData";
// private static final int BATCH_LIMIT = 5;
//
// @SideOnly(Side.CLIENT)
// private static final Set<Integer> entitiesToFix = new HashSet<>();
//
// @SideOnly(Side.CLIENT)
// private static long lastBatchAttemptMillis = 0L;
//
// private int entityId;
//
// public RequestProperSpawnData() {}
//
// @SideOnly(Side.CLIENT)
// public RequestProperSpawnData(int entityId) {
// this.entityId = entityId;
// }
//
// @SideOnly(Side.CLIENT)
// public static void clear() {
// entitiesToFix.clear();
// lastBatchAttemptMillis = 0L;
// }
//
// @Override
// public Enum getType() {
// return EnumDataPacket.REQUEST_SPAWN_DATA;
// }
//
// @Override
// public PacketChannel getChannel() {
// return PacketHandler.DATA_PACKET;
// }
//
// @Override
// @SideOnly(Side.CLIENT)
// public void sendData(ByteBuf out) throws IOException {
// out.writeInt(this.entityId);
// }
//
// @Override
// public void receiveData(ByteBuf in, EntityPlayer player) throws IOException {
// if (!(player instanceof EntityPlayerMP) || player.worldObj == null || player.worldObj.isRemote)
// return;
//
// int entityId = in.readInt();
// Entity entity = player.worldObj.getEntityByID(entityId);
// if (entity instanceof EntityNPCInterface) {
// EntityNPCInterface npc = (EntityNPCInterface) entity;
// NBTTagCompound compound = npc.writeSpawnData();
// compound.setInteger("EntityId", npc.getEntityId());
// PacketHandler.Instance.sendToPlayer(new UpdateNpcPacket(compound), (EntityPlayerMP) player);
// }
// }
//
// @SideOnly(Side.CLIENT)
// public static void reportMissingData(EntityNPCInterface npc) {
// if (npc == null || npc.worldObj == null || !npc.worldObj.isRemote)
// return;
//
// int entityID = npc.getEntityId();
// if (entityID <= 0)
// return;
//
// if (npc.immediateSpawnDataFixAttempts++ < 3) {
// PacketClient.sendClient(new RequestProperSpawnData(entityID));
// } else {
// entitiesToFix.add(entityID);
// }
// }
//
// @SideOnly(Side.CLIENT)
// public static boolean canDoBatchUpdate() {
// return System.currentTimeMillis() - lastBatchAttemptMillis >= 5000;
// }
//
// @SideOnly(Side.CLIENT)
// public static void handleBacklog() {
// Minecraft mc = Minecraft.getMinecraft();
// if (mc == null || mc.theWorld == null || mc.thePlayer == null)
// return;
//
// if (entitiesToFix.isEmpty())
// return;
// // Remove entity checks if they're no longer loaded
// entitiesToFix.removeIf(value -> !(mc.theWorld.getEntityByID(value) instanceof EntityNPCInterface));
//
// Iterator<Integer> it = entitiesToFix.iterator();
// int count = 0;
//
// while (it.hasNext() && count < BATCH_LIMIT) {
// PacketClient.sendClient(new RequestProperSpawnData(it.next()));
// it.remove();
// count++;
// }
//
// if (count != 0) {
// lastBatchAttemptMillis = System.currentTimeMillis();
// }
// }
//}
@@ -61,7 +61,7 @@ public class ClientTickHandler {
if (mc.theWorld == null) {
ClientCacheHandler.clearCache();
ClientAbilityState.reset();
// RequestProperSpawnData.clear();
// RequestProperSpawnData.clear();
if (EnergyChargePreviewManager.ClientInstance != null) {
EnergyChargePreviewManager.ClientInstance.clear();
}
@@ -11,7 +11,6 @@ import kamkeel.npcs.network.PacketHandler;
import kamkeel.npcs.network.enums.EnumSoundOperation;
import kamkeel.npcs.network.packets.data.ChatBubblePacket;
import kamkeel.npcs.network.packets.data.QuestCompletionPacket;
import kamkeel.npcs.network.packets.data.RequestProperSpawnData;
import kamkeel.npcs.network.packets.data.SoundManagementPacket;
import kamkeel.npcs.network.packets.data.npc.UpdateNpcPacket;
import kamkeel.npcs.network.packets.data.npc.WeaponNpcPacket;
@@ -231,8 +230,8 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
public FlyingMoveHelper flyMoveHelper = new FlyingMoveHelper(this);
public PathNavigate flyNavigator = new PathNavigateFlying(this, worldObj);
@SideOnly(Side.CLIENT)
public int immediateSpawnDataFixAttempts = 0;
// @SideOnly(Side.CLIENT)
// public int immediateSpawnDataFixAttempts = 0;
public EntityNPCInterface(World world) {
super(world);
@@ -1837,7 +1836,7 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
try {
readSpawnData(ByteBufUtils.readNBT(buf));
} catch (IOException e) {
// if(this.worldObj != null && this.worldObj.isRemote){
// if (this.worldObj != null && this.worldObj.isRemote) {
// RequestProperSpawnData.reportMissingData(this);
// }
}
@@ -1849,8 +1848,8 @@ public abstract class EntityNPCInterface extends EntityCreature implements IEnti
// RequestProperSpawnData.reportMissingData(this);
// return;
// }
immediateSpawnDataFixAttempts = 0;
//
// immediateSpawnDataFixAttempts = 0;
stats.maxHealth = compound.getDouble("MaxHealth");
ais.setWalkingSpeed(compound.getInteger("Speed"));
stats.hideKilledBody = compound.getBoolean("DeadBody");