diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index 5d776b7f4..fd8572883 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -129,8 +129,6 @@ public class PacketHandlerServer{ itemScriptPackets(type, buffer, player); else if (type == EnumPacketServer.ScriptGlobalGuiDataGet || type == EnumPacketServer.ScriptGlobalGuiDataSave) getScriptsEnabled(type, buffer, player); - else if (type == EnumPacketServer.ServerUpdateSkinOverlays) - updateSkinOverlays(player); else if (item.getItem() == CustomItems.scripter) scriptPackets(type, buffer, player, npc); else if (item.getItem() == Item.getItemFromBlock(CustomItems.waypoint) || item.getItem() == Item.getItemFromBlock(CustomItems.border) || item.getItem() == Item.getItemFromBlock(CustomItems.redstoneBlock)) @@ -170,10 +168,6 @@ public class PacketHandlerServer{ NoppesUtilServer.isGUIOpen(buffer, player); } - public void updateSkinOverlays(EntityPlayerMP player) { - PlayerDataController.instance.getPlayerData(player).skinOverlays.updateClient(); - } - private void getScriptsEnabled(EnumPacketServer type, ByteBuf buffer, EntityPlayerMP player) throws IOException { if (type == EnumPacketServer.ScriptGlobalGuiDataGet) { NBTTagCompound compound = new NBTTagCompound(); diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index aa5999ce6..f8212744c 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -14,6 +14,7 @@ import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.inventory.ContainerPlayer; +import net.minecraft.server.MinecraftServer; import net.minecraft.util.ChatComponentTranslation; import net.minecraft.util.math.BlockPos; import net.minecraft.world.WorldServer; @@ -439,6 +440,12 @@ public class ScriptPlayerEventHandler { } PlayerDataController.instance.getPlayerData(event.player).skinOverlays.updateClient(); + for (Object obj : MinecraftServer.getServer().getConfigurationManager().playerEntityList) { + EntityPlayer player = (EntityPlayer) obj; + if (player.getEntityData().hasKey("SkinOverlayData")) { + PlayerDataController.instance.getPlayerData(player).skinOverlays.updateClient(); + } + } } } diff --git a/src/main/java/noppes/npcs/client/ClientEventHandler.java b/src/main/java/noppes/npcs/client/ClientEventHandler.java index 727f90e9c..adbd78d8e 100644 --- a/src/main/java/noppes/npcs/client/ClientEventHandler.java +++ b/src/main/java/noppes/npcs/client/ClientEventHandler.java @@ -3,6 +3,8 @@ package noppes.npcs.client; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.TickEvent; import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.entity.player.EntityPlayer; import net.minecraftforge.client.event.MouseEvent; import net.minecraftforge.client.event.RenderGameOverlayEvent; import net.minecraftforge.client.event.RenderHandEvent; @@ -58,7 +60,18 @@ public class ClientEventHandler { public void onRenderPlayer(RenderPlayerEvent.Post event) { if (!(event.renderer instanceof RenderCNPCPlayer)) { renderCNPCPlayer.tempRenderPartialTicks = event.partialRenderTick; - renderCNPCPlayer.doRender(event.entityPlayer, 0, 0, 0, 0.0F, event.partialRenderTick); + double d0 = event.entityPlayer.lastTickPosX + (event.entityPlayer.posX - event.entityPlayer.lastTickPosX) * (double)event.partialRenderTick - RenderManager.renderPosX; + double d1 = event.entityPlayer.lastTickPosY + (event.entityPlayer.posY - event.entityPlayer.lastTickPosY) * (double)event.partialRenderTick - RenderManager.renderPosY; + double d2 = event.entityPlayer.lastTickPosZ + (event.entityPlayer.posZ - event.entityPlayer.lastTickPosZ) * (double)event.partialRenderTick - RenderManager.renderPosZ; + float f1 = event.entityPlayer.prevRotationYaw + (event.entityPlayer.rotationYaw - event.entityPlayer.prevRotationYaw) * event.partialRenderTick; + + if (Minecraft.getMinecraft().thePlayer.equals(event.entityPlayer)) { + d0 = 0; + d1 = 0; + d2 = 0; + } + + renderCNPCPlayer.doRender(event.entityPlayer, d0, d1, d2, f1, event.partialRenderTick); } } diff --git a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java index 80254c3eb..4c9e6533c 100644 --- a/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java +++ b/src/main/java/noppes/npcs/client/renderer/RenderCNPCPlayer.java @@ -146,8 +146,6 @@ public class RenderCNPCPlayer extends RenderPlayer { postRenderOverlay(player); } } - } else if(player.getEntityData().hasKey("SkinOverlayData")) { - Client.sendData(EnumPacketServer.ServerUpdateSkinOverlays, new Object[0]); } } } @@ -156,6 +154,10 @@ public class RenderCNPCPlayer extends RenderPlayer { { return -1; } + + protected void passSpecialRender(EntityLivingBase p_77033_1_, double p_77033_2_, double p_77033_4_, double p_77033_6_) {} + + protected void func_96449_a(AbstractClientPlayer p_96449_1_, double p_96449_2_, double p_96449_4_, double p_96449_6_, String p_96449_8_, float p_96449_9_, double p_96449_10_) {} public void renderHand(float partialTicks, int renderPass) { Minecraft mc = Minecraft.getMinecraft(); @@ -350,8 +352,6 @@ public class RenderCNPCPlayer extends RenderPlayer { this.modelBipedMain.bipedRightArm.render(0.0625F); postRenderOverlay(player); } - } else if(player.getEntityData().hasKey("SkinOverlayData")) { - Client.sendData(EnumPacketServer.ServerUpdateSkinOverlays, new Object[0]); } }