From d773e5214c5308bbd461f558b9e17a4839027d5e Mon Sep 17 00:00:00 2001 From: OnyxDarkKnight Date: Thu, 9 Jul 2015 21:33:49 +0100 Subject: - Pentagram now reduces the total health the victim has instead of damaging it (this is to prevent getting infinite hearts); - Fixed server-client sync issues (thanks domi) --- .../jewelrycraft/events/EntityEventHandler.java | 19 ++++++++++--------- .../jewelrycraft/events/PlayerRenderHandler.java | 14 +++++++------- 2 files changed, 17 insertions(+), 16 deletions(-) (limited to 'src/main/java/darkknight/jewelrycraft/events') diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java index 0419c7f..ce2bb25 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -50,6 +50,7 @@ import darkknight.jewelrycraft.item.ItemBaseJewelry; import darkknight.jewelrycraft.item.ItemList; import darkknight.jewelrycraft.network.PacketClearColorCache; import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendClientPlayerInfo; import darkknight.jewelrycraft.network.PacketSendServerPlayersInfo; import darkknight.jewelrycraft.potions.PotionList; import darkknight.jewelrycraft.random.WeightedRandomCurse; @@ -147,7 +148,7 @@ public class EntityEventHandler { playerInfo.setInteger("curseTime", 23000); playerInfo.setBoolean("reselectCurses", false); } - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); if (addedCurses) { JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo()); player.addChatMessage(new ChatComponentText(StatCollector.translateToLocal("curse." + Variables.MODID + ".activated"))); @@ -211,13 +212,13 @@ public class EntityEventHandler { if (!player.worldObj.isRemote && !player.capabilities.isCreativeMode && (float) player.hurtResistantTime <= (float) player.maxHurtResistantTime / 2.0F && !event.source.isUnblockable()) { if (playerInfo.getFloat("WhiteHeart") > 0) { playerInfo.setFloat("WhiteHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); } if (playerInfo.getFloat("BlueHeart") > 0) { float damage = playerInfo.getFloat("BlueHeart") - event.ammount; if (damage >= 0) playerInfo.setFloat("BlueHeart", damage); else playerInfo.setFloat("BlueHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); if (damage < 0) { System.out.println(damage); player.attackEntityFrom(event.source, Math.abs(damage)); @@ -239,7 +240,7 @@ public class EntityEventHandler { float damage = playerInfo.getFloat("BlackHeart") - event.ammount; if (damage >= 0) playerInfo.setFloat("BlackHeart", damage); else playerInfo.setFloat("BlackHeart", 0f); - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); if (damage < 0) player.attackEntityFrom(event.source, Math.abs(damage)); player.hurtResistantTime = player.maxHurtResistantTime; player.hurtTime = player.maxHurtTime = 10; @@ -307,13 +308,12 @@ public class EntityEventHandler { } } } - if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + //if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); if (!player.worldObj.isRemote) { - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); if (addedCurses) { JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo()); - // player.openGui(JewelrycraftMod.instance, 4, player.worldObj, - // 0, 0, 0); addedCurses = false; } } @@ -330,8 +330,9 @@ public class EntityEventHandler { playerInfo.setInteger(cur.getName(), 1); Curse.availableCurses.remove(cur); addedCurses = true; - JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); +// JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo()); + JewelrycraftMod.netWrapper.sendTo(new PacketSendClientPlayerInfo(playerInfo), (EntityPlayerMP)player); } } diff --git a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java index cb4b8c8..0ff7be6 100644 --- a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java @@ -58,11 +58,11 @@ public class PlayerRenderHandler { EntityPlayer player = players.next(); NBTTagCompound playerInfo = (NBTTagCompound) playersInfo.getTag(player.getDisplayName()); if (ConfigHandler.CURSES_ENABLED) for (Curse curse : Curse.getCurseList()) - if (curse.canCurseBeActivated(player.worldObj) && playerInfo.getInteger(curse.getName()) > 0 && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0) curse.playerRender(player, event); + if (curse != null && curse.canCurseBeActivated(player.worldObj) && playerInfo != null && curse.getName() != null && playerInfo.getInteger(curse.getName()) > 0 && event.entityPlayer != null && player != null && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0) curse.playerRender(player, event); int no = 0; ModelRenderer arm = rightArm; for (int i = 0; i <= 9; i++) - if (playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { gem = -1; ingot = -1; if (no > 4) arm = leftArm; @@ -101,13 +101,13 @@ public class PlayerRenderHandler { no++; } for (int i = 10; i <= 13; i++) - if (playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { NBTTagCompound nbt = (NBTTagCompound) playerInfo.getTag("ext" + i); ItemStack item = ItemStack.loadItemStackFromNBT(nbt); if (JewelryNBT.ingot(item) != null) ingotColor[i - 10] = JewelrycraftUtil.getColor(JewelryNBT.ingot(item)); if (JewelryNBT.gem(item) != null) gemColor[i - 10] = JewelrycraftUtil.getColor(JewelryNBT.gem(item)); } - if ((playerInfo.hasKey("ext10") || playerInfo.hasKey("ext11")) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && (playerInfo.hasKey("ext10") || playerInfo.hasKey("ext11")) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { GL11.glPushMatrix(); GL11.glColor4f(1, 1, 1, 1); if (Loader.isModLoaded("alpaca") /*&& fiskfille.alpaca.AlpacaAPI.isAlpacaClient(event.entityPlayer)*/) { @@ -127,7 +127,7 @@ public class PlayerRenderHandler { bracelet.doRender(event.entityPlayer, (float) ingotColor[0], (float) gemColor[0], (float) ingotColor[1], (float) gemColor[1], 0.0F); GL11.glPopMatrix(); } - if ((playerInfo.hasKey("ext12") || playerInfo.hasKey("ext13")) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && (playerInfo.hasKey("ext12") || playerInfo.hasKey("ext13")) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { GL11.glPushMatrix(); GL11.glColor4f(1, 1, 1, 1); if (Loader.isModLoaded("alpaca") /*&& fiskfille.alpaca.AlpacaAPI.isAlpacaClient(event.entityPlayer)*/) { @@ -149,7 +149,7 @@ public class PlayerRenderHandler { } no = 0; for (int i = 14; i <= 16; i++) - if (playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && playerInfo.hasKey("ext" + i) && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { gem = -1; ingot = -1; NBTTagCompound nbt = (NBTTagCompound) playerInfo.getTag("ext" + i); @@ -175,7 +175,7 @@ public class PlayerRenderHandler { GL11.glPopMatrix(); no++; } - if (playerInfo.hasKey("ext17") && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { + if (playerInfo != null && event.entityPlayer != null && player != null && playerInfo.hasKey("ext17") && event.entityPlayer.getDisplayName().equals(player.getDisplayName())) { gem = -1; ingot = -1; NBTTagCompound nbt = (NBTTagCompound) playerInfo.getTag("ext17"); -- cgit v1.2.3