From 63bf25bc9a9412f690f5dee476474f612d28a46a Mon Sep 17 00:00:00 2001 From: Jackson Turner Date: Thu, 16 Nov 2017 10:39:27 -0600 Subject: [PATCH] HUGE networking cleanup & feature re-enable Anything commented out I couldn't find proper handling code for --- .../java/am2/gui/AuraCustomizationMenu.java | 2 +- src/main/java/am2/handler/EntityHandler.java | 9 +- src/main/java/am2/packet/AMNetHandler.java | 120 +++++++++--------- src/main/java/am2/packet/AMPacketIDs.java | 41 +++--- .../am2/packet/AMPacketProcessorClient.java | 73 +++++------ .../am2/packet/AMPacketProcessorServer.java | 117 ++++++++--------- .../am2/proxy/tick/ClientTickHandler.java | 8 +- src/main/java/am2/trackers/PlayerTracker.java | 6 +- 8 files changed, 188 insertions(+), 188 deletions(-) diff --git a/src/main/java/am2/gui/AuraCustomizationMenu.java b/src/main/java/am2/gui/AuraCustomizationMenu.java index 8f7ded84e..e51305922 100644 --- a/src/main/java/am2/gui/AuraCustomizationMenu.java +++ b/src/main/java/am2/gui/AuraCustomizationMenu.java @@ -211,7 +211,7 @@ public void onGuiClosed(){ byte[] data = writer.generate(); - AMNetHandler.INSTANCE.sendPacketToServer(AMPacketIDs.SYNC_BETA_PARTICLES, data); +// AMNetHandler.INSTANCE.sendPacketToServer(AMPacketIDs.SYNC_BETA_PARTICLES, data); ArsMagica2.config.save(); diff --git a/src/main/java/am2/handler/EntityHandler.java b/src/main/java/am2/handler/EntityHandler.java index 2b83e7870..00a5927aa 100644 --- a/src/main/java/am2/handler/EntityHandler.java +++ b/src/main/java/am2/handler/EntityHandler.java @@ -294,7 +294,7 @@ public void playerTick (EntityPlayer player) { } } if (player.worldObj.isRemote) - AMNetHandler.INSTANCE.sendPacketToServer(AMPacketIDs.PLAYER_FLIP, new AMDataWriter().add(ext.getIsFlipped()).generate()); + AMNetHandler.INSTANCE.sendPacketToServer(AMPacketIDs.PLAYER_FLIP, new AMDataWriter().add(ext.getIsFlipped()).generate()); // This needs optimizing if (ext.getIsFlipped()){ if ((player).motionY < 2 && !player.capabilities.isFlying) (player).motionY += 0.15f; @@ -493,9 +493,10 @@ public void onItemPickup(ItemPickupEvent event) { if (!event.player.worldObj.isRemote && EntityExtension.For(event.player).getCurrentLevel() <= 0 && event.pickedUp.getEntityItem().getItem() == ItemDefs.arcaneCompendium){ event.player.addChatMessage(new TextComponentString("You have unlocked the secrets of the arcane!")); - AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "shapes", true); - AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "components", true); - AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "modifiers", true); + // Not implemented client side +// AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "shapes", true); +// AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "components", true); +// AMNetHandler.INSTANCE.sendCompendiumUnlockPacket((EntityPlayerMP)event.player, "modifiers", true); EntityExtension.For(event.player).setMagicLevelWithMana(1); return; } diff --git a/src/main/java/am2/packet/AMNetHandler.java b/src/main/java/am2/packet/AMNetHandler.java index 9e19ae61b..5f1bfec29 100644 --- a/src/main/java/am2/packet/AMNetHandler.java +++ b/src/main/java/am2/packet/AMNetHandler.java @@ -111,20 +111,20 @@ public void sendVelocityAddPacket(World world, EntityLivingBase target, double v sendPacketToAllClientsNear(world.provider.getDimension(), target.posX, target.posY, target.posZ, 50, AMPacketIDs.PLAYER_VELOCITY_ADD, data); } - @SideOnly(Side.CLIENT) - public void requestAuras(EntityPlayer player){ - AMDataWriter writer = new AMDataWriter(); - EntityPlayer localPlayer = Minecraft.getMinecraft().thePlayer; - if (localPlayer == null) return; - writer.add(localPlayer.getEntityId()); - writer.add(player.getEntityId()); - - sendPacketToServer(AMPacketIDs.REQUEST_BETA_PARTICLES, writer.generate()); - } - - public void requestClientAuras(EntityPlayerMP player){ - sendPacketToClientPlayer((EntityPlayerMP)player, AMPacketIDs.SYNC_BETA_PARTICLES, new byte[0]); - } +// @SideOnly(Side.CLIENT) +// public void requestAuras(EntityPlayer player){ +// AMDataWriter writer = new AMDataWriter(); +// EntityPlayer localPlayer = Minecraft.getMinecraft().thePlayer; +// if (localPlayer == null) return; +// writer.add(localPlayer.getEntityId()); +// writer.add(player.getEntityId()); +// +// sendPacketToServer(AMPacketIDs.REQUEST_BETA_PARTICLES, writer.generate()); +// } +// +// public void requestClientAuras(EntityPlayerMP player){ +// sendPacketToClientPlayer((EntityPlayerMP)player, AMPacketIDs.SYNC_BETA_PARTICLES, new byte[0]); +// } public void syncWorldName(EntityPlayerMP player, String name){ sendPacketToClientPlayer((EntityPlayerMP)player, AMPacketIDs.SYNC_WORLD_NAME, new AMDataWriter().add(name).generate()); @@ -158,21 +158,21 @@ public void sendStarImpactToClients(double x, double y, double z, World world, I sendPacketToAllClientsNear(world.provider.getDimension(), x, y, z, 64, AMPacketIDs.STAR_FALL, writer.generate()); } - public void sendSilverSkillPointPacket(EntityPlayerMP player){ - sendPacketToClientPlayer(player, AMPacketIDs.HIDDEN_COMPONENT_UNLOCK, new byte[0]); - } - - public void sendSpellApplyEffectToAllAround(EntityLivingBase caster, Entity target, double x, double y, double z, World world, ItemStack spellStack){ - AMDataWriter writer = new AMDataWriter().add(x).add(y).add(z); - if (spellStack != null) - writer.add(true).add(spellStack); - else - writer.add(false); - writer.add(caster.getEntityId()); - writer.add(target.getEntityId()); - - sendPacketToAllClientsNear(world.provider.getDimension(), x, y, z, 64, AMPacketIDs.SPELL_APPLY_EFFECT, writer.generate()); - } +// public void sendSilverSkillPointPacket(EntityPlayerMP player){ +// sendPacketToClientPlayer(player, AMPacketIDs.HIDDEN_COMPONENT_UNLOCK, new byte[0]); +// } + +// public void sendSpellApplyEffectToAllAround(EntityLivingBase caster, Entity target, double x, double y, double z, World world, ItemStack spellStack){ +// AMDataWriter writer = new AMDataWriter().add(x).add(y).add(z); +// if (spellStack != null) +// writer.add(true).add(spellStack); +// else +// writer.add(false); +// writer.add(caster.getEntityId()); +// writer.add(target.getEntityId()); +// +// sendPacketToAllClientsNear(world.provider.getDimension(), x, y, z, 64, AMPacketIDs.SPELL_APPLY_EFFECT, writer.generate()); +// } public void sendHecateDeathToAllAround(EntityHecate hecate){ AMDataWriter writer = new AMDataWriter(); @@ -233,34 +233,34 @@ public void sendPowerResponseToClient(NBTTagCompound powerData, EntityPlayerMP p sendPacketToClientPlayer(player, AMPacketIDs.REQUEST_PWR_PATHS, writer.generate()); } - /** - * Sets a property remotely for capabilities - * - * @param player The player - * @param capability The capability. 1 == AllowFlying, 2 == IsFlying - * @param state True or False - */ - public void sendCapabilityChangePacket(EntityPlayerMP player, int capability, boolean state){ - AMDataWriter writer = new AMDataWriter(); - writer.add(capability); - writer.add(state); - - sendPacketToClientPlayer(player, AMPacketIDs.CAPABILITY_CHANGE, writer.generate()); - } - - public void sendExPropCommandToServer(int flag){ - AMDataWriter writer = new AMDataWriter(); - writer.add(flag); - sendPacketToServer(AMPacketIDs.SYNC_EXTENDED_PROPS, writer.generate()); - } - - public void sendCompendiumUnlockPacket(EntityPlayerMP player, String id, boolean isCategory){ - AMDataWriter writer = new AMDataWriter(); - writer.add(id); - writer.add(isCategory); - - sendPacketToClientPlayer(player, AMPacketIDs.COMPENDIUM_UNLOCK, writer.generate()); - } +// /** +// * Sets a property remotely for capabilities +// * +// * @param player The player +// * @param capability The capability. 1 == AllowFlying, 2 == IsFlying +// * @param state True or False +// */ +// public void sendCapabilityChangePacket(EntityPlayerMP player, int capability, boolean state){ +// AMDataWriter writer = new AMDataWriter(); +// writer.add(capability); +// writer.add(state); +// +// sendPacketToClientPlayer(player, AMPacketIDs.CAPABILITY_CHANGE, writer.generate()); +// } +// +// public void sendExPropCommandToServer(int flag){ +// AMDataWriter writer = new AMDataWriter(); +// writer.add(flag); +// sendPacketToServer(AMPacketIDs.SYNC_EXTENDED_PROPS, writer.generate()); +// } + +// public void sendCompendiumUnlockPacket(EntityPlayerMP player, String id, boolean isCategory){ +// AMDataWriter writer = new AMDataWriter(); +// writer.add(id); +// writer.add(isCategory); +// +// sendPacketToClientPlayer(player, AMPacketIDs.COMPENDIUM_UNLOCK, writer.generate()); +// } public void sendCalefactorCookUpdate(TileEntityCalefactor calefactor, byte[] data){ AMDataWriter writer = new AMDataWriter(); @@ -280,9 +280,9 @@ public void sendObeliskUpdate(TileEntityObelisk obelisk, byte[] data){ sendPacketToAllClientsNear(obelisk.getWorld().provider.getDimension(), obelisk.getPos().getX(), obelisk.getPos().getY(), obelisk.getPos().getZ(), 32, AMPacketIDs.OBELISK_DATA, writer.generate()); } - public void sendAffinityActivate(){ - sendPacketToServer(AMPacketIDs.AFFINITY_ACTIVATE, new byte[0]); - } +// public void sendAffinityActivate(){ +// sendPacketToServer(AMPacketIDs.AFFINITY_ACTIVATE, new byte[0]); +// } public void sendAbilityToggle(String str){ sendPacketToServer(AMPacketIDs.TOGGLE_ABILITY, new AMDataWriter().add(str).generate()); diff --git a/src/main/java/am2/packet/AMPacketIDs.java b/src/main/java/am2/packet/AMPacketIDs.java index e6984fb40..07ad900dd 100644 --- a/src/main/java/am2/packet/AMPacketIDs.java +++ b/src/main/java/am2/packet/AMPacketIDs.java @@ -2,25 +2,25 @@ public class AMPacketIDs{ public static final byte SPELL_SHAPE_GROUP_CHANGE = 1; - public static final byte SPELL_CAST = 2; - public static final byte MAGIC_LEVEL_UP = 3; +// public static final byte SPELL_CAST = 2; +// public static final byte MAGIC_LEVEL_UP = 3; public static final byte CRAFTING_ALTAR_DATA = 4; public static final byte PARTICLE_SPAWN_SPECIAL = 5; public static final byte PLAYER_VELOCITY_ADD = 7; - public static final byte PLAYER_REMOVE_ALL_BUFFS = 8; +// public static final byte PLAYER_REMOVE_ALL_BUFFS = 8; public static final byte FLASH_ARMOR_PIECE = 9; - public static final byte ADD_BUFF_EFFECT = 12; - public static final byte REMOVE_BUFF_EFFECT = 13; +// public static final byte ADD_BUFF_EFFECT = 12; +// public static final byte REMOVE_BUFF_EFFECT = 13; public static final byte SPELLBOOK_CHANGE_ACTIVE_SLOT = 14; - public static final byte CHAIN_LIGHTNING_CAST = 15; - public static final byte SYNC_EXTENDED_PROPS = 16; - public static final byte SYNC_BETA_PARTICLES = 17; - public static final byte SYNC_SPELL_KNOWLEDGE = 27; - public static final byte POSSIBLE_CLIENT_EXPROP_DESYNC = 29; - public static final byte REQUEST_BETA_PARTICLES = 31; +// public static final byte CHAIN_LIGHTNING_CAST = 15; +// public static final byte SYNC_EXTENDED_PROPS = 16; +// public static final byte SYNC_BETA_PARTICLES = 17; +// public static final byte SYNC_SPELL_KNOWLEDGE = 27; +// public static final byte POSSIBLE_CLIENT_EXPROP_DESYNC = 29; +// public static final byte REQUEST_BETA_PARTICLES = 31; public static final byte SPELL_CUSTOMIZE = 32; - public static final byte SYNC_AIR_CHANGE = 33; - public static final byte SYNC_AFFINITY_DATA = 34; +// public static final byte SYNC_AIR_CHANGE = 33; +// public static final byte SYNC_AFFINITY_DATA = 34; public static final byte DECO_BLOCK_UPDATE = 35; public static final byte INSCRIPTION_TABLE_UPDATE = 36; //No longer needed @@ -30,23 +30,24 @@ public class AMPacketIDs{ public static final byte SAVE_KEYSTONE_COMBO = 40; public static final byte SET_KEYSTONE_COMBO = 41; public static final byte PLAYER_LOGIN_DATA = 42; - public static final byte NBT_DUMP = 43; - public static final byte SPELL_APPLY_EFFECT = 44; +// public static final byte NBT_DUMP = 43; +// public static final byte SPELL_APPLY_EFFECT = 44; public static final byte SET_MAG_WORK_REC = 45; - public static final byte COMPENDIUM_UNLOCK = 46; +// public static final byte COMPENDIUM_UNLOCK = 46; public static final byte SYNC_WORLD_NAME = 47; public static final byte STAR_FALL = 48; - public static final byte HIDDEN_COMPONENT_UNLOCK = 49; +// public static final byte HIDDEN_COMPONENT_UNLOCK = 49; public static final byte HECATE_DEATH = 50; - public static final byte RUNE_BAG_GUI_OPEN = 51; + //Superseded by FMLNetworkHandler + //public static final byte RUNE_BAG_GUI_OPEN = 51; public static final byte M_BENCH_LOCK_RECIPE = 52; public static final byte REQUEST_PWR_PATHS = 53; public static final byte IMBUE_ARMOR = 54; - public static final byte CAPABILITY_CHANGE = 55; +// public static final byte CAPABILITY_CHANGE = 55; public static final byte LECTERN_DATA = 56; public static final byte CALEFACTOR_DATA = 57; public static final byte OBELISK_DATA = 58; - public static final byte AFFINITY_ACTIVATE = 59; +// public static final byte AFFINITY_ACTIVATE = 59; public static final byte MANA_LINK_UPDATE = 60; public static final byte PLAYER_FLIP = 61; public static final byte SYNC_CLIENT = 62; diff --git a/src/main/java/am2/packet/AMPacketProcessorClient.java b/src/main/java/am2/packet/AMPacketProcessorClient.java index 7ea10f93b..9d1c18872 100644 --- a/src/main/java/am2/packet/AMPacketProcessorClient.java +++ b/src/main/java/am2/packet/AMPacketProcessorClient.java @@ -7,6 +7,7 @@ import am2.api.power.IPowerNode; import am2.api.spell.SpellModifier; import am2.api.spell.SpellModifiers; +import am2.blocks.tileentity.TileEntityCalefactor; import am2.blocks.tileentity.TileEntityCraftingAltar; import am2.blocks.tileentity.TileEntityLectern; import am2.blocks.tileentity.TileEntityObelisk; @@ -67,9 +68,9 @@ public void onPacketData(ClientCustomPacketEvent event){ case AMPacketIDs.PARTICLE_SPAWN_SPECIAL: ArsMagica2.proxy.particleManager.handleClientPacketData(Minecraft.getMinecraft().theWorld, remaining); break; -// case AMPacketIDs.PLAYER_VELOCITY_ADD: -// handleVelocityAdd(remaining); -// break; + case AMPacketIDs.PLAYER_VELOCITY_ADD: + handleVelocityAdd(remaining); + break; case AMPacketIDs.FLASH_ARMOR_PIECE: handleFlashArmor(remaining); break; @@ -133,9 +134,9 @@ public void onPacketData(ClientCustomPacketEvent event){ case AMPacketIDs.LECTERN_DATA: handleLecternData(remaining); break; -// case AMPacketIDs.CALEFACTOR_DATA: -// handleCalefactorData(remaining); -// break; + case AMPacketIDs.CALEFACTOR_DATA: + handleCalefactorData(remaining); + break; case AMPacketIDs.OBELISK_DATA: handleObeliskData(remaining); break; @@ -180,14 +181,14 @@ private void handleObeliskData(byte[] remaining){ if (te == null || !(te instanceof TileEntityObelisk)) return; ((TileEntityObelisk)te).handlePacket(rdr.getRemainingBytes()); } -// -// private void handleCalefactorData(byte[] remaining){ -// AMDataReader rdr = new AMDataReader(remaining, false); -// TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(rdr.getInt(), rdr.getInt(), rdr.getInt()); -// if (te == null || !(te instanceof TileEntityCalefactor)) return; -// ((TileEntityCalefactor)te).handlePacket(rdr.getRemainingBytes()); -// } -// + + private void handleCalefactorData(byte[] remaining){ + AMDataReader rdr = new AMDataReader(remaining, false); + TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos (rdr.getInt(), rdr.getInt(), rdr.getInt())); + if (te == null || !(te instanceof TileEntityCalefactor)) return; + ((TileEntityCalefactor)te).handlePacket(rdr.getRemainingBytes()); + } + private void handleLecternData(byte[] data){ AMDataReader rdr = new AMDataReader(data, false); TileEntity te = Minecraft.getMinecraft().theWorld.getTileEntity(new BlockPos(rdr.getInt(), rdr.getInt(), rdr.getInt())); @@ -433,10 +434,10 @@ private void handleEntityActionUpdate(byte[] data, EntityPlayer player){ // int entityID = rdr.getInt(); // byte[] expropData = rdr.getRemainingBytes(); // -// EntityLivingBase ent = AMCore.proxy.getEntityByID(entityID); +// EntityLivingBase ent = getEntityByID(entityID); // if (ent == null) return; // -// ExtendedProperties.For(ent).readAuraData(expropData); +// EntityExtension.For(ent).readAuraData(expropData); // } // // private void handleKeystoneGuiOpen(byte[] data){ @@ -467,10 +468,10 @@ private void handleEntityActionUpdate(byte[] data, EntityPlayer player){ // // private void handleSyncBetaParticles(byte[] data){ // EntityPlayer localPlayer = Minecraft.getMinecraft().thePlayer; -// if (!AMCore.proxy.playerTracker.hasAA(localPlayer)) +// if (!ArsMagica2.proxy.playerTracker.hasAA(localPlayer)) // return; // -// ExtendedProperties e = ExtendedProperties.For(localPlayer); +// EntityExtension e = EntityExtension.For(localPlayer); // // AMDataWriter writer = new AMDataWriter(); // writer.add(e.getAuraIndex()); @@ -518,24 +519,24 @@ private void handleFlashArmor(byte[] data){ AMDataReader rdr = new AMDataReader(data, false); AMGuiHelper.instance.blackoutArmorPiece(rdr.getInt(), rdr.getInt()); } -// -// private void handleVelocityAdd(byte[] data){ -// AMDataReader rdr = new AMDataReader(data, false); -// int entityID = rdr.getInt(); -// double velX = rdr.getDouble(); -// double velY = rdr.getDouble(); -// double velZ = rdr.getDouble(); -// -// Entity ent = AMCore.proxy.getEntityByID(entityID); -// EntityLivingBase localPlayer = Minecraft.getMinecraft().thePlayer; -// //this is only really required for the local player, as other entities seem to work across the network. -// if (ent.getEntityId() != localPlayer.getEntityId()){ -// return; -// } -// if (localPlayer.motionY > 0) return; -// -// localPlayer.addVelocity(velX, velY, velZ); -// } + + private void handleVelocityAdd(byte[] data){ + AMDataReader rdr = new AMDataReader(data, false); + int entityID = rdr.getInt(); + double velX = rdr.getDouble(); + double velY = rdr.getDouble(); + double velZ = rdr.getDouble(); + + Entity ent = getEntityByID(entityID); + EntityLivingBase localPlayer = Minecraft.getMinecraft().thePlayer; + //this is only really required for the local player, as other entities seem to work across the network. + if (ent.getEntityId() != localPlayer.getEntityId()){ + return; + } + if (localPlayer.motionY > 0) return; + + localPlayer.addVelocity(velX, velY, velZ); + } // // private void handleMagicLevelUpResponse(byte[] data){ // AMDataReader rdr = new AMDataReader(data, false); diff --git a/src/main/java/am2/packet/AMPacketProcessorServer.java b/src/main/java/am2/packet/AMPacketProcessorServer.java index f5d812e12..af2b25ae0 100644 --- a/src/main/java/am2/packet/AMPacketProcessorServer.java +++ b/src/main/java/am2/packet/AMPacketProcessorServer.java @@ -5,7 +5,10 @@ import am2.api.power.IPowerNode; import am2.blocks.tileentity.TileEntityArmorImbuer; import am2.blocks.tileentity.TileEntityInscriptionTable; +import am2.blocks.tileentity.TileEntityMagiciansWorkbench; import am2.blocks.tileentity.TileEntityParticleEmitter; +import am2.container.ContainerKeystone; +import am2.container.ContainerMagiciansWorkbench; import am2.container.ContainerSpellCustomization; import am2.defs.ItemDefs; import am2.extensions.AffinityData; @@ -86,21 +89,21 @@ public void onServerPacketData(ServerCustomPacketEvent event){ float TK_Distance = new AMDataReader(remaining, false).getFloat(); EntityExtension.For((EntityPlayerMP)player).setTKDistance(TK_Distance); break; -// case AMPacketIDs.SAVE_KEYSTONE_COMBO: -// handleSaveKeystoneCombo(remaining, (EntityPlayerMP)player); -// break; -// case AMPacketIDs.SET_KEYSTONE_COMBO: -// handleSetKeystoneCombo(remaining, (EntityPlayerMP)player); -// break; -// case AMPacketIDs.SET_MAG_WORK_REC: -// handleSetMagiciansWorkbenchRecipe(remaining, (EntityPlayerMP)player); -// break; + case AMPacketIDs.SAVE_KEYSTONE_COMBO: + handleSaveKeystoneCombo(remaining, (EntityPlayerMP)player); + break; + case AMPacketIDs.SET_KEYSTONE_COMBO: + handleSetKeystoneCombo(remaining, (EntityPlayerMP)player); + break; + case AMPacketIDs.SET_MAG_WORK_REC: + handleSetMagiciansWorkbenchRecipe(remaining, (EntityPlayerMP)player); + break; // case AMPacketIDs.RUNE_BAG_GUI_OPEN: // handleRuneBagGUIOpen(remaining, (EntityPlayerMP)player); // break; -// case AMPacketIDs.M_BENCH_LOCK_RECIPE: -// handleMBenchLockRecipe(remaining, (EntityPlayerMP)player); -// break; + case AMPacketIDs.M_BENCH_LOCK_RECIPE: + handleMBenchLockRecipe(remaining, (EntityPlayerMP)player); + break; case AMPacketIDs.IMBUE_ARMOR: handleImbueArmor(remaining, (EntityPlayerMP)player); break; @@ -183,19 +186,19 @@ private void handleImbueArmor(byte[] data, EntityPlayerMP player){ ((TileEntityArmorImbuer)te).imbueCurrentArmor(new ResourceLocation(rdr.getString())); } } -// -// private void handleMBenchLockRecipe(byte[] data, EntityPlayerMP player){ -// AMDataReader rdr = new AMDataReader(data, false); -// int x = rdr.getInt(); -// int y = rdr.getInt(); -// int z = rdr.getInt(); -// -// TileEntity te = player.worldObj.getTileEntity(x, y, z); -// if (te != null && te instanceof TileEntityMagiciansWorkbench){ -// ((TileEntityMagiciansWorkbench)te).setRecipeLocked(rdr.getInt(), rdr.getBoolean()); -// te.getWorldObj().markBlockForUpdate(te.xCoord, te.yCoord, te.zCoord); -// } -// } + + private void handleMBenchLockRecipe(byte[] data, EntityPlayerMP player){ + AMDataReader rdr = new AMDataReader(data, false); + int x = rdr.getInt(); + int y = rdr.getInt(); + int z = rdr.getInt(); + + TileEntity te = player.worldObj.getTileEntity(new BlockPos(x, y, z)); + if (te != null && te instanceof TileEntityMagiciansWorkbench){ + ((TileEntityMagiciansWorkbench)te).setRecipeLocked(rdr.getInt(), rdr.getBoolean()); + te.getWorld().markAndNotifyBlock(te.getPos(), te.getWorld().getChunkFromBlockCoords(te.getPos()), te.getWorld().getBlockState(te.getPos()), te.getWorld().getBlockState(te.getPos()), 2); + } + } // // private void handleRuneBagGUIOpen(byte[] data, EntityPlayerMP player){ // AMDataReader rdr = new AMDataReader(data, false); @@ -209,32 +212,32 @@ private void handleImbueArmor(byte[] data, EntityPlayerMP player){ // player.openGui(AMCore.instance, ArsMagicaGuiIdList.GUI_RUNE_BAG, player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ); // } // -// private void handleSetMagiciansWorkbenchRecipe(byte[] data, EntityPlayerMP player){ -// if (player.openContainer != null && player.openContainer instanceof ContainerMagiciansWorkbench){ -// ((ContainerMagiciansWorkbench)player.openContainer).moveRecipeToCraftingGrid(new AMDataReader(data, false).getInt()); -// } -// } -// -// private void handleSetKeystoneCombo(byte[] data, EntityPlayerMP player){ -// if (player.openContainer instanceof ContainerKeystone){ -// AMDataReader rdr = new AMDataReader(data, false); -// ((ContainerKeystone)player.openContainer).setInventoryToCombination(rdr.getInt()); -// } -// } -// -// private void handleSaveKeystoneCombo(byte[] data, EntityPlayerMP player){ -// if (player.openContainer instanceof ContainerKeystone){ -// AMDataReader rdr = new AMDataReader(data, false); -// boolean add = rdr.getBoolean(); -// String name = rdr.getString(); -// int[] metas = new int[]{rdr.getInt(), rdr.getInt(), rdr.getInt()}; -// if (add) -// ItemsCommonProxy.keystone.addCombination(((ContainerKeystone)player.openContainer).getKeystoneStack(), name, metas); -// else -// ItemsCommonProxy.keystone.removeCombination(((ContainerKeystone)player.openContainer).getKeystoneStack(), name); -// } -// } -// + private void handleSetMagiciansWorkbenchRecipe(byte[] data, EntityPlayerMP player){ + if (player.openContainer != null && player.openContainer instanceof ContainerMagiciansWorkbench){ + ((ContainerMagiciansWorkbench)player.openContainer).moveRecipeToCraftingGrid(new AMDataReader(data, false).getInt()); + } + } + + private void handleSetKeystoneCombo(byte[] data, EntityPlayerMP player){ + if (player.openContainer instanceof ContainerKeystone){ + AMDataReader rdr = new AMDataReader(data, false); + ((ContainerKeystone)player.openContainer).setInventoryToCombination(rdr.getInt()); + } + } + + private void handleSaveKeystoneCombo(byte[] data, EntityPlayerMP player){ + if (player.openContainer instanceof ContainerKeystone){ + AMDataReader rdr = new AMDataReader(data, false); + boolean add = rdr.getBoolean(); + String name = rdr.getString(); + int[] metas = new int[]{rdr.getInt(), rdr.getInt(), rdr.getInt()}; + if (add) + ItemDefs.keystone.addCombination(((ContainerKeystone)player.openContainer).getKeystoneStack(), name, metas); + else + ItemDefs.keystone.removeCombination(((ContainerKeystone)player.openContainer).getKeystoneStack(), name); + } + } + private void handleInscriptionTableUpdate(byte[] data, EntityPlayerMP player){ World world = player.worldObj; AMDataReader rdr = new AMDataReader(data, false); @@ -275,7 +278,7 @@ else if (subID == ItemSpellBook.ID_PREV_SPELL) else return; } -// + private void handleSpellCustomize(byte[] data, EntityPlayerMP player){ AMDataReader rdr = new AMDataReader(data, false); @@ -290,7 +293,7 @@ private void handleSpellCustomize(byte[] data, EntityPlayerMP player){ ((ContainerSpellCustomization)player.openContainer).setNameAndIndex(name, IIconIndex); } } -// + // private void handleRequestBetaParticles(byte[] data, EntityPlayerMP player){ // AMDataReader rdr = new AMDataReader(data, false); // int requesterID = rdr.getInt(); @@ -299,9 +302,9 @@ private void handleSpellCustomize(byte[] data, EntityPlayerMP player){ // // if (player == null || entity == null || !(entity instanceof EntityPlayer)) return; // -// if (!AMCore.proxy.playerTracker.hasAA((EntityPlayer)entity)) return; +// if (!ArsMagica2.proxy.playerTracker.hasAA((EntityPlayer)entity)) return; // -// byte[] expropData = ExtendedProperties.For(entity).getAuraData(); +// byte[] expropData = EntityExtension.For(entity).getAuraData(); // // AMDataWriter writer = new AMDataWriter(); // writer.add(entity.getEntityId()); @@ -328,7 +331,7 @@ private void handleSpellCustomize(byte[] data, EntityPlayerMP player){ // private void handleSyncBetaParticles(byte[] data, EntityPlayerMP player){ // AMDataReader rdr = new AMDataReader(data, false); // -// if (player == null || !AMCore.proxy.playerTracker.hasAA(player)){ +// if (player == null || !ArsMagica2.proxy.playerTracker.hasAA(player)){ // return; // } // @@ -343,7 +346,7 @@ private void handleSpellCustomize(byte[] data, EntityPlayerMP player){ // int quantity = rdr.getInt(); // float speed = rdr.getFloat(); // -// ExtendedProperties.For(player).updateAuraData(index, behaviour, scale, alpha, randomColor, defaultColor, color, delay, quantity, speed); +// EntityExtension.For(player).updateAuraData(index, behaviour, scale, alpha, randomColor, defaultColor, color, delay, quantity, speed); // } // private void handleCastingModeChange(byte[] data, EntityPlayerMP player){ diff --git a/src/main/java/am2/proxy/tick/ClientTickHandler.java b/src/main/java/am2/proxy/tick/ClientTickHandler.java index 47d8fa542..531814411 100644 --- a/src/main/java/am2/proxy/tick/ClientTickHandler.java +++ b/src/main/java/am2/proxy/tick/ClientTickHandler.java @@ -62,7 +62,6 @@ public class ClientTickHandler{ public static String worldName; private boolean firstTick = true; - private boolean compendiumLoad; private ArrayList arcs = new ArrayList(); private int arcSpawnCounter = 0; @@ -90,14 +89,9 @@ private void gameTick_Start(){ } if (firstTick){ -// ItemDefs.crystalPhylactery.getSpawnableEntities(Minecraft.getMinecraft().theWorld); - compendiumLoad = true; + ItemDefs.crystalPhylactery.getSpawnableEntities(Minecraft.getMinecraft().theWorld); firstTick = false; } - - if (compendiumLoad){ - compendiumLoad = false; - } ArsMagica2.proxy.itemFrameWatcher.checkWatchedFrames(); } diff --git a/src/main/java/am2/trackers/PlayerTracker.java b/src/main/java/am2/trackers/PlayerTracker.java index 8a9acf31a..041751823 100644 --- a/src/main/java/am2/trackers/PlayerTracker.java +++ b/src/main/java/am2/trackers/PlayerTracker.java @@ -51,9 +51,9 @@ public void postInit(){ @SubscribeEvent public void onPlayerLogin(PlayerLoggedInEvent event){ - if (hasAA(event.player)){ - AMNetHandler.INSTANCE.requestClientAuras((EntityPlayerMP)event.player); - } +// if (hasAA(event.player)){ +// AMNetHandler.INSTANCE.requestClientAuras((EntityPlayerMP)event.player); +// } ArsMagica2.disabledSkills.getDisabledSkills(true); int[] disabledSkills = ArsMagica2.disabledSkills.getDisabledSkillIDs();