diff --git a/fml/CREDITS-fml.txt b/CREDITS-fml.txt similarity index 100% rename from fml/CREDITS-fml.txt rename to CREDITS-fml.txt diff --git a/fml/LICENSE-fml.txt b/LICENSE-fml.txt similarity index 100% rename from fml/LICENSE-fml.txt rename to LICENSE-fml.txt diff --git a/build.gradle b/build.gradle index dc8b6d92b..2d972c5c7 100644 --- a/build.gradle +++ b/build.gradle @@ -39,19 +39,19 @@ minecraft { } projects { - fml { - rootDir 'fml' - patchDir "fml/patches/minecraft" - patchAfter "clean" - genPatchesFrom "clean" - - with common - } +// fml { +// rootDir 'fml' +// patchDir "fml/patches/minecraft" +// patchAfter "clean" +// genPatchesFrom "clean" +// +// with common +// } forge { rootDir "." patchDir "patches/minecraft" - patchAfter "fml" - genPatchesFrom "fml" + patchAfter "clean" + genPatchesFrom "clean" with common } @@ -61,7 +61,7 @@ minecraft { group = 'net.minecraftforge' version = getVersionFromJava(file("src/main/java/net/minecraftforge/common/ForgeVersion.java")) -extractFmlSources { exclude "**/SideOnly.java", "**/Side.java" } +extractForgeSources { exclude "**/SideOnly.java", "**/Side.java" } genGradleProjects { addTestCompileDep "junit:junit:4.12" } diff --git a/fml/src/main/resources/fml.exc b/fml/src/main/resources/fml.exc deleted file mode 100644 index 9d98f140c..000000000 --- a/fml/src/main/resources/fml.exc +++ /dev/null @@ -1,2 +0,0 @@ -net/minecraft/server/management/ServerConfigurationManager.initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V=|p_72355_1_,p_72355_2_,nethandlerplayserver -net/minecraft/item/ItemMonsterPlacer.spawnCreature(Lnet/minecraft/world/World;Ljava/lang/String;DDD)Lnet/minecraft/entity/Entity;=|p_77840_0_,name,p_77840_2_,p_77840_4_,p_77840_6_ diff --git a/fml/src/main/resources/fml_at.cfg b/fml/src/main/resources/fml_at.cfg deleted file mode 100644 index 9ce2e83bb..000000000 --- a/fml/src/main/resources/fml_at.cfg +++ /dev/null @@ -1,74 +0,0 @@ -#Main FML Access Transformer configuration file -# TileEntity addMapping -public net.minecraft.tileentity.TileEntity func_145826_a(Ljava/lang/Class;Ljava/lang/String;)V -# EntityList addMappings -public net.minecraft.entity.EntityList func_75618_a(Ljava/lang/Class;Ljava/lang/String;I)V -public net.minecraft.entity.EntityList func_75614_a(Ljava/lang/Class;Ljava/lang/String;III)V -public net.minecraft.entity.EntityList field_75625_b #nameToClassMap -public net.minecraft.entity.EntityList field_75626_c #classToNameMap -public net.minecraft.entity.EntityList field_75623_d #idToClassMap -## RenderManager -public net.minecraft.client.renderer.entity.RenderManager field_78729_o #renderers -## TileEntityRendererDispatcher -public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher field_147559_m -## WeightedRandomItem -public net.minecraft.util.WeightedRandom$Item field_76292_a #probability -## EntityPlayerMP getNextWindowId -public net.minecraft.entity.player.EntityPlayerMP func_71117_bO()V -public net.minecraft.entity.player.EntityPlayerMP field_71139_cq -## EntityAITaskEntry -public net.minecraft.entity.ai.EntityAITasks$EntityAITaskEntry -## EntityLiving -public net.minecraft.entity.EntityLiving field_70714_bg #tasks -public net.minecraft.entity.EntityLiving field_70715_bh #targetTasks -# GuiScreen -public net.minecraft.client.gui.GuiScreen field_146297_k # minecraft instance - public because gui's outside access it -# Minecraft -public net.minecraft.client.Minecraft field_71446_o # textureManager -public net.minecraft.client.Minecraft field_110450_ap # mcDefaultResourcePack -public net.minecraft.client.Minecraft func_71370_a(II)V # resize -public net.minecraft.client.Minecraft func_180510_a(Lnet/minecraft/client/renderer/texture/TextureManager;)V # drawSplashScreen -## ItemBlock -public net.minecraft.item.ItemBlock field_150939_a -## DedicatedServer -public net.minecraft.server.dedicated.DedicatedServer field_71341_l # pendingCommandList -## SaveFormatOld -public net.minecraft.world.storage.SaveFormatOld field_75808_a # savesDirectory - -protected net.minecraft.util.ObjectIntIdentityMap field_148749_a # internal map -protected net.minecraft.util.ObjectIntIdentityMap field_148748_b # internal index list -protected-f net.minecraft.util.RegistryNamespaced field_148759_a # identitymap - -# GuiButton -public net.minecraft.client.gui.GuiButton field_146120_f # width - needed for config GUI stuff -public net.minecraft.client.gui.GuiButton field_146121_g # height - needed for config GUI stuff -# GuiTextField -public-f net.minecraft.client.gui.GuiTextField field_146218_h # width - needed for config GUI stuff -public-f net.minecraft.client.gui.GuiTextField field_146219_i # height - needed for config GUI stuff -# GuiSlot -public net.minecraft.client.gui.GuiSlot field_148149_f # slotHeight - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148151_d # right - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148152_e # left - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148153_b # top - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148154_c # bottom - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148155_a # width - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148158_l # height - needed for config GUI stuff -public net.minecraft.client.gui.GuiSlot field_148160_j # headerPadding - needed for config GUI stuff - -# Villager Traid Classes -public net.minecraft.entity.passive.EntityVillager$EmeraldForItems -public net.minecraft.entity.passive.EntityVillager$ITradeList -public net.minecraft.entity.passive.EntityVillager$ItemAndEmeraldToItem -public net.minecraft.entity.passive.EntityVillager$ListEnchantedBookForEmeralds -public net.minecraft.entity.passive.EntityVillager$ListEnchantedItemForEmeralds -public net.minecraft.entity.passive.EntityVillager$ListItemForEmeralds -public net.minecraft.entity.passive.EntityVillager$PriceInfo - -# Font renderer -protected net.minecraft.client.gui.FontRenderer field_78286_d # charWidth -protected net.minecraft.client.gui.FontRenderer field_78287_e # glyphWidth -protected net.minecraft.client.gui.FontRenderer field_111273_g # locationFontTexture -protected net.minecraft.client.gui.FontRenderer field_78295_j # posX -protected net.minecraft.client.gui.FontRenderer field_78296_k # posY -protected net.minecraft.client.gui.FontRenderer func_78266_a(IZ)F # renderDefaultChar -protected net.minecraft.client.gui.FontRenderer func_78277_a(CZ)F # renderUnicodeChar diff --git a/fml/src/main/resources/fml_marker.cfg b/fml/src/main/resources/fml_marker.cfg deleted file mode 100644 index bfd4e9277..000000000 --- a/fml/src/main/resources/fml_marker.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# Marker interfaces to add to minecraft - helps in bukkit and client/server unification -# Only runs at runtime because it's not necessary at compile time -# has deobf and obf mappings so it runs OK in mcp diff --git a/patches/minecraft/net/minecraft/block/Block.java.patch b/patches/minecraft/net/minecraft/block/Block.java.patch index e9efee3d8..87d785eae 100644 --- a/patches/minecraft/net/minecraft/block/Block.java.patch +++ b/patches/minecraft/net/minecraft/block/Block.java.patch @@ -1,6 +1,28 @@ --- ../src-base/minecraft/net/minecraft/block/Block.java +++ ../src-work/minecraft/net/minecraft/block/Block.java -@@ -140,7 +140,8 @@ +@@ -39,8 +39,9 @@ + public class Block + { + private static final ResourceLocation field_176230_a = new ResourceLocation("air"); +- public static final RegistryNamespacedDefaultedByKey field_149771_c = new RegistryNamespacedDefaultedByKey(field_176230_a); +- public static final ObjectIntIdentityMap field_176229_d = new ObjectIntIdentityMap(); ++ public static final RegistryNamespacedDefaultedByKey field_149771_c = net.minecraftforge.fml.common.registry.GameData.getBlockRegistry(); ++ @Deprecated //Modders: DO NOT use this! Use GameRegistry ++ public static final ObjectIntIdentityMap field_176229_d = net.minecraftforge.fml.common.registry.GameData.getBlockStateIDMap(); + private CreativeTabs field_149772_a; + public static final Block.SoundType field_149769_e = new Block.SoundType("stone", 1.0F, 1.0F); + public static final Block.SoundType field_149766_f = new Block.SoundType("wood", 1.0F, 1.0F); +@@ -124,6 +125,9 @@ + private String field_149770_b; + private static final String __OBFID = "CL_00000199"; + ++ public final net.minecraftforge.fml.common.registry.RegistryDelegate delegate = ++ ((net.minecraftforge.fml.common.registry.FMLControlledNamespacedRegistry)field_149771_c).getDelegate(this, Block.class); ++ + public static int func_149682_b(Block p_149682_0_) + { + return field_149771_c.func_148757_b(p_149682_0_); +@@ -136,7 +140,8 @@ public static Block func_149729_e(int p_149729_0_) { @@ -10,7 +32,7 @@ } public static IBlockState func_176220_d(int p_176220_0_) -@@ -304,7 +305,7 @@ +@@ -300,7 +305,7 @@ public boolean func_176200_f(World p_176200_1_, BlockPos p_176200_2_) { @@ -19,7 +41,7 @@ } public Block func_149711_c(float p_149711_1_) -@@ -341,9 +342,10 @@ +@@ -337,9 +342,10 @@ return this.field_149789_z; } @@ -31,7 +53,7 @@ } public final void func_149676_a(float p_149676_1_, float p_149676_2_, float p_149676_3_, float p_149676_4_, float p_149676_5_, float p_149676_6_) -@@ -360,13 +362,13 @@ +@@ -356,13 +362,13 @@ public int func_176207_c(IBlockAccess p_176207_1_, BlockPos p_176207_2_) { Block block = p_176207_1_.func_180495_p(p_176207_2_).func_177230_c(); @@ -47,7 +69,7 @@ } else { -@@ -442,7 +444,13 @@ +@@ -438,7 +444,13 @@ public void func_176213_c(World p_176213_1_, BlockPos p_176213_2_, IBlockState p_176213_3_) {} @@ -62,7 +84,7 @@ public int func_149745_a(Random p_149745_1_) { -@@ -456,8 +464,7 @@ +@@ -452,8 +464,7 @@ public float func_180647_a(EntityPlayer p_180647_1_, World p_180647_2_, BlockPos p_180647_3_) { @@ -72,7 +94,7 @@ } public final void func_176226_b(World p_176226_1_, BlockPos p_176226_2_, IBlockState p_176226_3_, int p_176226_4_) -@@ -467,20 +474,16 @@ +@@ -463,20 +474,16 @@ public void func_180653_a(World p_180653_1_, BlockPos p_180653_2_, IBlockState p_180653_3_, float p_180653_4_, int p_180653_5_) { @@ -98,7 +120,7 @@ } } } -@@ -488,8 +491,13 @@ +@@ -484,8 +491,13 @@ public static void func_180635_a(World p_180635_0_, BlockPos p_180635_1_, ItemStack p_180635_2_) { @@ -113,7 +135,7 @@ float f = 0.5F; double d0 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D; double d1 = (double)(p_180635_0_.field_73012_v.nextFloat() * f) + (double)(1.0F - f) * 0.5D; -@@ -674,7 +682,7 @@ +@@ -670,7 +682,7 @@ public boolean func_176196_c(World p_176196_1_, BlockPos p_176196_2_) { @@ -122,7 +144,7 @@ } public boolean func_180639_a(World p_180639_1_, BlockPos p_180639_2_, IBlockState p_180639_3_, EntityPlayer p_180639_4_, EnumFacing p_180639_5_, float p_180639_6_, float p_180639_7_, float p_180639_8_) -@@ -776,25 +784,35 @@ +@@ -772,25 +784,35 @@ p_180657_2_.func_71029_a(StatList.field_75934_C[func_149682_b(this)]); p_180657_2_.func_71020_j(0.025F); @@ -161,7 +183,7 @@ } protected ItemStack func_180643_i(IBlockState p_180643_1_) -@@ -971,6 +989,1033 @@ +@@ -967,6 +989,1033 @@ return Block.EnumOffsetType.NONE; } diff --git a/patches/minecraft/net/minecraft/client/ClientBrandRetriever.java.patch b/patches/minecraft/net/minecraft/client/ClientBrandRetriever.java.patch new file mode 100644 index 000000000..d046aa4a5 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/ClientBrandRetriever.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/ClientBrandRetriever.java ++++ ../src-work/minecraft/net/minecraft/client/ClientBrandRetriever.java +@@ -10,6 +10,6 @@ + + public static String getClientModName() + { +- return "vanilla"; ++ return net.minecraftforge.fml.common.FMLCommonHandler.instance().getModName(); + } + } diff --git a/patches/minecraft/net/minecraft/client/LoadingScreenRenderer.java.patch b/patches/minecraft/net/minecraft/client/LoadingScreenRenderer.java.patch new file mode 100644 index 000000000..9cbf23085 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/LoadingScreenRenderer.java.patch @@ -0,0 +1,26 @@ +--- ../src-base/minecraft/net/minecraft/client/LoadingScreenRenderer.java ++++ ../src-work/minecraft/net/minecraft/client/LoadingScreenRenderer.java +@@ -139,6 +139,10 @@ + GlStateManager.func_179086_m(16640); + } + ++ try ++ { ++ if (!net.minecraftforge.fml.client.FMLClientHandler.instance().handleLoadingScreen(scaledresolution)) //FML Don't render while FML's pre-screen is rendering ++ { + Tessellator tessellator = Tessellator.func_178181_a(); + WorldRenderer worldrenderer = tessellator.func_178180_c(); + this.field_73725_b.func_110434_K().func_110577_a(Gui.field_110325_k); +@@ -177,6 +181,12 @@ + GlStateManager.func_179120_a(770, 771, 1, 0); + this.field_73725_b.field_71466_p.func_175063_a(this.field_73726_c, (float)((l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73726_c)) / 2), (float)(i1 / 2 - 4 - 16), 16777215); + this.field_73725_b.field_71466_p.func_175063_a(this.field_73727_a, (float)((l - this.field_73725_b.field_71466_p.func_78256_a(this.field_73727_a)) / 2), (float)(i1 / 2 - 4 + 8), 16777215); ++ } ++ } ++ catch (java.io.IOException e) ++ { ++ com.google.common.base.Throwables.propagate(e); ++ } //FML End + this.field_146588_g.func_147609_e(); + + if (OpenGlHelper.func_148822_b()) diff --git a/patches/minecraft/net/minecraft/client/Minecraft.java.patch b/patches/minecraft/net/minecraft/client/Minecraft.java.patch index df121cb83..261adbf52 100644 --- a/patches/minecraft/net/minecraft/client/Minecraft.java.patch +++ b/patches/minecraft/net/minecraft/client/Minecraft.java.patch @@ -8,16 +8,108 @@ this.field_71459_aj = p_i45547_1_.field_178741_d.field_178756_a; this.field_71443_c = p_i45547_1_.field_178743_b.field_178764_a > 0 ? p_i45547_1_.field_178743_b.field_178764_a : 1; this.field_71440_d = p_i45547_1_.field_178743_b.field_178762_b > 0 ? p_i45547_1_.field_178743_b.field_178762_b : 1; -@@ -491,7 +490,7 @@ - net.minecraftforge.fml.common.ProgressManager.pop(bar); - net.minecraftforge.fml.client.FMLClientHandler.instance().finishMinecraftLoading(); +@@ -410,10 +409,10 @@ + this.field_110451_am = new SimpleReloadableResourceManager(this.field_110452_an); + this.field_135017_as = new LanguageManager(this.field_110452_an, this.field_71474_y.field_74363_ab); + this.field_110451_am.func_110542_a(this.field_135017_as); +- this.func_110436_a(); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().beginMinecraftLoading(this, this.field_110449_ao, this.field_110451_am); + this.field_71446_o = new TextureManager(this.field_110451_am); + this.field_110451_am.func_110542_a(this.field_71446_o); +- this.func_180510_a(this.field_71446_o); ++ net.minecraftforge.fml.client.SplashProgress.drawVanillaScreen(this.field_71446_o); + this.func_175595_al(); + this.field_152350_aA = new SkinManager(this.field_71446_o, new File(this.field_110446_Y, "skins"), this.field_152355_az); + this.field_71469_aa = new AnvilSaveConverter(new File(this.field_71412_D, "saves")); +@@ -449,6 +448,8 @@ + } + }); + this.field_71417_B = new MouseHelper(); ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar= net.minecraftforge.fml.common.ProgressManager.push("Rendering Setup", 5, true); ++ bar.step("GL Setup"); + this.func_71361_d("Pre startup"); + GlStateManager.func_179098_w(); + GlStateManager.func_179103_j(7425); +@@ -462,17 +463,21 @@ + GlStateManager.func_179096_D(); + GlStateManager.func_179128_n(5888); + this.func_71361_d("Startup"); +- this.field_147128_au = new TextureMap("textures"); ++ bar.step("Loading Texture Map"); ++ this.field_147128_au = new TextureMap("textures",true); + this.field_147128_au.func_147633_a(this.field_71474_y.field_151442_I); + this.field_71446_o.func_110580_a(TextureMap.field_110575_b, this.field_147128_au); + this.field_71446_o.func_110577_a(TextureMap.field_110575_b); + this.field_147128_au.func_174937_a(false, this.field_71474_y.field_151442_I > 0); ++ bar.step("Loading Model Manager"); + this.field_175617_aL = new ModelManager(this.field_147128_au); + this.field_110451_am.func_110542_a(this.field_175617_aL); ++ bar.step("Loading Item Renderer"); + this.field_175621_X = new RenderItem(this.field_71446_o, this.field_175617_aL); + this.field_175616_W = new RenderManager(this.field_71446_o, this.field_175621_X); + this.field_175620_Y = new ItemRenderer(this); + this.field_110451_am.func_110542_a(this.field_175621_X); ++ bar.step("Loading Entity Renderer"); + this.field_71460_t = new EntityRenderer(this, this.field_110451_am); + this.field_110451_am.func_110542_a(this.field_71460_t); + this.field_175618_aM = new BlockRendererDispatcher(this.field_175617_aL.func_174954_c(), this.field_71474_y); +@@ -482,22 +487,25 @@ + this.field_71458_u = new GuiAchievement(this); + GlStateManager.func_179083_b(0, 0, this.field_71443_c, this.field_71440_d); + this.field_71452_i = new EffectRenderer(this.field_71441_e, this.field_71446_o); ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().finishMinecraftLoading(); this.func_71361_d("Post startup"); - this.field_71456_v = new GuiIngame(this); + this.field_71456_v = new net.minecraftforge.client.GuiIngameForge(this); if (this.field_71475_ae != null) { -@@ -898,11 +897,6 @@ +- this.func_147108_a(new GuiConnecting(new GuiMainMenu(), this, this.field_71475_ae, this.field_71477_af)); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().connectToServerAtStartup(this.field_71475_ae, this.field_71477_af); + } + else + { + this.func_147108_a(new GuiMainMenu()); + } + +- this.field_71446_o.func_147645_c(this.field_152354_ay); ++ net.minecraftforge.fml.client.SplashProgress.clearVanillaResources(field_71446_o, field_152354_ay); + this.field_152354_ay = null; + this.field_71461_s = new LoadingScreenRenderer(this); + ++ net.minecraftforge.fml.client.FMLClientHandler.instance().onInitializationComplete(); + if (this.field_71474_y.field_74353_u && !this.field_71431_Q) + { + this.func_71352_k(); +@@ -681,21 +689,23 @@ + File file2 = new File(file1, "crash-" + (new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss")).format(new Date()) + "-client.txt"); + Bootstrap.func_179870_a(p_71377_1_.func_71502_e()); + ++ int retVal; + if (p_71377_1_.func_71497_f() != null) + { + Bootstrap.func_179870_a("#@!@# Game crashed! Crash report saved to: #@!@# " + p_71377_1_.func_71497_f()); +- System.exit(-1); ++ retVal = -1; + } + else if (p_71377_1_.func_147149_a(file2)) + { + Bootstrap.func_179870_a("#@!@# Game crashed! Crash report saved to: #@!@# " + file2.getAbsolutePath()); +- System.exit(-1); ++ retVal = -1; + } + else + { + Bootstrap.func_179870_a("#@?@# Game crashed! Crash report could not be saved. #@?@#"); +- System.exit(-2); ++ retVal = -2; + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleExit(retVal); + } + + public boolean func_152349_b() +@@ -887,11 +897,6 @@ public void func_147108_a(GuiScreen p_147108_1_) { @@ -29,7 +121,7 @@ if (p_147108_1_ == null && this.field_71441_e == null) { p_147108_1_ = new GuiMainMenu(); -@@ -912,6 +906,17 @@ +@@ -901,6 +906,17 @@ p_147108_1_ = new GuiGameOver(); } @@ -47,7 +139,28 @@ if (p_147108_1_ instanceof GuiMainMenu) { this.field_71474_y.field_74330_P = false; -@@ -1395,7 +1400,7 @@ +@@ -999,7 +1015,7 @@ + { + while (!this.field_152351_aB.isEmpty()) + { +- ((FutureTask)this.field_152351_aB.poll()).run(); ++ net.minecraftforge.fml.common.FMLCommonHandler.callFuture(((FutureTask)this.field_152351_aB.poll())); + } + } + +@@ -1034,9 +1050,11 @@ + + if (!this.field_71454_w) + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onRenderTickStart(this.field_71428_T.field_74281_c); + this.field_71424_I.func_76318_c("gameRenderer"); + this.field_71460_t.func_78480_b(this.field_71428_T.field_74281_c); + this.field_71424_I.func_76319_b(); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onRenderTickEnd(this.field_71428_T.field_74281_c); + } + + this.field_71424_I.func_76319_b(); +@@ -1382,7 +1400,7 @@ if (this.field_71441_e.func_180495_p(blockpos).func_177230_c().func_149688_o() != Material.field_151579_a && this.field_71442_b.func_180512_c(blockpos, this.field_71476_x.field_178784_b)) { @@ -56,7 +169,7 @@ this.field_71439_g.func_71038_i(); } } -@@ -1475,15 +1480,19 @@ +@@ -1462,15 +1480,19 @@ case 2: BlockPos blockpos = this.field_71476_x.func_178782_a(); @@ -77,7 +190,7 @@ if (itemstack == null) { -@@ -1506,7 +1515,8 @@ +@@ -1493,7 +1515,8 @@ { ItemStack itemstack1 = this.field_71439_g.field_71071_by.func_70448_g(); @@ -87,7 +200,16 @@ { this.field_71460_t.field_78516_c.func_78445_c(); } -@@ -1704,6 +1714,8 @@ +@@ -1591,6 +1614,8 @@ + --this.field_71467_ac; + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPreClientTick(); ++ + this.field_71424_I.func_76320_a("gui"); + + if (!this.field_71445_n) +@@ -1689,6 +1714,8 @@ while (Mouse.next()) { @@ -96,11 +218,58 @@ i = Mouse.getEventButton(); KeyBinding.func_74510_a(i - 100, Mouse.getEventButtonState()); -@@ -2213,7 +2225,13 @@ +@@ -1744,6 +1771,7 @@ + this.field_71462_r.func_146274_d(); + } + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().fireMouseInput(); + } + + if (this.field_71429_W > 0) +@@ -1920,6 +1948,7 @@ + } + } + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().fireKeyInput(); + } + + for (i = 0; i < 9; ++i) +@@ -2120,12 +2149,15 @@ + this.field_71453_ak.func_74428_b(); + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostClientTick(); ++ + this.field_71424_I.func_76319_b(); + this.field_71423_H = func_71386_F(); + } + + public void func_71371_a(String p_71371_1_, String p_71371_2_, WorldSettings p_71371_3_) + { ++ net.minecraftforge.fml.client.FMLClientHandler.instance().startIntegratedServer(p_71371_1_, p_71371_2_, p_71371_3_); + this.func_71403_a((WorldClient)null); + System.gc(); + ISaveHandler isavehandler = this.field_71469_aa.func_75804_a(p_71371_1_, false); +@@ -2161,6 +2193,12 @@ + + while (!this.field_71437_Z.func_71200_ad()) + { ++ if (!net.minecraftforge.fml.common.StartupQuery.check()) ++ { ++ func_71403_a(null); ++ func_147108_a(null); ++ return; ++ } + String s2 = this.field_71437_Z.func_71195_b_(); + + if (s2 != null) +@@ -2186,8 +2224,14 @@ + SocketAddress socketaddress = this.field_71437_Z.func_147137_ag().func_151270_a(); NetworkManager networkmanager = NetworkManager.func_150722_a(socketaddress); networkmanager.func_150719_a(new NetHandlerLoginClient(networkmanager, this, (GuiScreen)null)); - networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true)); +- networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN)); - networkmanager.func_179290_a(new C00PacketLoginStart(this.func_110432_I().func_148256_e())); ++ networkmanager.func_179290_a(new C00Handshake(47, socketaddress.toString(), 0, EnumConnectionState.LOGIN, true)); + com.mojang.authlib.GameProfile gameProfile = this.func_110432_I().func_148256_e(); + if (!this.func_110432_I().hasCachedProperties()) + { @@ -111,7 +280,7 @@ this.field_71453_ak = networkmanager; } -@@ -2224,6 +2242,8 @@ +@@ -2198,6 +2242,8 @@ public void func_71353_a(WorldClient p_71353_1_, String p_71353_2_) { @@ -120,7 +289,7 @@ if (p_71353_1_ == null) { NetHandlerPlayClient nethandlerplayclient = this.func_147114_u(); -@@ -2237,6 +2257,18 @@ +@@ -2211,6 +2257,18 @@ { this.field_71437_Z.func_71263_m(); this.field_71437_Z.func_175592_a(); @@ -139,7 +308,15 @@ } this.field_71437_Z = null; -@@ -2368,134 +2400,11 @@ +@@ -2237,6 +2295,7 @@ + + this.func_71351_a((ServerData)null); + this.field_71455_al = false; ++ net.minecraftforge.fml.client.FMLClientHandler.instance().handleClientWorldClosing(this.field_71441_e); + } + + this.field_147127_av.func_147690_c(); +@@ -2341,134 +2400,11 @@ if (this.field_71476_x != null) { boolean flag = this.field_71439_g.field_71075_bZ.field_75098_d; @@ -276,7 +453,7 @@ if (flag) { int j = this.field_71439_g.field_71069_bz.field_75151_b.size() - 9 + inventoryplayer.field_70461_c; -@@ -2751,8 +2660,11 @@ +@@ -2724,8 +2660,11 @@ p_70001_1_.func_152767_b("gl_max_texture_size", Integer.valueOf(func_71369_N())); } @@ -288,7 +465,7 @@ for (int i = 16384; i > 0; i >>= 1) { GL11.glTexImage2D(GL11.GL_PROXY_TEXTURE_2D, 0, GL11.GL_RGBA, i, i, 0, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, (ByteBuffer)null); -@@ -2760,6 +2672,7 @@ +@@ -2733,6 +2672,7 @@ if (j != 0) { diff --git a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch index cf001e1ac..8f1d0c6ba 100644 --- a/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/FontRenderer.java.patch @@ -1,5 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/gui/FontRenderer.java +++ ../src-work/minecraft/net/minecraft/client/gui/FontRenderer.java +@@ -57,7 +57,7 @@ + this.field_111273_g = p_i1035_2_; + this.field_78298_i = p_i1035_3_; + this.field_78293_l = p_i1035_4_; +- p_i1035_3_.func_110577_a(this.field_111273_g); ++ bindTexture(this.field_111273_g); + + for (int i = 0; i < 32; ++i) + { @@ -97,6 +97,7 @@ public void func_110549_a(IResourceManager p_110549_1_) { @@ -8,6 +17,69 @@ } private void func_111272_d() +@@ -105,7 +106,7 @@ + + try + { +- bufferedimage = TextureUtil.func_177053_a(Minecraft.func_71410_x().func_110442_L().func_110536_a(this.field_111273_g).func_110527_b()); ++ bufferedimage = TextureUtil.func_177053_a(getResourceInputStream(this.field_111273_g)); + } + catch (IOException ioexception) + { +@@ -172,7 +173,7 @@ + + try + { +- inputstream = Minecraft.func_71410_x().func_110442_L().func_110536_a(new ResourceLocation("font/glyph_sizes.bin")).func_110527_b(); ++ inputstream = getResourceInputStream(new ResourceLocation("font/glyph_sizes.bin")); + inputstream.read(this.field_78287_e); + } + catch (IOException ioexception) +@@ -195,7 +196,7 @@ + float f = (float)(p_78266_1_ % 16 * 8); + float f1 = (float)(p_78266_1_ / 16 * 8); + float f2 = p_78266_2_ ? 1.0F : 0.0F; +- this.field_78298_i.func_110577_a(this.field_111273_g); ++ bindTexture(this.field_111273_g); + float f3 = (float)this.field_78286_d[p_78266_1_] - 0.01F; + GL11.glBegin(GL11.GL_TRIANGLE_STRIP); + GL11.glTexCoord2f(f / 128.0F, f1 / 128.0F); +@@ -222,7 +223,7 @@ + + private void func_78257_a(int p_78257_1_) + { +- this.field_78298_i.func_110577_a(this.func_111271_a(p_78257_1_)); ++ bindTexture(this.func_111271_a(p_78257_1_)); + } + + protected float func_78277_a(char p_78277_1_, boolean p_78277_2_) +@@ -269,7 +270,7 @@ + + public int func_175065_a(String p_175065_1_, float p_175065_2_, float p_175065_3_, int p_175065_4_, boolean p_175065_5_) + { +- GlStateManager.func_179141_d(); ++ enableAlpha(); + this.func_78265_b(); + int j; + +@@ -341,7 +342,7 @@ + + k = this.field_78285_g[j]; + this.field_78304_r = k; +- GlStateManager.func_179131_c((float)(k >> 16) / 255.0F, (float)(k >> 8 & 255) / 255.0F, (float)(k & 255) / 255.0F, this.field_78305_q); ++ setColor((float)(k >> 16) / 255.0F, (float)(k >> 8 & 255) / 255.0F, (float)(k & 255) / 255.0F, this.field_78305_q); + } + else if (j == 16) + { +@@ -370,7 +371,7 @@ + this.field_78299_w = false; + this.field_78300_v = false; + this.field_78301_u = false; +- GlStateManager.func_179131_c(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q); ++ setColor(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q); + } + + ++i; @@ -390,7 +391,7 @@ j = k; } @@ -17,7 +89,32 @@ boolean flag1 = (c0 == 0 || j == -1 || this.field_78293_l) && p_78255_2_; if (flag1) -@@ -592,11 +593,6 @@ +@@ -429,6 +430,15 @@ + ++f; + } + ++ doDraw(f); ++ } ++ } ++ } ++ ++ protected void doDraw(float f) ++ { ++ { ++ { + Tessellator tessellator; + WorldRenderer worldrenderer; + +@@ -504,7 +514,7 @@ + this.field_78292_o = (float)(p_180455_4_ >> 8 & 255) / 255.0F; + this.field_78306_p = (float)(p_180455_4_ & 255) / 255.0F; + this.field_78305_q = (float)(p_180455_4_ >> 24 & 255) / 255.0F; +- GlStateManager.func_179131_c(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q); ++ setColor(this.field_78291_n, this.field_78292_o, this.field_78306_p, this.field_78305_q); + this.field_78295_j = p_180455_2_; + this.field_78296_k = p_180455_3_; + this.func_78255_a(p_180455_1_, p_180455_5_); +@@ -583,11 +593,6 @@ int j = this.field_78287_e[p_78263_1_] >>> 4; int k = this.field_78287_e[p_78263_1_] & 15; @@ -29,3 +126,30 @@ ++k; return (k - j) / 2 + 1; +@@ -842,6 +847,26 @@ + return this.field_78294_m; + } + ++ protected void setColor(float r, float g, float b, float a) ++ { ++ GlStateManager.func_179131_c(r,g,b,a); ++ } ++ ++ protected void enableAlpha() ++ { ++ GlStateManager.func_179141_d(); ++ } ++ ++ protected void bindTexture(ResourceLocation location) ++ { ++ field_78298_i.func_110577_a(location); ++ } ++ ++ protected InputStream getResourceInputStream(ResourceLocation location) throws IOException ++ { ++ return Minecraft.func_71410_x().func_110442_L().func_110536_a(location).func_110527_b(); ++ } ++ + public int func_175064_b(char p_175064_1_) + { + return this.field_78285_g["0123456789abcdef".indexOf(p_175064_1_)]; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiButton.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiButton.java.patch new file mode 100644 index 000000000..1366ae5b5 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiButton.java.patch @@ -0,0 +1,24 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/GuiButton.java ++++ ../src-work/minecraft/net/minecraft/client/gui/GuiButton.java +@@ -22,6 +22,7 @@ + public boolean field_146125_m; + protected boolean field_146123_n; + private static final String __OBFID = "CL_00000668"; ++ public int packedFGColour; //FML + + public GuiButton(int p_i1020_1_, int p_i1020_2_, int p_i1020_3_, String p_i1020_4_) + { +@@ -75,8 +76,12 @@ + this.func_146119_b(p_146112_1_, p_146112_2_, p_146112_3_); + int l = 14737632; + +- if (!this.field_146124_l) ++ if (packedFGColour != 0) + { ++ l = packedFGColour; ++ } ++ else if (!this.field_146124_l) ++ { + l = 10526880; + } + else if (this.field_146123_n) diff --git a/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch index 714b28a03..dbe280e82 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiCreateWorld.java.patch @@ -1,6 +1,15 @@ --- ../src-base/minecraft/net/minecraft/client/gui/GuiCreateWorld.java +++ ../src-work/minecraft/net/minecraft/client/gui/GuiCreateWorld.java -@@ -322,14 +322,7 @@ +@@ -213,6 +213,8 @@ + } + } + ++ WorldType.field_77139_a[this.field_146331_K].onGUICreateWorldPress(); ++ + WorldSettings.GameType gametype = WorldSettings.GameType.func_77142_a(this.field_146342_r); + WorldSettings worldsettings = new WorldSettings(i, gametype, this.field_146341_s, this.field_146337_w, WorldType.field_77139_a[this.field_146331_K]); + worldsettings.func_82750_a(this.field_146334_a); +@@ -320,14 +322,7 @@ } else if (p_146284_1_.field_146127_k == 8) { @@ -16,7 +25,7 @@ } } } -@@ -381,7 +374,7 @@ +@@ -379,7 +374,7 @@ this.field_146326_C.field_146125_m = this.field_146344_y; this.field_146320_D.field_146125_m = this.field_146344_y; this.field_146321_E.field_146125_m = this.field_146344_y; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiIngameMenu.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiIngameMenu.java.patch index 4437d09aa..aeca562a4 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiIngameMenu.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiIngameMenu.java.patch @@ -1,6 +1,17 @@ --- ../src-base/minecraft/net/minecraft/client/gui/GuiIngameMenu.java +++ ../src-work/minecraft/net/minecraft/client/gui/GuiIngameMenu.java -@@ -59,9 +59,11 @@ +@@ -30,8 +30,9 @@ + + this.field_146292_n.add(new GuiButton(4, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 24 + b0, I18n.func_135052_a("menu.returnToGame", new Object[0]))); + this.field_146292_n.add(new GuiButton(0, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.options", new Object[0]))); ++ this.field_146292_n.add(new GuiButton(12, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("fml.menu.modoptions"))); + GuiButton guibutton; +- this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 96 + b0, 98, 20, I18n.func_135052_a("menu.shareToLan", new Object[0]))); ++ this.field_146292_n.add(guibutton = new GuiButton(7, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 72 + b0, 200, 20, I18n.func_135052_a("menu.shareToLan", new Object[0]))); + this.field_146292_n.add(new GuiButton(5, this.field_146294_l / 2 - 100, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.achievements", new Object[0]))); + this.field_146292_n.add(new GuiButton(6, this.field_146294_l / 2 + 2, this.field_146295_m / 4 + 48 + b0, 98, 20, I18n.func_135052_a("gui.stats", new Object[0]))); + guibutton.field_146124_l = this.field_146297_k.func_71356_B() && !this.field_146297_k.func_71401_C().func_71344_c(); +@@ -58,13 +59,19 @@ this.field_146297_k.func_71381_h(); break; case 5: @@ -12,3 +23,11 @@ this.field_146297_k.func_147108_a(new GuiStats(this, this.field_146297_k.field_71439_g.func_146107_m())); break; case 7: + this.field_146297_k.func_147108_a(new GuiShareToLan(this)); ++ break; ++ case 12: ++ net.minecraftforge.fml.client.FMLClientHandler.instance().showInGameModOptions(this); ++ break; + } + } + diff --git a/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch index bb5fee56e..5100ea6a2 100644 --- a/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch +++ b/patches/minecraft/net/minecraft/client/gui/GuiMainMenu.java.patch @@ -1,9 +1,43 @@ --- ../src-base/minecraft/net/minecraft/client/gui/GuiMainMenu.java +++ ../src-work/minecraft/net/minecraft/client/gui/GuiMainMenu.java -@@ -511,6 +511,7 @@ - this.func_73731_b(this.field_146289_q, brd, 2, this.field_146295_m - ( 10 + i * (this.field_146289_q.field_78288_b + 1)), 16777215); - } +@@ -198,6 +198,11 @@ + this.field_146292_n.add(new GuiButton(1, this.field_146294_l / 2 - 100, p_73969_1_, I18n.func_135052_a("menu.singleplayer", new Object[0]))); + this.field_146292_n.add(new GuiButton(2, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 1, I18n.func_135052_a("menu.multiplayer", new Object[0]))); + this.field_146292_n.add(this.field_175372_K = new GuiButton(14, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("menu.online", new Object[0]))); ++ GuiButton fmlModButton = new GuiButton(6, this.field_146294_l / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.func_135052_a("fml.menu.mods")); ++ fmlModButton.field_146128_h = this.field_146294_l / 2 + 2; ++ field_175372_K.field_146120_f = 98; ++ fmlModButton.field_146120_f = 98; ++ this.field_146292_n.add(fmlModButton); + } + + private void func_73972_b(int p_73972_1_, int p_73972_2_) +@@ -245,6 +250,11 @@ + this.field_146297_k.func_71400_g(); } + ++ if (p_146284_1_.field_146127_k == 6) ++ { ++ this.field_146297_k.func_147108_a(new net.minecraftforge.fml.client.GuiModList(this)); ++ } ++ + if (p_146284_1_.field_146127_k == 11) + { + this.field_146297_k.func_71371_a("Demo_World", "Demo_World", DemoWorldServer.field_73071_a); +@@ -492,7 +502,16 @@ + s = s + " Demo"; + } + +- this.func_73731_b(this.field_146289_q, s, 2, this.field_146295_m - 10, -1); ++ java.util.List brandings = com.google.common.collect.Lists.reverse(net.minecraftforge.fml.common.FMLCommonHandler.instance().getBrandings(true)); ++ for (int i = 0; i < brandings.size(); i++) ++ { ++ String brd = brandings.get(i); ++ if (!com.google.common.base.Strings.isNullOrEmpty(brd)) ++ { ++ this.func_73731_b(this.field_146289_q, brd, 2, this.field_146295_m - ( 10 + i * (this.field_146289_q.field_78288_b + 1)), 16777215); ++ } ++ } + net.minecraftforge.client.ForgeHooksClient.renderMainMenu(this, this.field_146289_q, this.field_146294_l, this.field_146295_m); String s1 = "Copyright Mojang AB. Do not distribute!"; this.func_73731_b(this.field_146289_q, s1, this.field_146294_l - this.field_146289_q.func_78256_a(s1) - 2, this.field_146295_m - 10, -1); diff --git a/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch new file mode 100644 index 000000000..b3e441a5e --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiMultiplayer.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/GuiMultiplayer.java ++++ ../src-work/minecraft/net/minecraft/client/gui/GuiMultiplayer.java +@@ -41,6 +41,7 @@ + public GuiMultiplayer(GuiScreen p_i1040_1_) + { + this.field_146798_g = p_i1040_1_; ++ net.minecraftforge.fml.client.FMLClientHandler.instance().setupServerList(); + } + + public void func_73866_w_() +@@ -373,7 +374,7 @@ + + private void func_146791_a(ServerData p_146791_1_) + { +- this.field_146297_k.func_147108_a(new GuiConnecting(this, this.field_146297_k, p_146791_1_)); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().connectToServer(this, p_146791_1_); + } + + public void func_146790_a(int p_146790_1_) diff --git a/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch new file mode 100644 index 000000000..dc555d651 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java.patch @@ -0,0 +1,12 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java ++++ ../src-work/minecraft/net/minecraft/client/gui/GuiOverlayDebug.java +@@ -170,6 +170,9 @@ + long l = j - k; + ArrayList arraylist = Lists.newArrayList(new String[] {String.format("Java: %s %dbit", new Object[]{System.getProperty("java.version"), Integer.valueOf(this.field_175242_a.func_147111_S() ? 64 : 32)}), String.format("Mem: % 2d%% %03d/%03dMB", new Object[]{Long.valueOf(l * 100L / i), Long.valueOf(func_175240_a(l)), Long.valueOf(func_175240_a(i))}), String.format("Allocated: % 2d%% %03dMB", new Object[]{Long.valueOf(j * 100L / i), Long.valueOf(func_175240_a(j))}), "", String.format("Display: %dx%d (%s)", new Object[]{Integer.valueOf(Display.getWidth()), Integer.valueOf(Display.getHeight()), GL11.glGetString(GL11.GL_VENDOR)}), GL11.glGetString(GL11.GL_RENDERER), GL11.glGetString(GL11.GL_VERSION)}); + ++ arraylist.add(""); ++ arraylist.addAll(net.minecraftforge.fml.common.FMLCommonHandler.instance().getBrandings(false)); ++ + if (this.func_175236_d()) + { + return arraylist; diff --git a/patches/minecraft/net/minecraft/client/gui/GuiSelectWorld.java.patch b/patches/minecraft/net/minecraft/client/gui/GuiSelectWorld.java.patch new file mode 100644 index 000000000..d4be0db7a --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/GuiSelectWorld.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/GuiSelectWorld.java ++++ ../src-work/minecraft/net/minecraft/client/gui/GuiSelectWorld.java +@@ -187,7 +187,7 @@ + + if (this.field_146297_k.func_71359_d().func_90033_f(s)) + { +- this.field_146297_k.func_71371_a(s, s1, (WorldSettings)null); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().tryLoadExistingWorld(this, s, s1); + } + } + } diff --git a/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch b/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch new file mode 100644 index 000000000..90dfde34b --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java.patch @@ -0,0 +1,23 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java ++++ ../src-work/minecraft/net/minecraft/client/gui/ServerListEntryNormal.java +@@ -84,7 +84,7 @@ + boolean flag2 = this.field_148301_e.field_82821_f < 47; + boolean flag3 = flag1 || flag2; + this.field_148300_d.field_71466_p.func_78276_b(this.field_148301_e.field_78847_a, p_180790_2_ + 32 + 3, p_180790_3_ + 1, 16777215); +- List list = this.field_148300_d.field_71466_p.func_78271_c(this.field_148301_e.field_78843_d, p_180790_4_ - 32 - 2); ++ List list = this.field_148300_d.field_71466_p.func_78271_c(net.minecraftforge.fml.client.FMLClientHandler.instance().fixDescription(this.field_148301_e.field_78843_d), p_180790_4_ - 48 - 2); + + for (int l1 = 0; l1 < Math.min(list.size(), 2); ++l1) + { +@@ -178,6 +178,11 @@ + int k2 = p_180790_6_ - p_180790_2_; + int l2 = p_180790_7_ - p_180790_3_; + ++ String tooltip = net.minecraftforge.fml.client.FMLClientHandler.instance().enhanceServerListEntry(this, this.field_148301_e, p_180790_2_, p_180790_4_, p_180790_3_, k2, l2); ++ if (tooltip != null) ++ { ++ this.field_148303_c.func_146793_a(tooltip); ++ } else + if (k2 >= p_180790_4_ - 15 && k2 <= p_180790_4_ - 5 && l2 >= 0 && l2 <= 8) + { + this.field_148303_c.func_146793_a(s1); diff --git a/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch b/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch new file mode 100644 index 000000000..da29b12c2 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/gui/achievement/GuiStats.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/client/gui/achievement/GuiStats.java ++++ ../src-work/minecraft/net/minecraft/client/gui/achievement/GuiStats.java +@@ -769,6 +769,7 @@ + super(p_i45510_2_, GuiStats.this.field_146294_l, GuiStats.this.field_146295_m, 32, GuiStats.this.field_146295_m - 64, GuiStats.this.field_146289_q.field_78288_b * 4); + this.func_148130_a(false); + Iterator iterator = EntityList.field_75627_a.values().iterator(); ++ iterator = com.google.common.collect.Iterators.concat(iterator, net.minecraftforge.fml.common.registry.EntityRegistry.getEggs().values().iterator()); + + while (iterator.hasNext()) + { +@@ -806,7 +807,7 @@ + protected void func_180791_a(int p_180791_1_, int p_180791_2_, int p_180791_3_, int p_180791_4_, int p_180791_5_, int p_180791_6_) + { + EntityList.EntityEggInfo entityegginfo = (EntityList.EntityEggInfo)this.field_148222_l.get(p_180791_1_); +- String s = I18n.func_135052_a("entity." + EntityList.func_75617_a(entityegginfo.field_75613_a) + ".name", new Object[0]); ++ String s = I18n.func_135052_a("entity." + entityegginfo.name + ".name", new Object[0]); + int k1 = GuiStats.this.field_146546_t.func_77444_a(entityegginfo.field_151512_d); + int l1 = GuiStats.this.field_146546_t.func_77444_a(entityegginfo.field_151513_e); + String s1 = I18n.func_135052_a("stat.entityKills", new Object[] {Integer.valueOf(k1), s}); diff --git a/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch b/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch new file mode 100644 index 000000000..05ba7abc5 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java ++++ ../src-work/minecraft/net/minecraft/client/multiplayer/GuiConnecting.java +@@ -69,7 +69,7 @@ + inetaddress = InetAddress.getByName(p_146367_1_); + GuiConnecting.this.field_146371_g = NetworkManager.func_150726_a(inetaddress, p_146367_2_); + GuiConnecting.this.field_146371_g.func_150719_a(new NetHandlerLoginClient(GuiConnecting.this.field_146371_g, GuiConnecting.this.field_146297_k, GuiConnecting.this.field_146374_i)); +- GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(47, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN)); ++ GuiConnecting.this.field_146371_g.func_179290_a(new C00Handshake(47, p_146367_1_, p_146367_2_, EnumConnectionState.LOGIN, true)); + GuiConnecting.this.field_146371_g.func_179290_a(new C00PacketLoginStart(GuiConnecting.this.field_146297_k.func_110432_I().func_148256_e())); + } + catch (UnknownHostException unknownhostexception) diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerHandshakeMemory.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerHandshakeMemory.java.patch new file mode 100644 index 000000000..1b37230bf --- /dev/null +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerHandshakeMemory.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerHandshakeMemory.java ++++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerHandshakeMemory.java +@@ -24,6 +24,7 @@ + + public void func_147383_a(C00Handshake p_147383_1_) + { ++ if (!net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerHandshake(p_147383_1_, this.field_147384_b)) return; + this.field_147384_b.func_150723_a(p_147383_1_.func_149594_c()); + this.field_147384_b.func_150719_a(new NetHandlerLoginServer(this.field_147385_a, this.field_147384_b)); + } diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch new file mode 100644 index 000000000..0b265296c --- /dev/null +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java.patch @@ -0,0 +1,14 @@ +--- ../src-base/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java ++++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerLoginClient.java +@@ -92,7 +92,10 @@ + { + this.field_175091_e = p_147390_1_.func_179730_a(); + this.field_147393_d.func_150723_a(EnumConnectionState.PLAY); +- this.field_147393_d.func_150719_a(new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d, this.field_175091_e)); ++ net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.fmlClientHandshake(this.field_147393_d); ++ NetHandlerPlayClient nhpc = new NetHandlerPlayClient(this.field_147394_b, this.field_147395_c, this.field_147393_d, this.field_175091_e); ++ this.field_147393_d.func_150719_a(nhpc); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().setPlayClient(nhpc); + } + + public void func_147231_a(IChatComponent p_147231_1_) diff --git a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch index 5457b0f8e..e87262060 100644 --- a/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch +++ b/patches/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java.patch @@ -1,5 +1,14 @@ --- ../src-base/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java +++ ../src-work/minecraft/net/minecraft/client/network/NetHandlerPlayClient.java +@@ -247,7 +247,7 @@ + { + PacketThreadUtil.func_180031_a(p_147282_1_, this, this.field_147299_f); + this.field_147299_f.field_71442_b = new PlayerControllerMP(this.field_147299_f, this); +- this.field_147300_g = new WorldClient(this, new WorldSettings(0L, p_147282_1_.func_149198_e(), false, p_147282_1_.func_149195_d(), p_147282_1_.func_149196_i()), p_147282_1_.func_149194_f(), p_147282_1_.func_149192_g(), this.field_147299_f.field_71424_I); ++ this.field_147300_g = new WorldClient(this, new WorldSettings(0L, p_147282_1_.func_149198_e(), false, p_147282_1_.func_149195_d(), p_147282_1_.func_149196_i()), net.minecraftforge.fml.common.network.handshake.NetworkDispatcher.get(func_147298_b()).getOverrideDimension(p_147282_1_), p_147282_1_.func_149192_g(), this.field_147299_f.field_71424_I); + this.field_147299_f.field_71474_y.field_74318_M = p_147282_1_.func_149192_g(); + this.field_147299_f.func_71403_a(this.field_147300_g); + this.field_147299_f.field_71439_g.field_71093_bK = p_147282_1_.func_149194_f(); @@ -410,7 +410,8 @@ public void func_147286_a(S11PacketSpawnExperienceOrb p_147286_1_) { diff --git a/patches/minecraft/net/minecraft/client/network/OldServerPinger.java.patch b/patches/minecraft/net/minecraft/client/network/OldServerPinger.java.patch new file mode 100644 index 000000000..f85c95d04 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/network/OldServerPinger.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/network/OldServerPinger.java ++++ ../src-work/minecraft/net/minecraft/client/network/OldServerPinger.java +@@ -148,6 +148,7 @@ + p_147224_1_.func_147407_a((String)null); + } + ++ net.minecraftforge.fml.client.FMLClientHandler.instance().bindServerListData(p_147224_1_, serverstatusresponse); + this.field_175092_e = Minecraft.func_71386_F(); + networkmanager.func_179290_a(new C01PacketPing(this.field_175092_e)); + this.field_147403_d = true; diff --git a/patches/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java.patch b/patches/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java.patch new file mode 100644 index 000000000..899e6b69b --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/entity/RenderVillager.java +@@ -48,7 +48,7 @@ + case 4: + return field_110906_m; + default: +- return field_110903_f; ++ return net.minecraftforge.fml.common.registry.VillagerRegistry.getVillagerSkin(p_110775_1_.func_70946_n(), field_110903_f); + } + } + diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch index eea7af57b..564cdfb40 100644 --- a/patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/texture/Stitcher.java.patch @@ -1,6 +1,19 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/texture/Stitcher.java +++ ../src-work/minecraft/net/minecraft/client/renderer/texture/Stitcher.java -@@ -73,6 +73,9 @@ +@@ -60,6 +60,7 @@ + public void func_94305_f() + { + Stitcher.Holder[] aholder = (Stitcher.Holder[])this.field_94319_a.toArray(new Stitcher.Holder[this.field_94319_a.size()]); ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Texture stitching", aholder.length); + Arrays.sort(aholder); + Stitcher.Holder[] aholder1 = aholder; + int i = aholder.length; +@@ -67,10 +68,14 @@ + for (int j = 0; j < i; ++j) + { + Stitcher.Holder holder = aholder1[j]; ++ bar.step(holder.func_98150_a().func_94215_i()); + if (!this.func_94310_b(holder)) { String s = String.format("Unable to fit: %s - size: %dx%d - Maybe try a lowerresolution resourcepack?", new Object[] {holder.func_98150_a().func_94215_i(), Integer.valueOf(holder.func_98150_a().func_94211_a()), Integer.valueOf(holder.func_98150_a().func_94216_b())}); @@ -10,7 +23,15 @@ throw new StitcherException(holder, s); } } -@@ -276,7 +279,7 @@ +@@ -80,6 +85,7 @@ + this.field_94318_c = MathHelper.func_151236_b(this.field_94318_c); + this.field_94315_d = MathHelper.func_151236_b(this.field_94315_d); + } ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); + } + + public List func_94309_g() +@@ -273,7 +279,7 @@ public String toString() { diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/TextureManager.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/TextureManager.java.patch new file mode 100644 index 000000000..727f57e75 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/texture/TextureManager.java.patch @@ -0,0 +1,18 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureManager.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureManager.java +@@ -143,12 +143,15 @@ + + public void func_110549_a(IResourceManager p_110549_1_) + { ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Reloading Texture Manager", this.field_110585_a.keySet().size(), true); + Iterator iterator = this.field_110585_a.entrySet().iterator(); + + while (iterator.hasNext()) + { + Entry entry = (Entry)iterator.next(); ++ bar.step(entry.getKey().toString()); + this.func_110579_a((ResourceLocation)entry.getKey(), (ITextureObject)entry.getValue()); + } ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); + } + } diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch index ef3f657e7..1aec43664 100644 --- a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch @@ -1,17 +1,63 @@ --- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureMap.java +++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureMap.java -@@ -104,6 +104,8 @@ +@@ -29,6 +29,7 @@ + @SideOnly(Side.CLIENT) + public class TextureMap extends AbstractTexture implements ITickableTextureObject + { ++ private static final boolean ENABLE_SKIP = Boolean.parseBoolean(System.getProperty("fml.skipFirstTextureLoad", "true")); + private static final Logger field_147635_d = LogManager.getLogger(); + public static final ResourceLocation field_174945_f = new ResourceLocation("missingno"); + public static final ResourceLocation field_110575_b = new ResourceLocation("textures/atlas/blocks.png"); +@@ -40,6 +41,7 @@ + private int field_147636_j; + private final TextureAtlasSprite field_94249_f; + private static final String __OBFID = "CL_00001058"; ++ private boolean skipFirst = false; + + public TextureMap(String p_i46099_1_) + { +@@ -48,12 +50,23 @@ + + public TextureMap(String p_i46100_1_, IIconCreator p_i46100_2_) + { ++ this(p_i46100_1_, p_i46100_2_, false); ++ } ++ ++ public TextureMap(String p_i46100_1_, boolean skipFirst) ++ { ++ this(p_i46100_1_, null, skipFirst); ++ } ++ ++ public TextureMap(String p_i46100_1_, IIconCreator iconCreatorIn, boolean skipFirst) ++ { + this.field_94258_i = Lists.newArrayList(); + this.field_110574_e = Maps.newHashMap(); + this.field_94252_e = Maps.newHashMap(); + this.field_94249_f = new TextureAtlasSprite("missingno"); + this.field_94254_c = p_i46100_1_; +- this.field_174946_m = p_i46100_2_; ++ this.field_174946_m = iconCreatorIn; ++ this.skipFirst = skipFirst && ENABLE_SKIP; + } + + private void func_110569_e() +@@ -91,15 +104,29 @@ this.field_94258_i.clear(); int j = Integer.MAX_VALUE; int k = 1 << this.field_147636_j; + net.minecraftforge.client.ForgeHooksClient.onTextureStitchedPre(this); + net.minecraftforge.fml.common.FMLLog.info("Max texture size: %d", i); - net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Texture stitching", skipFirst ? 0 : this.field_110574_e.size()); ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar bar = net.minecraftforge.fml.common.ProgressManager.push("Texture stitching", skipFirst ? 0 : this.field_110574_e.size()); Iterator iterator = this.field_110574_e.entrySet().iterator(); -@@ -115,6 +117,16 @@ +- while (iterator.hasNext()) ++ while (!skipFirst && iterator.hasNext()) + { + Entry entry = (Entry)iterator.next(); + TextureAtlasSprite textureatlassprite = (TextureAtlasSprite)entry.getValue(); + ResourceLocation resourcelocation = new ResourceLocation(textureatlassprite.func_94215_i()); ResourceLocation resourcelocation1 = this.func_147634_a(resourcelocation, 0); - bar.step(resourcelocation1.func_110623_a()); ++ bar.step(resourcelocation1.func_110623_a()); + if (textureatlassprite.hasCustomLoader(p_110571_1_, resourcelocation)) + { @@ -26,7 +72,74 @@ try { IResource iresource = p_110571_1_.func_110536_a(resourcelocation1); -@@ -301,6 +313,9 @@ +@@ -150,12 +177,14 @@ + } + catch (RuntimeException runtimeexception) + { +- field_147635_d.error("Unable to parse metadata from " + resourcelocation1, runtimeexception); ++ //logger.error("Unable to parse metadata from " + resourcelocation1, runtimeexception); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().trackBrokenTexture(resourcelocation1, runtimeexception.getMessage()); + continue; + } + catch (IOException ioexception1) + { +- field_147635_d.error("Using missing texture, unable to load " + resourcelocation1, ioexception1); ++ //logger.error("Using missing texture, unable to load " + resourcelocation1, ioexception1); ++ net.minecraftforge.fml.client.FMLClientHandler.instance().trackMissingTexture(resourcelocation1); + continue; + } + +@@ -171,6 +200,7 @@ + stitcher.func_110934_a(textureatlassprite); + } + ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); + int j1 = Math.min(j, k); + int k1 = MathHelper.func_151239_c(j1); + +@@ -181,10 +211,12 @@ + } + + Iterator iterator1 = this.field_110574_e.values().iterator(); ++ bar = net.minecraftforge.fml.common.ProgressManager.push("Mipmap generation", skipFirst ? 0 : this.field_110574_e.size()); + +- while (iterator1.hasNext()) ++ while (!skipFirst && iterator1.hasNext()) + { + final TextureAtlasSprite textureatlassprite1 = (TextureAtlasSprite)iterator1.next(); ++ bar.step(textureatlassprite1.func_94215_i()); + + try + { +@@ -225,9 +257,13 @@ + + this.field_94249_f.func_147963_d(this.field_147636_j); + stitcher.func_110934_a(this.field_94249_f); ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); ++ skipFirst = false; ++ bar = net.minecraftforge.fml.common.ProgressManager.push("Texture creation", 3); + + try + { ++ bar.step("Stitching"); + stitcher.func_94305_f(); + } + catch (StitcherException stitcherexception) +@@ -236,11 +272,13 @@ + } + + field_147635_d.info("Created: {}x{} {}-atlas", new Object[] {Integer.valueOf(stitcher.func_110935_a()), Integer.valueOf(stitcher.func_110936_b()), this.field_94254_c}); ++ bar.step("Allocating GL texture"); + TextureUtil.func_180600_a(this.func_110552_b(), this.field_147636_j, stitcher.func_110935_a(), stitcher.func_110936_b()); + HashMap hashmap = Maps.newHashMap(this.field_110574_e); + Iterator iterator2 = stitcher.func_94309_g().iterator(); + TextureAtlasSprite textureatlassprite2; + ++ bar.step("Uploading GL texture"); + while (iterator2.hasNext()) + { + textureatlassprite2 = (TextureAtlasSprite)iterator2.next(); +@@ -275,7 +313,11 @@ textureatlassprite2.func_94217_a(this.field_94249_f); } @@ -34,9 +147,11 @@ + + if (!net.minecraftforge.common.ForgeModContainer.disableStitchedFileSaving) TextureUtil.func_177055_a(this.field_94254_c.replaceAll("/", "_"), this.func_110552_b(), this.field_147636_j, stitcher.func_110935_a(), stitcher.func_110936_b()); - net.minecraftforge.fml.common.ProgressManager.pop(bar); ++ net.minecraftforge.fml.common.ProgressManager.pop(bar); } -@@ -368,4 +383,37 @@ + + private ResourceLocation func_147634_a(ResourceLocation p_147634_1_, int p_147634_2_) +@@ -341,4 +383,37 @@ { return this.field_94249_f; } diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch new file mode 100644 index 000000000..4e5c66c9f --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java.patch @@ -0,0 +1,15 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/texture/TextureUtil.java +@@ -202,9 +202,11 @@ + + public static void func_180600_a(int p_180600_0_, int p_180600_1_, int p_180600_2_, int p_180600_3_) + { ++ synchronized (net.minecraftforge.fml.client.SplashProgress.class) ++ { + func_147942_a(p_180600_0_); + func_94277_a(p_180600_0_); +- ++ } + if (p_180600_1_ >= 0) + { + GL11.glTexParameteri(GL11.GL_TEXTURE_2D, GL12.GL_TEXTURE_MAX_LEVEL, p_180600_1_); diff --git a/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch b/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch new file mode 100644 index 000000000..feee903f7 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/resources/AbstractResourcePack.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/resources/AbstractResourcePack.java ++++ ../src-work/minecraft/net/minecraft/client/resources/AbstractResourcePack.java +@@ -58,7 +58,7 @@ + + protected void func_110594_c(String p_110594_1_) + { +- field_110598_a.warn("ResourcePack: ignored non-lowercase namespace: %s in %s", new Object[] {p_110594_1_, this.field_110597_b}); ++ field_110598_a.warn("ResourcePack: ignored non-lowercase namespace: {} in {}", new Object[] {p_110594_1_, this.field_110597_b}); + } + + public IMetadataSection func_135058_a(IMetadataSerializer p_135058_1_, String p_135058_2_) throws IOException diff --git a/patches/minecraft/net/minecraft/client/resources/FallbackResourceManager.java.patch b/patches/minecraft/net/minecraft/client/resources/FallbackResourceManager.java.patch new file mode 100644 index 000000000..c002dd01f --- /dev/null +++ b/patches/minecraft/net/minecraft/client/resources/FallbackResourceManager.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/resources/FallbackResourceManager.java ++++ ../src-work/minecraft/net/minecraft/client/resources/FallbackResourceManager.java +@@ -70,6 +70,7 @@ + throw new FileNotFoundException(p_110536_1_.toString()); + } + ++ @SuppressWarnings("resource") + protected InputStream func_177245_a(ResourceLocation p_177245_1_, IResourcePack p_177245_2_) throws IOException + { + InputStream inputstream = p_177245_2_.func_110590_a(p_177245_1_); diff --git a/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch b/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch new file mode 100644 index 000000000..de7ea2b62 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/resources/LanguageManager.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/resources/LanguageManager.java ++++ ../src-work/minecraft/net/minecraft/client/resources/LanguageManager.java +@@ -83,6 +83,7 @@ + } + + field_135049_a.func_135022_a(p_110549_1_, arraylist); ++ net.minecraftforge.fml.common.registry.LanguageRegistry.instance().mergeLanguageTable(field_135049_a.field_135032_a, this.field_135048_c); + StringTranslate.func_135063_a(field_135049_a.field_135032_a); + } + diff --git a/patches/minecraft/net/minecraft/client/resources/Locale.java.patch b/patches/minecraft/net/minecraft/client/resources/Locale.java.patch new file mode 100644 index 000000000..fc84931f7 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/resources/Locale.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/client/resources/Locale.java ++++ ../src-work/minecraft/net/minecraft/client/resources/Locale.java +@@ -107,6 +107,8 @@ + + private void func_135021_a(InputStream p_135021_1_) throws IOException + { ++ p_135021_1_ = net.minecraftforge.fml.common.FMLCommonHandler.instance().loadLanguage(field_135032_a, p_135021_1_); ++ if (p_135021_1_ == null) return; + Iterator iterator = IOUtils.readLines(p_135021_1_, Charsets.UTF_8).iterator(); + + while (iterator.hasNext()) diff --git a/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch b/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch new file mode 100644 index 000000000..8d8b19f58 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java.patch @@ -0,0 +1,46 @@ +--- ../src-base/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java ++++ ../src-work/minecraft/net/minecraft/client/resources/SimpleReloadableResourceManager.java +@@ -95,6 +95,7 @@ + public void func_110541_a(List p_110541_1_) + { + this.func_110543_a(); ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar resReload = net.minecraftforge.fml.common.ProgressManager.push("Loading Resources", p_110541_1_.size()+1, true); + field_147967_a.info("Reloading ResourceManager: " + field_130074_a.join(Iterables.transform(p_110541_1_, new Function() + { + private static final String __OBFID = "CL_00001092"; +@@ -112,26 +113,35 @@ + while (iterator.hasNext()) + { + IResourcePack iresourcepack = (IResourcePack)iterator.next(); ++ resReload.step(iresourcepack.func_130077_b()); + this.func_110545_a(iresourcepack); + } + ++ resReload.step("Reloading listeners"); + this.func_110544_b(); ++ net.minecraftforge.fml.common.ProgressManager.pop(resReload); + } + + public void func_110542_a(IResourceManagerReloadListener p_110542_1_) + { + this.field_110546_b.add(p_110542_1_); ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar resReload = net.minecraftforge.fml.common.ProgressManager.push("Loading Resource", 1); ++ resReload.step(p_110542_1_.getClass()); + p_110542_1_.func_110549_a(this); ++ net.minecraftforge.fml.common.ProgressManager.pop(resReload); + } + + private void func_110544_b() + { + Iterator iterator = this.field_110546_b.iterator(); + ++ net.minecraftforge.fml.common.ProgressManager.ProgressBar resReload = net.minecraftforge.fml.common.ProgressManager.push("Reloading", this.field_110546_b.size()); + while (iterator.hasNext()) + { + IResourceManagerReloadListener iresourcemanagerreloadlistener = (IResourceManagerReloadListener)iterator.next(); ++ resReload.step(iresourcemanagerreloadlistener.getClass()); + iresourcemanagerreloadlistener.func_110549_a(this); + } ++ net.minecraftforge.fml.common.ProgressManager.pop(resReload); + } + } diff --git a/patches/minecraft/net/minecraft/client/resources/model/ModelBakery.java.patch b/patches/minecraft/net/minecraft/client/resources/model/ModelBakery.java.patch index 6ed9b0582..f8e796861 100644 --- a/patches/minecraft/net/minecraft/client/resources/model/ModelBakery.java.patch +++ b/patches/minecraft/net/minecraft/client/resources/model/ModelBakery.java.patch @@ -17,7 +17,26 @@ catch (IOException ioexception) { throw new RuntimeException("Encountered an exception when loading model definition of model " + resourcelocation1.toString(), ioexception); -@@ -499,6 +500,11 @@ +@@ -318,6 +319,7 @@ + + protected void func_177592_e() + { ++ this.field_177613_u.clear(); //FML clear this to prevent double ups. + this.field_177613_u.put(Item.func_150898_a(Blocks.field_150348_b), Lists.newArrayList(new String[] {"stone", "granite", "granite_smooth", "diorite", "diorite_smooth", "andesite", "andesite_smooth"})); + this.field_177613_u.put(Item.func_150898_a(Blocks.field_150346_d), Lists.newArrayList(new String[] {"dirt", "coarse_dirt", "podzol"})); + this.field_177613_u.put(Item.func_150898_a(Blocks.field_150344_f), Lists.newArrayList(new String[] {"oak_planks", "spruce_planks", "birch_planks", "jungle_planks", "acacia_planks", "dark_oak_planks"})); +@@ -360,6 +362,10 @@ + this.field_177613_u.put(Item.func_150898_a(Blocks.field_180390_bo), Lists.newArrayList(new String[] {"oak_fence_gate"})); + this.field_177613_u.put(Item.func_150898_a(Blocks.field_180407_aO), Lists.newArrayList(new String[] {"oak_fence"})); + this.field_177613_u.put(Items.field_179570_aq, Lists.newArrayList(new String[] {"oak_door"})); ++ for (Entry, Set> e : customVariantNames.entrySet()) ++ { ++ this.field_177613_u.put(e.getKey().get(), Lists.newArrayList(e.getValue().iterator())); ++ } + } + + protected List func_177596_a(Item p_177596_1_) +@@ -494,6 +500,11 @@ private IBakedModel func_177578_a(ModelBlock p_177578_1_, ModelRotation p_177578_2_, boolean p_177578_3_) { @@ -29,7 +48,7 @@ TextureAtlasSprite textureatlassprite = (TextureAtlasSprite)this.field_177599_g.get(new ResourceLocation(p_177578_1_.func_178308_c("particle"))); SimpleBakedModel.Builder builder = (new SimpleBakedModel.Builder(p_177578_1_)).func_177646_a(textureatlassprite); Iterator iterator = p_177578_1_.func_178298_a().iterator(); -@@ -514,13 +520,13 @@ +@@ -509,13 +520,13 @@ BlockPartFace blockpartface = (BlockPartFace)blockpart.field_178240_c.get(enumfacing); TextureAtlasSprite textureatlassprite1 = (TextureAtlasSprite)this.field_177599_g.get(new ResourceLocation(p_177578_1_.func_178308_c(blockpartface.field_178242_d))); @@ -46,7 +65,7 @@ } } } -@@ -530,9 +536,14 @@ +@@ -525,9 +536,14 @@ private BakedQuad func_177589_a(BlockPart p_177589_1_, BlockPartFace p_177589_2_, TextureAtlasSprite p_177589_3_, EnumFacing p_177589_4_, ModelRotation p_177589_5_, boolean p_177589_6_) { @@ -62,3 +81,23 @@ private void func_177597_h() { this.func_177574_i(); +@@ -809,4 +825,19 @@ + field_177617_q.field_178317_b = "class generation marker"; + field_177616_r.field_178317_b = "block entity marker"; + } ++ ++ /*********************************************************** ++ * FML Start ++ ***********************************************************/ ++ private static Map, Set> customVariantNames = Maps.newHashMap(); ++ public static void addVariantName(Item item, String... names) ++ { ++ if (customVariantNames.containsKey(item.delegate)) ++ customVariantNames.get(item.delegate).addAll(Lists.newArrayList(names)); ++ else ++ customVariantNames.put(item.delegate, Sets.newHashSet(names)); ++ } ++ /*********************************************************** ++ * FML End ++ ***********************************************************/ + } diff --git a/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch new file mode 100644 index 000000000..74702821a --- /dev/null +++ b/patches/minecraft/net/minecraft/client/settings/GameSettings.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/client/settings/GameSettings.java ++++ ../src-work/minecraft/net/minecraft/client/settings/GameSettings.java +@@ -1067,6 +1067,7 @@ + + public void func_74303_b() + { ++ if (net.minecraftforge.fml.client.FMLClientHandler.instance().isLoading()) return; + try + { + PrintWriter printwriter = new PrintWriter(new FileWriter(this.field_74354_ai)); diff --git a/patches/minecraft/net/minecraft/crash/CrashReport.java.patch b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch new file mode 100644 index 000000000..224cdfd43 --- /dev/null +++ b/patches/minecraft/net/minecraft/crash/CrashReport.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/crash/CrashReport.java ++++ ../src-work/minecraft/net/minecraft/crash/CrashReport.java +@@ -126,6 +126,7 @@ + return IntCache.func_85144_b(); + } + }); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().enhanceCrashReport(this, this.field_85061_c); + } + + public String func_71501_a() +@@ -220,6 +221,8 @@ + { + StringBuilder stringbuilder = new StringBuilder(); + stringbuilder.append("---- Minecraft Crash Report ----\n"); ++ net.minecraftforge.fml.common.asm.transformers.BlamingTransformer.onCrash(stringbuilder); ++ net.minecraftforge.fml.relauncher.CoreModManager.onCrash(stringbuilder); + stringbuilder.append("// "); + stringbuilder.append(func_71503_h()); + stringbuilder.append("\n\n"); diff --git a/patches/minecraft/net/minecraft/entity/EntityList.java.patch b/patches/minecraft/net/minecraft/entity/EntityList.java.patch index cfce70ebf..800d27c1b 100644 --- a/patches/minecraft/net/minecraft/entity/EntityList.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityList.java.patch @@ -8,3 +8,61 @@ if (field_75625_b.containsKey(p_75618_1_)) { throw new IllegalArgumentException("ID is already registered: " + p_75618_1_); +@@ -153,9 +154,10 @@ + p_75615_0_.func_82580_o("Type"); + } + ++ Class oclass = null; + try + { +- Class oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id")); ++ oclass = (Class)field_75625_b.get(p_75615_0_.func_74779_i("id")); + + if (oclass != null) + { +@@ -169,7 +171,17 @@ + + if (entity != null) + { ++ try ++ { + entity.func_70020_e(p_75615_0_); ++ } ++ catch (Exception e) ++ { ++ net.minecraftforge.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e, ++ "An Entity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author", ++ p_75615_0_.func_74779_i("id"), oclass.getName()); ++ entity = null; ++ } + } + else + { +@@ -344,7 +356,9 @@ + + public static class EntityEggInfo + { ++ @Deprecated // This is not always a valid number in the global ID list. + public final int field_75613_a; ++ public final String name; + public final int field_75611_b; + public final int field_75612_c; + public final StatBase field_151512_d; +@@ -358,6 +372,17 @@ + this.field_75612_c = p_i1583_3_; + this.field_151512_d = StatList.func_151182_a(this); + this.field_151513_e = StatList.func_151176_b(this); ++ this.name = EntityList.func_75617_a(p_i1583_1_); + } ++ ++ public EntityEggInfo(String name, int primaryColor, int secondaryColor) ++ { ++ this.field_75613_a = -1; ++ this.name = name; ++ this.field_75611_b = primaryColor; ++ this.field_75612_c = secondaryColor; ++ this.field_151512_d = (new StatBase("stat.killEntity." + name, new net.minecraft.util.ChatComponentTranslation("stat.entityKill", new net.minecraft.util.ChatComponentTranslation("entity." + name + ".name")))).func_75971_g(); ++ this.field_151513_e = (new StatBase("stat.entityKilledBy." + name, new net.minecraft.util.ChatComponentTranslation("stat.entityKilledBy", new net.minecraft.util.ChatComponentTranslation("entity." + name + ".name")))).func_75971_g(); ++ } + } + } diff --git a/patches/minecraft/net/minecraft/entity/EntityTracker.java.patch b/patches/minecraft/net/minecraft/entity/EntityTracker.java.patch index 393e5adf3..74d6449d4 100644 --- a/patches/minecraft/net/minecraft/entity/EntityTracker.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityTracker.java.patch @@ -1,6 +1,15 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityTracker.java +++ ../src-work/minecraft/net/minecraft/entity/EntityTracker.java -@@ -357,4 +357,23 @@ +@@ -58,6 +58,8 @@ + + public void func_72786_a(Entity p_72786_1_) + { ++ if (net.minecraftforge.fml.common.registry.EntityRegistry.instance().tryTrackingEntity(this, p_72786_1_)) return; ++ + if (p_72786_1_ instanceof EntityPlayerMP) + { + this.func_72791_a(p_72786_1_, 512, 2); +@@ -355,4 +357,23 @@ } } } diff --git a/patches/minecraft/net/minecraft/entity/EntityTrackerEntry.java.patch b/patches/minecraft/net/minecraft/entity/EntityTrackerEntry.java.patch index f83481e40..6f346c7e8 100644 --- a/patches/minecraft/net/minecraft/entity/EntityTrackerEntry.java.patch +++ b/patches/minecraft/net/minecraft/entity/EntityTrackerEntry.java.patch @@ -1,6 +1,21 @@ --- ../src-base/minecraft/net/minecraft/entity/EntityTrackerEntry.java +++ ../src-work/minecraft/net/minecraft/entity/EntityTrackerEntry.java -@@ -445,12 +445,14 @@ +@@ -388,6 +388,14 @@ + this.field_73138_k = this.field_73132_a.field_70181_x; + this.field_73135_l = this.field_73132_a.field_70179_y; + ++ int posX = MathHelper.func_76128_c(this.field_73132_a.field_70165_t * 32.0D); ++ int posY = MathHelper.func_76128_c(this.field_73132_a.field_70163_u * 32.0D); ++ int posZ = MathHelper.func_76128_c(this.field_73132_a.field_70161_v * 32.0D); ++ if (posX != this.field_73128_d || posY != this.field_73129_e || posZ != this.field_73126_f) ++ { ++ net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.makeEntitySpawnAdjustment(this.field_73132_a, p_73117_1_, this.field_73128_d, this.field_73129_e, this.field_73126_f); ++ } ++ + if (this.field_73143_t && !(packet instanceof S0FPacketSpawnMob)) + { + p_73117_1_.field_71135_a.func_147359_a(new S12PacketEntityVelocity(this.field_73132_a.func_145782_y(), this.field_73132_a.field_70159_w, this.field_73132_a.field_70181_x, this.field_73132_a.field_70179_y)); +@@ -437,12 +445,14 @@ p_73117_1_.field_71135_a.func_147359_a(new S1DPacketEntityEffect(this.field_73132_a.func_145782_y(), potioneffect)); } } @@ -15,3 +30,13 @@ } } } +@@ -474,6 +484,9 @@ + field_151262_p.warn("Fetching addPacket for removed entity"); + } + ++ Packet pkt = net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.getEntitySpawningPacket(this.field_73132_a); ++ if (pkt != null) return pkt; ++ + if (this.field_73132_a instanceof EntityItem) + { + return new S0EPacketSpawnObject(this.field_73132_a, 2, 1); diff --git a/patches/minecraft/net/minecraft/entity/boss/IBossDisplayData.java.patch b/patches/minecraft/net/minecraft/entity/boss/IBossDisplayData.java.patch new file mode 100644 index 000000000..ee9c56e4c --- /dev/null +++ b/patches/minecraft/net/minecraft/entity/boss/IBossDisplayData.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/entity/boss/IBossDisplayData.java ++++ ../src-work/minecraft/net/minecraft/entity/boss/IBossDisplayData.java +@@ -4,7 +4,6 @@ + import net.minecraftforge.fml.relauncher.Side; + import net.minecraftforge.fml.relauncher.SideOnly; + +-@SideOnly(Side.CLIENT) + public interface IBossDisplayData + { + float func_110138_aP(); diff --git a/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch b/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch index 7d9b58e89..62ed8fc50 100644 --- a/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch +++ b/patches/minecraft/net/minecraft/entity/item/EntityItem.java.patch @@ -84,3 +84,11 @@ { if (itemstack.func_77973_b() == Item.func_150898_a(Blocks.field_150364_r)) { +@@ -366,6 +386,7 @@ + } + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerItemPickupEvent(p_70100_1_, this); + if (!this.func_174814_R()) + { + this.field_70170_p.func_72956_a(p_70100_1_, "random.pop", 0.2F, ((this.field_70146_Z.nextFloat() - this.field_70146_Z.nextFloat()) * 0.7F + 1.0F) * 2.0F); diff --git a/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch b/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch new file mode 100644 index 000000000..45e3d5eec --- /dev/null +++ b/patches/minecraft/net/minecraft/entity/monster/EntitySlime.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/entity/monster/EntitySlime.java ++++ ../src-work/minecraft/net/minecraft/entity/monster/EntitySlime.java +@@ -271,7 +271,7 @@ + { + Chunk chunk = this.field_70170_p.func_175726_f(new BlockPos(MathHelper.func_76128_c(this.field_70165_t), 0, MathHelper.func_76128_c(this.field_70161_v))); + +- if (this.field_70170_p.func_72912_H().func_76067_t() == WorldType.field_77138_c && this.field_70146_Z.nextInt(4) != 1) ++ if (this.field_70170_p.func_72912_H().func_76067_t().handleSlimeSpawnReduction(field_70146_Z, field_70170_p)) + { + return false; + } diff --git a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch index 5fc7b52bc..ed6df82c6 100644 --- a/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch +++ b/patches/minecraft/net/minecraft/entity/passive/EntityVillager.java.patch @@ -1,6 +1,14 @@ --- ../src-base/minecraft/net/minecraft/entity/passive/EntityVillager.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityVillager.java -@@ -229,7 +229,7 @@ +@@ -83,6 +83,7 @@ + private boolean field_82190_bM; + private boolean field_175564_by; + private InventoryBasic field_175560_bz; ++ @Deprecated //Use VillagerRegistry + private static final EntityVillager.ITradeList[][][][] field_175561_bA = new EntityVillager.ITradeList[][][][] {{{{new EntityVillager.EmeraldForItems(Items.field_151015_O, new EntityVillager.PriceInfo(18, 22)), new EntityVillager.EmeraldForItems(Items.field_151174_bG, new EntityVillager.PriceInfo(15, 19)), new EntityVillager.EmeraldForItems(Items.field_151172_bF, new EntityVillager.PriceInfo(15, 19)), new EntityVillager.ListItemForEmeralds(Items.field_151025_P, new EntityVillager.PriceInfo(-4, -2))}, {new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150423_aK), new EntityVillager.PriceInfo(8, 13)), new EntityVillager.ListItemForEmeralds(Items.field_151158_bO, new EntityVillager.PriceInfo(-3, -2))}, {new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150440_ba), new EntityVillager.PriceInfo(7, 12)), new EntityVillager.ListItemForEmeralds(Items.field_151034_e, new EntityVillager.PriceInfo(-5, -7))}, {new EntityVillager.ListItemForEmeralds(Items.field_151106_aX, new EntityVillager.PriceInfo(-6, -10)), new EntityVillager.ListItemForEmeralds(Items.field_151105_aU, new EntityVillager.PriceInfo(1, 1))}}, {{new EntityVillager.EmeraldForItems(Items.field_151007_F, new EntityVillager.PriceInfo(15, 20)), new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ItemAndEmeraldToItem(Items.field_151115_aP, new EntityVillager.PriceInfo(6, 6), Items.field_179566_aV, new EntityVillager.PriceInfo(6, 6))}, {new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151112_aM, new EntityVillager.PriceInfo(7, 8))}}, {{new EntityVillager.EmeraldForItems(Item.func_150898_a(Blocks.field_150325_L), new EntityVillager.PriceInfo(16, 22)), new EntityVillager.ListItemForEmeralds(Items.field_151097_aZ, new EntityVillager.PriceInfo(3, 4))}, {new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 0), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 1), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 2), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 3), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 4), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 5), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 6), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 7), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 8), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 9), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 10), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 11), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 12), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 13), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 14), new EntityVillager.PriceInfo(1, 2)), new EntityVillager.ListItemForEmeralds(new ItemStack(Item.func_150898_a(Blocks.field_150325_L), 1, 15), new EntityVillager.PriceInfo(1, 2))}}, {{new EntityVillager.EmeraldForItems(Items.field_151007_F, new EntityVillager.PriceInfo(15, 20)), new EntityVillager.ListItemForEmeralds(Items.field_151032_g, new EntityVillager.PriceInfo(-12, -8))}, {new EntityVillager.ListItemForEmeralds(Items.field_151031_f, new EntityVillager.PriceInfo(2, 3)), new EntityVillager.ItemAndEmeraldToItem(Item.func_150898_a(Blocks.field_150351_n), new EntityVillager.PriceInfo(10, 10), Items.field_151145_ak, new EntityVillager.PriceInfo(6, 10))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151121_aF, new EntityVillager.PriceInfo(24, 36)), new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.EmeraldForItems(Items.field_151122_aG, new EntityVillager.PriceInfo(8, 10)), new EntityVillager.ListItemForEmeralds(Items.field_151111_aL, new EntityVillager.PriceInfo(10, 12)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150342_X), new EntityVillager.PriceInfo(3, 4))}, {new EntityVillager.EmeraldForItems(Items.field_151164_bB, new EntityVillager.PriceInfo(2, 2)), new EntityVillager.ListItemForEmeralds(Items.field_151113_aN, new EntityVillager.PriceInfo(10, 12)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150359_w), new EntityVillager.PriceInfo(-5, -3))}, {new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.ListEnchantedBookForEmeralds()}, {new EntityVillager.ListItemForEmeralds(Items.field_151057_cb, new EntityVillager.PriceInfo(20, 22))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151078_bh, new EntityVillager.PriceInfo(36, 40)), new EntityVillager.EmeraldForItems(Items.field_151043_k, new EntityVillager.PriceInfo(8, 10))}, {new EntityVillager.ListItemForEmeralds(Items.field_151137_ax, new EntityVillager.PriceInfo(-4, -1)), new EntityVillager.ListItemForEmeralds(new ItemStack(Items.field_151100_aR, 1, EnumDyeColor.BLUE.func_176767_b()), new EntityVillager.PriceInfo(-2, -1))}, {new EntityVillager.ListItemForEmeralds(Items.field_151061_bv, new EntityVillager.PriceInfo(7, 11)), new EntityVillager.ListItemForEmeralds(Item.func_150898_a(Blocks.field_150426_aN), new EntityVillager.PriceInfo(-3, -1))}, {new EntityVillager.ListItemForEmeralds(Items.field_151062_by, new EntityVillager.PriceInfo(3, 11))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151028_Y, new EntityVillager.PriceInfo(4, 6))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListItemForEmeralds(Items.field_151030_Z, new EntityVillager.PriceInfo(10, 14))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151163_ad, new EntityVillager.PriceInfo(16, 19))}, {new EntityVillager.ListItemForEmeralds(Items.field_151029_X, new EntityVillager.PriceInfo(5, 7)), new EntityVillager.ListItemForEmeralds(Items.field_151022_W, new EntityVillager.PriceInfo(9, 11)), new EntityVillager.ListItemForEmeralds(Items.field_151020_U, new EntityVillager.PriceInfo(5, 7)), new EntityVillager.ListItemForEmeralds(Items.field_151023_V, new EntityVillager.PriceInfo(11, 15))}}, {{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151036_c, new EntityVillager.PriceInfo(6, 8))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151040_l, new EntityVillager.PriceInfo(9, 10))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151048_u, new EntityVillager.PriceInfo(12, 15)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151056_x, new EntityVillager.PriceInfo(9, 12))}}, {{new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151037_a, new EntityVillager.PriceInfo(5, 7))}, {new EntityVillager.EmeraldForItems(Items.field_151042_j, new EntityVillager.PriceInfo(7, 9)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151035_b, new EntityVillager.PriceInfo(9, 11))}, {new EntityVillager.EmeraldForItems(Items.field_151045_i, new EntityVillager.PriceInfo(3, 4)), new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151046_w, new EntityVillager.PriceInfo(12, 15))}}}, {{{new EntityVillager.EmeraldForItems(Items.field_151147_al, new EntityVillager.PriceInfo(14, 18)), new EntityVillager.EmeraldForItems(Items.field_151076_bf, new EntityVillager.PriceInfo(14, 18))}, {new EntityVillager.EmeraldForItems(Items.field_151044_h, new EntityVillager.PriceInfo(16, 24)), new EntityVillager.ListItemForEmeralds(Items.field_151157_am, new EntityVillager.PriceInfo(-7, -5)), new EntityVillager.ListItemForEmeralds(Items.field_151077_bg, new EntityVillager.PriceInfo(-8, -6))}}, {{new EntityVillager.EmeraldForItems(Items.field_151116_aA, new EntityVillager.PriceInfo(9, 12)), new EntityVillager.ListItemForEmeralds(Items.field_151026_S, new EntityVillager.PriceInfo(2, 4))}, {new EntityVillager.ListEnchantedItemForEmeralds(Items.field_151027_R, new EntityVillager.PriceInfo(7, 12))}, {new EntityVillager.ListItemForEmeralds(Items.field_151141_av, new EntityVillager.PriceInfo(8, 10))}}}}; + private static final String __OBFID = "CL_00001707"; + +@@ -228,7 +229,7 @@ ItemStack itemstack = p_70085_1_.field_71071_by.func_70448_g(); boolean flag = itemstack != null && itemstack.func_77973_b() == Items.field_151063_bx; @@ -9,3 +17,28 @@ { if (!this.field_70170_p.field_72995_K && (this.field_70963_i == null || this.field_70963_i.size() > 0)) { +@@ -540,6 +541,7 @@ + + private void func_175554_cu() + { ++ //TODO: Hook into VillagerRegistry + EntityVillager.ITradeList[][][] aitradelist = field_175561_bA[this.func_70946_n()]; + + if (this.field_175563_bv != 0 && this.field_175562_bw != 0) +@@ -648,6 +650,7 @@ + } + } + ++ //TODO: Hook into VillagerRegistry to get name + if (s1 != null) + { + ChatComponentTranslation chatcomponenttranslation = new ChatComponentTranslation("entity.Villager." + s1, new Object[0]); +@@ -710,7 +713,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_); +- this.func_70938_b(this.field_70170_p.field_73012_v.nextInt(5)); ++ net.minecraftforge.fml.common.registry.VillagerRegistry.setRandomProfession(this, this.field_70170_p.field_73012_v); + this.func_175552_ct(); + return p_180482_2_; + } diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch index 231b473b3..37810585e 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayer.java.patch @@ -42,7 +42,15 @@ } this.func_71041_bz(); -@@ -214,6 +230,14 @@ +@@ -200,6 +216,7 @@ + + public void func_70071_h_() + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPlayerPreTick(this); + this.field_70145_X = this.func_175149_v(); + + if (this.func_175149_v()) +@@ -213,6 +230,14 @@ if (itemstack == this.field_71074_e) { @@ -57,7 +65,7 @@ if (this.field_71072_f <= 25 && this.field_71072_f % 4 == 0) { this.func_71010_c(itemstack, 5); -@@ -223,6 +247,7 @@ +@@ -222,6 +247,7 @@ { this.func_71036_o(); } @@ -65,7 +73,7 @@ } else { -@@ -268,7 +293,7 @@ +@@ -267,7 +293,7 @@ super.func_70071_h_(); @@ -74,7 +82,15 @@ { this.func_71053_j(); this.field_71070_bA = this.field_71069_bz; -@@ -415,11 +440,13 @@ +@@ -344,6 +370,7 @@ + { + this.func_70107_b(d3, this.field_70163_u, d4); + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPlayerPostTick(this); + } + + public int func_82145_z() +@@ -413,11 +440,13 @@ int i = this.field_71074_e.field_77994_a; ItemStack itemstack = this.field_71074_e.func_77950_b(this.field_70170_p, this); @@ -89,7 +105,7 @@ { this.field_71071_by.field_70462_a[this.field_71071_by.field_70461_c] = null; } -@@ -479,11 +506,11 @@ +@@ -477,11 +506,11 @@ this.field_71109_bG = 0.0F; this.func_71015_k(this.field_70165_t - d0, this.field_70163_u - d1, this.field_70161_v - d2); @@ -103,7 +119,7 @@ } } } -@@ -613,11 +640,15 @@ +@@ -611,11 +640,15 @@ public void func_70645_a(DamageSource p_70645_1_) { @@ -119,7 +135,7 @@ if (this.func_70005_c_().equals("Notch")) { this.func_146097_a(new ItemStack(Items.field_151034_e, 1), true, false); -@@ -628,6 +659,9 @@ +@@ -626,6 +659,9 @@ this.field_71071_by.func_70436_m(); } @@ -129,7 +145,7 @@ if (p_70645_1_ != null) { this.field_70159_w = (double)(-MathHelper.func_76134_b((this.field_70739_aP + this.field_70177_z) * (float)Math.PI / 180.0F) * 0.1F); -@@ -716,12 +750,25 @@ +@@ -714,12 +750,25 @@ public EntityItem func_71040_bB(boolean p_71040_1_) { @@ -157,7 +173,7 @@ } public EntityItem func_146097_a(ItemStack p_146097_1_, boolean p_146097_2_, boolean p_146097_3_) -@@ -782,13 +829,25 @@ +@@ -780,13 +829,25 @@ public void func_71012_a(EntityItem p_71012_1_) { @@ -184,7 +200,7 @@ if (f > 1.0F) { int i = EnchantmentHelper.func_77509_b(this); -@@ -838,12 +897,13 @@ +@@ -836,12 +897,13 @@ f /= 5.0F; } @@ -200,7 +216,7 @@ } public void func_70037_a(NBTTagCompound p_70037_1_) -@@ -879,6 +939,16 @@ +@@ -877,6 +939,16 @@ this.field_82248_d = p_70037_1_.func_74767_n("SpawnForced"); } @@ -217,7 +233,7 @@ this.field_71100_bB.func_75112_a(p_70037_1_); this.field_71075_bZ.func_75095_b(p_70037_1_); -@@ -910,6 +980,23 @@ +@@ -908,6 +980,23 @@ p_70014_1_.func_74757_a("SpawnForced", this.field_82248_d); } @@ -241,7 +257,7 @@ this.field_71100_bB.func_75117_b(p_70014_1_); this.field_71075_bZ.func_75091_a(p_70014_1_); p_70014_1_.func_74782_a("EnderItems", this.field_71078_a.func_70487_g()); -@@ -923,6 +1010,7 @@ +@@ -921,6 +1010,7 @@ public boolean func_70097_a(DamageSource p_70097_1_, float p_70097_2_) { @@ -249,7 +265,7 @@ if (this.func_180431_b(p_70097_1_)) { return false; -@@ -1023,12 +1111,15 @@ +@@ -1021,12 +1111,15 @@ { if (!this.func_180431_b(p_70665_1_)) { @@ -266,7 +282,7 @@ p_70665_2_ = this.func_70672_c(p_70665_1_, p_70665_2_); float f1 = p_70665_2_; p_70665_2_ = Math.max(p_70665_2_ - this.func_110139_bj(), 0.0F); -@@ -1076,6 +1167,7 @@ +@@ -1074,6 +1167,7 @@ } else { @@ -274,7 +290,7 @@ ItemStack itemstack = this.func_71045_bC(); ItemStack itemstack1 = itemstack != null ? itemstack.func_77946_l() : null; -@@ -1127,7 +1219,9 @@ +@@ -1125,7 +1219,9 @@ public void func_71028_bD() { @@ -284,7 +300,7 @@ } public double func_70033_W() -@@ -1137,6 +1231,7 @@ +@@ -1135,6 +1231,7 @@ public void func_71059_n(Entity p_71059_1_) { @@ -292,7 +308,7 @@ if (p_71059_1_.func_70075_an()) { if (!p_71059_1_.func_85031_j(this)) -@@ -1307,6 +1402,8 @@ +@@ -1305,6 +1402,8 @@ public EntityPlayer.EnumStatus func_180469_a(BlockPos p_180469_1_) { @@ -301,7 +317,7 @@ if (!this.field_70170_p.field_72995_K) { if (this.func_70608_bn() || !this.func_70089_S()) -@@ -1348,7 +1445,7 @@ +@@ -1346,7 +1445,7 @@ if (this.field_70170_p.func_175667_e(p_180469_1_)) { @@ -310,7 +326,7 @@ float f = 0.5F; float f1 = 0.5F; -@@ -1411,13 +1508,14 @@ +@@ -1409,13 +1508,14 @@ public void func_70999_a(boolean p_70999_1_, boolean p_70999_2_, boolean p_70999_3_) { @@ -328,7 +344,7 @@ if (blockpos == null) { -@@ -1444,12 +1542,12 @@ +@@ -1442,12 +1542,12 @@ private boolean func_175143_p() { @@ -343,7 +359,7 @@ { if (!p_180467_2_) { -@@ -1466,7 +1564,7 @@ +@@ -1464,7 +1564,7 @@ } else { @@ -352,7 +368,7 @@ } } -@@ -1475,7 +1573,7 @@ +@@ -1473,7 +1573,7 @@ { if (this.field_71081_bT != null) { @@ -361,7 +377,7 @@ switch (EntityPlayer.SwitchEnumFacing.field_179420_a[enumfacing.ordinal()]) { -@@ -1513,16 +1611,22 @@ +@@ -1511,16 +1611,22 @@ public BlockPos func_180470_cg() { @@ -386,7 +402,7 @@ if (p_180473_1_ != null) { this.field_71077_c = p_180473_1_; -@@ -1704,6 +1808,10 @@ +@@ -1702,6 +1808,10 @@ super.func_180430_e(p_180430_1_, p_180430_2_); } @@ -397,7 +413,15 @@ } protected void func_71061_d_() -@@ -1840,6 +1948,8 @@ +@@ -1725,6 +1835,7 @@ + } + + EntityList.EntityEggInfo entityegginfo = (EntityList.EntityEggInfo)EntityList.field_75627_a.get(Integer.valueOf(EntityList.func_75619_a(p_70074_1_))); ++ if (entityegginfo == null) entityegginfo = net.minecraftforge.fml.common.registry.EntityRegistry.getEggs().get(EntityList.func_75621_b(p_70074_1_)); + + if (entityegginfo != null) + { +@@ -1837,6 +1948,8 @@ { if (p_71008_1_ != this.field_71074_e) { @@ -406,7 +430,7 @@ this.field_71074_e = p_71008_1_; this.field_71072_f = p_71008_2_; -@@ -1909,6 +2019,10 @@ +@@ -1906,6 +2019,10 @@ this.field_71106_cc = p_71049_1_.field_71106_cc; this.func_85040_s(p_71049_1_.func_71037_bA()); this.field_82152_aq = p_71049_1_.field_82152_aq; @@ -417,7 +441,7 @@ } else if (this.field_70170_p.func_82736_K().func_82766_b("keepInventory")) { -@@ -1921,6 +2035,18 @@ +@@ -1918,6 +2035,18 @@ this.field_71078_a = p_71049_1_.field_71078_a; this.func_70096_w().func_75692_b(10, Byte.valueOf(p_71049_1_.func_70096_w().func_75683_a(10))); @@ -436,7 +460,7 @@ } protected boolean func_70041_e_() -@@ -1954,7 +2080,14 @@ +@@ -1951,7 +2080,14 @@ public void func_70062_b(int p_70062_1_, ItemStack p_70062_2_) { @@ -452,7 +476,7 @@ } @SideOnly(Side.CLIENT) -@@ -1999,7 +2132,10 @@ +@@ -1996,7 +2132,10 @@ public IChatComponent func_145748_c_() { @@ -464,7 +488,7 @@ chatcomponenttext.func_150256_b().func_150241_a(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, "/msg " + this.func_70005_c_() + " ")); chatcomponenttext.func_150256_b().func_150209_a(this.func_174823_aP()); chatcomponenttext.func_150256_b().func_179989_a(this.func_70005_c_()); -@@ -2008,7 +2144,7 @@ +@@ -2005,7 +2144,7 @@ public float func_70047_e() { @@ -473,10 +497,26 @@ if (this.func_70608_bn()) { -@@ -2158,6 +2294,120 @@ - net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z); +@@ -2139,6 +2278,136 @@ + this.field_175153_bG = p_175150_1_; } ++ /** ++ * Opens a GUI with this player, uses FML's IGuiHandler system. ++ * Allows for extension by modders. ++ * ++ * @param mod The mod trying to open a GUI ++ * @param modGuiId GUI ID ++ * @param world Current World ++ * @param x Passed directly to IGuiHandler, data meaningless Typically world X position ++ * @param y Passed directly to IGuiHandler, data meaningless Typically world Y position ++ * @param z Passed directly to IGuiHandler, data meaningless Typically world Z position ++ */ ++ public void openGui(Object mod, int modGuiId, World world, int x, int y, int z) ++ { ++ net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.openGui(this, mod, modGuiId, world, x, y, z); ++ } ++ + + /* ======================================== FORGE START =====================================*/ + /** diff --git a/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch b/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch index cc81f4d7b..7d6d0b6c8 100644 --- a/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch +++ b/patches/minecraft/net/minecraft/entity/player/EntityPlayerMP.java.patch @@ -74,7 +74,15 @@ } Collection collection = this.field_70170_p.func_96441_U().func_96520_a(IScoreObjectiveCriteria.field_96642_c); -@@ -850,6 +867,7 @@ +@@ -481,6 +498,7 @@ + if (entitylivingbase != null) + { + EntityList.EntityEggInfo entityegginfo = (EntityList.EntityEggInfo)EntityList.field_75627_a.get(Integer.valueOf(EntityList.func_75619_a(entitylivingbase))); ++ if (entityegginfo == null) entityegginfo = net.minecraftforge.fml.common.registry.EntityRegistry.getEggs().get(EntityList.func_75621_b(entitylivingbase)); + + if (entityegginfo != null) + { +@@ -849,6 +867,7 @@ { if (p_71064_1_ != null) { diff --git a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch index d2095ad8d..0dd6c1066 100644 --- a/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch +++ b/patches/minecraft/net/minecraft/inventory/SlotCrafting.java.patch @@ -1,8 +1,10 @@ --- ../src-base/minecraft/net/minecraft/inventory/SlotCrafting.java +++ ../src-work/minecraft/net/minecraft/inventory/SlotCrafting.java -@@ -115,7 +115,9 @@ +@@ -113,8 +113,11 @@ + + public void func_82870_a(EntityPlayer p_82870_1_, ItemStack p_82870_2_) { - net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerCraftingEvent(p_82870_1_, p_82870_2_, field_75239_a); this.func_75208_c(p_82870_2_); + net.minecraftforge.common.ForgeHooks.setCraftingPlayer(p_82870_1_); ItemStack[] aitemstack = CraftingManager.func_77594_a().func_180303_b(this.field_75239_a, p_82870_1_.field_70170_p); diff --git a/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch b/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch new file mode 100644 index 000000000..e0dda7760 --- /dev/null +++ b/patches/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java ++++ ../src-work/minecraft/net/minecraft/inventory/SlotFurnaceOutput.java +@@ -83,6 +83,8 @@ + + this.field_75228_b = 0; + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerSmeltedEvent(field_75229_a, p_75208_1_); ++ + if (p_75208_1_.func_77973_b() == Items.field_151042_j) + { + this.field_75229_a.func_71029_a(AchievementList.field_76016_k); diff --git a/patches/minecraft/net/minecraft/item/Item.java.patch b/patches/minecraft/net/minecraft/item/Item.java.patch index bbc67e031..af3b601e9 100644 --- a/patches/minecraft/net/minecraft/item/Item.java.patch +++ b/patches/minecraft/net/minecraft/item/Item.java.patch @@ -1,6 +1,27 @@ --- ../src-base/minecraft/net/minecraft/item/Item.java +++ ../src-work/minecraft/net/minecraft/item/Item.java -@@ -129,6 +129,7 @@ +@@ -47,8 +47,8 @@ + + public class Item + { +- public static final RegistryNamespaced field_150901_e = new RegistryNamespaced(); +- private static final Map field_179220_a = Maps.newHashMap(); ++ public static final RegistryNamespaced field_150901_e = net.minecraftforge.fml.common.registry.GameData.getItemRegistry(); ++ private static final Map field_179220_a = net.minecraftforge.fml.common.registry.GameData.getBlockItemMap(); + protected static final UUID field_111210_e = UUID.fromString("CB3F55D3-645C-4F38-A497-9C13A33DB5CF"); + private CreativeTabs field_77701_a; + protected static Random field_77697_d = new Random(); +@@ -61,6 +61,9 @@ + private String field_77774_bZ; + private static final String __OBFID = "CL_00000041"; + ++ public final net.minecraftforge.fml.common.registry.RegistryDelegate delegate = ++ ((net.minecraftforge.fml.common.registry.FMLControlledNamespacedRegistry)field_150901_e).getDelegate(this, Item.class); ++ + public static int func_150891_b(Item p_150891_0_) + { + return p_150891_0_ == null ? 0 : field_150901_e.func_148757_b(p_150891_0_); +@@ -126,6 +129,7 @@ return p_77654_1_; } @@ -8,7 +29,7 @@ public int func_77639_j() { return this.field_77777_bU; -@@ -242,6 +243,7 @@ +@@ -239,6 +243,7 @@ return this.field_77700_c; } @@ -16,7 +37,7 @@ public boolean func_77634_r() { return this.field_77700_c != null; -@@ -311,7 +313,7 @@ +@@ -308,7 +313,7 @@ public boolean func_77616_k(ItemStack p_77616_1_) { @@ -25,7 +46,7 @@ } protected MovingObjectPosition func_77621_a(World p_77621_1_, EntityPlayer p_77621_2_, boolean p_77621_3_) -@@ -329,6 +331,10 @@ +@@ -326,6 +331,10 @@ float f6 = f3 * f4; float f7 = f2 * f4; double d3 = 5.0D; @@ -36,7 +57,7 @@ Vec3 vec31 = vec3.func_72441_c((double)f6 * d3, (double)f5 * d3, (double)f7 * d3); return p_77621_1_.func_147447_a(vec3, vec31, p_77621_3_, !p_77621_3_, false); } -@@ -366,11 +372,579 @@ +@@ -363,11 +372,579 @@ return false; } @@ -616,7 +637,7 @@ public static void func_150900_l() { func_179214_a(Blocks.field_150348_b, (new ItemMultiTexture(Blocks.field_150348_b, Blocks.field_150348_b, new Function() -@@ -936,6 +1510,10 @@ +@@ -933,6 +1510,10 @@ private static final String __OBFID = "CL_00000042"; @@ -627,7 +648,7 @@ private ToolMaterial(int p_i1874_3_, int p_i1874_4_, float p_i1874_5_, float p_i1874_6_, int p_i1874_7_) { this.field_78001_f = p_i1874_3_; -@@ -970,9 +1548,36 @@ +@@ -967,9 +1548,36 @@ return this.field_78008_j; } diff --git a/patches/minecraft/net/minecraft/item/ItemEmptyMap.java.patch b/patches/minecraft/net/minecraft/item/ItemEmptyMap.java.patch new file mode 100644 index 000000000..dce46dfd0 --- /dev/null +++ b/patches/minecraft/net/minecraft/item/ItemEmptyMap.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/item/ItemEmptyMap.java ++++ ../src-work/minecraft/net/minecraft/item/ItemEmptyMap.java +@@ -24,7 +24,7 @@ + p_77659_2_.func_72823_a(s, mapdata); + mapdata.field_76197_d = 0; + mapdata.func_176054_a(p_77659_3_.field_70165_t, p_77659_3_.field_70161_v, mapdata.field_76197_d); +- mapdata.field_76200_c = (byte)p_77659_2_.field_73011_w.func_177502_q(); ++ mapdata.field_76200_c = p_77659_2_.field_73011_w.func_177502_q(); + mapdata.func_76185_a(); + --p_77659_1_.field_77994_a; + diff --git a/patches/minecraft/net/minecraft/item/ItemMap.java.patch b/patches/minecraft/net/minecraft/item/ItemMap.java.patch new file mode 100644 index 000000000..9201f5bba --- /dev/null +++ b/patches/minecraft/net/minecraft/item/ItemMap.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/item/ItemMap.java ++++ ../src-work/minecraft/net/minecraft/item/ItemMap.java +@@ -58,7 +58,7 @@ + mapdata = new MapData(s); + mapdata.field_76197_d = 3; + mapdata.func_176054_a((double)p_77873_2_.func_72912_H().func_76079_c(), (double)p_77873_2_.func_72912_H().func_76074_e(), mapdata.field_76197_d); +- mapdata.field_76200_c = (byte)p_77873_2_.field_73011_w.func_177502_q(); ++ mapdata.field_76200_c = p_77873_2_.field_73011_w.func_177502_q(); + mapdata.func_76185_a(); + p_77873_2_.func_72823_a(s, mapdata); + } diff --git a/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch new file mode 100644 index 000000000..eae24e0ab --- /dev/null +++ b/patches/minecraft/net/minecraft/item/ItemMonsterPlacer.java.patch @@ -0,0 +1,107 @@ +--- ../src-base/minecraft/net/minecraft/item/ItemMonsterPlacer.java ++++ ../src-work/minecraft/net/minecraft/item/ItemMonsterPlacer.java +@@ -39,7 +39,7 @@ + public String func_77653_i(ItemStack p_77653_1_) + { + String s = ("" + StatCollector.func_74838_a(this.func_77658_a() + ".name")).trim(); +- String s1 = EntityList.func_75617_a(p_77653_1_.func_77960_j()); ++ String s1 = ItemMonsterPlacer.getEntityName(p_77653_1_); + + if (s1 != null) + { +@@ -52,7 +52,7 @@ + @SideOnly(Side.CLIENT) + public int func_82790_a(ItemStack p_82790_1_, int p_82790_2_) + { +- EntityList.EntityEggInfo entityegginfo = (EntityList.EntityEggInfo)EntityList.field_75627_a.get(Integer.valueOf(p_82790_1_.func_77960_j())); ++ EntityList.EntityEggInfo entityegginfo = ItemMonsterPlacer.getEggInfo(p_82790_1_); + return entityegginfo != null ? (p_82790_2_ == 0 ? entityegginfo.field_75611_b : entityegginfo.field_75612_c) : 16777215; + } + +@@ -77,7 +77,7 @@ + if (tileentity instanceof TileEntityMobSpawner) + { + MobSpawnerBaseLogic mobspawnerbaselogic = ((TileEntityMobSpawner)tileentity).func_145881_a(); +- mobspawnerbaselogic.func_98272_a(EntityList.func_75617_a(p_180614_1_.func_77960_j())); ++ mobspawnerbaselogic.func_98272_a(ItemMonsterPlacer.getEntityName(p_180614_1_)); + tileentity.func_70296_d(); + p_180614_3_.func_175689_h(p_180614_4_); + +@@ -98,7 +98,7 @@ + d0 = 0.5D; + } + +- Entity entity = func_77840_a(p_180614_3_, p_180614_1_.func_77960_j(), (double)p_180614_4_.func_177958_n() + 0.5D, (double)p_180614_4_.func_177956_o() + d0, (double)p_180614_4_.func_177952_p() + 0.5D); ++ Entity entity = spawnCreature(p_180614_3_, ItemMonsterPlacer.getEntityName(p_180614_1_), (double)p_180614_4_.func_177958_n() + 0.5D, (double)p_180614_4_.func_177956_o() + d0, (double)p_180614_4_.func_177952_p() + 0.5D); + + if (entity != null) + { +@@ -149,7 +149,7 @@ + + if (p_77659_2_.func_180495_p(blockpos).func_177230_c() instanceof BlockLiquid) + { +- Entity entity = func_77840_a(p_77659_2_, p_77659_1_.func_77960_j(), (double)blockpos.func_177958_n() + 0.5D, (double)blockpos.func_177956_o() + 0.5D, (double)blockpos.func_177952_p() + 0.5D); ++ Entity entity = spawnCreature(p_77659_2_, ItemMonsterPlacer.getEntityName(p_77659_1_), (double)blockpos.func_177958_n() + 0.5D, (double)blockpos.func_177956_o() + 0.5D, (double)blockpos.func_177952_p() + 0.5D); + + if (entity != null) + { +@@ -173,19 +173,29 @@ + } + } + ++ @Deprecated // Use string version below. + public static Entity func_77840_a(World p_77840_0_, int p_77840_1_, double p_77840_2_, double p_77840_4_, double p_77840_6_) + { + if (!EntityList.field_75627_a.containsKey(Integer.valueOf(p_77840_1_))) + { + return null; + } ++ return spawnCreature(p_77840_0_, EntityList.func_75617_a(p_77840_1_), p_77840_2_, p_77840_4_, p_77840_6_); ++ } ++ ++ public static Entity spawnCreature(World p_77840_0_, String name, double p_77840_2_, double p_77840_4_, double p_77840_6_) ++ { ++ if (!EntityList.field_75625_b.containsKey(name)) ++ { ++ return null; ++ } + else + { + Entity entity = null; + + for (int j = 0; j < 1; ++j) + { +- entity = EntityList.func_75616_a(p_77840_1_, p_77840_0_); ++ entity = EntityList.func_75620_a(name, p_77840_0_); + + if (entity instanceof EntityLivingBase) + { +@@ -213,5 +223,28 @@ + EntityList.EntityEggInfo entityegginfo = (EntityList.EntityEggInfo)iterator.next(); + p_150895_3_.add(new ItemStack(p_150895_1_, 1, entityegginfo.field_75613_a)); + } ++ ++ for (String name : net.minecraftforge.fml.common.registry.EntityRegistry.getEggs().keySet()) ++ { ++ ItemStack stack = new ItemStack(p_150895_1_); ++ net.minecraft.nbt.NBTTagCompound nbt = new net.minecraft.nbt.NBTTagCompound(); ++ nbt.func_74778_a("entity_name", name); ++ stack.func_77982_d(nbt); ++ p_150895_3_.add(stack); ++ } + } ++ ++ private static String getEntityName(ItemStack stack) ++ { ++ if (stack.func_77942_o() && stack.func_77978_p().func_150297_b("entity_name", 8)) ++ return stack.func_77978_p().func_74779_i("entity_name"); ++ return EntityList.func_75617_a(stack.func_77960_j()); ++ } ++ ++ private static EntityList.EntityEggInfo getEggInfo(ItemStack stack) ++ { ++ if (stack.func_77942_o() && stack.func_77978_p().func_150297_b("entity_name", 8)) ++ return net.minecraftforge.fml.common.registry.EntityRegistry.getEggs().get(stack.func_77978_p().func_74779_i("entity_name")); ++ return (EntityList.EntityEggInfo)EntityList.field_75627_a.get(stack.func_77960_j()); ++ } + } diff --git a/patches/minecraft/net/minecraft/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/item/ItemStack.java.patch index b2b98c482..6a62baf61 100644 --- a/patches/minecraft/net/minecraft/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/item/ItemStack.java.patch @@ -1,6 +1,29 @@ --- ../src-base/minecraft/net/minecraft/item/ItemStack.java +++ ../src-work/minecraft/net/minecraft/item/ItemStack.java -@@ -129,6 +129,7 @@ +@@ -52,6 +52,7 @@ + private boolean field_179551_k; + private static final String __OBFID = "CL_00000043"; + ++ private net.minecraftforge.fml.common.registry.RegistryDelegate delegate; + public ItemStack(Block p_i1876_1_) + { + this(p_i1876_1_, 1); +@@ -83,7 +84,7 @@ + this.field_179553_i = false; + this.field_179550_j = null; + this.field_179551_k = false; +- this.field_151002_e = p_i1881_1_; ++ this.func_150996_a(p_i1881_1_); + this.field_77994_a = p_i1881_2_; + this.field_77991_e = p_i1881_3_; + +@@ -123,11 +124,12 @@ + + public Item func_77973_b() + { +- return this.field_151002_e; ++ return this.delegate != null ? this.delegate.get() : null; + } public boolean func_179546_a(EntityPlayer p_179546_1_, World p_179546_2_, BlockPos p_179546_3_, EnumFacing p_179546_4_, float p_179546_5_, float p_179546_6_, float p_179546_7_) { @@ -8,7 +31,21 @@ boolean flag = this.func_77973_b().func_180614_a(this, p_179546_1_, p_179546_2_, p_179546_3_, p_179546_4_, p_179546_5_, p_179546_6_, p_179546_7_); if (flag) -@@ -201,7 +202,7 @@ +@@ -172,11 +174,11 @@ + { + if (p_77963_1_.func_150297_b("id", 8)) + { +- this.field_151002_e = Item.func_111206_d(p_77963_1_.func_74779_i("id")); ++ this.func_150996_a(Item.func_111206_d(p_77963_1_.func_74779_i("id"))); + } + else + { +- this.field_151002_e = Item.func_150899_d(p_77963_1_.func_74765_d("id")); ++ this.func_150996_a(Item.func_150899_d(p_77963_1_.func_74765_d("id"))); + } + + this.field_77994_a = p_77963_1_.func_74771_c("Count"); +@@ -200,7 +202,7 @@ public int func_77976_d() { @@ -17,7 +54,7 @@ } public boolean func_77985_e() -@@ -211,7 +212,7 @@ +@@ -210,7 +212,7 @@ public boolean func_77984_f() { @@ -26,7 +63,7 @@ } public boolean func_77981_g() -@@ -221,32 +222,27 @@ +@@ -220,32 +222,27 @@ public boolean func_77951_h() { @@ -64,7 +101,7 @@ } public boolean func_96631_a(int p_96631_1_, Random p_96631_2_) -@@ -278,8 +274,8 @@ +@@ -277,8 +274,8 @@ } } @@ -75,7 +112,7 @@ } } -@@ -338,7 +334,7 @@ +@@ -337,7 +334,7 @@ public boolean func_150998_b(Block p_150998_1_) { @@ -84,7 +121,7 @@ } public boolean func_111282_a(EntityPlayer p_111282_1_, EntityLivingBase p_111282_2_) -@@ -753,6 +749,8 @@ +@@ -752,6 +749,8 @@ } } @@ -93,7 +130,7 @@ return arraylist; } -@@ -863,7 +861,7 @@ +@@ -862,7 +861,7 @@ } else { @@ -102,3 +139,11 @@ } return (Multimap)object; +@@ -870,6 +869,7 @@ + + public void func_150996_a(Item p_150996_1_) + { ++ this.delegate = p_150996_1_ != null ? p_150996_1_.delegate : null; + this.field_151002_e = p_150996_1_; + } + diff --git a/patches/minecraft/net/minecraft/network/NetworkManager.java.patch b/patches/minecraft/net/minecraft/network/NetworkManager.java.patch new file mode 100644 index 000000000..b37433cda --- /dev/null +++ b/patches/minecraft/net/minecraft/network/NetworkManager.java.patch @@ -0,0 +1,53 @@ +--- ../src-base/minecraft/net/minecraft/network/NetworkManager.java ++++ ../src-work/minecraft/net/minecraft/network/NetworkManager.java +@@ -88,6 +88,11 @@ + this.field_179294_g = p_i46004_1_; + } + ++ public EnumPacketDirection getDirection() ++ { ++ return this.field_179294_g; ++ } ++ + public void channelActive(ChannelHandlerContext p_channelActive_1_) throws Exception + { + super.channelActive(p_channelActive_1_); +@@ -175,7 +180,7 @@ + final EnumConnectionState enumconnectionstate = EnumConnectionState.func_150752_a(p_150732_1_); + final EnumConnectionState enumconnectionstate1 = (EnumConnectionState)this.field_150746_k.attr(field_150739_c).get(); + +- if (enumconnectionstate1 != enumconnectionstate) ++ if (enumconnectionstate1 != enumconnectionstate && !( p_150732_1_ instanceof net.minecraftforge.fml.common.network.internal.FMLProxyPacket)) + { + field_150735_g.debug("Disabled auto read"); + this.field_150746_k.config().setAutoRead(false); +@@ -183,7 +188,7 @@ + + if (this.field_150746_k.eventLoop().inEventLoop()) + { +- if (enumconnectionstate != enumconnectionstate1) ++ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof net.minecraftforge.fml.common.network.internal.FMLProxyPacket)) + { + this.func_150723_a(enumconnectionstate); + } +@@ -204,7 +209,7 @@ + private static final String __OBFID = "CL_00001243"; + public void run() + { +- if (enumconnectionstate != enumconnectionstate1) ++ if (enumconnectionstate != enumconnectionstate1 && !( p_150732_1_ instanceof net.minecraftforge.fml.common.network.internal.FMLProxyPacket)) + { + NetworkManager.this.func_150723_a(enumconnectionstate); + } +@@ -409,6 +414,11 @@ + this.channelRead0(p_channelRead0_1_, (Packet)p_channelRead0_2_); + } + ++ public Channel channel() ++ { ++ return field_150746_k; ++ } ++ + static class InboundHandlerTuplePacketListener + { + private final Packet field_150774_a; 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..9452bc6bc --- /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 +@@ -110,7 +110,7 @@ + ; + } + +- 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.field_151272_f.add(networkmanager); + p_initChannel_1_.pipeline().addLast("packet_handler", networkmanager); diff --git a/patches/minecraft/net/minecraft/network/ServerStatusResponse.java.patch b/patches/minecraft/net/minecraft/network/ServerStatusResponse.java.patch index 53b1ae1e0..2407b09f5 100644 --- a/patches/minecraft/net/minecraft/network/ServerStatusResponse.java.patch +++ b/patches/minecraft/net/minecraft/network/ServerStatusResponse.java.patch @@ -30,7 +30,23 @@ } public String func_151316_d() -@@ -270,4 +274,43 @@ +@@ -233,6 +237,7 @@ + serverstatusresponse.func_151320_a(JsonUtils.func_151200_h(jsonobject, "favicon")); + } + ++ net.minecraftforge.fml.client.FMLClientHandler.instance().captureAdditionalData(serverstatusresponse, jsonobject); + return serverstatusresponse; + } + +@@ -260,6 +265,7 @@ + jsonobject.addProperty("favicon", p_serialize_1_.func_151316_d()); + } + ++ net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.enhanceStatusQuery(jsonobject); + return jsonobject; + } + +@@ -268,4 +274,43 @@ return this.serialize((ServerStatusResponse)p_serialize_1_, p_serialize_2_, p_serialize_3_); } } diff --git a/patches/minecraft/net/minecraft/network/handshake/client/C00Handshake.java.patch b/patches/minecraft/net/minecraft/network/handshake/client/C00Handshake.java.patch new file mode 100644 index 000000000..2e990c3ad --- /dev/null +++ b/patches/minecraft/net/minecraft/network/handshake/client/C00Handshake.java.patch @@ -0,0 +1,48 @@ +--- ../src-base/minecraft/net/minecraft/network/handshake/client/C00Handshake.java ++++ ../src-work/minecraft/net/minecraft/network/handshake/client/C00Handshake.java +@@ -16,6 +16,7 @@ + private int field_149599_c; + private EnumConnectionState field_149597_d; + private static final String __OBFID = "CL_00001372"; ++ private boolean hasFMLMarker = false; + + public C00Handshake() {} + +@@ -28,18 +29,26 @@ + this.field_149597_d = p_i45266_4_; + } + ++ public C00Handshake(int protocol, String address, int port, EnumConnectionState state, boolean addFMLMarker) ++ { ++ this(protocol, address, port, state); ++ this.hasFMLMarker = addFMLMarker; ++ } ++ + public void func_148837_a(PacketBuffer p_148837_1_) throws IOException + { + this.field_149600_a = p_148837_1_.func_150792_a(); + this.field_149598_b = p_148837_1_.func_150789_c(255); + this.field_149599_c = p_148837_1_.readUnsignedShort(); + this.field_149597_d = EnumConnectionState.func_150760_a(p_148837_1_.func_150792_a()); ++ this.hasFMLMarker = this.field_149598_b.contains("\0FML\0"); ++ this.field_149598_b = this.field_149598_b.split("\0")[0]; + } + + public void func_148840_b(PacketBuffer p_148840_1_) throws IOException + { + p_148840_1_.func_150787_b(this.field_149600_a); +- p_148840_1_.func_180714_a(this.field_149598_b); ++ p_148840_1_.func_180714_a(this.field_149598_b + "\0FML\0"); + p_148840_1_.writeShort(this.field_149599_c); + p_148840_1_.func_150787_b(this.field_149597_d.func_150759_c()); + } +@@ -63,4 +72,9 @@ + { + this.func_180770_a((INetHandlerHandshakeServer)p_148833_1_); + } ++ ++ public boolean hasFMLMarker() ++ { ++ return this.hasFMLMarker; ++ } + } diff --git a/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch b/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch new file mode 100644 index 000000000..1345ee125 --- /dev/null +++ b/patches/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java.patch @@ -0,0 +1,14 @@ +--- ../src-base/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java ++++ ../src-work/minecraft/net/minecraft/network/play/client/C17PacketCustomPayload.java +@@ -47,7 +47,11 @@ + public void func_148840_b(PacketBuffer p_148840_1_) throws IOException + { + p_148840_1_.func_180714_a(this.field_149562_a); ++ synchronized(this.field_149561_c) { //This may be access multiple times, from multiple threads, lets be safe. ++ this.field_149561_c.markReaderIndex(); + p_148840_1_.writeBytes((ByteBuf)this.field_149561_c); ++ this.field_149561_c.resetReaderIndex(); ++ } + } + + public void func_148833_a(INetHandlerPlayServer p_148833_1_) diff --git a/patches/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java.patch b/patches/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java.patch new file mode 100644 index 000000000..ae048b6b5 --- /dev/null +++ b/patches/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java.patch @@ -0,0 +1,14 @@ +--- ../src-base/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java ++++ ../src-work/minecraft/net/minecraft/network/play/server/S3FPacketCustomPayload.java +@@ -46,7 +46,11 @@ + public void func_148840_b(PacketBuffer p_148840_1_) throws IOException + { + p_148840_1_.func_180714_a(this.field_149172_a); ++ synchronized(this.field_149171_b) { //This may be access multiple times, from multiple threads, lets be safe. ++ this.field_149171_b.markReaderIndex(); + p_148840_1_.writeBytes((ByteBuf)this.field_149171_b); ++ this.field_149171_b.resetReaderIndex(); ++ } + } + + public void func_180734_a(INetHandlerPlayClient p_180734_1_) diff --git a/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch b/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch new file mode 100644 index 000000000..0e3324da7 --- /dev/null +++ b/patches/minecraft/net/minecraft/realms/RealmsConnect.java.patch @@ -0,0 +1,19 @@ +--- ../src-base/minecraft/net/minecraft/realms/RealmsConnect.java ++++ ../src-work/minecraft/net/minecraft/realms/RealmsConnect.java +@@ -39,6 +39,7 @@ + + try + { ++ net.minecraftforge.fml.client.FMLClientHandler.instance().connectToRealmsServer(p_connect_1_, p_connect_2_); + inetaddress = InetAddress.getByName(p_connect_1_); + + if (RealmsConnect.this.aborted) +@@ -60,7 +61,7 @@ + return; + } + +- RealmsConnect.this.connection.func_179290_a(new C00Handshake(47, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN)); ++ RealmsConnect.this.connection.func_179290_a(new C00Handshake(47, p_connect_1_, p_connect_2_, EnumConnectionState.LOGIN, true)); + + if (RealmsConnect.this.aborted) + { diff --git a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch index 3399921b6..f75083699 100644 --- a/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch +++ b/patches/minecraft/net/minecraft/server/MinecraftServer.java.patch @@ -101,6 +101,15 @@ int i = aworldserver.length; for (int j = 0; j < i; ++j) +@@ -399,7 +373,7 @@ + + public void func_71260_j() + { +- if (!this.field_71290_O) ++ if (!this.field_71290_O && net.minecraftforge.fml.common.Loader.instance().hasReachedState(net.minecraftforge.fml.common.LoaderState.SERVER_STARTED) && !field_71316_v) // make sure the save is valid and we don't save twice + { + field_147145_h.info("Stopping server"); + @@ -423,8 +397,15 @@ for (int i = 0; i < this.field_71305_c.length; ++i) { @@ -117,7 +126,61 @@ } if (this.field_71307_n.func_76468_d()) -@@ -630,6 +611,7 @@ +@@ -456,6 +437,7 @@ + { + if (this.func_71197_b()) + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStarted(); + this.field_175591_ab = func_130071_aq(); + long i = 0L; + this.field_147147_p.func_151315_a(new ChatComponentText(this.field_71286_C)); +@@ -500,12 +482,20 @@ + Thread.sleep(Math.max(1L, 50L - i)); + this.field_71296_Q = true; + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStopping(); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions + } + else + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions + this.func_71228_a((CrashReport)null); + } + } ++ catch (net.minecraftforge.fml.common.StartupQuery.AbortedException e) ++ { ++ // ignore silently ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions ++ } + catch (Throwable throwable1) + { + field_147145_h.error("Encountered an unexpected exception", throwable1); +@@ -531,6 +521,7 @@ + field_147145_h.error("We were unable to save this crash report to disk."); + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().expectServerStopped(); // has to come before finalTick to avoid race conditions + this.func_71228_a(crashreport); + } + finally +@@ -546,6 +537,8 @@ + } + finally + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStopped(); ++ this.field_71316_v = true; + this.func_71240_o(); + } + } +@@ -591,6 +584,7 @@ + public void func_71217_p() + { + long i = System.nanoTime(); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPreServerTick(); + ++this.field_71315_w; + + if (this.field_71295_T) +@@ -617,6 +611,7 @@ Collections.shuffle(Arrays.asList(agameprofile)); this.field_147147_p.func_151318_b().func_151330_a(agameprofile); @@ -125,7 +188,24 @@ } if (this.field_71315_w % 900 == 0) -@@ -681,15 +663,18 @@ +@@ -644,6 +639,7 @@ + + this.field_71304_b.func_76319_b(); + this.field_71304_b.func_76319_b(); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostServerTick(); + } + + public void func_71190_q() +@@ -657,7 +653,7 @@ + { + try + { +- ((FutureTask)this.field_175589_i.poll()).run(); ++ net.minecraftforge.fml.common.FMLCommonHandler.callFuture(((FutureTask)this.field_175589_i.poll())); + } + catch (Throwable throwable2) + { +@@ -667,15 +663,18 @@ } this.field_71304_b.func_76318_c("levels"); @@ -147,7 +227,23 @@ this.field_71304_b.func_76320_a(worldserver.func_72912_H().func_76065_j()); if (this.field_71315_w % 20 == 0) -@@ -733,9 +718,11 @@ +@@ -686,6 +685,7 @@ + } + + this.field_71304_b.func_76320_a("tick"); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPreWorldTick(worldserver); + CrashReport crashreport; + + try +@@ -710,6 +710,7 @@ + throw new ReportedException(crashreport); + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onPostWorldTick(worldserver); + this.field_71304_b.func_76319_b(); + this.field_71304_b.func_76320_a("tracker"); + worldserver.func_73039_n().func_72788_a(); +@@ -717,9 +718,11 @@ this.field_71304_b.func_76319_b(); } @@ -160,7 +256,15 @@ this.field_71304_b.func_76318_c("connection"); this.func_147137_ag().func_151269_c(); this.field_71304_b.func_76318_c("players"); -@@ -774,7 +761,13 @@ +@@ -741,6 +744,7 @@ + + public void func_71256_s() + { ++ net.minecraftforge.fml.common.StartupQuery.reset(); + this.field_175590_aa = new Thread(this, "Server thread"); + this.field_175590_aa.start(); + } +@@ -757,7 +761,13 @@ public WorldServer func_71218_a(int p_71218_1_) { @@ -175,7 +279,16 @@ } public String func_71249_w() -@@ -1025,6 +1018,7 @@ +@@ -787,7 +797,7 @@ + + public String getServerModName() + { +- return "vanilla"; ++ return net.minecraftforge.fml.common.FMLCommonHandler.instance().getModName(); + } + + public CrashReport func_71230_b(CrashReport p_71230_1_) +@@ -1008,6 +1018,7 @@ if (worldserver != null) { @@ -183,7 +296,7 @@ worldserver.func_73041_k(); } } -@@ -1607,7 +1601,6 @@ +@@ -1590,7 +1601,6 @@ this.field_71319_s = p_71208_1_; } diff --git a/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch b/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch new file mode 100644 index 000000000..1af800c17 --- /dev/null +++ b/patches/minecraft/net/minecraft/server/dedicated/DedicatedServer.java.patch @@ -0,0 +1,44 @@ +--- ../src-base/minecraft/net/minecraft/server/dedicated/DedicatedServer.java ++++ ../src-work/minecraft/net/minecraft/server/dedicated/DedicatedServer.java +@@ -49,6 +49,7 @@ + private boolean field_71338_p; + private WorldSettings.GameType field_71337_q; + private boolean field_71335_s; ++ public static boolean allowPlayerLogins = false; + private static final String __OBFID = "CL_00001784"; + + public DedicatedServer(File p_i1508_1_) +@@ -113,6 +114,8 @@ + field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); + } + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onServerStart(this); ++ + field_155771_h.info("Loading properties"); + this.field_71340_o = new PropertyManager(new File("server.properties")); + this.field_154332_n = new ServerEula(new File("eula.txt")); +@@ -204,6 +207,7 @@ + } + else + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().onServerStarted(); + this.func_152361_a(new DedicatedPlayerList(this)); + long j = System.nanoTime(); + +@@ -250,6 +254,7 @@ + this.func_71191_d((this.func_71207_Z() + 8) / 16 * 16); + this.func_71191_d(MathHelper.func_76125_a(this.func_71207_Z(), 64, 256)); + this.field_71340_o.func_73667_a("max-build-height", Integer.valueOf(this.func_71207_Z())); ++ if (!net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerAboutToStart(this)) return false; + field_155771_h.info("Preparing level \"" + this.func_71270_I() + "\""); + this.func_71247_a(this.func_71270_I(), this.func_71270_I(), k, worldtype, s2); + long i1 = System.nanoTime() - j; +@@ -278,7 +283,7 @@ + thread1.start(); + } + +- return true; ++ return net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStarting(this); + } + } + } diff --git a/patches/minecraft/net/minecraft/server/gui/MinecraftServerGui.java.patch b/patches/minecraft/net/minecraft/server/gui/MinecraftServerGui.java.patch new file mode 100644 index 000000000..1caa6d7a0 --- /dev/null +++ b/patches/minecraft/net/minecraft/server/gui/MinecraftServerGui.java.patch @@ -0,0 +1,24 @@ +--- ../src-base/minecraft/net/minecraft/server/gui/MinecraftServerGui.java ++++ ../src-work/minecraft/net/minecraft/server/gui/MinecraftServerGui.java +@@ -79,6 +79,7 @@ + System.exit(0); + } + }); ++ minecraftservergui.latch.countDown(); + } + + public MinecraftServerGui(DedicatedServer p_i2362_1_) +@@ -164,8 +165,13 @@ + return jpanel; + } + ++ private java.util.concurrent.CountDownLatch latch = new java.util.concurrent.CountDownLatch(1); + public void func_164247_a(final JTextArea p_164247_1_, final JScrollPane p_164247_2_, final String p_164247_3_) + { ++ try ++ { ++ latch.await(); ++ } catch (InterruptedException e){} //Prevent logging until after constructor has ended. + if (!SwingUtilities.isEventDispatchThread()) + { + SwingUtilities.invokeLater(new Runnable() diff --git a/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch b/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch index 8ef517737..aeee11c96 100644 --- a/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch +++ b/patches/minecraft/net/minecraft/server/integrated/IntegratedServer.java.patch @@ -66,7 +66,28 @@ { this.func_147139_a(this.field_71349_l.field_71474_y.field_74318_M); } -@@ -233,6 +211,7 @@ +@@ -144,9 +122,10 @@ + this.func_71245_h(true); + field_147148_h.info("Generating keypair"); + this.func_71253_a(CryptManager.func_75891_b()); ++ if (!net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerAboutToStart(this)) return false; + this.func_71247_a(this.func_71270_I(), this.func_71221_J(), this.field_71350_m.func_77160_d(), this.field_71350_m.func_77165_h(), this.field_71350_m.func_82749_j()); + this.func_71205_p(this.func_71214_G() + " - " + this.field_71305_c[0].func_72912_H().func_76065_j()); +- return true; ++ return net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerStarting(this); + } + + public void func_71217_p() +@@ -171,7 +150,7 @@ + { + try + { +- ((FutureTask)this.field_175589_i.poll()).run(); ++ net.minecraftforge.fml.common.FMLCommonHandler.callFuture(((FutureTask)this.field_175589_i.poll())); + } + catch (Throwable throwable) + { +@@ -232,6 +211,7 @@ public EnumDifficulty func_147135_j() { diff --git a/patches/minecraft/net/minecraft/server/management/PlayerProfileCache.java.patch b/patches/minecraft/net/minecraft/server/management/PlayerProfileCache.java.patch new file mode 100644 index 000000000..93c276883 --- /dev/null +++ b/patches/minecraft/net/minecraft/server/management/PlayerProfileCache.java.patch @@ -0,0 +1,50 @@ +--- ../src-base/minecraft/net/minecraft/server/management/PlayerProfileCache.java ++++ ../src-work/minecraft/net/minecraft/server/management/PlayerProfileCache.java +@@ -204,26 +204,12 @@ + { + List list = null; + BufferedReader bufferedreader = null; +- label64: + { + try + { + bufferedreader = Files.newReader(this.field_152665_g, Charsets.UTF_8); + list = (List)this.field_152660_b.fromJson(bufferedreader, field_152666_h); +- break label64; +- } +- catch (FileNotFoundException filenotfoundexception) +- { +- ; +- } +- finally +- { +- IOUtils.closeQuietly(bufferedreader); +- } + +- return; +- } +- + if (list != null) + { + this.field_152661_c.clear(); +@@ -242,6 +228,20 @@ + } + } + } ++ } ++ catch (FileNotFoundException filenotfoundexception) ++ { ++ ; ++ } ++ catch (com.google.gson.JsonParseException parsefail) ++ { ++ // No op - the cache can quietly rebuild if it's junk ++ } ++ finally ++ { ++ IOUtils.closeQuietly(bufferedreader); ++ } ++ } + } + + public void func_152658_c() diff --git a/patches/minecraft/net/minecraft/server/management/ServerConfigurationManager.java.patch b/patches/minecraft/net/minecraft/server/management/ServerConfigurationManager.java.patch index 48c49dd6b..25704f821 100644 --- a/patches/minecraft/net/minecraft/server/management/ServerConfigurationManager.java.patch +++ b/patches/minecraft/net/minecraft/server/management/ServerConfigurationManager.java.patch @@ -1,5 +1,14 @@ --- ../src-base/minecraft/net/minecraft/server/management/ServerConfigurationManager.java +++ ../src-work/minecraft/net/minecraft/server/management/ServerConfigurationManager.java +@@ -103,7 +103,7 @@ + this.field_72405_c = 8; + } + +- public void func_72355_a(NetworkManager p_72355_1_, EntityPlayerMP p_72355_2_) ++ public void func_72355_a(NetworkManager p_72355_1_, EntityPlayerMP p_72355_2_, NetHandlerPlayServer nethandlerplayserver) + { + GameProfile gameprofile = p_72355_2_.func_146103_bH(); + PlayerProfileCache playerprofilecache = this.field_72400_f.func_152358_ax(); @@ -112,6 +112,17 @@ playerprofilecache.func_152649_a(gameprofile); NBTTagCompound nbttagcompound = this.func_72380_a(p_72355_2_); @@ -18,7 +27,24 @@ p_72355_2_.field_71134_c.func_73080_a((WorldServer)p_72355_2_.field_70170_p); String s1 = "local"; -@@ -273,6 +284,7 @@ +@@ -125,7 +136,7 @@ + WorldInfo worldinfo = worldserver.func_72912_H(); + BlockPos blockpos = worldserver.func_175694_M(); + this.func_72381_a(p_72355_2_, (EntityPlayerMP)null, worldserver); +- NetHandlerPlayServer nethandlerplayserver = new NetHandlerPlayServer(this.field_72400_f, p_72355_1_, p_72355_2_); ++ p_72355_2_.field_71135_a = nethandlerplayserver; + nethandlerplayserver.func_147359_a(new S01PacketJoinGame(p_72355_2_.func_145782_y(), p_72355_2_.field_71134_c.func_73081_b(), worldinfo.func_76093_s(), worldserver.field_73011_w.func_177502_q(), worldserver.func_175659_aa(), this.func_72352_l(), worldinfo.func_76067_t(), worldserver.func_82736_K().func_82766_b("reducedDebugInfo"))); + nethandlerplayserver.func_147359_a(new S3FPacketCustomPayload("MC|Brand", (new PacketBuffer(Unpooled.buffer())).func_180714_a(this.func_72365_p().getServerModName()))); + nethandlerplayserver.func_147359_a(new S41PacketServerDifficulty(worldinfo.func_176130_y(), worldinfo.func_176123_z())); +@@ -168,6 +179,7 @@ + + p_72355_2_.func_71116_b(); + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerLoggedIn(p_72355_2_); + if (nbttagcompound != null && nbttagcompound.func_150297_b("Riding", 10)) + { + Entity entity = EntityList.func_75615_a(nbttagcompound.func_74775_l("Riding"), worldserver); +@@ -272,6 +284,7 @@ p_72380_1_.func_70020_e(nbttagcompound); nbttagcompound1 = nbttagcompound; field_148546_d.debug("loading single player"); @@ -26,7 +52,31 @@ } else { -@@ -314,6 +326,7 @@ +@@ -281,8 +294,23 @@ + return nbttagcompound1; + } + ++ public NBTTagCompound getPlayerNBT(EntityPlayerMP player) ++ { ++ // Hacky method to allow loading the NBT for a player prior to login ++ NBTTagCompound nbttagcompound = this.field_72400_f.field_71305_c[0].func_72912_H().func_76072_h(); ++ if (player.func_70005_c_().equals(this.field_72400_f.func_71214_G()) && nbttagcompound != null) ++ { ++ return nbttagcompound; ++ } ++ else ++ { ++ return ((net.minecraft.world.storage.SaveHandler)this.field_72412_k).getPlayerNBT(player); ++ } ++ } + protected void func_72391_b(EntityPlayerMP p_72391_1_) + { ++ if (p_72391_1_.field_71135_a == null) return; ++ + this.field_72412_k.func_75753_a(p_72391_1_); + StatisticsFile statisticsfile = (StatisticsFile)this.field_148547_k.get(p_72391_1_.func_110124_au()); + +@@ -298,6 +326,7 @@ this.field_177454_f.put(p_72377_1_.func_110124_au(), p_72377_1_); this.func_148540_a(new S38PacketPlayerListItem(S38PacketPlayerListItem.Action.ADD_PLAYER, new EntityPlayerMP[] {p_72377_1_})); WorldServer worldserver = this.field_72400_f.func_71218_a(p_72377_1_.field_71093_bK); @@ -34,7 +84,15 @@ worldserver.func_72838_d(p_72377_1_); this.func_72375_a(p_72377_1_, (WorldServer)null); -@@ -347,6 +360,7 @@ +@@ -315,6 +344,7 @@ + + public void func_72367_e(EntityPlayerMP p_72367_1_) + { ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerLoggedOut(p_72367_1_); + p_72367_1_.func_71029_a(StatList.field_75947_j); + this.func_72391_b(p_72367_1_); + WorldServer worldserver = p_72367_1_.func_71121_q(); +@@ -330,6 +360,7 @@ this.field_72404_b.remove(p_72367_1_); this.field_177454_f.remove(p_72367_1_.func_110124_au()); this.field_148547_k.remove(p_72367_1_.func_110124_au()); @@ -42,7 +100,7 @@ this.func_148540_a(new S38PacketPlayerListItem(S38PacketPlayerListItem.Action.REMOVE_PLAYER, new EntityPlayerMP[] {p_72367_1_})); } -@@ -428,13 +442,23 @@ +@@ -411,13 +442,23 @@ public EntityPlayerMP func_72368_a(EntityPlayerMP p_72368_1_, int p_72368_2_, boolean p_72368_3_) { @@ -68,7 +126,7 @@ p_72368_1_.field_71093_bK = p_72368_2_; Object object; -@@ -450,6 +474,7 @@ +@@ -433,6 +474,7 @@ EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.field_72400_f, this.field_72400_f.func_71218_a(p_72368_1_.field_71093_bK), p_72368_1_.func_146103_bH(), (ItemInWorldManager)object); entityplayermp1.field_71135_a = p_72368_1_.field_71135_a; entityplayermp1.func_71049_a(p_72368_1_, p_72368_3_); @@ -76,7 +134,13 @@ entityplayermp1.func_145769_d(p_72368_1_.func_145782_y()); entityplayermp1.func_174817_o(p_72368_1_); WorldServer worldserver = this.field_72400_f.func_71218_a(p_72368_1_.field_71093_bK); -@@ -496,14 +521,19 @@ +@@ -473,19 +515,25 @@ + this.field_177454_f.put(entityplayermp1.func_110124_au(), entityplayermp1); + entityplayermp1.func_71116_b(); + entityplayermp1.func_70606_j(entityplayermp1.func_110143_aJ()); ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerRespawnEvent(entityplayermp1); + return entityplayermp1; + } public void func_72356_a(EntityPlayerMP p_72356_1_, int p_72356_2_) { @@ -98,7 +162,12 @@ this.func_72375_a(p_72356_1_, worldserver); p_72356_1_.field_71135_a.func_147364_a(p_72356_1_.field_70165_t, p_72356_1_.field_70163_u, p_72356_1_.field_70161_v, p_72356_1_.field_70177_z, p_72356_1_.field_70125_A); p_72356_1_.field_71134_c.func_73080_a(worldserver1); -@@ -521,13 +551,22 @@ +@@ -498,17 +546,27 @@ + PotionEffect potioneffect = (PotionEffect)iterator.next(); + p_72356_1_.field_71135_a.func_147359_a(new S1DPacketEntityEffect(p_72356_1_.func_145782_y(), potioneffect)); + } ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().firePlayerChangedDimensionEvent(p_72356_1_, j, p_72356_2_); + } public void func_82448_a(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_) { @@ -124,7 +193,7 @@ { d0 = MathHelper.func_151237_a(d0 / d2, p_82448_4_.func_175723_af().func_177726_b() + 16.0D, p_82448_4_.func_175723_af().func_177728_d() - 16.0D); d1 = MathHelper.func_151237_a(d1 / d2, p_82448_4_.func_175723_af().func_177736_c() + 16.0D, p_82448_4_.func_175723_af().func_177733_e() - 16.0D); -@@ -538,7 +577,7 @@ +@@ -519,7 +577,7 @@ p_82448_3_.func_72866_a(p_82448_1_, false); } } @@ -133,7 +202,7 @@ { d0 = MathHelper.func_151237_a(d0 * d2, p_82448_4_.func_175723_af().func_177726_b() + 16.0D, p_82448_4_.func_175723_af().func_177728_d() - 16.0D); d1 = MathHelper.func_151237_a(d1 * d2, p_82448_4_.func_175723_af().func_177736_c() + 16.0D, p_82448_4_.func_175723_af().func_177733_e() - 16.0D); -@@ -549,7 +588,8 @@ +@@ -530,7 +588,8 @@ p_82448_3_.func_72866_a(p_82448_1_, false); } } @@ -143,7 +212,7 @@ { BlockPos blockpos; -@@ -584,7 +624,7 @@ +@@ -565,7 +624,7 @@ if (p_82448_1_.func_70089_S()) { p_82448_1_.func_70012_b(d0, p_82448_1_.field_70163_u, d1, p_82448_1_.field_70177_z, p_82448_1_.field_70125_A); diff --git a/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch b/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch new file mode 100644 index 000000000..855a224f4 --- /dev/null +++ b/patches/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java ++++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerHandshakeTCP.java +@@ -23,6 +23,8 @@ + + public void func_147383_a(C00Handshake p_147383_1_) + { ++ if (!net.minecraftforge.fml.common.FMLCommonHandler.instance().handleServerHandshake(p_147383_1_, this.field_147386_b)) return; ++ + switch (NetHandlerHandshakeTCP.SwitchEnumConnectionState.field_151291_a[p_147383_1_.func_149594_c().ordinal()]) + { + case 1: diff --git a/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch b/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch new file mode 100644 index 000000000..b77bfc330 --- /dev/null +++ b/patches/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java.patch @@ -0,0 +1,20 @@ +--- ../src-base/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java ++++ ../src-work/minecraft/net/minecraft/server/network/NetHandlerLoginServer.java +@@ -62,7 +62,7 @@ + this.func_147326_c(); + } + +- if (this.field_147336_h++ == 600) ++ if (this.field_147336_h++ == net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.LOGIN_TIMEOUT) + { + this.func_147322_a("Took too long to log in"); + } +@@ -113,7 +113,7 @@ + } + + this.field_147333_a.func_179290_a(new S02PacketLoginSuccess(this.field_147337_i)); +- this.field_147327_f.func_71203_ab().func_72355_a(this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i)); ++ net.minecraftforge.fml.common.network.internal.FMLNetworkHandler.fmlServerHandshake(this.field_147327_f.func_71203_ab(), this.field_147333_a, this.field_147327_f.func_71203_ab().func_148545_a(this.field_147337_i)); + } + } + diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch index b47adc0a8..ec01c7662 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntity.java.patch @@ -16,7 +16,45 @@ } } -@@ -294,4 +296,135 @@ +@@ -89,9 +91,10 @@ + { + TileEntity tileentity = null; + ++ Class oclass = null; + try + { +- Class oclass = (Class)field_145855_i.get(p_145827_0_.func_74779_i("id")); ++ oclass = (Class)field_145855_i.get(p_145827_0_.func_74779_i("id")); + + if (oclass != null) + { +@@ -109,7 +112,17 @@ + } + else + { ++ try ++ { + field_145852_a.warn("Skipping BlockEntity with id " + p_145827_0_.func_74779_i("id")); ++ } ++ catch (Exception ex) ++ { ++ net.minecraftforge.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, ex, ++ "A TileEntity %s(%s) has thrown an exception during loading, its state cannot be restored. Report this to the mod author", ++ p_145827_0_.func_74779_i("id"), oclass.getName()); ++ tileentity = null; ++ } + } + + return tileentity; +@@ -141,7 +154,6 @@ + } + } + +- @SideOnly(Side.CLIENT) + public double func_145835_a(double p_145835_1_, double p_145835_3_, double p_145835_5_) + { + double d3 = (double)this.field_174879_c.func_177958_n() + 0.5D - p_145835_1_; +@@ -284,4 +296,135 @@ func_145826_a(TileEntityFlowerPot.class, "FlowerPot"); func_145826_a(TileEntityBanner.class, "Banner"); } diff --git a/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch b/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch index 712055706..7fd469917 100644 --- a/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch +++ b/patches/minecraft/net/minecraft/tileentity/TileEntityFurnace.java.patch @@ -32,3 +32,20 @@ } if (this.field_145957_n[0].func_77973_b() == Item.func_150898_a(Blocks.field_150360_v) && this.field_145957_n[0].func_77960_j() == 1 && this.field_145957_n[1] != null && this.field_145957_n[1].func_77973_b() == Items.field_151133_ar) +@@ -348,7 +351,15 @@ + } + } + +- return item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD") ? 200 : (item instanceof ItemSword && ((ItemSword)item).func_150932_j().equals("WOOD") ? 200 : (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD") ? 200 : (item == Items.field_151055_y ? 100 : (item == Items.field_151044_h ? 1600 : (item == Items.field_151129_at ? 20000 : (item == Item.func_150898_a(Blocks.field_150345_g) ? 100 : (item == Items.field_151072_bj ? 2400 : 0))))))); ++ if (item instanceof ItemTool && ((ItemTool)item).func_77861_e().equals("WOOD")) return 200; ++ if (item instanceof ItemSword && ((ItemSword)item).func_150932_j().equals("WOOD")) return 200; ++ if (item instanceof ItemHoe && ((ItemHoe)item).func_77842_f().equals("WOOD")) return 200; ++ if (item == Items.field_151055_y) return 100; ++ if (item == Items.field_151044_h) return 1600; ++ if (item == Items.field_151129_at) return 20000; ++ if (item == Item.func_150898_a(Blocks.field_150345_g)) return 100; ++ if (item == Items.field_151072_bj) return 2400; ++ return net.minecraftforge.fml.common.registry.GameRegistry.getFuelValue(p_145952_0_); + } + } + diff --git a/patches/minecraft/net/minecraft/util/MessageSerializer.java.patch b/patches/minecraft/net/minecraft/util/MessageSerializer.java.patch new file mode 100644 index 000000000..7724ff4c7 --- /dev/null +++ b/patches/minecraft/net/minecraft/util/MessageSerializer.java.patch @@ -0,0 +1,11 @@ +--- ../src-base/minecraft/net/minecraft/util/MessageSerializer.java ++++ ../src-work/minecraft/net/minecraft/util/MessageSerializer.java +@@ -49,7 +49,7 @@ + { + if (p_encode_2_ instanceof S0CPacketSpawnPlayer) + { +- p_encode_2_ = p_encode_2_; ++ //p_encode_2_ = p_encode_2_; FML: Kill warning + } + + p_encode_2_.func_148840_b(packetbuffer); diff --git a/patches/minecraft/net/minecraft/util/MouseHelper.java.patch b/patches/minecraft/net/minecraft/util/MouseHelper.java.patch new file mode 100644 index 000000000..55d49a58d --- /dev/null +++ b/patches/minecraft/net/minecraft/util/MouseHelper.java.patch @@ -0,0 +1,10 @@ +--- ../src-base/minecraft/net/minecraft/util/MouseHelper.java ++++ ../src-work/minecraft/net/minecraft/util/MouseHelper.java +@@ -14,6 +14,7 @@ + + public void func_74372_a() + { ++ if (Boolean.parseBoolean(System.getProperty("fml.noGrab","false"))) return; + Mouse.setGrabbed(true); + this.field_74377_a = 0; + this.field_74375_b = 0; diff --git a/patches/minecraft/net/minecraft/util/ResourceLocation.java.patch b/patches/minecraft/net/minecraft/util/ResourceLocation.java.patch new file mode 100644 index 000000000..ba2981731 --- /dev/null +++ b/patches/minecraft/net/minecraft/util/ResourceLocation.java.patch @@ -0,0 +1,26 @@ +--- ../src-base/minecraft/net/minecraft/util/ResourceLocation.java ++++ ../src-work/minecraft/net/minecraft/util/ResourceLocation.java +@@ -1,7 +1,5 @@ + package net.minecraft.util; + +-import net.minecraftforge.fml.relauncher.Side; +-import net.minecraftforge.fml.relauncher.SideOnly; + import org.apache.commons.lang3.Validate; + + public class ResourceLocation +@@ -22,7 +20,6 @@ + this(0, func_177516_a(p_i1293_1_)); + } + +- @SideOnly(Side.CLIENT) + public ResourceLocation(String p_i1292_1_, String p_i1292_2_) + { + this(0, new String[] {p_i1292_1_, p_i1292_2_}); +@@ -51,7 +48,6 @@ + return this.field_110625_b; + } + +- @SideOnly(Side.CLIENT) + public String func_110624_b() + { + return this.field_110626_a; diff --git a/patches/minecraft/net/minecraft/util/StringTranslate.java.patch b/patches/minecraft/net/minecraft/util/StringTranslate.java.patch new file mode 100644 index 000000000..cbdfc628a --- /dev/null +++ b/patches/minecraft/net/minecraft/util/StringTranslate.java.patch @@ -0,0 +1,64 @@ +--- ../src-base/minecraft/net/minecraft/util/StringTranslate.java ++++ ../src-work/minecraft/net/minecraft/util/StringTranslate.java +@@ -18,16 +18,38 @@ + { + private static final Pattern field_111053_a = Pattern.compile("%(\\d+\\$)?[\\d\\.]*[df]"); + private static final Splitter field_135065_b = Splitter.on('=').limit(2); ++ private final Map field_74816_c; + private static StringTranslate field_74817_a = new StringTranslate(); +- private final Map field_74816_c = Maps.newHashMap(); + private long field_150511_e; + private static final String __OBFID = "CL_00001212"; + + public StringTranslate() + { ++ InputStream inputstream = StringTranslate.class.getResourceAsStream("/assets/minecraft/lang/en_US.lang"); ++ field_74816_c = Maps.newHashMap(); ++ inject(this, inputstream); ++ } ++ ++ public static void inject(InputStream inputstream) ++ { ++ inject(field_74817_a, inputstream); ++ } ++ ++ private static void inject(StringTranslate inst, InputStream inputstream) ++ { ++ java.util.HashMap map = parseLangFile(inputstream); ++ inst.field_74816_c.putAll(map); ++ inst.field_150511_e = System.currentTimeMillis(); ++ } ++ ++ public static java.util.HashMap parseLangFile(InputStream inputstream) ++ { ++ java.util.HashMap table = Maps.newHashMap(); + try + { +- InputStream inputstream = StringTranslate.class.getResourceAsStream("/assets/minecraft/lang/en_US.lang"); ++ inputstream = net.minecraftforge.fml.common.FMLCommonHandler.instance().loadLanguage(table, inputstream); ++ if (inputstream == null) return table; ++ + Iterator iterator = IOUtils.readLines(inputstream, Charsets.UTF_8).iterator(); + + while (iterator.hasNext()) +@@ -42,17 +64,17 @@ + { + String s1 = astring[0]; + String s2 = field_111053_a.matcher(astring[1]).replaceAll("%$1s"); +- this.field_74816_c.put(s1, s2); ++ table.put(s1, s2); + } + } + } + +- this.field_150511_e = System.currentTimeMillis(); + } +- catch (IOException ioexception) ++ catch (Exception ioexception) + { + ; + } ++ return table; + } + + static StringTranslate func_74808_a() diff --git a/patches/minecraft/net/minecraft/world/World.java.patch b/patches/minecraft/net/minecraft/world/World.java.patch index 46983783a..d8bf6c7f2 100644 --- a/patches/minecraft/net/minecraft/world/World.java.patch +++ b/patches/minecraft/net/minecraft/world/World.java.patch @@ -417,8 +417,12 @@ } } } -@@ -1628,6 +1767,10 @@ +@@ -1626,15 +1765,19 @@ + } + } +- this.field_147481_N = false; +- if (!this.field_147483_b.isEmpty()) { + for (Object tile : field_147483_b) @@ -428,6 +432,13 @@ this.field_175730_i.removeAll(this.field_147483_b); this.field_147482_g.removeAll(this.field_147483_b); this.field_147483_b.clear(); + } + ++ this.field_147481_N = false; //FML Move below remove to prevent CMEs ++ + this.field_72984_F.func_76318_c("pendingBlockEntities"); + + if (!this.field_147484_a.isEmpty()) @@ -1668,7 +1811,8 @@ public boolean func_175700_a(TileEntity p_175700_1_) @@ -792,7 +803,7 @@ @SideOnly(Side.CLIENT) public double func_72919_O() { -- return this.field_72986_A.func_76067_t().getHorizon(this); +- return this.field_72986_A.func_76067_t() == WorldType.field_77138_c ? 0.0D : 63.0D; + return field_73011_w.getHorizon(); } diff --git a/patches/minecraft/net/minecraft/world/WorldProvider.java.patch b/patches/minecraft/net/minecraft/world/WorldProvider.java.patch index 83c9c82f7..1a809089e 100644 --- a/patches/minecraft/net/minecraft/world/WorldProvider.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldProvider.java.patch @@ -1,6 +1,35 @@ --- ../src-base/minecraft/net/minecraft/world/WorldProvider.java +++ ../src-work/minecraft/net/minecraft/world/WorldProvider.java -@@ -141,13 +141,13 @@ +@@ -52,26 +52,12 @@ + + protected void func_76572_b() + { +- WorldType worldtype = this.field_76579_a.func_72912_H().func_76067_t(); +- +- if (worldtype == WorldType.field_77138_c) +- { +- FlatGeneratorInfo flatgeneratorinfo = FlatGeneratorInfo.func_82651_a(this.field_76579_a.func_72912_H().func_82571_y()); +- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), BiomeGenBase.field_180279_ad), 0.5F); +- } +- else if (worldtype == WorldType.field_180272_g) +- { +- this.field_76578_c = new WorldChunkManagerHell(BiomeGenBase.field_76772_c, 0.0F); +- } +- else +- { +- this.field_76578_c = new WorldChunkManager(this.field_76579_a); +- } ++ this.field_76578_c = field_76577_b.getChunkManager(field_76579_a); + } + + public IChunkProvider func_76555_c() + { +- return (IChunkProvider)(this.field_76577_b == WorldType.field_77138_c ? new ChunkProviderFlat(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : (this.field_76577_b == WorldType.field_180272_g ? new ChunkProviderDebug(this.field_76579_a) : (this.field_76577_b == WorldType.field_180271_f ? new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c) : new ChunkProviderGenerate(this.field_76579_a, this.field_76579_a.func_72905_C(), this.field_76579_a.func_72912_H().func_76089_r(), this.field_82913_c)))); ++ return field_76577_b.getChunkGenerator(field_76579_a, field_82913_c); + } + + public boolean func_76566_a(int p_76566_1_, int p_76566_2_) +@@ -155,13 +141,13 @@ public static WorldProvider func_76570_a(int p_76570_0_) { @@ -16,7 +45,23 @@ } @SideOnly(Side.CLIENT) -@@ -211,4 +211,319 @@ +@@ -177,13 +163,13 @@ + + public int func_76557_i() + { +- return this.field_76577_b == WorldType.field_77138_c ? 4 : 64; ++ return this.field_76577_b.getMinimumSpawnHeight(this.field_76579_a); + } + + @SideOnly(Side.CLIENT) + public double func_76565_k() + { +- return this.field_76577_b == WorldType.field_77138_c ? 1.0D : 0.03125D; ++ return this.field_76577_b.voidFadeMagnitude(); + } + + @SideOnly(Side.CLIENT) +@@ -225,4 +211,319 @@ { return new WorldBorder(); } diff --git a/patches/minecraft/net/minecraft/world/WorldType.java.patch b/patches/minecraft/net/minecraft/world/WorldType.java.patch index 06b28c0f3..26290a812 100644 --- a/patches/minecraft/net/minecraft/world/WorldType.java.patch +++ b/patches/minecraft/net/minecraft/world/WorldType.java.patch @@ -23,10 +23,55 @@ this.field_77133_f = p_i1960_2_; this.field_77134_g = p_i1960_3_; this.field_77140_h = true; -@@ -159,8 +169,99 @@ - return this == field_77138_c ? random.nextInt(4) != 1 : false; +@@ -114,4 +124,144 @@ + this.field_151361_l = true; + return this; } - ++ ++ public net.minecraft.world.biome.WorldChunkManager getChunkManager(World world) ++ { ++ if (this == field_77138_c) ++ { ++ net.minecraft.world.gen.FlatGeneratorInfo flatgeneratorinfo = net.minecraft.world.gen.FlatGeneratorInfo.func_82651_a(world.func_72912_H().func_82571_y()); ++ return new net.minecraft.world.biome.WorldChunkManagerHell(net.minecraft.world.biome.BiomeGenBase.func_180276_a(flatgeneratorinfo.func_82648_a(), net.minecraft.world.biome.BiomeGenBase.field_180279_ad), 0.5F); ++ } ++ else if (this == field_180272_g) ++ { ++ return new net.minecraft.world.biome.WorldChunkManagerHell(net.minecraft.world.biome.BiomeGenBase.field_76772_c, 0.0F); ++ } ++ else ++ { ++ return new net.minecraft.world.biome.WorldChunkManager(world); ++ } ++ } ++ ++ public net.minecraft.world.chunk.IChunkProvider getChunkGenerator(World world, String generatorOptions) ++ { ++ if (this == field_77138_c) return new net.minecraft.world.gen.ChunkProviderFlat(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions); ++ if (this == field_180272_g) return new net.minecraft.world.gen.ChunkProviderDebug(world); ++ return new net.minecraft.world.gen.ChunkProviderGenerate(world, world.func_72905_C(), world.func_72912_H().func_76089_r(), generatorOptions); ++ } ++ ++ public int getMinimumSpawnHeight(World world) ++ { ++ return this == field_77138_c ? 4 : 64; ++ } ++ ++ public double getHorizon(World world) ++ { ++ return this == field_77138_c ? 0.0D : 63.0D; ++ } ++ ++ public double voidFadeMagnitude() ++ { ++ return this == field_77138_c ? 1.0D : 0.03125D; ++ } ++ ++ public boolean handleSlimeSpawnReduction(java.util.Random random, World world) ++ { ++ return this == field_77138_c ? random.nextInt(4) != 1 : false; ++ } ++ + /*=================================================== FORGE START ======================================*/ + private static int getNextID() + { @@ -43,7 +88,7 @@ + return oldLen; + } + - /** ++ /** + * Creates a new world type, the ID is hidden and should not be referenced by modders. + * It will automatically expand the underlying workdType array if there are no IDs left. + * @param name @@ -54,9 +99,9 @@ + } + + /** - * Called when 'Create New World' button is pressed before starting game - */ - public void onGUICreateWorldPress() { } ++ * Called when 'Create New World' button is pressed before starting game ++ */ ++ public void onGUICreateWorldPress() { } + + /** + * Gets the spawn fuzz for players who join the world. diff --git a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch index 73c9f8875..b19f7eb70 100644 --- a/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch +++ b/patches/minecraft/net/minecraft/world/chunk/storage/AnvilChunkLoader.java.patch @@ -129,7 +129,46 @@ this.func_75824_a(p_75816_2_.func_76632_l(), nbttagcompound); } catch (Exception exception) -@@ -404,6 +469,12 @@ +@@ -287,11 +352,20 @@ + Entity entity = (Entity)iterator.next(); + nbttagcompound1 = new NBTTagCompound(); + ++ try ++ { + if (entity.func_70039_c(nbttagcompound1)) + { + p_75820_1_.func_177409_g(true); + nbttaglist1.func_74742_a(nbttagcompound1); + } ++ } ++ catch (Exception e) ++ { ++ net.minecraftforge.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e, ++ "An Entity type %s has thrown an exception trying to write state. It will not persist. Report this to the mod author", ++ entity.getClass().getName()); ++ } + } + } + +@@ -303,8 +377,17 @@ + { + TileEntity tileentity = (TileEntity)iterator.next(); + nbttagcompound1 = new NBTTagCompound(); ++ try ++ { + tileentity.func_145841_b(nbttagcompound1); + nbttaglist2.func_74742_a(nbttagcompound1); ++ } ++ catch (Exception e) ++ { ++ net.minecraftforge.fml.common.FMLLog.log(org.apache.logging.log4j.Level.ERROR, e, ++ "A TileEntity type %s has throw an exception trying to write state. It will not persist. Report this to the mod author", ++ tileentity.getClass().getName()); ++ } + } + + p_75820_3_.func_74782_a("TileEntities", nbttaglist2); +@@ -386,6 +469,12 @@ chunk.func_76616_a(p_75823_2_.func_74770_j("Biomes")); } @@ -142,7 +181,7 @@ NBTTagList nbttaglist1 = p_75823_2_.func_150295_c("Entities", 10); if (nbttaglist1 != null) -@@ -475,8 +546,6 @@ +@@ -457,8 +546,6 @@ } } } diff --git a/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch b/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch index da67b0aed..0d7b3a944 100644 --- a/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/ChunkProviderServer.java.patch @@ -101,7 +101,15 @@ chunk.func_76631_c(); chunk.func_76624_a(this, this, p_73158_1_, p_73158_2_); } -@@ -270,8 +328,13 @@ +@@ -209,6 +267,7 @@ + if (this.field_73246_d != null) + { + this.field_73246_d.func_73153_a(p_73153_1_, p_73153_2_, p_73153_3_); ++ net.minecraftforge.fml.common.registry.GameRegistry.generateWorld(p_73153_2_, p_73153_3_, field_73251_h, field_73246_d, p_73153_1_); + chunk.func_76630_e(); + } + } +@@ -269,8 +328,13 @@ { if (!this.field_73251_h.field_73058_d) { @@ -116,7 +124,7 @@ if (!this.field_73248_b.isEmpty()) { Long olong = (Long)this.field_73248_b.iterator().next(); -@@ -284,6 +347,11 @@ +@@ -283,6 +347,11 @@ this.func_73243_a(chunk); this.field_73244_f.func_76159_d(olong.longValue()); this.field_73245_g.remove(chunk); diff --git a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch index 3015b35b6..ad1533e4e 100644 --- a/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch +++ b/patches/minecraft/net/minecraft/world/gen/structure/StructureVillagePieces.java.patch @@ -12,7 +12,27 @@ public class StructureVillagePieces { -@@ -848,6 +853,11 @@ +@@ -59,6 +64,8 @@ + arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.Field2.class, 3, MathHelper.func_76136_a(p_75084_0_, 2 + p_75084_1_, 4 + p_75084_1_ * 2))); + arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House2.class, 15, MathHelper.func_76136_a(p_75084_0_, 0, 1 + p_75084_1_))); + arraylist.add(new StructureVillagePieces.PieceWeight(StructureVillagePieces.House3.class, 8, MathHelper.func_76136_a(p_75084_0_, 0 + p_75084_1_, 3 + p_75084_1_ * 2))); ++ net.minecraftforge.fml.common.registry.VillagerRegistry.addExtraVillageComponents(arraylist, p_75084_0_, p_75084_1_); ++ + Iterator iterator = arraylist.iterator(); + + while (iterator.hasNext()) +@@ -132,6 +139,10 @@ + { + object = StructureVillagePieces.House3.func_175849_a(p_176065_0_, p_176065_2_, p_176065_3_, p_176065_4_, p_176065_5_, p_176065_6_, p_176065_7_, p_176065_8_); + } ++ else ++ { ++ object = net.minecraftforge.fml.common.registry.VillagerRegistry.getVillageComponent(p_176065_1_, p_176065_0_ , p_176065_2_, p_176065_3_, p_176065_4_, p_176065_5_, p_176065_6_, p_176065_7_, p_176065_8_); ++ } + + return (StructureVillagePieces.Village)object; + } +@@ -842,6 +853,11 @@ public House2() {} @@ -24,7 +44,7 @@ public House2(StructureVillagePieces.Start p_i45563_1_, int p_i45563_2_, Random p_i45563_3_, StructureBoundingBox p_i45563_4_, EnumFacing p_i45563_5_) { super(p_i45563_1_, p_i45563_2_); -@@ -926,7 +936,7 @@ +@@ -920,7 +936,7 @@ if (!this.field_74917_c && p_74875_3_.func_175898_b(new BlockPos(this.func_74865_a(5, 5), this.func_74862_a(1), this.func_74873_b(5, 5)))) { this.field_74917_c = true; @@ -33,7 +53,7 @@ } int i; -@@ -1428,6 +1438,7 @@ +@@ -1422,6 +1438,7 @@ public List field_74932_i = Lists.newArrayList(); public List field_74930_j = Lists.newArrayList(); private static final String __OBFID = "CL_00000527"; @@ -41,7 +61,7 @@ public Start() {} -@@ -1439,6 +1450,7 @@ +@@ -1433,6 +1450,7 @@ this.field_74928_c = p_i2104_7_; BiomeGenBase biomegenbase = p_i2104_1_.func_180300_a(new BlockPos(p_i2104_4_, 0, p_i2104_5_), BiomeGenBase.field_180279_ad); this.field_74927_b = biomegenbase == BiomeGenBase.field_76769_d || biomegenbase == BiomeGenBase.field_76786_s; @@ -49,7 +69,7 @@ this.func_175846_a(this.field_74927_b); } -@@ -1546,6 +1558,7 @@ +@@ -1540,6 +1558,7 @@ private int field_74896_a; private boolean field_143014_b; private static final String __OBFID = "CL_00000531"; @@ -57,7 +77,7 @@ public Village() {} -@@ -1556,6 +1569,7 @@ +@@ -1550,6 +1569,7 @@ if (p_i2107_1_ != null) { this.field_143014_b = p_i2107_1_.field_74927_b; @@ -65,7 +85,7 @@ } } -@@ -1679,6 +1693,9 @@ +@@ -1673,6 +1693,9 @@ protected IBlockState func_175847_a(IBlockState p_175847_1_) { diff --git a/patches/minecraft/net/minecraft/world/storage/MapData.java.patch b/patches/minecraft/net/minecraft/world/storage/MapData.java.patch index 5b5711080..60cc5db82 100644 --- a/patches/minecraft/net/minecraft/world/storage/MapData.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/MapData.java.patch @@ -1,6 +1,43 @@ --- ../src-base/minecraft/net/minecraft/world/storage/MapData.java +++ ../src-work/minecraft/net/minecraft/world/storage/MapData.java -@@ -176,7 +176,7 @@ +@@ -22,7 +22,7 @@ + { + public int field_76201_a; + public int field_76199_b; +- public byte field_76200_c; ++ public int field_76200_c; //FML byte -> int + public byte field_76197_d; + public byte[] field_76198_e = new byte[16384]; + public List field_76196_g = Lists.newArrayList(); +@@ -46,7 +46,17 @@ + + public void func_76184_a(NBTTagCompound p_76184_1_) + { +- this.field_76200_c = p_76184_1_.func_74771_c("dimension"); ++ net.minecraft.nbt.NBTBase dimension = p_76184_1_.func_74781_a("dimension"); ++ ++ if (dimension instanceof net.minecraft.nbt.NBTTagByte) ++ { ++ this.field_76200_c = ((net.minecraft.nbt.NBTTagByte)dimension).func_150290_f(); ++ } ++ else ++ { ++ this.field_76200_c = ((net.minecraft.nbt.NBTTagInt)dimension).func_150287_d(); ++ } ++ + this.field_76201_a = p_76184_1_.func_74762_e("xCenter"); + this.field_76199_b = p_76184_1_.func_74762_e("zCenter"); + this.field_76197_d = p_76184_1_.func_74771_c("scale"); +@@ -87,7 +97,7 @@ + + public void func_76187_b(NBTTagCompound p_76187_1_) + { +- p_76187_1_.func_74774_a("dimension", this.field_76200_c); ++ p_76187_1_.func_74768_a("dimension", this.field_76200_c); + p_76187_1_.func_74768_a("xCenter", this.field_76201_a); + p_76187_1_.func_74768_a("zCenter", this.field_76199_b); + p_76187_1_.func_74774_a("scale", this.field_76197_d); +@@ -166,7 +176,7 @@ p_82567_8_ += p_82567_8_ < 0.0D ? -8.0D : 8.0D; b2 = (byte)((int)(p_82567_8_ * 16.0D / 360.0D)); diff --git a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch index b4ccff587..f5341e4cd 100644 --- a/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch +++ b/patches/minecraft/net/minecraft/world/storage/SaveHandler.java.patch @@ -1,6 +1,70 @@ --- ../src-base/minecraft/net/minecraft/world/storage/SaveHandler.java +++ ../src-work/minecraft/net/minecraft/world/storage/SaveHandler.java -@@ -251,6 +251,7 @@ +@@ -107,20 +107,29 @@ + NBTTagCompound nbttagcompound; + NBTTagCompound nbttagcompound1; + ++ WorldInfo worldInfo = null; ++ + if (file1.exists()) + { + try + { + nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1)); + nbttagcompound1 = nbttagcompound.func_74775_l("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.field_75770_b, "level.dat_old"); + + if (file1.exists()) +@@ -129,7 +138,13 @@ + { + nbttagcompound = CompressedStreamTools.func_74796_a(new FileInputStream(file1)); + nbttagcompound1 = nbttagcompound.func_74775_l("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) + { +@@ -146,6 +161,8 @@ + NBTTagCompound nbttagcompound2 = new NBTTagCompound(); + nbttagcompound2.func_74782_a("Data", nbttagcompound1); + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75755_1_, nbttagcompound2); ++ + try + { + File file1 = new File(this.field_75770_b, "level.dat_new"); +@@ -184,6 +201,8 @@ + NBTTagCompound nbttagcompound1 = new NBTTagCompound(); + nbttagcompound1.func_74782_a("Data", nbttagcompound); + ++ net.minecraftforge.fml.common.FMLCommonHandler.instance().handleWorldDataSave(this, p_75761_1_, nbttagcompound1); ++ + try + { + File file1 = new File(this.field_75770_b, "level.dat_new"); +@@ -232,6 +251,7 @@ } file1.renameTo(file2); @@ -8,7 +72,7 @@ } catch (Exception exception) { -@@ -281,6 +282,7 @@ +@@ -262,6 +282,7 @@ p_75752_1_.func_70020_e(nbttagcompound); } @@ -16,3 +80,26 @@ return nbttagcompound; } +@@ -301,4 +322,22 @@ + { + return this.field_75767_f; + } ++ ++ public NBTTagCompound getPlayerNBT(net.minecraft.entity.player.EntityPlayerMP player) ++ { ++ try ++ { ++ File file1 = new File(this.field_75771_c, player.func_110124_au().toString() + ".dat"); ++ ++ if (file1.exists() && file1.isFile()) ++ { ++ return CompressedStreamTools.func_74796_a(new FileInputStream(file1)); ++ } ++ } ++ catch (Exception exception) ++ { ++ field_151478_a.warn("Failed to load player data for " + player.func_70005_c_()); ++ } ++ return null; ++ } + } diff --git a/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch b/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch new file mode 100644 index 000000000..b1d007002 --- /dev/null +++ b/patches/minecraft/net/minecraft/world/storage/WorldInfo.java.patch @@ -0,0 +1,35 @@ +--- ../src-base/minecraft/net/minecraft/world/storage/WorldInfo.java ++++ ../src-work/minecraft/net/minecraft/world/storage/WorldInfo.java +@@ -52,6 +52,7 @@ + private int field_176155_J; + private GameRules field_82577_x; + private static final String __OBFID = "CL_00000587"; ++ private java.util.Map additionalProperties; + + protected WorldInfo() + { +@@ -803,4 +804,24 @@ + } + }); + } ++ ++ /** ++ * Allow access to additional mod specific world based properties ++ * Used by FML to store mod list associated with a world, and maybe an id map ++ * Used by Forge to store the dimensions available to a world ++ * @param additionalProperties ++ */ ++ public void setAdditionalProperties(java.util.Map additionalProperties) ++ { ++ // one time set for this ++ if (this.additionalProperties == null) ++ { ++ this.additionalProperties = additionalProperties; ++ } ++ } ++ ++ public net.minecraft.nbt.NBTBase getAdditionalProperty(String additionalProperty) ++ { ++ return this.additionalProperties!=null? this.additionalProperties.get(additionalProperty) : null; ++ } + } diff --git a/patches/minecraft/net/minecraftforge/fml/relauncher/Side.java.patch b/patches/minecraft/net/minecraftforge/fml/relauncher/Side.java.patch new file mode 100644 index 000000000..5c4dc688c --- /dev/null +++ b/patches/minecraft/net/minecraftforge/fml/relauncher/Side.java.patch @@ -0,0 +1,47 @@ +--- ../src-base/minecraft/net/minecraftforge/fml/relauncher/Side.java ++++ ../src-work/minecraft/net/minecraftforge/fml/relauncher/Side.java +@@ -1,15 +1,41 @@ ++/* ++ * Forge Mod Loader ++ * Copyright (c) 2012-2013 cpw. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the GNU Lesser Public License v2.1 ++ * which accompanies this distribution, and is available at ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * ++ * Contributors: ++ * cpw - implementation ++ */ ++ + package net.minecraftforge.fml.relauncher; + +-public enum Side +-{ ++public enum Side { ++ ++ /** ++ * The client side. Specifically, an environment where rendering capability exists. ++ * Usually in the game client. ++ */ + CLIENT, ++ /** ++ * The server side. Specifically, an environment where NO rendering capability exists. ++ * Usually on the dedicated server. ++ */ + SERVER; + ++ /** ++ * @return If this is the server environment ++ */ + public boolean isServer() + { +- return !this.isClient(); ++ return !isClient(); + } + ++ /** ++ * @return if this is the Client environment ++ */ + public boolean isClient() + { + return this == CLIENT; diff --git a/patches/minecraft/net/minecraftforge/fml/relauncher/SideOnly.java.patch b/patches/minecraft/net/minecraftforge/fml/relauncher/SideOnly.java.patch new file mode 100644 index 000000000..8e9339011 --- /dev/null +++ b/patches/minecraft/net/minecraftforge/fml/relauncher/SideOnly.java.patch @@ -0,0 +1,46 @@ +--- ../src-base/minecraft/net/minecraftforge/fml/relauncher/SideOnly.java ++++ ../src-work/minecraft/net/minecraftforge/fml/relauncher/SideOnly.java +@@ -1,3 +1,15 @@ ++/* ++ * Forge Mod Loader ++ * Copyright (c) 2012-2013 cpw. ++ * All rights reserved. This program and the accompanying materials ++ * are made available under the terms of the GNU Lesser Public License v2.1 ++ * which accompanies this distribution, and is available at ++ * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html ++ * ++ * Contributors: ++ * cpw - implementation ++ */ ++ + package net.minecraftforge.fml.relauncher; + + import java.lang.annotation.ElementType; +@@ -5,9 +17,25 @@ + import java.lang.annotation.RetentionPolicy; + import java.lang.annotation.Target; + ++import net.minecraftforge.fml.common.SidedProxy; ++ ++ ++/** ++ * Marks the associated element as being only available on a certain {@link Side}. This is ++ * generally meant for internal Forge and FML use only and should only be used on mod classes ++ * when other more common mechanisms, such as using a {@link SidedProxy} fail to work. ++ * ++ * Note, this will only apply to the direct element marked. This code: ++ * @SideOnly public MyField field = new MyField(); will not work, as the initializer ++ * is a separate piece of code to the actual field declaration, and will not be able to find ++ * it's field on the wrong side. ++ * ++ * @author cpw ++ * ++ */ + @Retention(RetentionPolicy.RUNTIME) +-@Target( {ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR}) ++@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR}) + public @interface SideOnly + { +- Side value(); ++ public Side value(); + } diff --git a/fml/src/main/java/net/minecraftforge/fml/client/CustomModLoadingErrorDisplayException.java b/src/main/java/net/minecraftforge/fml/client/CustomModLoadingErrorDisplayException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/CustomModLoadingErrorDisplayException.java rename to src/main/java/net/minecraftforge/fml/client/CustomModLoadingErrorDisplayException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/ExtendedServerListData.java b/src/main/java/net/minecraftforge/fml/client/ExtendedServerListData.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/ExtendedServerListData.java rename to src/main/java/net/minecraftforge/fml/client/ExtendedServerListData.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java b/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java rename to src/main/java/net/minecraftforge/fml/client/FMLClientHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/FMLConfigGuiFactory.java b/src/main/java/net/minecraftforge/fml/client/FMLConfigGuiFactory.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/FMLConfigGuiFactory.java rename to src/main/java/net/minecraftforge/fml/client/FMLConfigGuiFactory.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/FMLFileResourcePack.java b/src/main/java/net/minecraftforge/fml/client/FMLFileResourcePack.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/FMLFileResourcePack.java rename to src/main/java/net/minecraftforge/fml/client/FMLFileResourcePack.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/FMLFolderResourcePack.java b/src/main/java/net/minecraftforge/fml/client/FMLFolderResourcePack.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/FMLFolderResourcePack.java rename to src/main/java/net/minecraftforge/fml/client/FMLFolderResourcePack.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiAccessDenied.java b/src/main/java/net/minecraftforge/fml/client/GuiAccessDenied.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiAccessDenied.java rename to src/main/java/net/minecraftforge/fml/client/GuiAccessDenied.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiBackupFailed.java b/src/main/java/net/minecraftforge/fml/client/GuiBackupFailed.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiBackupFailed.java rename to src/main/java/net/minecraftforge/fml/client/GuiBackupFailed.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiConfirmation.java b/src/main/java/net/minecraftforge/fml/client/GuiConfirmation.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiConfirmation.java rename to src/main/java/net/minecraftforge/fml/client/GuiConfirmation.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiCustomModLoadingErrorScreen.java b/src/main/java/net/minecraftforge/fml/client/GuiCustomModLoadingErrorScreen.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiCustomModLoadingErrorScreen.java rename to src/main/java/net/minecraftforge/fml/client/GuiCustomModLoadingErrorScreen.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiDupesFound.java b/src/main/java/net/minecraftforge/fml/client/GuiDupesFound.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiDupesFound.java rename to src/main/java/net/minecraftforge/fml/client/GuiDupesFound.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiIngameModOptions.java b/src/main/java/net/minecraftforge/fml/client/GuiIngameModOptions.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiIngameModOptions.java rename to src/main/java/net/minecraftforge/fml/client/GuiIngameModOptions.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiModList.java b/src/main/java/net/minecraftforge/fml/client/GuiModList.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiModList.java rename to src/main/java/net/minecraftforge/fml/client/GuiModList.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiModOptionList.java b/src/main/java/net/minecraftforge/fml/client/GuiModOptionList.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiModOptionList.java rename to src/main/java/net/minecraftforge/fml/client/GuiModOptionList.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiModsMissing.java b/src/main/java/net/minecraftforge/fml/client/GuiModsMissing.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiModsMissing.java rename to src/main/java/net/minecraftforge/fml/client/GuiModsMissing.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiModsMissingForServer.java b/src/main/java/net/minecraftforge/fml/client/GuiModsMissingForServer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiModsMissingForServer.java rename to src/main/java/net/minecraftforge/fml/client/GuiModsMissingForServer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiNotification.java b/src/main/java/net/minecraftforge/fml/client/GuiNotification.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiNotification.java rename to src/main/java/net/minecraftforge/fml/client/GuiNotification.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiOldSaveLoadConfirm.java b/src/main/java/net/minecraftforge/fml/client/GuiOldSaveLoadConfirm.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiOldSaveLoadConfirm.java rename to src/main/java/net/minecraftforge/fml/client/GuiOldSaveLoadConfirm.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java b/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java rename to src/main/java/net/minecraftforge/fml/client/GuiScrollingList.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiSlotModList.java b/src/main/java/net/minecraftforge/fml/client/GuiSlotModList.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiSlotModList.java rename to src/main/java/net/minecraftforge/fml/client/GuiSlotModList.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiSortingProblem.java b/src/main/java/net/minecraftforge/fml/client/GuiSortingProblem.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiSortingProblem.java rename to src/main/java/net/minecraftforge/fml/client/GuiSortingProblem.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/GuiWrongMinecraft.java b/src/main/java/net/minecraftforge/fml/client/GuiWrongMinecraft.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/GuiWrongMinecraft.java rename to src/main/java/net/minecraftforge/fml/client/GuiWrongMinecraft.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/IModGuiFactory.java b/src/main/java/net/minecraftforge/fml/client/IModGuiFactory.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/IModGuiFactory.java rename to src/main/java/net/minecraftforge/fml/client/IModGuiFactory.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/SplashProgress.java b/src/main/java/net/minecraftforge/fml/client/SplashProgress.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/SplashProgress.java rename to src/main/java/net/minecraftforge/fml/client/SplashProgress.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/ConfigGuiType.java b/src/main/java/net/minecraftforge/fml/client/config/ConfigGuiType.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/ConfigGuiType.java rename to src/main/java/net/minecraftforge/fml/client/config/ConfigGuiType.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/DummyConfigElement.java b/src/main/java/net/minecraftforge/fml/client/config/DummyConfigElement.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/DummyConfigElement.java rename to src/main/java/net/minecraftforge/fml/client/config/DummyConfigElement.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java b/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiButtonExt.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java b/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiCheckBox.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java b/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiConfig.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java b/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiConfigEntries.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiEditArray.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java b/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiEditArrayEntries.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiMessageDialog.java b/src/main/java/net/minecraftforge/fml/client/config/GuiMessageDialog.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiMessageDialog.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiMessageDialog.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiSelectString.java b/src/main/java/net/minecraftforge/fml/client/config/GuiSelectString.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiSelectString.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiSelectString.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiSelectStringEntries.java b/src/main/java/net/minecraftforge/fml/client/config/GuiSelectStringEntries.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiSelectStringEntries.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiSelectStringEntries.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiSlider.java b/src/main/java/net/minecraftforge/fml/client/config/GuiSlider.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiSlider.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiSlider.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java b/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiUnicodeGlyphButton.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java b/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java rename to src/main/java/net/minecraftforge/fml/client/config/GuiUtils.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/HoverChecker.java b/src/main/java/net/minecraftforge/fml/client/config/HoverChecker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/HoverChecker.java rename to src/main/java/net/minecraftforge/fml/client/config/HoverChecker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/config/IConfigElement.java b/src/main/java/net/minecraftforge/fml/client/config/IConfigElement.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/config/IConfigElement.java rename to src/main/java/net/minecraftforge/fml/client/config/IConfigElement.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/event/ConfigChangedEvent.java b/src/main/java/net/minecraftforge/fml/client/event/ConfigChangedEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/event/ConfigChangedEvent.java rename to src/main/java/net/minecraftforge/fml/client/event/ConfigChangedEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/registry/ClientRegistry.java b/src/main/java/net/minecraftforge/fml/client/registry/ClientRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/registry/ClientRegistry.java rename to src/main/java/net/minecraftforge/fml/client/registry/ClientRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/client/registry/RenderingRegistry.java b/src/main/java/net/minecraftforge/fml/client/registry/RenderingRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/client/registry/RenderingRegistry.java rename to src/main/java/net/minecraftforge/fml/client/registry/RenderingRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/API.java b/src/main/java/net/minecraftforge/fml/common/API.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/API.java rename to src/main/java/net/minecraftforge/fml/common/API.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/BukkitPluginRef.java b/src/main/java/net/minecraftforge/fml/common/BukkitPluginRef.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/BukkitPluginRef.java rename to src/main/java/net/minecraftforge/fml/common/BukkitPluginRef.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/BukkitProxy.java b/src/main/java/net/minecraftforge/fml/common/BukkitProxy.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/BukkitProxy.java rename to src/main/java/net/minecraftforge/fml/common/BukkitProxy.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/CertificateHelper.java b/src/main/java/net/minecraftforge/fml/common/CertificateHelper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/CertificateHelper.java rename to src/main/java/net/minecraftforge/fml/common/CertificateHelper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ClassNameUtils.java b/src/main/java/net/minecraftforge/fml/common/ClassNameUtils.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ClassNameUtils.java rename to src/main/java/net/minecraftforge/fml/common/ClassNameUtils.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/DummyModContainer.java b/src/main/java/net/minecraftforge/fml/common/DummyModContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/DummyModContainer.java rename to src/main/java/net/minecraftforge/fml/common/DummyModContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/DuplicateModsFoundException.java b/src/main/java/net/minecraftforge/fml/common/DuplicateModsFoundException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/DuplicateModsFoundException.java rename to src/main/java/net/minecraftforge/fml/common/DuplicateModsFoundException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/EnhancedRuntimeException.java b/src/main/java/net/minecraftforge/fml/common/EnhancedRuntimeException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/EnhancedRuntimeException.java rename to src/main/java/net/minecraftforge/fml/common/EnhancedRuntimeException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java b/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java rename to src/main/java/net/minecraftforge/fml/common/FMLCommonHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/FMLContainer.java b/src/main/java/net/minecraftforge/fml/common/FMLContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/FMLContainer.java rename to src/main/java/net/minecraftforge/fml/common/FMLContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/FMLContainerHolder.java b/src/main/java/net/minecraftforge/fml/common/FMLContainerHolder.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/FMLContainerHolder.java rename to src/main/java/net/minecraftforge/fml/common/FMLContainerHolder.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/FMLLog.java b/src/main/java/net/minecraftforge/fml/common/FMLLog.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/FMLLog.java rename to src/main/java/net/minecraftforge/fml/common/FMLLog.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java rename to src/main/java/net/minecraftforge/fml/common/FMLModContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/IASMHook.java b/src/main/java/net/minecraftforge/fml/common/IASMHook.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/IASMHook.java rename to src/main/java/net/minecraftforge/fml/common/IASMHook.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java b/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ICrashCallable.java rename to src/main/java/net/minecraftforge/fml/common/ICrashCallable.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/IFMLHandledException.java b/src/main/java/net/minecraftforge/fml/common/IFMLHandledException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/IFMLHandledException.java rename to src/main/java/net/minecraftforge/fml/common/IFMLHandledException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/IFMLSidedHandler.java b/src/main/java/net/minecraftforge/fml/common/IFMLSidedHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/IFMLSidedHandler.java rename to src/main/java/net/minecraftforge/fml/common/IFMLSidedHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/IFuelHandler.java b/src/main/java/net/minecraftforge/fml/common/IFuelHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/IFuelHandler.java rename to src/main/java/net/minecraftforge/fml/common/IFuelHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ILanguageAdapter.java b/src/main/java/net/minecraftforge/fml/common/ILanguageAdapter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ILanguageAdapter.java rename to src/main/java/net/minecraftforge/fml/common/ILanguageAdapter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java b/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java rename to src/main/java/net/minecraftforge/fml/common/IWorldGenerator.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/InjectedModContainer.java b/src/main/java/net/minecraftforge/fml/common/InjectedModContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/InjectedModContainer.java rename to src/main/java/net/minecraftforge/fml/common/InjectedModContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/LoadController.java b/src/main/java/net/minecraftforge/fml/common/LoadController.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/LoadController.java rename to src/main/java/net/minecraftforge/fml/common/LoadController.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/Loader.java b/src/main/java/net/minecraftforge/fml/common/Loader.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/Loader.java rename to src/main/java/net/minecraftforge/fml/common/Loader.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/LoaderException.java b/src/main/java/net/minecraftforge/fml/common/LoaderException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/LoaderException.java rename to src/main/java/net/minecraftforge/fml/common/LoaderException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/LoaderState.java b/src/main/java/net/minecraftforge/fml/common/LoaderState.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/LoaderState.java rename to src/main/java/net/minecraftforge/fml/common/LoaderState.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/MCPDummyContainer.java b/src/main/java/net/minecraftforge/fml/common/MCPDummyContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/MCPDummyContainer.java rename to src/main/java/net/minecraftforge/fml/common/MCPDummyContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/MetadataCollection.java b/src/main/java/net/minecraftforge/fml/common/MetadataCollection.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/MetadataCollection.java rename to src/main/java/net/minecraftforge/fml/common/MetadataCollection.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/MinecraftDummyContainer.java b/src/main/java/net/minecraftforge/fml/common/MinecraftDummyContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/MinecraftDummyContainer.java rename to src/main/java/net/minecraftforge/fml/common/MinecraftDummyContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/MissingModsException.java b/src/main/java/net/minecraftforge/fml/common/MissingModsException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/MissingModsException.java rename to src/main/java/net/minecraftforge/fml/common/MissingModsException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/Mod.java b/src/main/java/net/minecraftforge/fml/common/Mod.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/Mod.java rename to src/main/java/net/minecraftforge/fml/common/Mod.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ModAPIManager.java b/src/main/java/net/minecraftforge/fml/common/ModAPIManager.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ModAPIManager.java rename to src/main/java/net/minecraftforge/fml/common/ModAPIManager.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java b/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ModClassLoader.java rename to src/main/java/net/minecraftforge/fml/common/ModClassLoader.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ModContainer.java b/src/main/java/net/minecraftforge/fml/common/ModContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ModContainer.java rename to src/main/java/net/minecraftforge/fml/common/ModContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ModContainerFactory.java b/src/main/java/net/minecraftforge/fml/common/ModContainerFactory.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ModContainerFactory.java rename to src/main/java/net/minecraftforge/fml/common/ModContainerFactory.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ModMetadata.java b/src/main/java/net/minecraftforge/fml/common/ModMetadata.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ModMetadata.java rename to src/main/java/net/minecraftforge/fml/common/ModMetadata.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ObfuscationReflectionHelper.java b/src/main/java/net/minecraftforge/fml/common/ObfuscationReflectionHelper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ObfuscationReflectionHelper.java rename to src/main/java/net/minecraftforge/fml/common/ObfuscationReflectionHelper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/Optional.java b/src/main/java/net/minecraftforge/fml/common/Optional.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/Optional.java rename to src/main/java/net/minecraftforge/fml/common/Optional.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ProgressManager.java b/src/main/java/net/minecraftforge/fml/common/ProgressManager.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ProgressManager.java rename to src/main/java/net/minecraftforge/fml/common/ProgressManager.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ProxyInjector.java b/src/main/java/net/minecraftforge/fml/common/ProxyInjector.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ProxyInjector.java rename to src/main/java/net/minecraftforge/fml/common/ProxyInjector.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/SaveInspectionHandler.java b/src/main/java/net/minecraftforge/fml/common/SaveInspectionHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/SaveInspectionHandler.java rename to src/main/java/net/minecraftforge/fml/common/SaveInspectionHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/SidedProxy.java b/src/main/java/net/minecraftforge/fml/common/SidedProxy.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/SidedProxy.java rename to src/main/java/net/minecraftforge/fml/common/SidedProxy.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/StartupQuery.java b/src/main/java/net/minecraftforge/fml/common/StartupQuery.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/StartupQuery.java rename to src/main/java/net/minecraftforge/fml/common/StartupQuery.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/TracingPrintStream.java b/src/main/java/net/minecraftforge/fml/common/TracingPrintStream.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/TracingPrintStream.java rename to src/main/java/net/minecraftforge/fml/common/TracingPrintStream.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/WorldAccessContainer.java b/src/main/java/net/minecraftforge/fml/common/WorldAccessContainer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/WorldAccessContainer.java rename to src/main/java/net/minecraftforge/fml/common/WorldAccessContainer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/WrongMinecraftVersionException.java b/src/main/java/net/minecraftforge/fml/common/WrongMinecraftVersionException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/WrongMinecraftVersionException.java rename to src/main/java/net/minecraftforge/fml/common/WrongMinecraftVersionException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/ZipperUtil.java b/src/main/java/net/minecraftforge/fml/common/ZipperUtil.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/ZipperUtil.java rename to src/main/java/net/minecraftforge/fml/common/ZipperUtil.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java b/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java rename to src/main/java/net/minecraftforge/fml/common/asm/ASMTransformerWrapper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java b/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java rename to src/main/java/net/minecraftforge/fml/common/asm/FMLSanityChecker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/ReobfuscationMarker.java b/src/main/java/net/minecraftforge/fml/common/asm/ReobfuscationMarker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/ReobfuscationMarker.java rename to src/main/java/net/minecraftforge/fml/common/asm/ReobfuscationMarker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/AccessTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/AccessTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/AccessTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/AccessTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/BlamingTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/BlamingTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/BlamingTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/BlamingTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/DeobfuscationTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/DeobfuscationTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/DeobfuscationTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/DeobfuscationTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriberTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriberTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriberTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriberTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriptionTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriptionTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriptionTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/EventSubscriptionTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ItemStackTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/ItemStackTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ItemStackTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/ItemStackTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/MarkerTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/MarkerTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/MarkerTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/MarkerTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAPITransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAccessTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAccessTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAccessTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/ModAccessTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/PatchingTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/PatchingTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/PatchingTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/PatchingTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/SideTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/SideTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/SideTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/SideTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/TerminalTransformer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/FMLRemappingAdapter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/LZMAInputSupplier.java b/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/LZMAInputSupplier.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/LZMAInputSupplier.java rename to src/main/java/net/minecraftforge/fml/common/asm/transformers/deobf/LZMAInputSupplier.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/ASMDataTable.java b/src/main/java/net/minecraftforge/fml/common/discovery/ASMDataTable.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/ASMDataTable.java rename to src/main/java/net/minecraftforge/fml/common/discovery/ASMDataTable.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/ContainerType.java b/src/main/java/net/minecraftforge/fml/common/discovery/ContainerType.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/ContainerType.java rename to src/main/java/net/minecraftforge/fml/common/discovery/ContainerType.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java b/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java rename to src/main/java/net/minecraftforge/fml/common/discovery/DirectoryDiscoverer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/ITypeDiscoverer.java b/src/main/java/net/minecraftforge/fml/common/discovery/ITypeDiscoverer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/ITypeDiscoverer.java rename to src/main/java/net/minecraftforge/fml/common/discovery/ITypeDiscoverer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/JarDiscoverer.java b/src/main/java/net/minecraftforge/fml/common/discovery/JarDiscoverer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/JarDiscoverer.java rename to src/main/java/net/minecraftforge/fml/common/discovery/JarDiscoverer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/ModCandidate.java b/src/main/java/net/minecraftforge/fml/common/discovery/ModCandidate.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/ModCandidate.java rename to src/main/java/net/minecraftforge/fml/common/discovery/ModCandidate.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/ModDiscoverer.java b/src/main/java/net/minecraftforge/fml/common/discovery/ModDiscoverer.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/ModDiscoverer.java rename to src/main/java/net/minecraftforge/fml/common/discovery/ModDiscoverer.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ASMModParser.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotation.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotation.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotation.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotation.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotationVisitor.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotationVisitor.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotationVisitor.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ModAnnotationVisitor.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ModClassVisitor.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModFieldVisitor.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModFieldVisitor.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModFieldVisitor.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ModFieldVisitor.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModMethodVisitor.java b/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModMethodVisitor.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/discovery/asm/ModMethodVisitor.java rename to src/main/java/net/minecraftforge/fml/common/discovery/asm/ModMethodVisitor.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLConstructionEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLConstructionEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLConstructionEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLConstructionEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLFingerprintViolationEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLFingerprintViolationEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLFingerprintViolationEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLFingerprintViolationEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLInitializationEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLInitializationEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLInitializationEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLInitializationEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLInterModComms.java b/src/main/java/net/minecraftforge/fml/common/event/FMLInterModComms.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLInterModComms.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLInterModComms.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLLoadCompleteEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLLoadCompleteEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLLoadCompleteEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLLoadCompleteEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLLoadEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLLoadEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLLoadEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLLoadEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLMissingMappingsEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLMissingMappingsEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLMissingMappingsEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLMissingMappingsEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLModDisabledEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLModDisabledEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLModDisabledEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLModDisabledEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLModIdMappingEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLModIdMappingEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLModIdMappingEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLModIdMappingEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLPostInitializationEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLPostInitializationEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLPostInitializationEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLPostInitializationEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLPreInitializationEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLPreInitializationEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLPreInitializationEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLPreInitializationEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerAboutToStartEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLServerAboutToStartEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerAboutToStartEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLServerAboutToStartEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartedEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartedEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartedEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLServerStartedEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartingEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartingEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStartingEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLServerStartingEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppedEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppedEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppedEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppedEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppingEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppingEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppingEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLServerStoppingEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/event/FMLStateEvent.java b/src/main/java/net/minecraftforge/fml/common/event/FMLStateEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/event/FMLStateEvent.java rename to src/main/java/net/minecraftforge/fml/common/event/FMLStateEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/ASMEventHandler.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/ASMEventHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/ASMEventHandler.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/ASMEventHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/Cancelable.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/Cancelable.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/Cancelable.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/Cancelable.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/Event.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/Event.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/Event.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/Event.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/EventBus.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/EventBus.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/EventBus.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/EventBus.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/EventPriority.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/EventPriority.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/EventPriority.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/EventPriority.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventExceptionHandler.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventExceptionHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventExceptionHandler.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/IEventExceptionHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventListener.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventListener.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/IEventListener.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/IEventListener.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/ListenerList.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/ListenerList.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/ListenerList.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/ListenerList.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/eventhandler/SubscribeEvent.java b/src/main/java/net/minecraftforge/fml/common/eventhandler/SubscribeEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/eventhandler/SubscribeEvent.java rename to src/main/java/net/minecraftforge/fml/common/eventhandler/SubscribeEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/ArtifactVersionNameFunction.java b/src/main/java/net/minecraftforge/fml/common/functions/ArtifactVersionNameFunction.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/ArtifactVersionNameFunction.java rename to src/main/java/net/minecraftforge/fml/common/functions/ArtifactVersionNameFunction.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java b/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java rename to src/main/java/net/minecraftforge/fml/common/functions/CollectionWrapperFactory.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/GenericIterableFactory.java b/src/main/java/net/minecraftforge/fml/common/functions/GenericIterableFactory.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/GenericIterableFactory.java rename to src/main/java/net/minecraftforge/fml/common/functions/GenericIterableFactory.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/ModIdFunction.java b/src/main/java/net/minecraftforge/fml/common/functions/ModIdFunction.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/ModIdFunction.java rename to src/main/java/net/minecraftforge/fml/common/functions/ModIdFunction.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/ModNameFunction.java b/src/main/java/net/minecraftforge/fml/common/functions/ModNameFunction.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/ModNameFunction.java rename to src/main/java/net/minecraftforge/fml/common/functions/ModNameFunction.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/functions/TypeCastFunction.java b/src/main/java/net/minecraftforge/fml/common/functions/TypeCastFunction.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/functions/TypeCastFunction.java rename to src/main/java/net/minecraftforge/fml/common/functions/TypeCastFunction.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/gameevent/InputEvent.java b/src/main/java/net/minecraftforge/fml/common/gameevent/InputEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/gameevent/InputEvent.java rename to src/main/java/net/minecraftforge/fml/common/gameevent/InputEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java b/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java rename to src/main/java/net/minecraftforge/fml/common/gameevent/PlayerEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/gameevent/TickEvent.java b/src/main/java/net/minecraftforge/fml/common/gameevent/TickEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/gameevent/TickEvent.java rename to src/main/java/net/minecraftforge/fml/common/gameevent/TickEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLDeobfTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/FMLDeobfTweaker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLDeobfTweaker.java rename to src/main/java/net/minecraftforge/fml/common/launcher/FMLDeobfTweaker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLInjectionAndSortingTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/FMLInjectionAndSortingTweaker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLInjectionAndSortingTweaker.java rename to src/main/java/net/minecraftforge/fml/common/launcher/FMLInjectionAndSortingTweaker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java rename to src/main/java/net/minecraftforge/fml/common/launcher/FMLServerTweaker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/FMLTweaker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/FMLTweaker.java rename to src/main/java/net/minecraftforge/fml/common/launcher/FMLTweaker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/TerminalTweaker.java b/src/main/java/net/minecraftforge/fml/common/launcher/TerminalTweaker.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/TerminalTweaker.java rename to src/main/java/net/minecraftforge/fml/common/launcher/TerminalTweaker.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/launcher/Yggdrasil.java b/src/main/java/net/minecraftforge/fml/common/launcher/Yggdrasil.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/launcher/Yggdrasil.java rename to src/main/java/net/minecraftforge/fml/common/launcher/Yggdrasil.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/ByteBufUtils.java b/src/main/java/net/minecraftforge/fml/common/network/ByteBufUtils.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/ByteBufUtils.java rename to src/main/java/net/minecraftforge/fml/common/network/ByteBufUtils.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLEmbeddedChannel.java b/src/main/java/net/minecraftforge/fml/common/network/FMLEmbeddedChannel.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLEmbeddedChannel.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLEmbeddedChannel.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLEventChannel.java b/src/main/java/net/minecraftforge/fml/common/network/FMLEventChannel.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLEventChannel.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLEventChannel.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLIndexedMessageToMessageCodec.java b/src/main/java/net/minecraftforge/fml/common/network/FMLIndexedMessageToMessageCodec.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLIndexedMessageToMessageCodec.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLIndexedMessageToMessageCodec.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkEvent.java b/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkEvent.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkEvent.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLNetworkEvent.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkException.java b/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLNetworkException.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLNetworkException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java b/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/FMLOutboundHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/IGuiHandler.java b/src/main/java/net/minecraftforge/fml/common/network/IGuiHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/IGuiHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/IGuiHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/NetworkCheckHandler.java b/src/main/java/net/minecraftforge/fml/common/network/NetworkCheckHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/NetworkCheckHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/NetworkCheckHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/NetworkEventFiringHandler.java b/src/main/java/net/minecraftforge/fml/common/network/NetworkEventFiringHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/NetworkEventFiringHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/NetworkEventFiringHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/NetworkHandshakeEstablished.java b/src/main/java/net/minecraftforge/fml/common/network/NetworkHandshakeEstablished.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/NetworkHandshakeEstablished.java rename to src/main/java/net/minecraftforge/fml/common/network/NetworkHandshakeEstablished.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/NetworkRegistry.java b/src/main/java/net/minecraftforge/fml/common/network/NetworkRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/NetworkRegistry.java rename to src/main/java/net/minecraftforge/fml/common/network/NetworkRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java b/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/PacketLoggingHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/ChannelRegistrationHandler.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/ChannelRegistrationHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/ChannelRegistrationHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/ChannelRegistrationHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeClientState.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeClientState.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeClientState.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeClientState.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeCodec.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeCodec.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeCodec.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeCodec.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeMessage.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeMessage.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeMessage.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeMessage.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeServerState.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeServerState.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeServerState.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/FMLHandshakeServerState.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeInjector.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeInjector.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeInjector.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeInjector.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeMessageHandler.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeMessageHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeMessageHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/HandshakeMessageHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/IHandshakeState.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/IHandshakeState.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/IHandshakeState.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/IHandshakeState.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java b/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java rename to src/main/java/net/minecraftforge/fml/common/network/handshake/NetworkDispatcher.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java b/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/EntitySpawnHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLMessage.java b/src/main/java/net/minecraftforge/fml/common/network/internal/FMLMessage.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLMessage.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/FMLMessage.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLNetworkHandler.java b/src/main/java/net/minecraftforge/fml/common/network/internal/FMLNetworkHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLNetworkHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/FMLNetworkHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLProxyPacket.java b/src/main/java/net/minecraftforge/fml/common/network/internal/FMLProxyPacket.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLProxyPacket.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/FMLProxyPacket.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLRuntimeCodec.java b/src/main/java/net/minecraftforge/fml/common/network/internal/FMLRuntimeCodec.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/FMLRuntimeCodec.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/FMLRuntimeCodec.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/HandshakeCompletionHandler.java b/src/main/java/net/minecraftforge/fml/common/network/internal/HandshakeCompletionHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/HandshakeCompletionHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/HandshakeCompletionHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/NetworkModHolder.java b/src/main/java/net/minecraftforge/fml/common/network/internal/NetworkModHolder.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/NetworkModHolder.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/NetworkModHolder.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/internal/OpenGuiHandler.java b/src/main/java/net/minecraftforge/fml/common/network/internal/OpenGuiHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/internal/OpenGuiHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/internal/OpenGuiHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessage.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessage.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessage.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessage.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/IMessageHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/MessageContext.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/MessageContext.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/MessageContext.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/MessageContext.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleChannelHandlerWrapper.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleChannelHandlerWrapper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleChannelHandlerWrapper.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleChannelHandlerWrapper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleIndexedCodec.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleIndexedCodec.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleIndexedCodec.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleIndexedCodec.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleNetworkWrapper.java b/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleNetworkWrapper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleNetworkWrapper.java rename to src/main/java/net/minecraftforge/fml/common/network/simpleimpl/SimpleNetworkWrapper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatch.java b/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatch.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatch.java rename to src/main/java/net/minecraftforge/fml/common/patcher/ClassPatch.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatchManager.java b/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatchManager.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/patcher/ClassPatchManager.java rename to src/main/java/net/minecraftforge/fml/common/patcher/ClassPatchManager.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/patcher/GenDiffSet.java b/src/main/java/net/minecraftforge/fml/common/patcher/GenDiffSet.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/patcher/GenDiffSet.java rename to src/main/java/net/minecraftforge/fml/common/patcher/GenDiffSet.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/EntityRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/ExistingSubstitutionException.java b/src/main/java/net/minecraftforge/fml/common/registry/ExistingSubstitutionException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/ExistingSubstitutionException.java rename to src/main/java/net/minecraftforge/fml/common/registry/ExistingSubstitutionException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/FMLControlledNamespacedRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/GameData.java b/src/main/java/net/minecraftforge/fml/common/registry/GameData.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/GameData.java rename to src/main/java/net/minecraftforge/fml/common/registry/GameData.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/GameRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/IEntityAdditionalSpawnData.java b/src/main/java/net/minecraftforge/fml/common/registry/IEntityAdditionalSpawnData.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/IEntityAdditionalSpawnData.java rename to src/main/java/net/minecraftforge/fml/common/registry/IEntityAdditionalSpawnData.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/IThrowableEntity.java b/src/main/java/net/minecraftforge/fml/common/registry/IThrowableEntity.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/IThrowableEntity.java rename to src/main/java/net/minecraftforge/fml/common/registry/IThrowableEntity.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/IncompatibleSubstitutionException.java b/src/main/java/net/minecraftforge/fml/common/registry/IncompatibleSubstitutionException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/IncompatibleSubstitutionException.java rename to src/main/java/net/minecraftforge/fml/common/registry/IncompatibleSubstitutionException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderInjector.java b/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderInjector.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderInjector.java rename to src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderInjector.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java b/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java rename to src/main/java/net/minecraftforge/fml/common/registry/ItemStackHolderRef.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/LanguageRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java rename to src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRef.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/ObjectHolderRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/RegistryDelegate.java b/src/main/java/net/minecraftforge/fml/common/registry/RegistryDelegate.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/RegistryDelegate.java rename to src/main/java/net/minecraftforge/fml/common/registry/RegistryDelegate.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java b/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java rename to src/main/java/net/minecraftforge/fml/common/registry/VillagerRegistry.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/toposort/ModSorter.java b/src/main/java/net/minecraftforge/fml/common/toposort/ModSorter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/toposort/ModSorter.java rename to src/main/java/net/minecraftforge/fml/common/toposort/ModSorter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/toposort/ModSortingException.java b/src/main/java/net/minecraftforge/fml/common/toposort/ModSortingException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/toposort/ModSortingException.java rename to src/main/java/net/minecraftforge/fml/common/toposort/ModSortingException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/toposort/TopologicalSort.java b/src/main/java/net/minecraftforge/fml/common/toposort/TopologicalSort.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/toposort/TopologicalSort.java rename to src/main/java/net/minecraftforge/fml/common/toposort/TopologicalSort.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/ArtifactVersion.java b/src/main/java/net/minecraftforge/fml/common/versioning/ArtifactVersion.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/ArtifactVersion.java rename to src/main/java/net/minecraftforge/fml/common/versioning/ArtifactVersion.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/ComparableVersion.java b/src/main/java/net/minecraftforge/fml/common/versioning/ComparableVersion.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/ComparableVersion.java rename to src/main/java/net/minecraftforge/fml/common/versioning/ComparableVersion.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/DefaultArtifactVersion.java b/src/main/java/net/minecraftforge/fml/common/versioning/DefaultArtifactVersion.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/DefaultArtifactVersion.java rename to src/main/java/net/minecraftforge/fml/common/versioning/DefaultArtifactVersion.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/InvalidVersionSpecificationException.java b/src/main/java/net/minecraftforge/fml/common/versioning/InvalidVersionSpecificationException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/InvalidVersionSpecificationException.java rename to src/main/java/net/minecraftforge/fml/common/versioning/InvalidVersionSpecificationException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/Restriction.java b/src/main/java/net/minecraftforge/fml/common/versioning/Restriction.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/Restriction.java rename to src/main/java/net/minecraftforge/fml/common/versioning/Restriction.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/VersionParser.java b/src/main/java/net/minecraftforge/fml/common/versioning/VersionParser.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/VersionParser.java rename to src/main/java/net/minecraftforge/fml/common/versioning/VersionParser.java diff --git a/fml/src/main/java/net/minecraftforge/fml/common/versioning/VersionRange.java b/src/main/java/net/minecraftforge/fml/common/versioning/VersionRange.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/common/versioning/VersionRange.java rename to src/main/java/net/minecraftforge/fml/common/versioning/VersionRange.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java b/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java rename to src/main/java/net/minecraftforge/fml/relauncher/CoreModManager.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FMLCorePlugin.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLCorePlugin.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FMLCorePlugin.java rename to src/main/java/net/minecraftforge/fml/relauncher/FMLCorePlugin.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FMLInjectionData.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLInjectionData.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FMLInjectionData.java rename to src/main/java/net/minecraftforge/fml/relauncher/FMLInjectionData.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java rename to src/main/java/net/minecraftforge/fml/relauncher/FMLLaunchHandler.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FMLRelaunchLog.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLRelaunchLog.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FMLRelaunchLog.java rename to src/main/java/net/minecraftforge/fml/relauncher/FMLRelaunchLog.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FMLSecurityManager.java b/src/main/java/net/minecraftforge/fml/relauncher/FMLSecurityManager.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FMLSecurityManager.java rename to src/main/java/net/minecraftforge/fml/relauncher/FMLSecurityManager.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/FileListHelper.java b/src/main/java/net/minecraftforge/fml/relauncher/FileListHelper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/FileListHelper.java rename to src/main/java/net/minecraftforge/fml/relauncher/FileListHelper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/IFMLCallHook.java b/src/main/java/net/minecraftforge/fml/relauncher/IFMLCallHook.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/IFMLCallHook.java rename to src/main/java/net/minecraftforge/fml/relauncher/IFMLCallHook.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/IFMLLoadingPlugin.java b/src/main/java/net/minecraftforge/fml/relauncher/IFMLLoadingPlugin.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/IFMLLoadingPlugin.java rename to src/main/java/net/minecraftforge/fml/relauncher/IFMLLoadingPlugin.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/ModListHelper.java b/src/main/java/net/minecraftforge/fml/relauncher/ModListHelper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/ModListHelper.java rename to src/main/java/net/minecraftforge/fml/relauncher/ModListHelper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/ReflectionHelper.java b/src/main/java/net/minecraftforge/fml/relauncher/ReflectionHelper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/ReflectionHelper.java rename to src/main/java/net/minecraftforge/fml/relauncher/ReflectionHelper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/ServerLaunchWrapper.java b/src/main/java/net/minecraftforge/fml/relauncher/ServerLaunchWrapper.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/ServerLaunchWrapper.java rename to src/main/java/net/minecraftforge/fml/relauncher/ServerLaunchWrapper.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/Side.java b/src/main/java/net/minecraftforge/fml/relauncher/Side.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/Side.java rename to src/main/java/net/minecraftforge/fml/relauncher/Side.java diff --git a/fml/src/main/java/net/minecraftforge/fml/relauncher/SideOnly.java b/src/main/java/net/minecraftforge/fml/relauncher/SideOnly.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/relauncher/SideOnly.java rename to src/main/java/net/minecraftforge/fml/relauncher/SideOnly.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/ByteBufferSeekableSource.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/ByteBufferSeekableSource.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/ByteBufferSeekableSource.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/ByteBufferSeekableSource.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Checksum.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Checksum.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Checksum.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Checksum.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DebugDiffWriter.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DebugDiffWriter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DebugDiffWriter.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DebugDiffWriter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Delta.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Delta.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Delta.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/Delta.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DiffWriter.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DiffWriter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DiffWriter.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/DiffWriter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffPatcher.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffPatcher.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffPatcher.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffPatcher.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffWriter.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffWriter.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffWriter.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/GDiffWriter.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/PatchException.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/PatchException.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/PatchException.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/PatchException.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/RandomAccessFileSeekableSource.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/RandomAccessFileSeekableSource.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/RandomAccessFileSeekableSource.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/RandomAccessFileSeekableSource.java diff --git a/fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/SeekableSource.java b/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/SeekableSource.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/SeekableSource.java rename to src/main/java/net/minecraftforge/fml/repackage/com/nothome/delta/SeekableSource.java diff --git a/fml/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java b/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java similarity index 100% rename from fml/src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java rename to src/main/java/net/minecraftforge/fml/server/FMLServerHandler.java diff --git a/fml/src/main/resources/assets/fml/lang/en_US.lang b/src/main/resources/assets/fml/lang/en_US.lang similarity index 100% rename from fml/src/main/resources/assets/fml/lang/en_US.lang rename to src/main/resources/assets/fml/lang/en_US.lang diff --git a/fml/src/main/resources/assets/fml/textures/gui/forge.gif b/src/main/resources/assets/fml/textures/gui/forge.gif similarity index 100% rename from fml/src/main/resources/assets/fml/textures/gui/forge.gif rename to src/main/resources/assets/fml/textures/gui/forge.gif diff --git a/fml/src/main/resources/assets/fml/textures/gui/forge.png b/src/main/resources/assets/fml/textures/gui/forge.png similarity index 100% rename from fml/src/main/resources/assets/fml/textures/gui/forge.png rename to src/main/resources/assets/fml/textures/gui/forge.png diff --git a/fml/src/main/resources/assets/fml/textures/gui/icons.png b/src/main/resources/assets/fml/textures/gui/icons.png similarity index 100% rename from fml/src/main/resources/assets/fml/textures/gui/icons.png rename to src/main/resources/assets/fml/textures/gui/icons.png diff --git a/fml/src/main/resources/fmlversion.properties b/src/main/resources/fmlversion.properties similarity index 100% rename from fml/src/main/resources/fmlversion.properties rename to src/main/resources/fmlversion.properties diff --git a/src/main/resources/forge.exc b/src/main/resources/forge.exc index bc60d2de7..8801190df 100644 --- a/src/main/resources/forge.exc +++ b/src/main/resources/forge.exc @@ -36,4 +36,7 @@ net/minecraft/client/renderer/block/model/FaceBakery.makeQuadVertexData(Lnet/min net/minecraft/client/renderer/block/model/FaceBakery.fillVertexData([IILnet/minecraft/util/EnumFacing;Lnet/minecraft/client/renderer/block/model/BlockPartFace;[FLnet/minecraft/client/renderer/texture/TextureAtlasSprite;Lnet/minecraftforge/client/model/ITransformation;Lnet/minecraft/client/renderer/block/model/BlockPartRotation;ZZ)V=|p_178402_1_,p_178402_2_,p_178402_3_,p_178402_4_,p_178402_5_,p_178402_6_,p_178402_7_,p_178402_8_,p_178402_9_,p_178402_10_ net/minecraft/client/renderer/block/model/FaceBakery.rotateVertex(Ljavax/vecmath/Vector3d;Lnet/minecraft/util/EnumFacing;ILnet/minecraftforge/client/model/ITransformation;Z)I=|p_178415_1_,p_178415_2_,p_178415_3_,p_178415_4_,p_178415_5_ -net/minecraft/item/ItemBlock.setTileEntityNBT(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179224_0_,p_179224_1_,p_179224_2_,player \ No newline at end of file +net/minecraft/item/ItemBlock.setTileEntityNBT(Lnet/minecraft/world/World;Lnet/minecraft/util/BlockPos;Lnet/minecraft/item/ItemStack;Lnet/minecraft/entity/player/EntityPlayer;)Z=|p_179224_0_,p_179224_1_,p_179224_2_,player + +net/minecraft/server/management/ServerConfigurationManager.initializeConnectionToPlayer(Lnet/minecraft/network/NetworkManager;Lnet/minecraft/entity/player/EntityPlayerMP;Lnet/minecraft/network/NetHandlerPlayServer;)V=|p_72355_1_,p_72355_2_,nethandlerplayserver +net/minecraft/item/ItemMonsterPlacer.spawnCreature(Lnet/minecraft/world/World;Ljava/lang/String;DDD)Lnet/minecraft/entity/Entity;=|p_77840_0_,name,p_77840_2_,p_77840_4_,p_77840_6_ diff --git a/fml/src/main/resources/fml.srg b/src/main/resources/forge.srg similarity index 100% rename from fml/src/main/resources/fml.srg rename to src/main/resources/forge.srg diff --git a/src/main/resources/forge_at.cfg b/src/main/resources/forge_at.cfg index 11ef78fcf..8d4974c81 100644 --- a/src/main/resources/forge_at.cfg +++ b/src/main/resources/forge_at.cfg @@ -147,3 +147,78 @@ public net.minecraft.client.renderer.entity.RendererLivingEntity func_177094_a(L # S00PacketServerInfo public net.minecraft.network.status.server.S00PacketServerInfo field_149297_a # GSON + +#Main FML Access Transformer configuration file +# TileEntity addMapping +public net.minecraft.tileentity.TileEntity func_145826_a(Ljava/lang/Class;Ljava/lang/String;)V +# EntityList addMappings +public net.minecraft.entity.EntityList func_75618_a(Ljava/lang/Class;Ljava/lang/String;I)V +public net.minecraft.entity.EntityList func_75614_a(Ljava/lang/Class;Ljava/lang/String;III)V +public net.minecraft.entity.EntityList field_75625_b #nameToClassMap +public net.minecraft.entity.EntityList field_75626_c #classToNameMap +public net.minecraft.entity.EntityList field_75623_d #idToClassMap +## RenderManager +public net.minecraft.client.renderer.entity.RenderManager field_78729_o #renderers +## TileEntityRendererDispatcher +public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher field_147559_m +## WeightedRandomItem +public net.minecraft.util.WeightedRandom$Item field_76292_a #probability +## EntityPlayerMP getNextWindowId +public net.minecraft.entity.player.EntityPlayerMP func_71117_bO()V +public net.minecraft.entity.player.EntityPlayerMP field_71139_cq +## EntityAITaskEntry +public net.minecraft.entity.ai.EntityAITasks$EntityAITaskEntry +## EntityLiving +public net.minecraft.entity.EntityLiving field_70714_bg #tasks +public net.minecraft.entity.EntityLiving field_70715_bh #targetTasks +# GuiScreen +public net.minecraft.client.gui.GuiScreen field_146297_k # minecraft instance - public because gui's outside access it +# Minecraft +public net.minecraft.client.Minecraft field_71446_o # textureManager +public net.minecraft.client.Minecraft field_110450_ap # mcDefaultResourcePack +public net.minecraft.client.Minecraft func_71370_a(II)V # resize +public net.minecraft.client.Minecraft func_180510_a(Lnet/minecraft/client/renderer/texture/TextureManager;)V # drawSplashScreen +## ItemBlock +public net.minecraft.item.ItemBlock field_150939_a +## DedicatedServer +public net.minecraft.server.dedicated.DedicatedServer field_71341_l # pendingCommandList +## SaveFormatOld +public net.minecraft.world.storage.SaveFormatOld field_75808_a # savesDirectory + +protected net.minecraft.util.ObjectIntIdentityMap field_148749_a # internal map +protected net.minecraft.util.ObjectIntIdentityMap field_148748_b # internal index list +protected-f net.minecraft.util.RegistryNamespaced field_148759_a # identitymap + +# GuiButton +public net.minecraft.client.gui.GuiButton field_146120_f # width - needed for config GUI stuff +public net.minecraft.client.gui.GuiButton field_146121_g # height - needed for config GUI stuff +# GuiTextField +public-f net.minecraft.client.gui.GuiTextField field_146218_h # width - needed for config GUI stuff +public-f net.minecraft.client.gui.GuiTextField field_146219_i # height - needed for config GUI stuff +# GuiSlot +public net.minecraft.client.gui.GuiSlot field_148149_f # slotHeight - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148151_d # right - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148152_e # left - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148153_b # top - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148154_c # bottom - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148155_a # width - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148158_l # height - needed for config GUI stuff +public net.minecraft.client.gui.GuiSlot field_148160_j # headerPadding - needed for config GUI stuff + +# Villager Traid Classes +public net.minecraft.entity.passive.EntityVillager$EmeraldForItems +public net.minecraft.entity.passive.EntityVillager$ITradeList +public net.minecraft.entity.passive.EntityVillager$ItemAndEmeraldToItem +public net.minecraft.entity.passive.EntityVillager$ListEnchantedBookForEmeralds +public net.minecraft.entity.passive.EntityVillager$ListEnchantedItemForEmeralds +public net.minecraft.entity.passive.EntityVillager$ListItemForEmeralds +public net.minecraft.entity.passive.EntityVillager$PriceInfo + +# Font renderer +protected net.minecraft.client.gui.FontRenderer field_78286_d # charWidth +protected net.minecraft.client.gui.FontRenderer field_78287_e # glyphWidth +protected net.minecraft.client.gui.FontRenderer field_111273_g # locationFontTexture +protected net.minecraft.client.gui.FontRenderer field_78295_j # posX +protected net.minecraft.client.gui.FontRenderer field_78296_k # posY +protected net.minecraft.client.gui.FontRenderer func_78266_a(IZ)F # renderDefaultChar +protected net.minecraft.client.gui.FontRenderer func_78277_a(CZ)F # renderUnicodeChar diff --git a/fml/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml similarity index 100% rename from fml/src/main/resources/log4j2.xml rename to src/main/resources/log4j2.xml diff --git a/fml/src/main/resources/mcplogo.png b/src/main/resources/mcplogo.png similarity index 100% rename from fml/src/main/resources/mcplogo.png rename to src/main/resources/mcplogo.png diff --git a/fml/src/main/resources/mcpmod.info b/src/main/resources/mcpmod.info similarity index 100% rename from fml/src/main/resources/mcpmod.info rename to src/main/resources/mcpmod.info diff --git a/fml/src/test/java/net/minecraftforge/fml/debug/FaultyCoreMod.java b/src/test/java/net/minecraftforge/fml/debug/FaultyCoreMod.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/debug/FaultyCoreMod.java rename to src/test/java/net/minecraftforge/fml/debug/FaultyCoreMod.java diff --git a/fml/src/test/java/net/minecraftforge/fml/debug/Java8Debug.java b/src/test/java/net/minecraftforge/fml/debug/Java8Debug.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/debug/Java8Debug.java rename to src/test/java/net/minecraftforge/fml/debug/Java8Debug.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/TestNetStuff.java b/src/test/java/net/minecraftforge/fml/test/TestNetStuff.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/TestNetStuff.java rename to src/test/java/net/minecraftforge/fml/test/TestNetStuff.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler1.java b/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler1.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler1.java rename to src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler1.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler2.java b/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler2.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler2.java rename to src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetHandler2.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage1.java b/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage1.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage1.java rename to src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage1.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage2.java b/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage2.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage2.java rename to src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTestMessage2.java diff --git a/fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTester.java b/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTester.java similarity index 100% rename from fml/src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTester.java rename to src/test/java/net/minecraftforge/fml/test/simplenet/SimpleNetTester.java