From 8f94ff14ff399327e2b07a090cf6d76890bc9849 Mon Sep 17 00:00:00 2001 From: cpw Date: Thu, 12 Nov 2015 22:02:41 -0500 Subject: [PATCH] Enchantment,EnchantmentHelper,EntityEnderman,EntityZombie,EntityVillager,FurnaceRecipes,RecipeFireworks,RecipeRepairItem,NetworkSystem,S00PacketServerInfo PotionEffect,StatList,Session,WeightedRandomChestContent,Explosion,ExtendedBlockStorage,SaveHandler. All NBT patches seem to have been merged upstream, so removing. The IntegratedServer and MinecraftServer pending queue changes also removed, as fixed upstream. --- .../enchantment/Enchantment.java.patch | 55 ++++++++++++++++ .../enchantment/EnchantmentHelper.java.patch | 41 ++++++++++++ .../entity/monster/EntityEnderman.java.patch | 20 +++++- .../entity/monster/EntityZombie.java.patch | 9 +++ .../entity/passive/EntityVillager.java.patch | 12 +++- .../item/crafting/FurnaceRecipes.java.patch | 10 +++ .../item/crafting/RecipeFireworks.java.patch | 22 +++++++ .../item/crafting/RecipeRepairItem.java.patch | 9 +++ .../network/NetworkSystem.java.patch | 11 ++++ .../server/S00PacketServerInfo.java.patch | 11 ++++ .../minecraft/potion/PotionEffect.java.patch | 9 +++ .../net/minecraft/stats/StatList.java.patch | 14 +++++ .../net/minecraft/util/Session.java.patch | 18 +++++- .../WeightedRandomChestContent.java.patch | 48 +++++++++++++- .../net/minecraft/world/Explosion.java.patch | 12 +++- .../storage/ExtendedBlockStorage.java.patch | 9 +-- .../world/storage/SaveHandler.java.patch | 62 ++++++++++++++++--- .../enchantment/Enchantment.java.patch.rej | 55 ---------------- .../EnchantmentHelper.java.patch.rej | 43 ------------- .../monster/EntityEnderman.java.patch.rej | 19 ------ .../monster/EntityZombie.java.patch.rej | 10 --- .../passive/EntityVillager.java.patch.rej | 9 --- .../crafting/FurnaceRecipes.java.patch.rej | 11 ---- .../crafting/RecipeFireworks.java.patch.rej | 23 ------- .../crafting/RecipeRepairItem.java.patch.rej | 10 --- .../nbt/NBTTagByteArray.java.patch.rej | 9 --- .../nbt/NBTTagCompound.java.patch.rej | 10 --- .../nbt/NBTTagIntArray.java.patch.rej | 9 --- .../minecraft/nbt/NBTTagList.java.patch.rej | 15 ----- .../network/NetworkSystem.java.patch.rej | 10 --- .../server/S00PacketServerInfo.java.patch.rej | 10 --- .../potion/PotionEffect.java.patch.rej | 10 --- .../server/MinecraftServer.java.patch.rej | 11 ---- .../IntegratedServer.java.patch.rej | 11 ---- .../minecraft/stats/StatList.java.patch.rej | 15 ----- .../net/minecraft/util/Session.java.patch.rej | 17 ----- .../WeightedRandomChestContent.java.patch.rej | 54 ---------------- .../minecraft/world/Explosion.java.patch.rej | 9 --- .../world/storage/SaveHandler.java.patch.rej | 48 -------------- 39 files changed, 351 insertions(+), 439 deletions(-) create mode 100644 patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch create mode 100644 patches/minecraft/net/minecraft/network/NetworkSystem.java.patch create mode 100644 patches/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch rename rejects/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch.rej => patches/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch (50%) delete mode 100644 rejects/minecraft/net/minecraft/enchantment/Enchantment.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/nbt/NBTTagByteArray.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/nbt/NBTTagIntArray.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/nbt/NBTTagList.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/network/NetworkSystem.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/potion/PotionEffect.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/server/MinecraftServer.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/stats/StatList.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/util/Session.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/Explosion.java.patch.rej delete mode 100644 rejects/minecraft/net/minecraft/world/storage/SaveHandler.java.patch.rej diff --git a/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch index a8e5b3f38..556e26af0 100644 --- a/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch +++ b/patches/minecraft/net/minecraft/enchantment/Enchantment.java.patch @@ -9,3 +9,58 @@ } else { +@@ -140,7 +140,7 @@ + + public boolean canApply(ItemStack stack) + { +- return this.type.canEnchantItem(stack.getItem()); ++ return canApplyAtEnchantingTable(stack); + } + + public void onEntityDamaged(EntityLivingBase user, Entity target, int level) +@@ -151,6 +151,45 @@ + { + } + ++ /** ++ * This applies specifically to applying at the enchanting table. The other method {@link #canApply(ItemStack)} ++ * applies for all possible enchantments. ++ * @param stack ++ * @return ++ */ ++ public boolean canApplyAtEnchantingTable(ItemStack stack) ++ { ++ return this.type.canEnchantItem(stack.getItem()); ++ } ++ ++ private static final java.lang.reflect.Field bookSetter = Enchantment.class.getDeclaredFields()[1]; ++ /** ++ * Add to the list of enchantments applicable by the anvil from a book ++ * ++ * @param enchantment ++ */ ++ public static void addToBookList(Enchantment enchantment) ++ { ++ try ++ { ++ net.minecraftforge.common.util.EnumHelper.setFailsafeFieldValue(bookSetter, null, ++ com.google.common.collect.ObjectArrays.concat(enchantmentsBookList, enchantment)); ++ } ++ catch (Exception e) ++ { ++ throw new RuntimeException(e); //Rethrow see what happens ++ } ++ } ++ ++ /** ++ * Is this enchantment allowed to be enchanted on books via Enchantment Table ++ * @return false to disable the vanilla feature ++ */ ++ public boolean isAllowedOnBooks() ++ { ++ return true; ++ } ++ + static + { + List list = Lists.newArrayList(); diff --git a/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch new file mode 100644 index 000000000..b9e79d5c7 --- /dev/null +++ b/patches/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch @@ -0,0 +1,41 @@ +--- ../src-base/minecraft/net/minecraft/enchantment/EnchantmentHelper.java ++++ ../src-work/minecraft/net/minecraft/enchantment/EnchantmentHelper.java +@@ -297,7 +297,7 @@ + public static int calcItemStackEnchantability(Random p_77514_0_, int p_77514_1_, int p_77514_2_, ItemStack p_77514_3_) + { + Item item = p_77514_3_.getItem(); +- int i = item.getItemEnchantability(); ++ int i = item.getItemEnchantability(p_77514_3_); + + if (i <= 0) + { +@@ -346,7 +346,7 @@ + public static List buildEnchantmentList(Random p_77513_0_, ItemStack p_77513_1_, int p_77513_2_) + { + Item item = p_77513_1_.getItem(); +- int i = item.getItemEnchantability(); ++ int i = item.getItemEnchantability(p_77513_1_); + + if (i <= 0) + { +@@ -388,7 +388,9 @@ + + for (EnchantmentData enchantmentdata1 : list) + { +- if (!enchantmentdata1.enchantmentobj.canApplyTogether(Enchantment.getEnchantmentById(integer.intValue()))) ++ Enchantment e1 = enchantmentdata1.enchantmentobj; ++ Enchantment e2 = Enchantment.getEnchantmentById(integer.intValue()); ++ if (e1.canApplyTogether(e2) && e2.canApplyTogether(e1)) //Forge BugFix: Let Both enchantments veto being together + { + flag = false; + break; +@@ -422,7 +424,8 @@ + + for (Enchantment enchantment : Enchantment.enchantmentsBookList) + { +- if (enchantment != null && (enchantment.type.canEnchantItem(item) || flag)) ++ if (enchantment == null) continue; ++ if (enchantment.canApplyAtEnchantingTable(p_77505_1_) || (flag && enchantment.isAllowedOnBooks())) + { + for (int i = enchantment.getMinLevel(); i <= enchantment.getMaxLevel(); ++i) + { diff --git a/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch index 148ad918a..4acd59693 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch @@ -1,6 +1,24 @@ --- ../src-base/minecraft/net/minecraft/entity/monster/EntityEnderman.java +++ ../src-work/minecraft/net/minecraft/entity/monster/EntityEnderman.java -@@ -366,6 +366,18 @@ +@@ -200,12 +200,14 @@ + + protected boolean teleportTo(double p_70825_1_, double p_70825_3_, double p_70825_5_) + { ++ net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(this, p_70825_1_, p_70825_3_, p_70825_5_, 0); ++ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return false; + double d0 = this.posX; + double d1 = this.posY; + double d2 = this.posZ; +- this.posX = p_70825_1_; +- this.posY = p_70825_3_; +- this.posZ = p_70825_5_; ++ this.posX = event.targetX; ++ this.posY = event.targetY; ++ this.posZ = event.targetZ; + boolean flag = false; + BlockPos blockpos = new BlockPos(this.posX, this.posY, this.posZ); + +@@ -366,6 +368,18 @@ } } diff --git a/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch index f14566563..717cbb1ca 100644 --- a/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch +++ b/patches/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch @@ -49,3 +49,12 @@ entityzombie.func_180482_a(this.worldObj.getDifficultyForLocation(new BlockPos(entityzombie)), (IEntityLivingData)null); this.getEntityAttribute(reinforcementChance).applyModifier(new AttributeModifier("Zombie reinforcement caller charge", -0.05000000074505806D, 0)); entityzombie.getEntityAttribute(reinforcementChance).applyModifier(new AttributeModifier("Zombie reinforcement callee charge", -0.05000000074505806D, 0)); +@@ -466,7 +479,7 @@ + + if (p_180482_2_ == null) + { +- p_180482_2_ = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < 0.05F, this.worldObj.rand.nextFloat() < 0.05F); ++ p_180482_2_ = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < net.minecraftforge.common.ForgeModContainer.zombieBabyChance, this.worldObj.rand.nextFloat() < 0.05F); + } + + if (p_180482_2_ instanceof EntityZombie.GroupData) diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch index 201f72c94..daa11a660 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch @@ -17,7 +17,15 @@ { if (!this.worldObj.isRemote && (this.buyingList == null || this.buyingList.size() > 0)) { -@@ -636,6 +637,7 @@ +@@ -523,6 +524,7 @@ + + private void populateBuyingList() + { ++ //TODO: Hook into VillagerRegistry + EntityVillager.ITradeList[][][] aentityvillager$itradelist = DEFAULT_TRADE_LIST_MAP[this.getProfession()]; + + if (this.careerId != 0 && this.careerLevel != 0) +@@ -636,6 +638,7 @@ } } @@ -25,7 +33,7 @@ if (s1 != null) { ChatComponentTranslation chatcomponenttranslation = new ChatComponentTranslation("entity.Villager." + s1, new Object[0]); -@@ -698,7 +700,7 @@ +@@ -698,7 +701,7 @@ public IEntityLivingData func_180482_a(DifficultyInstance p_180482_1_, IEntityLivingData p_180482_2_) { p_180482_2_ = super.func_180482_a(p_180482_1_, p_180482_2_); diff --git a/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch b/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch index f30470c7f..5f38ff604 100644 --- a/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch @@ -8,3 +8,13 @@ this.smeltingList.put(input, stack); this.experienceList.put(stack, Float.valueOf(experience)); } +@@ -102,6 +103,9 @@ + + public float getSmeltingExperience(ItemStack stack) + { ++ float ret = stack.getItem().getSmeltingExperience(stack); ++ if (ret != -1) return ret; ++ + for (Entry entry : this.experienceList.entrySet()) + { + if (this.compareItemStacks(stack, (ItemStack)entry.getKey())) diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch index 4a6a9f32a..b9fbb01af 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch @@ -1,5 +1,27 @@ --- ../src-base/minecraft/net/minecraft/item/crafting/RecipeFireworks.java +++ ../src-work/minecraft/net/minecraft/item/crafting/RecipeFireworks.java +@@ -87,9 +87,9 @@ + { + this.field_92102_a = new ItemStack(Items.fireworks); + ++ NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + if (l > 0) + { +- NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + NBTTagCompound nbttagcompound3 = new NBTTagCompound(); + NBTTagList nbttaglist = new NBTTagList(); + +@@ -106,9 +106,9 @@ + nbttagcompound3.setTag("Explosions", nbttaglist); + nbttagcompound3.setByte("Flight", (byte)j); + nbttagcompound1.setTag("Fireworks", nbttagcompound3); +- this.field_92102_a.setTagCompound(nbttagcompound1); + } + ++ this.field_92102_a.setTagCompound(nbttagcompound1); //Forge BugFix: NPE Protection + return true; + } + else if (j == 1 && i == 0 && l == 0 && k > 0 && j1 <= 1) @@ -250,11 +250,7 @@ for (int i = 0; i < aitemstack.length; ++i) { diff --git a/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch b/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch index d5b3256fc..a9d4349e8 100644 --- a/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch +++ b/patches/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch @@ -18,6 +18,15 @@ { return null; } +@@ -67,7 +67,7 @@ + ItemStack itemstack2 = (ItemStack)list.get(0); + ItemStack itemstack3 = (ItemStack)list.get(1); + +- if (itemstack2.getItem() == itemstack3.getItem() && itemstack2.stackSize == 1 && itemstack3.stackSize == 1 && itemstack2.getItem().isDamageable()) ++ if (itemstack2.getItem() == itemstack3.getItem() && itemstack2.stackSize == 1 && itemstack3.stackSize == 1 && itemstack2.getItem().isRepairable()) + { + Item item = itemstack2.getItem(); + int j = item.getMaxDamage() - itemstack2.getItemDamage(); @@ -104,11 +104,7 @@ for (int i = 0; i < aitemstack.length; ++i) { diff --git a/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch b/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch new file mode 100644 index 000000000..2382e65e7 --- /dev/null +++ b/patches/minecraft/net/minecraft/network/NetworkSystem.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/network/NetworkSystem.java ++++ ../src-work/minecraft/net/minecraft/network/NetworkSystem.java +@@ -120,7 +120,7 @@ + ; + } + +- p_initChannel_1_.pipeline().addLast((String)"timeout", (ChannelHandler)(new ReadTimeoutHandler(30))).addLast((String)"legacy_query", (ChannelHandler)(new PingResponseHandler(NetworkSystem.this))).addLast((String)"splitter", (ChannelHandler)(new MessageDeserializer2())).addLast((String)"decoder", (ChannelHandler)(new MessageDeserializer(EnumPacketDirection.SERVERBOUND))).addLast((String)"prepender", (ChannelHandler)(new MessageSerializer2())).addLast((String)"encoder", (ChannelHandler)(new MessageSerializer(EnumPacketDirection.CLIENTBOUND))); ++ p_initChannel_1_.pipeline().addLast((String)"timeout", (ChannelHandler)(new ReadTimeoutHandler(net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.READ_TIMEOUT))).addLast((String)"legacy_query", (ChannelHandler)(new PingResponseHandler(NetworkSystem.this))).addLast((String)"splitter", (ChannelHandler)(new MessageDeserializer2())).addLast((String)"decoder", (ChannelHandler)(new MessageDeserializer(EnumPacketDirection.SERVERBOUND))).addLast((String)"prepender", (ChannelHandler)(new MessageSerializer2())).addLast((String)"encoder", (ChannelHandler)(new MessageSerializer(EnumPacketDirection.CLIENTBOUND))); + NetworkManager networkmanager = new NetworkManager(EnumPacketDirection.SERVERBOUND); + NetworkSystem.this.networkManagers.add(networkmanager); + p_initChannel_1_.pipeline().addLast((String)"packet_handler", (ChannelHandler)networkmanager); diff --git a/patches/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch b/patches/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch new file mode 100644 index 000000000..0b578a6e2 --- /dev/null +++ b/patches/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java ++++ ../src-work/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java +@@ -35,7 +35,7 @@ + + public void writePacketData(PacketBuffer buf) throws IOException + { +- buf.writeString(GSON.toJson((Object)this.response)); ++ buf.writeString(this.response.getJson()); + } + + public void processPacket(INetHandlerStatusClient handler) diff --git a/patches/minecraft/net/minecraft/potion/PotionEffect.java.patch b/patches/minecraft/net/minecraft/potion/PotionEffect.java.patch index eaa78b0a7..c2e4d17f4 100644 --- a/patches/minecraft/net/minecraft/potion/PotionEffect.java.patch +++ b/patches/minecraft/net/minecraft/potion/PotionEffect.java.patch @@ -26,6 +26,15 @@ } public void combine(PotionEffect other) +@@ -191,7 +196,7 @@ + + public static PotionEffect readCustomPotionEffectFromNBT(NBTTagCompound nbt) + { +- int i = nbt.getByte("Id"); ++ int i = nbt.getByte("Id") & 0xff; + + if (i >= 0 && i < Potion.potionTypes.length && Potion.potionTypes[i] != null) + { @@ -224,4 +229,62 @@ { return this.isPotionDurationMax; diff --git a/patches/minecraft/net/minecraft/stats/StatList.java.patch b/patches/minecraft/net/minecraft/stats/StatList.java.patch index 2da9679d1..12e4a29dc 100644 --- a/patches/minecraft/net/minecraft/stats/StatList.java.patch +++ b/patches/minecraft/net/minecraft/stats/StatList.java.patch @@ -9,6 +9,20 @@ String s = func_180204_a(item); if (s != null) +@@ -127,11 +127,11 @@ + { + for (Block block : Block.blockRegistry) + { +- Item item = Item.getItemFromBlock(block); ++ Item item = Item.getItemFromBlock(block); //TODO: Hook FML's stat change event and re-assign these + + if (item != null) + { +- int i = Block.getIdFromBlock(block); ++ int i = Block.getIdFromBlock(block); //TODO: Hook FML's stat change event and re-assign these + String s = func_180204_a(item); + + if (s != null && block.getEnableStats()) @@ -151,7 +151,7 @@ { if (item != null) diff --git a/patches/minecraft/net/minecraft/util/Session.java.patch b/patches/minecraft/net/minecraft/util/Session.java.patch index a294c7fee..dfb470818 100644 --- a/patches/minecraft/net/minecraft/util/Session.java.patch +++ b/patches/minecraft/net/minecraft/util/Session.java.patch @@ -25,7 +25,23 @@ this.username = usernameIn; this.playerID = playerIDIn; this.token = tokenIn; -@@ -63,6 +78,19 @@ +@@ -50,11 +65,13 @@ + try + { + UUID uuid = UUIDTypeAdapter.fromString(this.getPlayerID()); +- return new GameProfile(uuid, this.getUsername()); ++ GameProfile ret = new GameProfile(uuid, this.getUsername()); //Forge: Adds cached GameProfile properties to returned GameProfile. ++ if (properties != null) ret.getProperties().putAll(properties); // Helps to cut down on calls to the session service, ++ return ret; // which helps to fix MC-52974. + } + catch (IllegalArgumentException var2) + { +- return new GameProfile((UUID)null, this.getUsername()); ++ return new GameProfile(net.minecraft.entity.player.EntityPlayer.getUUID(new GameProfile((UUID)null, this.getUsername())), this.getUsername()); + } + } + +@@ -63,6 +80,19 @@ return this.sessionType; } diff --git a/patches/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch b/patches/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch index 2c0234944..aaba98a5c 100644 --- a/patches/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch +++ b/patches/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch @@ -1,6 +1,28 @@ --- ../src-base/minecraft/net/minecraft/util/WeightedRandomChestContent.java +++ ../src-work/minecraft/net/minecraft/util/WeightedRandomChestContent.java -@@ -57,6 +57,19 @@ +@@ -37,48 +37,39 @@ + for (int i = 0; i < p_177630_3_; ++i) + { + WeightedRandomChestContent weightedrandomchestcontent = (WeightedRandomChestContent)WeightedRandom.getRandomItem(random, p_177630_1_); +- int j = weightedrandomchestcontent.theMinimumChanceToGenerateItem + random.nextInt(weightedrandomchestcontent.theMaximumChanceToGenerateItem - weightedrandomchestcontent.theMinimumChanceToGenerateItem + 1); ++ ItemStack[] stacks = weightedrandomchestcontent.generateChestContent(random, p_177630_2_); + +- if (weightedrandomchestcontent.theItemId.getMaxStackSize() >= j) ++ for (ItemStack itemstack1 : stacks) + { +- ItemStack itemstack1 = weightedrandomchestcontent.theItemId.copy(); +- itemstack1.stackSize = j; + p_177630_2_.setInventorySlotContents(random.nextInt(p_177630_2_.getSizeInventory()), itemstack1); + } +- else +- { +- for (int k = 0; k < j; ++k) +- { +- ItemStack itemstack = weightedrandomchestcontent.theItemId.copy(); +- itemstack.stackSize = 1; +- p_177630_2_.setInventorySlotContents(random.nextInt(p_177630_2_.getSizeInventory()), itemstack); +- } +- } } } @@ -20,3 +42,27 @@ public static void generateDispenserContents(Random random, List p_177631_1_, TileEntityDispenser dispenser, int p_177631_3_) { for (int i = 0; i < p_177631_3_; ++i) + { + WeightedRandomChestContent weightedrandomchestcontent = (WeightedRandomChestContent)WeightedRandom.getRandomItem(random, p_177631_1_); +- int j = weightedrandomchestcontent.theMinimumChanceToGenerateItem + random.nextInt(weightedrandomchestcontent.theMaximumChanceToGenerateItem - weightedrandomchestcontent.theMinimumChanceToGenerateItem + 1); ++ ItemStack[] stacks = weightedrandomchestcontent.generateChestContent(random, dispenser); + +- if (weightedrandomchestcontent.theItemId.getMaxStackSize() >= j) ++ for (ItemStack itemstack1 : stacks) + { +- ItemStack itemstack1 = weightedrandomchestcontent.theItemId.copy(); +- itemstack1.stackSize = j; + dispenser.setInventorySlotContents(random.nextInt(dispenser.getSizeInventory()), itemstack1); + } +- else +- { +- for (int k = 0; k < j; ++k) +- { +- ItemStack itemstack = weightedrandomchestcontent.theItemId.copy(); +- itemstack.stackSize = 1; +- dispenser.setInventorySlotContents(random.nextInt(dispenser.getSizeInventory()), itemstack); +- } +- } + } + } + diff --git a/patches/minecraft/net/minecraft/world/Explosion.java.patch b/patches/minecraft/net/minecraft/world/Explosion.java.patch index 609186749..e3ee43bba 100644 --- a/patches/minecraft/net/minecraft/world/Explosion.java.patch +++ b/patches/minecraft/net/minecraft/world/Explosion.java.patch @@ -25,7 +25,15 @@ f -= (f2 + 0.3F) * 0.3F; } -@@ -214,8 +216,7 @@ +@@ -127,6 +129,7 @@ + int j2 = MathHelper.floor_double(this.explosionZ - (double)f3 - 1.0D); + int j1 = MathHelper.floor_double(this.explosionZ + (double)f3 + 1.0D); + List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.exploder, new AxisAlignedBB((double)k1, (double)i2, (double)j2, (double)l1, (double)i1, (double)j1)); ++ net.minecraftforge.event.ForgeEventFactory.onExplosionDetonate(this.worldObj, this, list, f3); + Vec3 vec3 = new Vec3(this.explosionX, this.explosionY, this.explosionZ); + + for (int k2 = 0; k2 < list.size(); ++k2) +@@ -214,8 +217,7 @@ block.dropBlockAsItemWithChance(this.worldObj, blockpos, this.worldObj.getBlockState(blockpos), 1.0F / this.explosionSize, 0); } @@ -35,7 +43,7 @@ } } } -@@ -251,4 +252,6 @@ +@@ -251,4 +253,6 @@ { return this.affectedBlockPositions; } diff --git a/rejects/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch.rej b/patches/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch similarity index 50% rename from rejects/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch.rej rename to patches/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch index 89b9cdc9a..8533e65ff 100644 --- a/rejects/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch.rej +++ b/patches/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java.patch @@ -1,10 +1,11 @@ -++++ REJECTED PATCH 1 +--- ../src-base/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java ++++ ../src-work/minecraft/net/minecraft/world/chunk/storage/ExtendedBlockStorage.java +@@ -35,6 +35,8 @@ public void set(int x, int y, int z, IBlockState state) { + if (state instanceof net.minecraftforge.common.property.IExtendedBlockState) + state = ((net.minecraftforge.common.property.IExtendedBlockState) state).getClean(); - IBlockState iblockstate1 = this.get(x, y, z); - Block block = iblockstate1.getBlock(); + IBlockState iblockstate = this.get(x, y, z); + Block block = iblockstate.getBlock(); Block block1 = state.getBlock(); -++++ END PATCH diff --git a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch index 356c56113..a8c83b6be 100644 --- a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch @@ -1,15 +1,48 @@ --- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java +++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java -@@ -144,6 +144,8 @@ - NBTTagCompound nbttagcompound1 = new NBTTagCompound(); - nbttagcompound1.setTag("Data", nbttagcompound); +@@ -105,13 +105,17 @@ + { + File file1 = new File(this.worldDirectory, "level.dat"); -+ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, worldInformation, nbttagcompound2); ++ WorldInfo worldInfo = null; + - try + if (file1.exists()) { - File file1 = new File(this.worldDirectory, "level.dat_new"); -@@ -182,6 +184,8 @@ + try + { + NBTTagCompound nbttagcompound2 = CompressedStreamTools.readCompressed(new FileInputStream(file1)); + NBTTagCompound nbttagcompound3 = nbttagcompound2.getCompoundTag("Data"); +- return new WorldInfo(nbttagcompound3); ++ worldInfo = new WorldInfo(nbttagcompound3); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound2); ++ return worldInfo; + } + catch (Exception exception1) + { +@@ -119,6 +123,7 @@ + } + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().confirmBackupLevelDatUse(this); + file1 = new File(this.worldDirectory, "level.dat_old"); + + if (file1.exists()) +@@ -127,7 +132,13 @@ + { + NBTTagCompound nbttagcompound = CompressedStreamTools.readCompressed(new FileInputStream(file1)); + NBTTagCompound nbttagcompound1 = nbttagcompound.getCompoundTag("Data"); +- return new WorldInfo(nbttagcompound1); ++ worldInfo = new WorldInfo(nbttagcompound1); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound); ++ return worldInfo; ++ } ++ catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e) ++ { ++ throw e; + } + catch (Exception exception) + { +@@ -144,6 +155,8 @@ NBTTagCompound nbttagcompound1 = new NBTTagCompound(); nbttagcompound1.setTag("Data", nbttagcompound); @@ -18,7 +51,16 @@ try { File file1 = new File(this.worldDirectory, "level.dat_new"); -@@ -230,6 +234,7 @@ +@@ -182,6 +195,8 @@ + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.setTag("Data", nbttagcompound); + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, worldInformation, nbttagcompound1); ++ + try + { + File file1 = new File(this.worldDirectory, "level.dat_new"); +@@ -230,6 +245,7 @@ } file1.renameTo(file2); @@ -26,7 +68,7 @@ } catch (Exception var5) { -@@ -260,6 +265,7 @@ +@@ -260,6 +276,7 @@ p_75752_1_.readFromNBT(nbttagcompound); } @@ -34,7 +76,7 @@ return nbttagcompound; } -@@ -301,4 +307,22 @@ +@@ -301,4 +318,22 @@ { return this.saveDirectoryName; } diff --git a/rejects/minecraft/net/minecraft/enchantment/Enchantment.java.patch.rej b/rejects/minecraft/net/minecraft/enchantment/Enchantment.java.patch.rej deleted file mode 100644 index d074e8eaa..000000000 --- a/rejects/minecraft/net/minecraft/enchantment/Enchantment.java.patch.rej +++ /dev/null @@ -1,55 +0,0 @@ -++++ REJECTED PATCH 2 - - public boolean canApply(ItemStack stack) - { -- return this.type.canEnchantItem(stack.getItem()); -+ return canApplyAtEnchantingTable(stack); - } - - public void onEntityDamaged(EntityLivingBase user, Entity target, int level) {} - - public void onUserHurt(EntityLivingBase user, Entity attacker, int level) {} - -+ /** -+ * This applies specifically to applying at the enchanting table. The other method {@link #canApply(ItemStack)} -+ * applies for all possible enchantments. -+ * @param stack -+ * @return -+ */ -+ public boolean canApplyAtEnchantingTable(ItemStack stack) -+ { -+ return this.type.canEnchantItem(stack.getItem()); -+ } -+ -+ private static final java.lang.reflect.Field bookSetter = Enchantment.class.getDeclaredFields()[1]; -+ /** -+ * Add to the list of enchantments applicable by the anvil from a book -+ * -+ * @param enchantment -+ */ -+ public static void addToBookList(Enchantment enchantment) -+ { -+ try -+ { -+ net.minecraftforge.common.util.EnumHelper.setFailsafeFieldValue(bookSetter, null, -+ com.google.common.collect.ObjectArrays.concat(enchantmentsBookList, enchantment)); -+ } -+ catch (Exception e) -+ { -+ throw new RuntimeException(e); //Rethrow see what happens -+ } -+ } -+ -+ /** -+ * Is this enchantment allowed to be enchanted on books via Enchantment Table -+ * @return false to disable the vanilla feature -+ */ -+ public boolean isAllowedOnBooks() -+ { -+ return true; -+ } -+ - static - { - ArrayList var0 = Lists.newArrayList(); -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch.rej b/rejects/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch.rej deleted file mode 100644 index 974dff0f7..000000000 --- a/rejects/minecraft/net/minecraft/enchantment/EnchantmentHelper.java.patch.rej +++ /dev/null @@ -1,43 +0,0 @@ -++++ REJECTED PATCH 1 - public static int calcItemStackEnchantability(Random p_77514_0_, int p_77514_1_, int p_77514_2_, ItemStack p_77514_3_) - { - Item item = p_77514_3_.getItem(); -- int k = item.getItemEnchantability(); -+ int k = item.getItemEnchantability(p_77514_3_); - - if (k <= 0) - { -++++ END PATCH -++++ REJECTED PATCH 2 - public static List buildEnchantmentList(Random p_77513_0_, ItemStack p_77513_1_, int p_77513_2_) - { - Item item = p_77513_1_.getItem(); -- int j = item.getItemEnchantability(); -+ int j = item.getItemEnchantability(p_77513_1_); - - if (j <= 0) - { -++++ END PATCH -++++ REJECTED PATCH 3 - { - EnchantmentData enchantmentdata1 = (EnchantmentData)iterator1.next(); - -- if (enchantmentdata1.enchantmentobj.canApplyTogether(Enchantment.getEnchantmentById(integer.intValue()))) -+ Enchantment e1 = enchantmentdata1.enchantmentobj; -+ Enchantment e2 = Enchantment.getEnchantmentById(integer.intValue()); -+ if (e1.canApplyTogether(e2) && e2.canApplyTogether(e1)) //Forge BugFix: Let Both enchantments veto being together - { - continue; - } -++++ END PATCH -++++ REJECTED PATCH 4 - { - Enchantment enchantment = aenchantment[k]; - -- if (enchantment != null && (enchantment.type.canEnchantItem(item) || flag)) -+ if (enchantment == null) continue; -+ if (enchantment.canApplyAtEnchantingTable(p_77505_1_) || ((item == Items.book) && enchantment.isAllowedOnBooks())) - { - for (int l = enchantment.getMinLevel(); l <= enchantment.getMaxLevel(); ++l) - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch.rej b/rejects/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch.rej deleted file mode 100644 index e32f40b66..000000000 --- a/rejects/minecraft/net/minecraft/entity/monster/EntityEnderman.java.patch.rej +++ /dev/null @@ -1,19 +0,0 @@ -++++ REJECTED PATCH 1 - - protected boolean teleportTo(double p_70825_1_, double p_70825_3_, double p_70825_5_) - { -+ net.minecraftforge.event.entity.living.EnderTeleportEvent event = new net.minecraftforge.event.entity.living.EnderTeleportEvent(this, p_70825_1_, p_70825_3_, p_70825_5_, 0); -+ if (net.minecraftforge.common.MinecraftForge.EVENT_BUS.post(event)) return false; - double d3 = this.posX; - double d4 = this.posY; - double d5 = this.posZ; -- this.posX = p_70825_1_; -- this.posY = p_70825_3_; -- this.posZ = p_70825_5_; -+ this.posX = event.targetX; -+ this.posY = event.targetY; -+ this.posZ = event.targetZ; - boolean flag = false; - BlockPos blockpos = new BlockPos(this.posX, this.posY, this.posZ); - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch.rej b/rejects/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch.rej deleted file mode 100644 index ed935ae5f..000000000 --- a/rejects/minecraft/net/minecraft/entity/monster/EntityZombie.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 4 - - if (p_180482_2_1 == null) - { -- p_180482_2_1 = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < 0.05F, this.worldObj.rand.nextFloat() < 0.05F, null); -+ p_180482_2_1 = new EntityZombie.GroupData(this.worldObj.rand.nextFloat() < net.minecraftforge.common.ForgeModContainer.zombieBabyChance, this.worldObj.rand.nextFloat() < 0.05F, null); - } - - if (p_180482_2_1 instanceof EntityZombie.GroupData) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch.rej b/rejects/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch.rej deleted file mode 100644 index 4eec41fb9..000000000 --- a/rejects/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch.rej +++ /dev/null @@ -1,9 +0,0 @@ -++++ REJECTED PATCH 3 - - private void populateBuyingList() - { -+ //TODO: Hook into VillagerRegistry - EntityVillager.ITradeList[][][] aitradelist = DEFAULT_TRADE_LIST_MAP[this.getProfession()]; - - if (this.careerId != 0 && this.careerLevel != 0) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch.rej b/rejects/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch.rej deleted file mode 100644 index 5dfe144df..000000000 --- a/rejects/minecraft/net/minecraft/item/crafting/FurnaceRecipes.java.patch.rej +++ /dev/null @@ -1,11 +0,0 @@ -++++ REJECTED PATCH 2 - - public float getSmeltingExperience(ItemStack stack) - { -+ float ret = stack.getItem().getSmeltingExperience(stack); -+ if (ret != -1) return ret; -+ - Iterator iterator = this.experienceList.entrySet().iterator(); - Entry entry; - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch.rej b/rejects/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch.rej deleted file mode 100644 index c5f4d4693..000000000 --- a/rejects/minecraft/net/minecraft/item/crafting/RecipeFireworks.java.patch.rej +++ /dev/null @@ -1,23 +0,0 @@ -++++ REJECTED PATCH 1 - { - this.field_92102_a = new ItemStack(Items.fireworks); - -+ nbttagcompound = new NBTTagCompound(); - if (l > 0) - { -- nbttagcompound = new NBTTagCompound(); - nbttagcompound1 = new NBTTagCompound(); - NBTTagList nbttaglist = new NBTTagList(); - -++++ END PATCH -++++ REJECTED PATCH 2 - nbttagcompound1.setTag("Explosions", nbttaglist); - nbttagcompound1.setByte("Flight", (byte)j); - nbttagcompound.setTag("Fireworks", nbttagcompound1); -- this.field_92102_a.setTagCompound(nbttagcompound); - } -+ this.field_92102_a.setTagCompound(nbttagcompound); //Forge BugFix: NPE Protection - - return true; - } -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch.rej b/rejects/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch.rej deleted file mode 100644 index bb4871784..000000000 --- a/rejects/minecraft/net/minecraft/item/crafting/RecipeRepairItem.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 3 - ItemStack itemstack2 = (ItemStack)arraylist.get(0); - itemstack = (ItemStack)arraylist.get(1); - -- if (itemstack2.getItem() == itemstack.getItem() && itemstack2.stackSize == 1 && itemstack.stackSize == 1 && itemstack2.getItem().isDamageable()) -+ if (itemstack2.getItem() == itemstack.getItem() && itemstack2.stackSize == 1 && itemstack.stackSize == 1 && itemstack2.getItem().isRepairable()) - { - Item item = itemstack2.getItem(); - int j = item.getMaxDamage() - itemstack2.getItemDamage(); -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/nbt/NBTTagByteArray.java.patch.rej b/rejects/minecraft/net/minecraft/nbt/NBTTagByteArray.java.patch.rej deleted file mode 100644 index 2f48a9fbb..000000000 --- a/rejects/minecraft/net/minecraft/nbt/NBTTagByteArray.java.patch.rej +++ /dev/null @@ -1,9 +0,0 @@ -++++ REJECTED PATCH 1 - - void read(DataInput input, int depth, NBTSizeTracker sizeTracker) throws IOException - { -+ sizeTracker.read(32); //Forge: Count the length as well - int j = input.readInt(); - sizeTracker.read((long)(8 * j)); - this.data = new byte[j]; -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch.rej b/rejects/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch.rej deleted file mode 100644 index 2873b145b..000000000 --- a/rejects/minecraft/net/minecraft/nbt/NBTTagCompound.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 1 - while ((b0 = readType(input, sizeTracker)) != 0) - { - String s = readKey(input, sizeTracker); -- sizeTracker.read((long)(16 * s.length())); -+ NBTSizeTracker.readUTF(sizeTracker, s); // Forge: Correctly read String length including header. - NBTBase nbtbase = readNBT(b0, s, input, depth + 1, sizeTracker); - this.tagMap.put(s, nbtbase); - } -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/nbt/NBTTagIntArray.java.patch.rej b/rejects/minecraft/net/minecraft/nbt/NBTTagIntArray.java.patch.rej deleted file mode 100644 index 891176729..000000000 --- a/rejects/minecraft/net/minecraft/nbt/NBTTagIntArray.java.patch.rej +++ /dev/null @@ -1,9 +0,0 @@ -++++ REJECTED PATCH 1 - - void read(DataInput input, int depth, NBTSizeTracker sizeTracker) throws IOException - { -+ sizeTracker.read(32); //Forge: Count the length as well - int j = input.readInt(); - sizeTracker.read((long)(32 * j)); - this.intArray = new int[j]; -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/nbt/NBTTagList.java.patch.rej b/rejects/minecraft/net/minecraft/nbt/NBTTagList.java.patch.rej deleted file mode 100644 index 40455e211..000000000 --- a/rejects/minecraft/net/minecraft/nbt/NBTTagList.java.patch.rej +++ /dev/null @@ -1,15 +0,0 @@ -++++ REJECTED PATCH 1 - { - sizeTracker.read(8L); - this.tagType = input.readByte(); -+ sizeTracker.read(32); //Forge: Count the length as well - int j = input.readInt(); - this.tagList = Lists.newArrayList(); - - for (int k = 0; k < j; ++k) - { -+ sizeTracker.read(32); //Forge: 4 extra bytes for the object allocation. - NBTBase nbtbase = NBTBase.createNewByType(this.tagType); - nbtbase.read(input, depth + 1, sizeTracker); - this.tagList.add(nbtbase); -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/network/NetworkSystem.java.patch.rej b/rejects/minecraft/net/minecraft/network/NetworkSystem.java.patch.rej deleted file mode 100644 index ef370c551..000000000 --- a/rejects/minecraft/net/minecraft/network/NetworkSystem.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 1 - ; - } - -- p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(30)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(EnumPacketDirection.SERVERBOUND)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(EnumPacketDirection.CLIENTBOUND)); -+ p_initChannel_1_.pipeline().addLast("timeout", new ReadTimeoutHandler(net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.READ_TIMEOUT)).addLast("legacy_query", new PingResponseHandler(NetworkSystem.this)).addLast("splitter", new MessageDeserializer2()).addLast("decoder", new MessageDeserializer(EnumPacketDirection.SERVERBOUND)).addLast("prepender", new MessageSerializer2()).addLast("encoder", new MessageSerializer(EnumPacketDirection.CLIENTBOUND)); - NetworkManager networkmanager = new NetworkManager(EnumPacketDirection.SERVERBOUND); - NetworkSystem.this.networkManagers.add(networkmanager); - p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager); -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch.rej b/rejects/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch.rej deleted file mode 100644 index a1201ecf7..000000000 --- a/rejects/minecraft/net/minecraft/network/status/server/S00PacketServerInfo.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 1 - - public void writePacketData(PacketBuffer buf) throws IOException - { -- buf.writeString(GSON.toJson(this.response)); -+ buf.writeString(this.response.getJson()); - } - - public void processPacket(INetHandlerStatusClient handler) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/potion/PotionEffect.java.patch.rej b/rejects/minecraft/net/minecraft/potion/PotionEffect.java.patch.rej deleted file mode 100644 index af2f10358..000000000 --- a/rejects/minecraft/net/minecraft/potion/PotionEffect.java.patch.rej +++ /dev/null @@ -1,10 +0,0 @@ -++++ REJECTED PATCH 4 - - public static PotionEffect readCustomPotionEffectFromNBT(NBTTagCompound nbt) - { -- byte b0 = nbt.getByte("Id"); -+ int b0 = nbt.getByte("Id") & 0xff; - - if (b0 >= 0 && b0 < Potion.potionTypes.length && Potion.potionTypes[b0] != null) - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/server/MinecraftServer.java.patch.rej b/rejects/minecraft/net/minecraft/server/MinecraftServer.java.patch.rej deleted file mode 100644 index 43108a30c..000000000 --- a/rejects/minecraft/net/minecraft/server/MinecraftServer.java.patch.rej +++ /dev/null @@ -1,11 +0,0 @@ -// do we still need this? -++++ REJECTED PATCH 16 - { - try - { -- ((FutureTask)this.futureTaskQueue.poll()).run(); -+ net.minecraftforge.fml.common.FMLCommonHandler.callFuture(((FutureTask)this.futureTaskQueue.poll())); - } - catch (Throwable throwable2) - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch.rej b/rejects/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch.rej deleted file mode 100644 index fe21c355f..000000000 --- a/rejects/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch.rej +++ /dev/null @@ -1,11 +0,0 @@ -// This in now a method in Util, which does almost the same, do we need this still? -++++ REJECTED PATCH 4 - { - try - { -- ((FutureTask)this.futureTaskQueue.poll()).run(); -+ net.minecraftforge.fml.common.FMLCommonHandler.callFuture(((FutureTask)this.futureTaskQueue.poll())); - } - catch (Throwable throwable) - { -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/stats/StatList.java.patch.rej b/rejects/minecraft/net/minecraft/stats/StatList.java.patch.rej deleted file mode 100644 index ccf210286..000000000 --- a/rejects/minecraft/net/minecraft/stats/StatList.java.patch.rej +++ /dev/null @@ -1,15 +0,0 @@ -++++ REJECTED PATCH 2 - while (iterator.hasNext()) - { - Block block = (Block)iterator.next(); -- Item item = Item.getItemFromBlock(block); -+ Item item = Item.getItemFromBlock(block); //TODO: Hook FML's stat change event and re-assign these - - if (item != null) - { -- int i = Block.getIdFromBlock(block); -+ int i = Block.getIdFromBlock(block); //TODO: Hook FML's stat change event and re-assign these - String s = func_180204_a(item); - - if (s != null && block.getEnableStats()) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/util/Session.java.patch.rej b/rejects/minecraft/net/minecraft/util/Session.java.patch.rej deleted file mode 100644 index 11b745c24..000000000 --- a/rejects/minecraft/net/minecraft/util/Session.java.patch.rej +++ /dev/null @@ -1,17 +0,0 @@ -++++ REJECTED PATCH 2 - try - { - UUID uuid = UUIDTypeAdapter.fromString(this.getPlayerID()); -- return new GameProfile(uuid, this.getUsername()); -+ GameProfile ret = new GameProfile(uuid, this.getUsername()); //Forge: Adds cached GameProfile properties to returned GameProfile. -+ if (properties != null) ret.getProperties().putAll(properties); // Helps to cut down on calls to the session service, -+ return ret; // which helps to fix MC-52974. - } - catch (IllegalArgumentException illegalargumentexception) - { -- return new GameProfile((UUID)null, this.getUsername()); -+ return new GameProfile(net.minecraft.entity.player.EntityPlayer.getUUID(new GameProfile((UUID)null, this.getUsername())), this.getUsername()); - } - } - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch.rej b/rejects/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch.rej deleted file mode 100644 index 422036166..000000000 --- a/rejects/minecraft/net/minecraft/util/WeightedRandomChestContent.java.patch.rej +++ /dev/null @@ -1,54 +0,0 @@ -++++ REJECTED PATCH 1 - for (int j = 0; j < p_177630_3_; ++j) - { - WeightedRandomChestContent weightedrandomchestcontent = (WeightedRandomChestContent)WeightedRandom.getRandomItem(random, p_177630_1_); -- int k = weightedrandomchestcontent.theMinimumChanceToGenerateItem + random.nextInt(weightedrandomchestcontent.theMaximumChanceToGenerateItem - weightedrandomchestcontent.theMinimumChanceToGenerateItem + 1); -+ ItemStack[] stacks = weightedrandomchestcontent.generateChestContent(random, p_177630_2_); - -- if (weightedrandomchestcontent.theItemId.getMaxStackSize() >= k) -+ for (ItemStack itemstack : stacks) - { -- ItemStack itemstack = weightedrandomchestcontent.theItemId.copy(); -- itemstack.stackSize = k; - p_177630_2_.setInventorySlotContents(random.nextInt(p_177630_2_.getSizeInventory()), itemstack); - } -- else -- { -- for (int l = 0; l < k; ++l) -- { -- ItemStack itemstack1 = weightedrandomchestcontent.theItemId.copy(); -- itemstack1.stackSize = 1; -- p_177630_2_.setInventorySlotContents(random.nextInt(p_177630_2_.getSizeInventory()), itemstack1); -- } -- } - } - } - -++++ END PATCH -++++ REJECTED PATCH 2 - for (int j = 0; j < p_177631_3_; ++j) - { - WeightedRandomChestContent weightedrandomchestcontent = (WeightedRandomChestContent)WeightedRandom.getRandomItem(random, p_177631_1_); -- int k = weightedrandomchestcontent.theMinimumChanceToGenerateItem + random.nextInt(weightedrandomchestcontent.theMaximumChanceToGenerateItem - weightedrandomchestcontent.theMinimumChanceToGenerateItem + 1); -+ ItemStack[] stacks = weightedrandomchestcontent.generateChestContent(random, dispenser); - -- if (weightedrandomchestcontent.theItemId.getMaxStackSize() >= k) -+ for (ItemStack itemstack : stacks) - { -- ItemStack itemstack = weightedrandomchestcontent.theItemId.copy(); -- itemstack.stackSize = k; - dispenser.setInventorySlotContents(random.nextInt(dispenser.getSizeInventory()), itemstack); - } -- else -- { -- for (int l = 0; l < k; ++l) -- { -- ItemStack itemstack1 = weightedrandomchestcontent.theItemId.copy(); -- itemstack1.stackSize = 1; -- dispenser.setInventorySlotContents(random.nextInt(dispenser.getSizeInventory()), itemstack1); -- } -- } - } - } - -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/Explosion.java.patch.rej b/rejects/minecraft/net/minecraft/world/Explosion.java.patch.rej deleted file mode 100644 index 2cd87d5d3..000000000 --- a/rejects/minecraft/net/minecraft/world/Explosion.java.patch.rej +++ /dev/null @@ -1,9 +0,0 @@ -++++ REJECTED PATCH 4 - int k1 = MathHelper.floor_double(this.explosionZ - (double)f3 - 1.0D); - int i1 = MathHelper.floor_double(this.explosionZ + (double)f3 + 1.0D); - List list = this.worldObj.getEntitiesWithinAABBExcludingEntity(this.exploder, new AxisAlignedBB((double)j, (double)j1, (double)k1, (double)k, (double)l, (double)i1)); -+ net.minecraftforge.event.ForgeEventFactory.onExplosionDetonate(this.worldObj, this, list, f3); - Vec3 vec3 = new Vec3(this.explosionX, this.explosionY, this.explosionZ); - - for (int l1 = 0; l1 < list.size(); ++l1) -++++ END PATCH diff --git a/rejects/minecraft/net/minecraft/world/storage/SaveHandler.java.patch.rej b/rejects/minecraft/net/minecraft/world/storage/SaveHandler.java.patch.rej deleted file mode 100644 index 5c25036b4..000000000 --- a/rejects/minecraft/net/minecraft/world/storage/SaveHandler.java.patch.rej +++ /dev/null @@ -1,48 +0,0 @@ -++++ REJECTED PATCH 1 - NBTTagCompound nbttagcompound; - NBTTagCompound nbttagcompound1; - -+ WorldInfo worldInfo = null; -+ - if (file1.exists()) - { - try - { - nbttagcompound = CompressedStreamTools.readCompressed(new FileInputStream(file1)); - nbttagcompound1 = nbttagcompound.getCompoundTag("Data"); -- return new WorldInfo(nbttagcompound1); -+ worldInfo = new WorldInfo(nbttagcompound1); -+ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound); -+ return worldInfo; - } -+ catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e) -+ { -+ throw e; -+ } - catch (Exception exception1) - { - exception1.printStackTrace(); - } - } - -+ net.minecraftforge.fml.common.FMLCommonHandler.instance().confirmBackupLevelDatUse(this); - file1 = new File(this.worldDirectory, "level.dat_old"); - - if (file1.exists()) -++++ END PATCH -++++ REJECTED PATCH 2 - { - nbttagcompound = CompressedStreamTools.readCompressed(new FileInputStream(file1)); - nbttagcompound1 = nbttagcompound.getCompoundTag("Data"); -- return new WorldInfo(nbttagcompound1); -+ worldInfo = new WorldInfo(nbttagcompound1); -+ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataLoad(this, worldInfo, nbttagcompound); -+ return worldInfo; -+ } -+ catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e) -+ { -+ throw e; - } - catch (Exception exception) - { -++++ END PATCH