From ca765b857b4e3b54dc3db86e2d1dfc33e6f8b964 Mon Sep 17 00:00:00 2001 From: cpw Date: Thu, 4 Oct 2018 19:28:45 -0400 Subject: [PATCH] Move the version packages somewhere that is now filtered so it doesn't load twice. --- build.gradle | 4 ++-- .../client/ForgeHooksClient.java | 2 +- .../client/gui/ForgeGuiFactory.java | 2 +- .../gui/NotificationModUpdateScreen.java | 2 +- .../client/model/ItemLayerModel.java | 4 +--- .../client/model/ModelDynBucket.java | 8 +------- .../client/model/ModelFluid.java | 3 +-- .../client/model/MultiLayerModel.java | 2 +- .../client/model/b3d/B3DModel.java | 2 +- .../common/ForgeChunkManager.java | 1 + .../net/minecraftforge/common/ForgeMod.java | 6 ++---- .../minecraftforge/common/MinecraftForge.java | 10 +--------- .../minecraftforge/fml/BrandingControl.java | 8 ++------ .../fml/MavenVersionStringHelper.java | 2 +- .../fml/client/gui/GuiSlotModList.java | 2 +- .../fml/loading/FMLClientLaunchProvider.java | 18 ++++-------------- .../fml/loading/FMLCommonLaunchHandler.java | 17 ++++++++++++++++- .../loading/FMLDevClientLaunchProvider.java | 14 +------------- .../loading/FMLDevServerLaunchProvider.java | 14 ++------------ .../minecraftforge/fml/loading/FMLLoader.java | 2 +- .../fml/loading/LanguageLoadingProvider.java | 2 +- .../fml/loading/StringSubstitutor.java | 2 +- .../relauncher/libraries/LibraryManager.java | 4 +--- .../fml/relauncher/libraries/ModList.java | 2 +- .../forge}/ForgeVersion.java | 2 +- .../{ => versions}/mcp/MCPVersion.java | 2 +- 26 files changed, 48 insertions(+), 89 deletions(-) rename src/main/java/net/minecraftforge/{common => versions/forge}/ForgeVersion.java (98%) rename src/main/java/net/minecraftforge/{ => versions}/mcp/MCPVersion.java (96%) diff --git a/build.gradle b/build.gradle index 1bb587eb5..fc0ddf7eb 100644 --- a/build.gradle +++ b/build.gradle @@ -561,7 +561,7 @@ project(':forge') { 'Implementation-Title': 'Forge', 'Implementation-Version': project.version.substring(MC_VERSION.length() + 1), 'Implementation-Vendor': 'Forge Development LLC' - ] as LinkedHashMap, 'net/minecraftforge/common/') + ] as LinkedHashMap, 'net/minecraftforge/versions/forge/') manifest.attributes([ 'Specification-Title': 'Minecraft', 'Specification-Vendor': 'Mojang', @@ -569,7 +569,7 @@ project(':forge') { 'Implementation-Title': 'MCP', 'Implementation-Version': MCP_VERSION, 'Implementation-Vendor': 'Forge' - ] as LinkedHashMap, 'net/minecraftforge/mcp/') + ] as LinkedHashMap, 'net/minecraftforge/versions/mcp/') } } diff --git a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java index d56a05a07..943933839 100644 --- a/src/main/java/net/minecraftforge/client/ForgeHooksClient.java +++ b/src/main/java/net/minecraftforge/client/ForgeHooksClient.java @@ -126,7 +126,7 @@ import net.minecraftforge.client.resource.IResourceType; import net.minecraftforge.client.resource.SelectiveReloadStateHandler; import net.minecraftforge.client.resource.VanillaResourceType; import net.minecraftforge.common.ForgeMod; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.model.IModelPart; import net.minecraftforge.common.model.ITransformation; diff --git a/src/main/java/net/minecraftforge/client/gui/ForgeGuiFactory.java b/src/main/java/net/minecraftforge/client/gui/ForgeGuiFactory.java index 76fa0894d..37a3b91c8 100644 --- a/src/main/java/net/minecraftforge/client/gui/ForgeGuiFactory.java +++ b/src/main/java/net/minecraftforge/client/gui/ForgeGuiFactory.java @@ -32,7 +32,7 @@ import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.resources.I18n; import net.minecraftforge.common.ForgeChunkManager; import net.minecraftforge.common.ForgeMod; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.ConfigElement; import net.minecraftforge.common.config.Configuration; diff --git a/src/main/java/net/minecraftforge/client/gui/NotificationModUpdateScreen.java b/src/main/java/net/minecraftforge/client/gui/NotificationModUpdateScreen.java index ce9a6a545..aab7081a7 100644 --- a/src/main/java/net/minecraftforge/client/gui/NotificationModUpdateScreen.java +++ b/src/main/java/net/minecraftforge/client/gui/NotificationModUpdateScreen.java @@ -27,7 +27,7 @@ import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.ResourceLocation; import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.common.ForgeMod; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.VersionChecker; import net.minecraftforge.fml.client.ClientModLoader; import net.minecraftforge.api.distmarker.Dist; diff --git a/src/main/java/net/minecraftforge/client/model/ItemLayerModel.java b/src/main/java/net/minecraftforge/client/model/ItemLayerModel.java index ca68b87fc..c9f3b7225 100644 --- a/src/main/java/net/minecraftforge/client/model/ItemLayerModel.java +++ b/src/main/java/net/minecraftforge/client/model/ItemLayerModel.java @@ -21,7 +21,7 @@ package net.minecraftforge.client.model; import javax.vecmath.Vector4f; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraft.client.renderer.block.model.BakedQuad; import net.minecraft.client.renderer.block.model.IBakedModel; @@ -29,8 +29,6 @@ import net.minecraft.client.renderer.block.model.IUnbakedModel; import net.minecraft.client.renderer.block.model.ItemCameraTransforms.TransformType; import net.minecraft.client.renderer.block.model.ItemOverrideList; import net.minecraft.client.renderer.block.model.ModelBlock; -import net.minecraft.client.renderer.block.model.ModelRotation; -import net.minecraft.client.renderer.texture.NativeImage; import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.resources.IResourceManager; diff --git a/src/main/java/net/minecraftforge/client/model/ModelDynBucket.java b/src/main/java/net/minecraftforge/client/model/ModelDynBucket.java index fab677d37..6552b6766 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelDynBucket.java +++ b/src/main/java/net/minecraftforge/client/model/ModelDynBucket.java @@ -24,7 +24,6 @@ import java.util.Collection; import java.util.Collections; import java.util.Map; -import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.vecmath.Quat4f; @@ -40,7 +39,6 @@ import net.minecraft.client.renderer.texture.TextureAtlasSprite; import net.minecraft.client.renderer.texture.TextureMap; import net.minecraft.client.renderer.vertex.VertexFormat; import net.minecraft.client.resources.data.AnimationMetadataSection; -import net.minecraft.client.resources.data.AnimationMetadataSectionSerializer; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.resources.IResource; @@ -48,15 +46,12 @@ import net.minecraft.resources.IResourceManager; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.world.World; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.common.model.IModelState; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; -import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.fluids.FluidUtil; -import java.util.Objects; import java.util.function.Function; import java.util.Optional; import java.util.Random; @@ -66,7 +61,6 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; -import org.apache.commons.io.IOUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/main/java/net/minecraftforge/client/model/ModelFluid.java b/src/main/java/net/minecraftforge/client/model/ModelFluid.java index c6716d9fa..ebf63557b 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelFluid.java +++ b/src/main/java/net/minecraftforge/client/model/ModelFluid.java @@ -45,12 +45,11 @@ import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraft.util.math.MathHelper; import net.minecraftforge.client.model.pipeline.UnpackedBakedQuad; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.common.model.IModelState; import net.minecraftforge.common.model.TRSRTransformation; import net.minecraftforge.common.property.IExtendedBlockState; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; import org.apache.commons.lang3.tuple.Pair; import org.apache.logging.log4j.LogManager; diff --git a/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java b/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java index 7b2f31e3c..dd058b67b 100644 --- a/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java +++ b/src/main/java/net/minecraftforge/client/model/MultiLayerModel.java @@ -40,7 +40,7 @@ import net.minecraft.util.BlockRenderLayer; import net.minecraft.util.EnumFacing; import net.minecraft.util.ResourceLocation; import net.minecraftforge.client.MinecraftForgeClient; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.common.model.IModelState; import net.minecraftforge.common.model.TRSRTransformation; diff --git a/src/main/java/net/minecraftforge/client/model/b3d/B3DModel.java b/src/main/java/net/minecraftforge/client/model/b3d/B3DModel.java index e765fadb3..085161497 100644 --- a/src/main/java/net/minecraftforge/client/model/b3d/B3DModel.java +++ b/src/main/java/net/minecraftforge/client/model/b3d/B3DModel.java @@ -44,7 +44,7 @@ import javax.vecmath.Vector2f; import javax.vecmath.Vector3f; import javax.vecmath.Vector4f; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.tuple.Pair; import org.apache.commons.lang3.tuple.Triple; diff --git a/src/main/java/net/minecraftforge/common/ForgeChunkManager.java b/src/main/java/net/minecraftforge/common/ForgeChunkManager.java index 62cf44f43..9754738b5 100644 --- a/src/main/java/net/minecraftforge/common/ForgeChunkManager.java +++ b/src/main/java/net/minecraftforge/common/ForgeChunkManager.java @@ -32,6 +32,7 @@ import java.util.UUID; import javax.annotation.Nullable; +import net.minecraftforge.versions.forge.ForgeVersion; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; diff --git a/src/main/java/net/minecraftforge/common/ForgeMod.java b/src/main/java/net/minecraftforge/common/ForgeMod.java index 922487a29..f195f9100 100644 --- a/src/main/java/net/minecraftforge/common/ForgeMod.java +++ b/src/main/java/net/minecraftforge/common/ForgeMod.java @@ -20,14 +20,12 @@ package net.minecraftforge.common; import net.minecraft.client.Minecraft; -import net.minecraft.util.ResourceLocation; -import net.minecraft.world.biome.Biome; + import static net.minecraftforge.common.config.Configuration.CATEGORY_CLIENT; import static net.minecraftforge.common.config.Configuration.CATEGORY_GENERAL; import java.util.ArrayList; import java.util.List; -import java.util.Map; import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.fml.DistExecutor; @@ -36,6 +34,7 @@ import net.minecraftforge.fml.WorldPersistenceHooks; import net.minecraftforge.fml.common.event.FMLServerStartingEvent; import net.minecraftforge.fml.javafmlmod.FMLModLoadingContext; import net.minecraftforge.server.command.ForgeCommand; +import net.minecraftforge.versions.forge.ForgeVersion; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -47,7 +46,6 @@ import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; import net.minecraftforge.common.model.animation.CapabilityAnimation; import net.minecraftforge.energy.CapabilityEnergy; -import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.capability.CapabilityFluidHandler; import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.fluids.UniversalBucket; diff --git a/src/main/java/net/minecraftforge/common/MinecraftForge.java b/src/main/java/net/minecraftforge/common/MinecraftForge.java index dd251746a..a451e66d7 100644 --- a/src/main/java/net/minecraftforge/common/MinecraftForge.java +++ b/src/main/java/net/minecraftforge/common/MinecraftForge.java @@ -19,20 +19,12 @@ package net.minecraftforge.common; -import net.minecraftforge.fml.common.ICrashCallable; import net.minecraftforge.eventbus.api.IEventBus; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import com.google.common.collect.Lists; - import net.minecraft.crash.CrashReport; -import net.minecraft.crash.ICrashReportDetail; import net.minecraft.item.ItemStack; import net.minecraftforge.common.ForgeHooks.SeedEntry; -import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.versions.forge.ForgeVersion; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Marker; diff --git a/src/main/java/net/minecraftforge/fml/BrandingControl.java b/src/main/java/net/minecraftforge/fml/BrandingControl.java index 4be2101a9..134ee93b5 100644 --- a/src/main/java/net/minecraftforge/fml/BrandingControl.java +++ b/src/main/java/net/minecraftforge/fml/BrandingControl.java @@ -21,16 +21,12 @@ package net.minecraftforge.fml; import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; -import net.minecraftforge.common.ForgeVersion; -import net.minecraftforge.mcp.MCPVersion; +import net.minecraftforge.versions.forge.ForgeVersion; +import net.minecraftforge.versions.mcp.MCPVersion; -import java.text.MessageFormat; -import java.util.Arrays; import java.util.List; import java.util.function.BiConsumer; -import java.util.stream.Collectors; import java.util.stream.IntStream; -import java.util.stream.Stream; public class BrandingControl { diff --git a/src/main/java/net/minecraftforge/fml/MavenVersionStringHelper.java b/src/main/java/net/minecraftforge/fml/MavenVersionStringHelper.java index 8b3f0ccdd..2cccab58f 100644 --- a/src/main/java/net/minecraftforge/fml/MavenVersionStringHelper.java +++ b/src/main/java/net/minecraftforge/fml/MavenVersionStringHelper.java @@ -13,7 +13,7 @@ public class MavenVersionStringHelper { } public static String versionRangeToString(final VersionRange range) { - return range.getRestrictions().stream().map(MavenVersionStringHelper::restrictionToString).collect(Collectors.joining(",")); + return range.getRestrictions().stream().map(MavenVersionStringHelper::restrictionToString).collect(Collectors.joining(", ")); } public static String restrictionToString(final Restriction restriction) { diff --git a/src/main/java/net/minecraftforge/fml/client/gui/GuiSlotModList.java b/src/main/java/net/minecraftforge/fml/client/gui/GuiSlotModList.java index b39ae4ee8..f74a55ffc 100644 --- a/src/main/java/net/minecraftforge/fml/client/gui/GuiSlotModList.java +++ b/src/main/java/net/minecraftforge/fml/client/gui/GuiSlotModList.java @@ -25,7 +25,7 @@ import net.minecraft.client.gui.Gui; import net.minecraft.client.gui.GuiListExtended; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.util.ResourceLocation; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.MavenVersionStringHelper; import net.minecraftforge.fml.VersionChecker; import net.minecraftforge.fml.loading.moddiscovery.ModInfo; diff --git a/src/main/java/net/minecraftforge/fml/loading/FMLClientLaunchProvider.java b/src/main/java/net/minecraftforge/fml/loading/FMLClientLaunchProvider.java index 29cdcbb11..375764e60 100644 --- a/src/main/java/net/minecraftforge/fml/loading/FMLClientLaunchProvider.java +++ b/src/main/java/net/minecraftforge/fml/loading/FMLClientLaunchProvider.java @@ -23,19 +23,15 @@ import cpw.mods.modlauncher.api.IEnvironment; import cpw.mods.modlauncher.api.ILaunchHandlerService; import cpw.mods.modlauncher.api.ITransformingClassLoader; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.ForgeVersion; -import net.minecraftforge.mcp.MCPVersion; -import org.apache.logging.log4j.Level; +import net.minecraftforge.versions.forge.ForgeVersion; +import net.minecraftforge.versions.mcp.MCPVersion; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.apache.logging.log4j.core.config.Configurator; import java.net.URISyntaxException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.Arrays; -import java.util.List; import java.util.concurrent.Callable; public class FMLClientLaunchProvider extends FMLCommonLaunchHandler implements ILaunchHandlerService @@ -44,13 +40,7 @@ public class FMLClientLaunchProvider extends FMLCommonLaunchHandler implements I private static final Path forgePath; private static final Path patchedBinariesPath; private static final Path srgMcPath; - private static final List SKIPPACKAGES = Arrays.asList( - "joptsimple.", "org.lwjgl.", "com.mojang.", "com.google.", - "org.apache.commons.", "io.netty.", "net.minecraftforge.fml.loading.", "net.minecraftforge.fml.language.", - "net.minecraftforge.eventbus.", "it.unimi.dsi.fastutil.", "net.minecraftforge.api.", - "paulscode.sound.", "com.ibm.icu.", "sun.", "gnu.trove.", "com.electronwill.nightconfig.", - "net.minecraftforge.fml.common.versioning." - ); + static { Path forgePath1 = null; Path patchedBinariesPath1 = null; @@ -90,7 +80,7 @@ public class FMLClientLaunchProvider extends FMLCommonLaunchHandler implements I { return () -> { super.beforeStart(launchClassLoader, forgePath); - launchClassLoader.addTargetPackageFilter(cn -> SKIPPACKAGES.stream().noneMatch(cn::startsWith)); + launchClassLoader.addTargetPackageFilter(getPackagePredicate()); Class.forName("net.minecraft.client.main.Main", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments); return null; }; diff --git a/src/main/java/net/minecraftforge/fml/loading/FMLCommonLaunchHandler.java b/src/main/java/net/minecraftforge/fml/loading/FMLCommonLaunchHandler.java index 6c2969e77..94f8d4f8b 100644 --- a/src/main/java/net/minecraftforge/fml/loading/FMLCommonLaunchHandler.java +++ b/src/main/java/net/minecraftforge/fml/loading/FMLCommonLaunchHandler.java @@ -24,12 +24,27 @@ import cpw.mods.modlauncher.api.ITransformingClassLoader; import net.minecraftforge.api.distmarker.Dist; import java.nio.file.Path; +import java.util.Arrays; +import java.util.List; +import java.util.function.Predicate; public abstract class FMLCommonLaunchHandler { + private static final List SKIPPACKAGES = Arrays.asList( + // standard libs + "joptsimple.", "org.lwjgl.", "com.mojang.", "com.google.", "org.apache.commons.", "io.netty.", + "paulscode.sound.", "com.ibm.icu.", "sun.", "gnu.trove.", "com.electronwill.nightconfig.", + "net.minecraftforge.fml.loading.", "net.minecraftforge.fml.language.", "net.minecraftforge.versions.", + "net.minecraftforge.eventbus.", "net.minecraftforge.api." + ); + + protected Predicate getPackagePredicate() { + return cn -> SKIPPACKAGES.stream().noneMatch(cn::startsWith); + } + public void setup(final IEnvironment environment) { - // We need to check for deobf and patched jar here and if not, build one. + } public abstract Dist getDist(); diff --git a/src/main/java/net/minecraftforge/fml/loading/FMLDevClientLaunchProvider.java b/src/main/java/net/minecraftforge/fml/loading/FMLDevClientLaunchProvider.java index f48eea0aa..27d441da4 100644 --- a/src/main/java/net/minecraftforge/fml/loading/FMLDevClientLaunchProvider.java +++ b/src/main/java/net/minecraftforge/fml/loading/FMLDevClientLaunchProvider.java @@ -47,14 +47,6 @@ public class FMLDevClientLaunchProvider extends FMLCommonLaunchHandler implement return "fmldevclient"; } - private static final List SKIPPACKAGES = Arrays.asList( - "joptsimple.", "org.lwjgl.", "com.mojang.", "com.google.", - "org.apache.commons.", "io.netty.", "net.minecraftforge.fml.loading.", "net.minecraftforge.fml.language.", - "net.minecraftforge.eventbus.", "it.unimi.dsi.fastutil.", "net.minecraftforge.api.", - "paulscode.sound.", "com.ibm.icu.", "sun.", "gnu.trove.", "com.electronwill.nightconfig.", - "net.minecraftforge.fml.common.versioning." - ); - private static final Path myPath; static @@ -81,11 +73,7 @@ public class FMLDevClientLaunchProvider extends FMLCommonLaunchHandler implement return () -> { LOGGER.debug(CORE, "Launching minecraft in {} with arguments {}", launchClassLoader, arguments); super.beforeStart(launchClassLoader, myPath); - launchClassLoader.addTargetPackageFilter(cn -> SKIPPACKAGES.stream().noneMatch(cn::startsWith)); - Field scl = ClassLoader.class.getDeclaredField("scl"); // Get system class loader - scl.setAccessible(true); // Set accessible - scl.set(null, launchClassLoader.getInstance()); // Update it to your class loader - Thread.currentThread().setContextClassLoader(launchClassLoader.getInstance()); + launchClassLoader.addTargetPackageFilter(getPackagePredicate()); Class.forName("net.minecraft.client.main.Main", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments); return null; }; diff --git a/src/main/java/net/minecraftforge/fml/loading/FMLDevServerLaunchProvider.java b/src/main/java/net/minecraftforge/fml/loading/FMLDevServerLaunchProvider.java index 32f420399..7c0da5afd 100644 --- a/src/main/java/net/minecraftforge/fml/loading/FMLDevServerLaunchProvider.java +++ b/src/main/java/net/minecraftforge/fml/loading/FMLDevServerLaunchProvider.java @@ -33,6 +33,7 @@ import java.nio.file.Paths; import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; +import java.util.function.Predicate; import static net.minecraftforge.fml.Logging.CORE; @@ -47,14 +48,6 @@ public class FMLDevServerLaunchProvider extends FMLCommonLaunchHandler implement return "fmldevserver"; } - private static final List SKIPPACKAGES = Arrays.asList( - "joptsimple.", "org.lwjgl.", "com.mojang.", "com.google.", - "org.apache.commons.", "io.netty.", "net.minecraftforge.fml.loading.", "net.minecraftforge.fml.language.", - "net.minecraftforge.eventbus.", "it.unimi.dsi.fastutil.", "net.minecraftforge.api.", - "paulscode.sound.", "com.ibm.icu.", "sun.", "gnu.trove.", "com.electronwill.nightconfig.", - "net.minecraftforge.fml.common.versioning." - ); - private static final Path myPath; static @@ -81,10 +74,7 @@ public class FMLDevServerLaunchProvider extends FMLCommonLaunchHandler implement return () -> { LOGGER.debug(CORE, "Launching minecraft in {} with arguments {}", launchClassLoader, arguments); super.beforeStart(launchClassLoader, myPath); - launchClassLoader.addTargetPackageFilter(cn -> SKIPPACKAGES.stream().noneMatch(cn::startsWith)); - Field scl = ClassLoader.class.getDeclaredField("scl"); // Get system class loader - scl.setAccessible(true); // Set accessible - scl.set(null, launchClassLoader.getInstance()); // Update it to your class loader + launchClassLoader.addTargetPackageFilter(getPackagePredicate()); Thread.currentThread().setContextClassLoader(launchClassLoader.getInstance()); Class.forName("net.minecraft.server.MinecraftServer", true, launchClassLoader.getInstance()).getMethod("main", String[].class).invoke(null, (Object)arguments); return null; diff --git a/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java b/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java index c6712926b..da1e5d43e 100644 --- a/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java +++ b/src/main/java/net/minecraftforge/fml/loading/FMLLoader.java @@ -26,7 +26,7 @@ import cpw.mods.modlauncher.api.ITransformingClassLoader; import cpw.mods.modlauncher.api.IncompatibleEnvironmentException; import cpw.mods.modlauncher.serviceapi.ILaunchPluginService; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.loading.moddiscovery.BackgroundScanHandler; import net.minecraftforge.fml.loading.moddiscovery.ModDiscoverer; import net.minecraftforge.fml.loading.moddiscovery.ModFile; diff --git a/src/main/java/net/minecraftforge/fml/loading/LanguageLoadingProvider.java b/src/main/java/net/minecraftforge/fml/loading/LanguageLoadingProvider.java index 57cf8e6b6..e197d9f34 100644 --- a/src/main/java/net/minecraftforge/fml/loading/LanguageLoadingProvider.java +++ b/src/main/java/net/minecraftforge/fml/loading/LanguageLoadingProvider.java @@ -19,7 +19,7 @@ package net.minecraftforge.fml.loading; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.language.IModLanguageProvider; import net.minecraftforge.fml.loading.moddiscovery.ExplodedDirectoryLocator; import net.minecraftforge.fml.loading.moddiscovery.ModFile; diff --git a/src/main/java/net/minecraftforge/fml/loading/StringSubstitutor.java b/src/main/java/net/minecraftforge/fml/loading/StringSubstitutor.java index 8c5735121..57a07bab7 100644 --- a/src/main/java/net/minecraftforge/fml/loading/StringSubstitutor.java +++ b/src/main/java/net/minecraftforge/fml/loading/StringSubstitutor.java @@ -20,7 +20,7 @@ package net.minecraftforge.fml.loading; import com.google.common.collect.ImmutableMap; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.loading.moddiscovery.ModFile; import org.apache.commons.lang3.text.StrLookup; import org.apache.commons.lang3.text.StrSubstitutor; diff --git a/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java b/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java index 161d066a8..1bab67dcf 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/libraries/LibraryManager.java @@ -54,9 +54,7 @@ import org.apache.maven.artifact.versioning.ArtifactVersion; import com.google.common.io.ByteStreams; import com.google.common.io.Files; -import cpw.mods.modlauncher.Launcher; -import net.minecraftforge.common.ForgeVersion; -import net.minecraftforge.fml.loading.FMLCommonLaunchHandler; +import net.minecraftforge.versions.forge.ForgeVersion; import net.minecraftforge.fml.loading.FMLEnvironment; public class LibraryManager diff --git a/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java b/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java index 2f7184c56..6211cf60e 100644 --- a/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java +++ b/src/main/java/net/minecraftforge/fml/relauncher/libraries/ModList.java @@ -39,7 +39,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonSyntaxException; -import net.minecraftforge.common.ForgeVersion; +import net.minecraftforge.versions.forge.ForgeVersion; public class ModList { diff --git a/src/main/java/net/minecraftforge/common/ForgeVersion.java b/src/main/java/net/minecraftforge/versions/forge/ForgeVersion.java similarity index 98% rename from src/main/java/net/minecraftforge/common/ForgeVersion.java rename to src/main/java/net/minecraftforge/versions/forge/ForgeVersion.java index b21ad69cb..0566c8357 100644 --- a/src/main/java/net/minecraftforge/common/ForgeVersion.java +++ b/src/main/java/net/minecraftforge/versions/forge/ForgeVersion.java @@ -17,7 +17,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -package net.minecraftforge.common; +package net.minecraftforge.versions.forge; import net.minecraftforge.fml.VersionChecker; import org.apache.logging.log4j.LogManager; diff --git a/src/main/java/net/minecraftforge/mcp/MCPVersion.java b/src/main/java/net/minecraftforge/versions/mcp/MCPVersion.java similarity index 96% rename from src/main/java/net/minecraftforge/mcp/MCPVersion.java rename to src/main/java/net/minecraftforge/versions/mcp/MCPVersion.java index dcc1c14f8..b1ac44101 100644 --- a/src/main/java/net/minecraftforge/mcp/MCPVersion.java +++ b/src/main/java/net/minecraftforge/versions/mcp/MCPVersion.java @@ -1,4 +1,4 @@ -package net.minecraftforge.mcp; +package net.minecraftforge.versions.mcp; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger;