diff options
| author | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-04-23 18:08:44 +0100 |
|---|---|---|
| committer | OnyxDarkKnight <sor1n.iliutza16@gmail.com> | 2015-04-23 18:08:44 +0100 |
| commit | 05f43b228ae0de5bd33ccd303ebbadfaaa464bc7 (patch) | |
| tree | df2067001e0b28c2d40edc5ccde43830616ec8ce /src/main/java/darkknight | |
| parent | 2a7e0a624f482a28af1c770dbcf2a20f52f94f78 (diff) | |
Added new curses!
Diffstat (limited to 'src/main/java/darkknight')
15 files changed, 366 insertions, 174 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java b/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java index 360add0..f708e78 100644 --- a/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java +++ b/src/main/java/darkknight/jewelrycraft/JewelrycraftMod.java @@ -54,9 +54,9 @@ import darkknight.jewelrycraft.network.PacketKeyPressEvent; import darkknight.jewelrycraft.network.PacketRequestLiquidData; import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; import darkknight.jewelrycraft.network.PacketRequestSetSlot; -import darkknight.jewelrycraft.network.PacketSendCurseStats; +import darkknight.jewelrycraft.network.PacketSendServerPlayersInfo; import darkknight.jewelrycraft.network.PacketSendLiquidData; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendClientPlayerInfo; import darkknight.jewelrycraft.proxy.CommonProxy; import darkknight.jewelrycraft.recipes.CraftingRecipes; import darkknight.jewelrycraft.util.JewelrycraftUtil; @@ -138,8 +138,8 @@ public class JewelrycraftMod netWrapper.registerMessage(PacketClearColorCache.class, PacketClearColorCache.class, 2, Side.CLIENT); netWrapper.registerMessage(PacketKeyPressEvent.class, PacketKeyPressEvent.class, 3, Side.SERVER); netWrapper.registerMessage(PacketRequestPlayerInfo.class, PacketRequestPlayerInfo.class, 4, Side.SERVER); - netWrapper.registerMessage(PacketSendPlayerInfo.class, PacketSendPlayerInfo.class, 5, Side.CLIENT); - netWrapper.registerMessage(PacketSendCurseStats.class, PacketSendCurseStats.class, 6, Side.CLIENT); + netWrapper.registerMessage(PacketSendClientPlayerInfo.class, PacketSendClientPlayerInfo.class, 5, Side.CLIENT); + netWrapper.registerMessage(PacketSendServerPlayersInfo.class, PacketSendServerPlayersInfo.class, 6, Side.CLIENT); netWrapper.registerMessage(PacketRequestSetSlot.class, PacketRequestSetSlot.class, 7, Side.SERVER); metadata.autogenerated = false; diff --git a/src/main/java/darkknight/jewelrycraft/curses/Curse.java b/src/main/java/darkknight/jewelrycraft/curses/Curse.java index f833542..75b4056 100644 --- a/src/main/java/darkknight/jewelrycraft/curses/Curse.java +++ b/src/main/java/darkknight/jewelrycraft/curses/Curse.java @@ -3,8 +3,11 @@ package darkknight.jewelrycraft.curses; import java.util.ArrayList; import java.util.Random; import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderPlayerEvent; public class Curse { @@ -77,7 +80,10 @@ public class Curse * @param world * @param player */ - public void deathAction(World world, EntityPlayer player) + public void playerDeathAction(World world, EntityPlayer player) + {} + + public void entityDeathAction(World world, EntityLivingBase target, EntityPlayer player) {} /** @@ -101,6 +107,12 @@ public class Curse public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) {} + public void entityDropItems(EntityPlayer player, Entity target, ArrayList<EntityItem> drops) + {} + + public void playerRender(EntityPlayer player, RenderPlayerEvent.Specials.Post event) + {} + public boolean itemToss() { return false; diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java b/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java index 1a86862..ad80ec8 100644 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseInfamy.java @@ -1,21 +1,27 @@ package darkknight.jewelrycraft.curses; +import org.lwjgl.opengl.GL11; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; +import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.SharedMonsterAttributes; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderPlayerEvent; import darkknight.jewelrycraft.damage.DamageSourceList; import darkknight.jewelrycraft.entities.EntityHalfHeart; import darkknight.jewelrycraft.entities.EntityHeart; +import darkknight.jewelrycraft.entities.renders.RenderHelper; +import darkknight.jewelrycraft.item.render.MaskRender; import darkknight.jewelrycraft.util.JewelrycraftUtil; import darkknight.jewelrycraft.util.PlayerUtils; import darkknight.jewelrycraft.util.Variables; public class CurseInfamy extends Curse { + MaskRender mask = new MaskRender(); public CurseInfamy(int id, String name, int text) { super(id, name, text); @@ -35,6 +41,24 @@ public class CurseInfamy extends Curse } } + public void playerRender(EntityPlayer player, RenderPlayerEvent.Specials.Post event) + { + float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; + float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; + float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + GL11.glRotatef(yawOffset, 0, -1, 0); + GL11.glRotatef(yaw - 90, 0, 1, 0); + GL11.glRotatef(pitch, 0, 0, -1); + GL11.glRotatef(90F, 0, 1F, 0F); + RenderHelper.translateToHeadLevel(player); + GL11.glScalef(1.6f, 1.6f, 1.6f); + GL11.glTranslatef(-0.25F, -0.25F, -0.25F); + mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); + GL11.glPopMatrix(); + } + public String getDescription() { return "What have you done?!"; diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java index e4105c8..e31db02 100644 --- a/src/main/java/darkknight/jewelrycraft/curses/CurseList.java +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseList.java @@ -5,12 +5,19 @@ import darkknight.jewelrycraft.util.Variables; public class CurseList { - private static Curse rotten; - private static Curse flaming; - private static Curse blind; - private static Curse greed; - private static Curse infamy; - private static Curse midasTouch; + public static Curse rotten; + public static Curse flaming; + public static Curse blind; + public static Curse greed; + public static Curse infamy; + public static Curse midasTouch; + public static Curse rabbitsPaw; + public static Curse pentagram; + public static Curse vampireHunger; + public static Curse humbleBundle; + public static Curse deathsTouch; + public static Curse antichrist; + public static Curse moneyEqualsPower; public static void preInit(FMLPreInitializationEvent e) { @@ -20,5 +27,12 @@ public class CurseList blind = new CurseBlind(3, Variables.MODNAME + ":" + "Blind", 0); infamy = new CurseInfamy(4, Variables.MODNAME + ":" + "Infamy", 0); midasTouch = new CurseMidasTouch(5, Variables.MODNAME + ":" + "Midas Touch", 0); + rabbitsPaw = new CurseRabbitsPaw(6, Variables.MODNAME + ":" + "Rabbit's Paw", 0); + pentagram = new CursePentagram(7, Variables.MODNAME + ":" + "Pentagram", 0); +// vampireHunger = new CurseMidasTouch(8, Variables.MODNAME + ":" + "Vampire Hunger", 0); +// humbleBundle = new CurseMidasTouch(9, Variables.MODNAME + ":" + "Humble Bundle", 0); +// deathsTouch = new CurseMidasTouch(10, Variables.MODNAME + ":" + "Deaths Touch", 0); +// antichrist = new CurseMidasTouch(11, Variables.MODNAME + ":" + "Antichrist", 0); +// moneyEqualsPower = new CurseMidasTouch(12, Variables.MODNAME + ":" + "Money Equals Power", 0); } } diff --git a/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java b/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java new file mode 100644 index 0000000..4ea4ee7 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CursePentagram.java @@ -0,0 +1,67 @@ +package darkknight.jewelrycraft.curses; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.client.renderer.texture.TextureManager; +import net.minecraft.entity.Entity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; +import net.minecraft.util.ResourceLocation; +import net.minecraft.world.World; +import net.minecraftforge.client.event.RenderPlayerEvent; +import org.lwjgl.opengl.GL11; +import darkknight.jewelrycraft.item.render.MaskRender; +import darkknight.jewelrycraft.util.Variables; + +public class CursePentagram extends Curse +{ + ResourceLocation curse = new ResourceLocation(Variables.MODID, "textures/gui/curses.png"); + float rot = 0F; + + public CursePentagram(int id, String name, int text) + { + super(id, name, text); + } + + @Override + public void attackedByPlayerAction(World world, EntityPlayer player, Entity target) + {} + + public void playerRender(EntityPlayer player, RenderPlayerEvent.Specials.Post event) + { + GL11.glPushMatrix(); + GL11.glColor4f(1, 1, 1, 1); + Tessellator tessellator = Tessellator.instance; + TextureManager texturemanager = Minecraft.getMinecraft().getTextureManager(); + texturemanager.bindTexture(curse); + GL11.glRotatef(rot, 0F, 1F, 0F); + GL11.glScalef(0.1F, 0.1F, 0.1F); + GL11.glTranslatef(-16F, 15F, -16F); + GL11.glRotatef(90F, 1F, 0F, 0F); + rot+=3F; + if (rot > 360F) rot = 0F; + float f = 0.00390625F; + float f1 = 0.00390625F; + int x = 0; + int y = 0; + int u = 32 * 7; + int v = 0; + int width = 32; + int height = 32; + tessellator.startDrawingQuads(); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + height), (double)0, (double)((float)(u + 0) * f), (double)((float)(v + height) * f1)); + tessellator.addVertexWithUV((double)(x + width), (double)(y + height), (double)0, (double)((float)(u + width) * f), (double)((float)(v + height) * f1)); + tessellator.addVertexWithUV((double)(x + width), (double)(y + 0), (double)0, (double)((float)(u + width) * f), (double)((float)(v + 0) * f1)); + tessellator.addVertexWithUV((double)(x + 0), (double)(y + 0), (double)0, (double)((float)(u + 0) * f), (double)((float)(v + 0) * f1)); + tessellator.draw(); + GL11.glPopMatrix(); + } + + public String getDescription() + { + return "The Dark Lord has misterious ways of showing you his love."; + } +} diff --git a/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java b/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java new file mode 100644 index 0000000..0e831c2 --- /dev/null +++ b/src/main/java/darkknight/jewelrycraft/curses/CurseRabbitsPaw.java @@ -0,0 +1,62 @@ +/** + * + */ +package darkknight.jewelrycraft.curses; + +import java.util.ArrayList; +import darkknight.jewelrycraft.entities.EntityHalfHeart; +import darkknight.jewelrycraft.entities.EntityHeart; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityXPOrb; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.MathHelper; +import net.minecraft.world.World; + +public class CurseRabbitsPaw extends Curse +{ + public CurseRabbitsPaw(int id, String name, int text) + { + super(id, name, text); + } + + @Override + public void entityDropItems(EntityPlayer player, Entity target, ArrayList<EntityItem> drops) + { + for(EntityItem item: drops){ + ItemStack drop = item.getEntityItem().copy(); + drop.stackSize = this.rand.nextInt(4); + if (drop.stackSize > 0) target.entityDropItem(drop, 0.5F); + } + } + + public void entityDeathAction(World world, EntityLivingBase target, EntityPlayer player) + { + String[] types = {"Red", "Blue", "White", "Black"}; + String type = types[rand.nextInt(4)]; + if (rand.nextInt(3) == 0){ + if (type == "White"){ + EntityHeart h = new EntityHalfHeart(world); + h.setType(type); + h.setLocationAndAngles(target.posX, target.posY, target.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + world.spawnEntityInWorld(h); + }else{ + for(int i = 1; i <= 1 + rand.nextInt(1 + (int)(target.getMaxHealth() / 20)); i++){ + EntityHeart[] hearts = {new EntityHeart(world), new EntityHalfHeart(world)}; + EntityHeart h = hearts[rand.nextInt(2)]; + h.setType(type); + h.setLocationAndAngles(target.posX, target.posY, target.posZ, MathHelper.wrapAngleTo180_float(rand.nextFloat() * 360.0F), 0.0F); + world.spawnEntityInWorld(h); + } + } + } + if (rand.nextInt(3) == 0) world.spawnEntityInWorld(new EntityXPOrb(world, target.posX, target.posY, target.posZ, 1 + rand.nextInt(40))); + } + + public String getDescription() + { + return "The Dark One is giving you a gift. Don't lose it."; + } +} diff --git a/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java index 81fe34b..3cd8084 100644 --- a/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/BlockEventHandler.java @@ -21,7 +21,6 @@ public class BlockEventHandler @SubscribeEvent public void onBlockDestroyed(BlockEvent.BreakEvent event) { - // System.out.println("Broken " + event.getResult()); ItemStack item = event.getPlayer().inventory.getCurrentItem(); if (event.block instanceof BlockMidasTouch && item != null && item.getItem().getHarvestLevel(item, "pickaxe") >= event.block.getHarvestLevel(event.blockMetadata)){ TileEntityMidasTouch te = (TileEntityMidasTouch)event.world.getTileEntity(event.x, event.y, event.z); diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java index f9152a7..c608658 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java @@ -1,6 +1,5 @@ package darkknight.jewelrycraft.events; -import ibxm.Player; import java.io.EOFException; import java.io.File; import java.io.FileInputStream; @@ -9,13 +8,11 @@ import java.io.IOException; import java.util.Iterator; import java.util.List; import java.util.Random; -import net.minecraft.client.Minecraft; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLiving; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; -import net.minecraft.init.Items; import net.minecraft.item.ItemStack; import net.minecraft.nbt.CompressedStreamTools; import net.minecraft.nbt.NBTTagCompound; @@ -24,15 +21,13 @@ import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.ChatComponentText; import net.minecraft.util.MathHelper; import net.minecraftforge.client.event.EntityViewRenderEvent; -import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import net.minecraftforge.event.entity.item.ItemTossEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; import net.minecraftforge.event.entity.living.LivingDeathEvent; +import net.minecraftforge.event.entity.living.LivingDropsEvent; import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent; -import net.minecraftforge.event.entity.living.LivingFallEvent; import net.minecraftforge.event.entity.player.PlayerEvent; -import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent; import net.minecraftforge.event.world.WorldEvent; import org.lwjgl.opengl.GL11; import cpw.mods.fml.common.FMLCommonHandler; @@ -40,20 +35,16 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import darkknight.jewelrycraft.JewelrycraftMod; -import darkknight.jewelrycraft.config.ConfigHandler; import darkknight.jewelrycraft.curses.Curse; import darkknight.jewelrycraft.damage.DamageSourceList; import darkknight.jewelrycraft.entities.EntityHalfHeart; import darkknight.jewelrycraft.entities.EntityHeart; import darkknight.jewelrycraft.item.ItemBaseJewelry; -import darkknight.jewelrycraft.item.ItemBracelet; import darkknight.jewelrycraft.item.ItemList; import darkknight.jewelrycraft.network.PacketClearColorCache; import darkknight.jewelrycraft.network.PacketRequestPlayerInfo; -import darkknight.jewelrycraft.network.PacketSendCurseStats; -import darkknight.jewelrycraft.network.PacketSendPlayerInfo; +import darkknight.jewelrycraft.network.PacketSendServerPlayersInfo; import darkknight.jewelrycraft.util.BlockUtils; -import darkknight.jewelrycraft.util.JewelryNBT; import darkknight.jewelrycraft.util.JewelrycraftUtil; import darkknight.jewelrycraft.util.PlayerUtils; import darkknight.jewelrycraft.util.Variables; @@ -63,6 +54,8 @@ import darkknight.jewelrycraft.util.Variables; */ public class EntityEventHandler { + int updateTime = 0; + /** * @param event */ @@ -110,6 +103,7 @@ public class EntityEventHandler EntityPlayer player = (EntityPlayer)entity; NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender); + if (updateTime > 0) updateTime--; if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){ player.motionX *= 0D; player.motionZ *= 0D; @@ -124,7 +118,7 @@ public class EntityEventHandler if (playerInfo.hasKey("ext" + i)){ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i); ItemStack item = ItemStack.loadItemStackFromNBT(nbt); - if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); + if (item != null) ((ItemBaseJewelry)item.getItem()).action(item, player); } if (!player.worldObj.isRemote){ if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){ @@ -142,9 +136,9 @@ public class EntityEventHandler JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false); - if (playerInfo.getBoolean("sendInfo")){ - JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats()); - playerInfo.setBoolean("sendInfo", false); + if (updateTime == 0){ + JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo()); + updateTime = 200; } for(Curse curse: Curse.getCurseList()) if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player); @@ -152,6 +146,17 @@ public class EntityEventHandler } } + @SubscribeEvent + public void onEntityLivingDropItems(LivingDropsEvent event) + { + if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDropItems(player, event.entityLiving, event.drops); + } + } + /** * @param event */ @@ -259,10 +264,10 @@ public class EntityEventHandler playerInfo.setBoolean("reselectCurses", false); } } - playerInfo.setBoolean("sendInfo", true); + playerInfo.setFloat("BlueHeart", 0f); playerInfo.setFloat("BlackHeart", 0f); - playerInfo.setFloat("WhiteHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); for(Curse curse: Curse.getCurseList()) if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player); } @@ -281,7 +286,7 @@ public class EntityEventHandler Curse cur = Curse.availableCurses.get(no); playerInfo.setInteger(cur.getName(), 1); Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); + } } @@ -291,7 +296,7 @@ public class EntityEventHandler if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){ playerInfo.setInteger(cur.getName(), grade); Curse.availableCurses.remove(cur); - playerInfo.setBoolean("sendInfo", true); + } } @@ -351,13 +356,19 @@ public class EntityEventHandler } } } + if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){ + EntityPlayer player = (EntityPlayer)event.source.getEntity(); + NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDeathAction(player.worldObj, event.entityLiving, player); + } } if (entity instanceof EntityPlayer){ EntityPlayer player = (EntityPlayer)entity; NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); playerInfo.setFloat("BlueHeart", 0f); playerInfo.setFloat("BlackHeart", 0f); - playerInfo.setFloat("WhiteHeart", 0f); + playerInfo.setFloat("WhiteHeart", 0f); if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){ for(Curse l: Curse.getCurseList()){ if (playerInfo.getInteger(l.getName()) == 1){ @@ -367,9 +378,9 @@ public class EntityEventHandler } if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } - playerInfo.setBoolean("sendInfo", true); + for(Curse curse: Curse.getCurseList()) - if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player); + if (playerInfo.getInteger(curse.getName()) > 0) curse.playerDeathAction(player.worldObj, player); } if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo()); } diff --git a/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java b/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java index 9919a3f..dea04f9 100644 --- a/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/EventCommonHandler.java @@ -1,7 +1,13 @@ package darkknight.jewelrycraft.events; +import net.minecraft.nbt.NBTTagCompound; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent; +import cpw.mods.fml.common.gameevent.TickEvent; +import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.relauncher.Side; +import darkknight.jewelrycraft.util.PlayerUtils; +import darkknight.jewelrycraft.util.Variables; /** * @author Sorin @@ -12,6 +18,10 @@ public class EventCommonHandler @SubscribeEvent public void onItemCrafted(PlayerEvent.ItemCraftedEvent event) { -// System.out.println(event.crafting + " " + event.craftMatrix.getInventoryName()); + } + + @SubscribeEvent + public void onPlayerTick(TickEvent.PlayerTickEvent event) + { } } diff --git a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java index 3ff5ed4..c5595fa 100644 --- a/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java +++ b/src/main/java/darkknight/jewelrycraft/events/PlayerRenderHandler.java @@ -11,6 +11,8 @@ import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.event.RenderPlayerEvent; import org.lwjgl.opengl.GL11; import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import darkknight.jewelrycraft.curses.Curse; +import darkknight.jewelrycraft.curses.CurseList; import darkknight.jewelrycraft.entities.renders.RenderHelper; import darkknight.jewelrycraft.item.render.BraceletRender; import darkknight.jewelrycraft.item.render.EarringsRender; @@ -22,36 +24,22 @@ import darkknight.jewelrycraft.util.Variables; public class PlayerRenderHandler { - MaskRender mask = new MaskRender(); EarringsRender earrings = new EarringsRender(); BraceletRender bracelet = new BraceletRender(); - public static String[] infamyCache = new String[]{}; + public static NBTTagCompound playersInfo = new NBTTagCompound(); @SubscribeEvent public void renderScreen(RenderPlayerEvent.Specials.Post event) { ModelBiped main = event.renderer.modelBipedMain; Iterator<EntityPlayer> players = event.entityPlayer.worldObj.playerEntities.iterator(); - if (infamyCache != null){ + if (playersInfo != null){ while (players.hasNext()){ EntityPlayer player = players.next(); - NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID); - if (checkPlayerInfamy(player.getDisplayName()) && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0){ - float yaw = player.prevRotationYawHead + (player.rotationYawHead - player.prevRotationYawHead) * event.partialRenderTick; - float yawOffset = player.prevRenderYawOffset + (player.renderYawOffset - player.prevRenderYawOffset) * event.partialRenderTick; - float pitch = player.prevRotationPitch + (player.rotationPitch - player.prevRotationPitch) * event.partialRenderTick; - GL11.glPushMatrix(); - GL11.glColor4f(1, 1, 1, 1); - GL11.glRotatef(yawOffset, 0, -1, 0); - GL11.glRotatef(yaw - 90, 0, 1, 0); - GL11.glRotatef(pitch, 0, 0, -1); - GL11.glRotatef(90F, 0, 1F, 0F); - RenderHelper.translateToHeadLevel(player); - GL11.glScalef(1.6f, 1.6f, 1.6f); - GL11.glTranslatef(-0.25F, -0.25F, -0.25F); - mask.doRender(event.entityPlayer, 0F, 0F, 0F, 0F, 0F); - GL11.glPopMatrix(); - } + NBTTagCompound playerInfo = (NBTTagCompound)playersInfo.getTag(player.getDisplayName()); + for(Curse curse: Curse.getCurseList()) + if (playerInfo.getInteger(curse.getName()) > 0 && event.entityPlayer.getDisplayName().equals(player.getDisplayName()) && playerInfo.getInteger("cursePoints") > 0) + curse.playerRender(player, event); if (playerInfo.hasKey("ext17") && event.entityPlayer.getDisplayName().equals(player.getDisplayName())){ NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext17"); ItemStack item = ItemStack.loadItemStackFromNBT(nbt); @@ -115,8 +103,8 @@ public class PlayerRenderHandler */ private boolean checkPlayerInfamy(String string) { - for(int i = 0; i < infamyCache.length; i++) - if (infamyCache[i].equals(string)) return true; + NBTTagCompound playerInfo = (NBTTagCompound)playersInfo.getTag(string); + if(playerInfo.getInteger(CurseList.infamy.getName()) > 0) return true; return false; } } diff --git a/src/main/java/darkknight/jewelrycraft/item/ItemGoldObj.java b/src/main/java/darkknight/jewelrycraft/item/ItemGoldObj.java index 20bc0a8..8b87de0 100644 --- a/src/main/java/darkknight/jewelrycraft/item/ItemGoldObj.java +++ b/src/main/java/darkknight/jewelrycraft/item/ItemGoldObj.java @@ -48,7 +48,7 @@ public class ItemGoldObj extends Item public String getItemStackDisplayName(ItemStack stack) { - return "Golden " + ((JewelryNBT.item(stack) != null) ? JewelryNBT.item(stack).getDisplayName() : "Object"); + return "Golden " + ((Item.getItemById(Integer.valueOf(stack.getTagCompound().getTag("target").toString().split(",")[0].substring(4).replace("s", ""))) != null && stack != null && JewelryNBT.item(stack) != null) ? JewelryNBT.item(stack).getDisplayName() : "Object"); } public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean displayInfo) diff --git a/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java b/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java index a150ae0..9b12602 100644 --- a/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java +++ b/src/main/java/darkknight/jewelrycraft/item/render/ItemRender.java @@ -1,6 +1,7 @@ package darkknight.jewelrycraft.item.render; import net.minecraft.block.Block; +import net.minecraft.block.BlockAir; import net.minecraft.block.BlockAnvil; import net.minecraft.block.BlockHopper; import net.minecraft.client.Minecraft; @@ -76,17 +77,21 @@ public class ItemRender implements IItemRenderer @Override public void renderItem(ItemRenderType type, ItemStack item, Object ... data) { - if (render != null && entity != null && JewelryNBT.item(item) == null){ - if (type == IItemRenderer.ItemRenderType.ENTITY){ - GL11.glRotatef(180f, 0f, 1f, 0f); - GL11.glTranslatef(-0.5f, -0.5f, -0.4f); + if (item != null){ + if (render != null && entity != null && JewelryNBT.item(item) == null){ + if (type == IItemRenderer.ItemRenderType.ENTITY){ + GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glTranslatef(-0.5f, -0.5f, -0.4f); + } + render.renderTileEntityAt(entity, 0.0D, 0.0D, 0.0D, 0.0F); + }else if (JewelryNBT.item(item) != null){ + GL11.glPushMatrix(); + GL11.glColor3f(1F, 1F, 0F); + if(Item.getItemById(Integer.valueOf(item.getTagCompound().getTag("target").toString().split(",")[0].substring(4).replace("s", ""))) != null) + renderItem(Minecraft.getMinecraft().thePlayer, JewelryNBT.item(item), 0, type); + else renderItem(Minecraft.getMinecraft().thePlayer, new ItemStack(Blocks.end_portal), 0, type);; + GL11.glPopMatrix(); } - render.renderTileEntityAt(entity, 0.0D, 0.0D, 0.0D, 0.0F); - }else if (JewelryNBT.item(item) != null){ - GL11.glPushMatrix(); - GL11.glColor3f(1F, 1F, 0F); - renderItem(Minecraft.getMinecraft().thePlayer, JewelryNBT.item(item), 0, type); - GL11.glPopMatrix(); } } @@ -94,100 +99,101 @@ public class ItemRender implements IItemRenderer { GL11.glPushMatrix(); TextureManager texturemanager = this.mc.getTextureManager(); - Item item = itemStack.getItem(); - Block block = Block.getBlockFromItem(item); - IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(itemStack, type); - if (customRenderer != null){ - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - if (type.equals(type.EQUIPPED)) GL11.glTranslatef(0.7F, 0.55F, 0.55F); - ForgeHooksClient.renderEquippedItem(type, customRenderer, renderBlocksIr, entity, itemStack); - }else if (itemStack.getItemSpriteNumber() == 0 && item instanceof ItemBlock && RenderBlocks.renderItemIn3d(block.getRenderType())){ - texturemanager.bindTexture(texturemanager.getResourceLocation(0)); - if (type.equals(type.EQUIPPED)) GL11.glTranslatef(0.5F, 0.5F, 0.5F); - if (itemStack != null && block != null && block.getRenderBlockPass() != 0){ - GL11.glDepthMask(false); - renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); - GL11.glDepthMask(true); + if (itemStack != null){ + Item item = itemStack.getItem(); + Block block = Block.getBlockFromItem(item); + IItemRenderer customRenderer = MinecraftForgeClient.getItemRenderer(itemStack, type); + if (customRenderer != null){ + texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); + if (type.equals(type.EQUIPPED)) GL11.glTranslatef(0.7F, 0.55F, 0.55F); + ForgeHooksClient.renderEquippedItem(type, customRenderer, renderBlocksIr, entity, itemStack); + }else if (itemStack.getItemSpriteNumber() == 0 && item instanceof ItemBlock && RenderBlocks.renderItemIn3d(block.getRenderType())){ + texturemanager.bindTexture(texturemanager.getResourceLocation(0)); + if (type.equals(type.EQUIPPED)) GL11.glTranslatef(0.5F, 0.5F, 0.5F); + if (itemStack != null && block != null && block.getRenderBlockPass() != 0){ + GL11.glDepthMask(false); + renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); + GL11.glDepthMask(true); + }else{ + renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); + } }else{ - renderBlockAsItem(block, itemStack.getItemDamage(), 1.0F); - } - }else{ - IIcon iicon = itemStack.getIconIndex(); - if (iicon == null){ - GL11.glPopMatrix(); - return; - } - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - TextureUtil.func_152777_a(false, false, 1.0F); - Tessellator tessellator = Tessellator.instance; - float f = iicon.getMinU(); - float f1 = iicon.getMaxU(); - float f2 = iicon.getMinV(); - float f3 = iicon.getMaxV(); - float f4 = 0.0F; - float f5 = 0.3F; - GL11.glEnable(GL12.GL_RESCALE_NORMAL); - float f6 = 1.6F; - GL11.glScalef(f6, f6, f6); - if(type.equals(type.ENTITY)){ - GL11.glTranslatef(0.0F, 0.0265F, 0.0F); - GL11.glRotatef(-30F, 0.0F, 0.0F, 1.0F); - GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); - GL11.glScalef(0.625F, 0.625F, 0.625F); - } - if (!type.equals(type.EQUIPPED_FIRST_PERSON)){ - GL11.glRotatef(45f, 0f, 1f, 0f); - GL11.glRotatef(180f, 0f, 1f, 0f); - GL11.glRotatef(30f, 1f, 0f, 0f); - if (type.equals(type.EQUIPPED)){ - GL11.glRotatef(35f, 1f, 0f, 0f); - GL11.glTranslatef(0F, -0.15F, -0.6F); + IIcon iicon = itemStack.getIconIndex(); + if (iicon == null){ + GL11.glPopMatrix(); + return; } - GL11.glTranslatef(-0.5F, -0.5F, 0.0F); - } - else if(type.equals(type.EQUIPPED_FIRST_PERSON)){ - GL11.glTranslatef(-0.35F, 0.4F, 0.93F); - GL11.glRotatef(45f, 0f, 1f, 0f); - GL11.glRotatef(-25f, 0f, 0f, 1f); - } - if (itemStack.getItem().requiresMultipleRenderPasses()){ - for(int x = 0; x < itemStack.getItem().getRenderPasses(itemStack.getItemDamage()); x++){ - iicon = itemStack.getItem().getIcon(itemStack, x); - f = iicon.getMinU(); - f1 = iicon.getMaxU(); - f2 = iicon.getMinV(); - f3 = iicon.getMaxV(); + texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); + TextureUtil.func_152777_a(false, false, 1.0F); + Tessellator tessellator = Tessellator.instance; + float f = iicon.getMinU(); + float f1 = iicon.getMaxU(); + float f2 = iicon.getMinV(); + float f3 = iicon.getMaxV(); + float f4 = 0.0F; + float f5 = 0.3F; + GL11.glEnable(GL12.GL_RESCALE_NORMAL); + float f6 = 1.6F; + GL11.glScalef(f6, f6, f6); + if (type.equals(type.ENTITY)){ + GL11.glTranslatef(0.0F, 0.0265F, 0.0F); + GL11.glRotatef(-30F, 0.0F, 0.0F, 1.0F); + GL11.glRotatef(45F, 0.0F, 1.0F, 0.0F); + GL11.glScalef(0.625F, 0.625F, 0.625F); + } + if (!type.equals(type.EQUIPPED_FIRST_PERSON)){ + GL11.glRotatef(45f, 0f, 1f, 0f); + GL11.glRotatef(180f, 0f, 1f, 0f); + GL11.glRotatef(30f, 1f, 0f, 0f); + if (type.equals(type.EQUIPPED)){ + GL11.glRotatef(35f, 1f, 0f, 0f); + GL11.glTranslatef(0F, -0.15F, -0.6F); + } + GL11.glTranslatef(-0.5F, -0.5F, 0.0F); + }else if (type.equals(type.EQUIPPED_FIRST_PERSON)){ + GL11.glTranslatef(-0.35F, 0.4F, 0.93F); + GL11.glRotatef(45f, 0f, 1f, 0f); + GL11.glRotatef(-25f, 0f, 0f, 1f); + } + if (itemStack.getItem().requiresMultipleRenderPasses()){ + for(int x = 0; x < itemStack.getItem().getRenderPasses(itemStack.getItemDamage()); x++){ + iicon = itemStack.getItem().getIcon(itemStack, x); + f = iicon.getMinU(); + f1 = iicon.getMaxU(); + f2 = iicon.getMinV(); + f3 = iicon.getMaxV(); + ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + } + }else{ ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); } - }else{ - ItemRenderer.renderItemIn2D(tessellator, f1, f2, f, f3, iicon.getIconWidth(), iicon.getIconHeight(), 0.0625F); + GL11.glDepthFunc(GL11.GL_EQUAL); + texturemanager.bindTexture(RES_ITEM_GLINT); + GL11.glEnable(GL11.GL_BLEND); + OpenGlHelper.glBlendFunc(768, 1, 1, 0); + GL11.glMatrixMode(GL11.GL_TEXTURE); + GL11.glPushMatrix(); + float f8 = 0.325F; + GL11.glScalef(f8, f8, f8); + GL11.glTranslatef(17F, 0.0F, 0.0F); + GL11.glRotatef(-30.0F, 0.0F, 0.0F, 1.0F); + GL11.glColor3f(1F, 1F, 0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); + GL11.glPopMatrix(); + GL11.glPushMatrix(); + GL11.glScalef(f8, f8, f8); + float f9 = (float)(Minecraft.getSystemTime() % 30000L) / 30000.0F * 8.0F; + GL11.glTranslatef(-f9, 0.0F, 0.0F); + GL11.glRotatef(30.0F, 0.0F, 0.0F, 1.0F); + ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); + GL11.glPopMatrix(); + GL11.glMatrixMode(GL11.GL_MODELVIEW); + GL11.glDisable(GL11.GL_BLEND); + GL11.glDepthFunc(GL11.GL_LEQUAL); + GL11.glDisable(GL12.GL_RESCALE_NORMAL); + texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); + TextureUtil.func_147945_b(); } - GL11.glDepthFunc(GL11.GL_EQUAL); - texturemanager.bindTexture(RES_ITEM_GLINT); - GL11.glEnable(GL11.GL_BLEND); - OpenGlHelper.glBlendFunc(768, 1, 1, 0); - GL11.glMatrixMode(GL11.GL_TEXTURE); - GL11.glPushMatrix(); - float f8 = 0.325F; - GL11.glScalef(f8, f8, f8); - GL11.glTranslatef(17F, 0.0F, 0.0F); - GL11.glRotatef(-30.0F, 0.0F, 0.0F, 1.0F); - GL11.glColor3f(1F, 1F, 0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); - GL11.glPopMatrix(); - GL11.glPushMatrix(); - GL11.glScalef(f8, f8, f8); - float f9 = (float)(Minecraft.getSystemTime() % 30000L) / 30000.0F * 8.0F; - GL11.glTranslatef(-f9, 0.0F, 0.0F); - GL11.glRotatef(30.0F, 0.0F, 0.0F, 1.0F); - ItemRenderer.renderItemIn2D(tessellator, 0.0F, 0.0F, 1.0F, 1.0F, 256, 256, 0.0625F); - GL11.glPopMatrix(); - GL11.glMatrixMode(GL11.GL_MODELVIEW); - GL11.glDisable(GL11.GL_BLEND); - GL11.glDepthFunc(GL11.GL_LEQUAL); - GL11.glDisable(GL12.GL_RESCALE_NORMAL); - texturemanager.bindTexture(texturemanager.getResourceLocation(itemStack.getItemSpriteNumber())); - TextureUtil.func_147945_b(); } GL11.glPopMatrix(); } diff --git a/src/main/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java b/src/main/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java index e6c7b40..0e48968 100644 --- a/src/main/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java +++ b/src/main/java/darkknight/jewelrycraft/network/PacketRequestPlayerInfo.java @@ -24,7 +24,7 @@ public class PacketRequestPlayerInfo implements IMessage, IMessageHandler<Packet @Override public IMessage onMessage(PacketRequestPlayerInfo message, MessageContext ctx) { - return new PacketSendPlayerInfo(PlayerUtils.getModPlayerPersistTag(ctx.getServerHandler().playerEntity, Variables.MODID)); + return new PacketSendClientPlayerInfo(PlayerUtils.getModPlayerPersistTag(ctx.getServerHandler().playerEntity, Variables.MODID)); } /** diff --git a/src/main/java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java b/src/main/java/darkknight/jewelrycraft/network/PacketSendClientPlayerInfo.java index e2f66a0..05567a0 100644 --- a/src/main/java/darkknight/jewelrycraft/network/PacketSendPlayerInfo.java +++ b/src/main/java/darkknight/jewelrycraft/network/PacketSendClientPlayerInfo.java @@ -8,14 +8,14 @@ import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import darkknight.jewelrycraft.events.ScreenHandler; -public class PacketSendPlayerInfo implements IMessage, IMessageHandler<PacketSendPlayerInfo, IMessage> +public class PacketSendClientPlayerInfo implements IMessage, IMessageHandler<PacketSendClientPlayerInfo, IMessage> { public NBTTagCompound tagCompound; /** * @param tagCompound */ - public PacketSendPlayerInfo(NBTTagCompound tagCompound) + public PacketSendClientPlayerInfo(NBTTagCompound tagCompound) { this.tagCompound = tagCompound; } @@ -23,7 +23,7 @@ public class PacketSendPlayerInfo implements IMessage, IMessageHandler<PacketSen /** * */ - public PacketSendPlayerInfo() + public PacketSendClientPlayerInfo() {} /** @@ -32,7 +32,7 @@ public class PacketSendPlayerInfo implements IMessage, IMessageHandler<PacketSen * @return */ @Override - public IMessage onMessage(PacketSendPlayerInfo message, MessageContext ctx) + public IMessage onMessage(PacketSendClientPlayerInfo message, MessageContext ctx) { ScreenHandler.tagCache = message.tagCompound; return null; diff --git a/src/main/java/darkknight/jewelrycraft/network/PacketSendCurseStats.java b/src/main/java/darkknight/jewelrycraft/network/PacketSendServerPlayersInfo.java index 0559f17..c87bf81 100644 --- a/src/main/java/darkknight/jewelrycraft/network/PacketSendCurseStats.java +++ b/src/main/java/darkknight/jewelrycraft/network/PacketSendServerPlayersInfo.java @@ -3,12 +3,11 @@ */ package darkknight.jewelrycraft.network; +import io.netty.buffer.ByteBuf; import java.util.Iterator; -import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.server.MinecraftServer; -import io.netty.buffer.ByteBuf; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; @@ -21,9 +20,9 @@ import darkknight.jewelrycraft.util.Variables; * @author Sorin * */ -public class PacketSendCurseStats implements IMessage, IMessageHandler<PacketSendCurseStats, IMessage> +public class PacketSendServerPlayersInfo implements IMessage, IMessageHandler<PacketSendServerPlayersInfo, IMessage> { - public PacketSendCurseStats() + public PacketSendServerPlayersInfo() { } @@ -34,7 +33,7 @@ public class PacketSendCurseStats implements IMessage, IMessageHandler<PacketSen * @return */ @Override - public IMessage onMessage(PacketSendCurseStats message, MessageContext ctx) + public IMessage onMessage(PacketSendServerPlayersInfo message, MessageContext ctx) { return null; } @@ -45,11 +44,11 @@ public class PacketSendCurseStats implements IMessage, IMessageHandler<PacketSen @Override public void fromBytes(ByteBuf buf) { - String temp = ByteBufUtils.readUTF8String(buf); - if (temp != "") - PlayerRenderHandler.infamyCache = temp.split(";"); + NBTTagCompound temp = ByteBufUtils.readTag(buf); + if (temp != null) + PlayerRenderHandler.playersInfo = temp; else - PlayerRenderHandler.infamyCache = new String[] { }; + PlayerRenderHandler.playersInfo = new NBTTagCompound(); } /** @@ -60,12 +59,12 @@ public class PacketSendCurseStats implements IMessage, IMessageHandler<PacketSen { Iterator<EntityPlayer> players = MinecraftServer.getServer().getConfigurationManager().playerEntityList.iterator(); String infamyPlayers = ""; + NBTTagCompound nbt = new NBTTagCompound(); while (players.hasNext()) { EntityPlayer current = players.next(); - if(PlayerUtils.getModPlayerPersistTag(current, Variables.MODID).getInteger(Variables.MODNAME + ":" + "Infamy") > 0) - infamyPlayers = infamyPlayers + (infamyPlayers == "" ? "" : ";") + current.getDisplayName(); + nbt.setTag(current.getDisplayName(), PlayerUtils.getModPlayerPersistTag(current, Variables.MODID)); } - ByteBufUtils.writeUTF8String(buf, infamyPlayers); + ByteBufUtils.writeTag(buf, nbt); } } |
