diff options
Diffstat (limited to 'src/main/java/net/fabricmc/loom/providers/ForgeProvider.java')
| -rw-r--r-- | src/main/java/net/fabricmc/loom/providers/ForgeProvider.java | 39 |
1 files changed, 35 insertions, 4 deletions
diff --git a/src/main/java/net/fabricmc/loom/providers/ForgeProvider.java b/src/main/java/net/fabricmc/loom/providers/ForgeProvider.java index 19829e31..57e93483 100644 --- a/src/main/java/net/fabricmc/loom/providers/ForgeProvider.java +++ b/src/main/java/net/fabricmc/loom/providers/ForgeProvider.java @@ -32,7 +32,7 @@ import net.fabricmc.loom.util.Constants; import net.fabricmc.loom.util.DependencyProvider; public class ForgeProvider extends DependencyProvider { - private String forgeVersion = "NO_VERSION"; + private ForgeVersion version = new ForgeVersion(null); public ForgeProvider(Project project) { super(project); @@ -40,17 +40,48 @@ public class ForgeProvider extends DependencyProvider { @Override public void provide(DependencyInfo dependency, Consumer<Runnable> postPopulationScheduler) throws Exception { - forgeVersion = dependency.getDependency().getVersion(); + version = new ForgeVersion(dependency.getDependency().getVersion()); addDependency(dependency.getDepString() + ":userdev", Constants.Configurations.FORGE_USERDEV); addDependency(dependency.getDepString() + ":installer", Constants.Configurations.FORGE_INSTALLER); } - public String getForgeVersion() { - return forgeVersion; + public ForgeVersion getVersion() { + return version; } @Override public String getTargetConfig() { return Constants.Configurations.FORGE; } + + public static final class ForgeVersion { + private final String minecraftVersion; + private final String forgeVersion; + + public ForgeVersion(String combined) { + if (combined == null) { + this.minecraftVersion = "NO_VERSION"; + this.forgeVersion = "NO_VERSION"; + return; + } + + int hyphenIndex = combined.indexOf('-'); + + if (hyphenIndex != -1) { + this.minecraftVersion = combined.substring(0, hyphenIndex); + this.forgeVersion = combined.substring(hyphenIndex + 1); + } else { + this.minecraftVersion = "NO_VERSION"; + this.forgeVersion = combined; + } + } + + public String getMinecraftVersion() { + return minecraftVersion; + } + + public String getForgeVersion() { + return forgeVersion; + } + } } |
