Skip to content

Commit 1ef028d

Browse files
committed
fixed #264 UNTESTED
1 parent ff62378 commit 1ef028d

File tree

14 files changed

+137
-122
lines changed

14 files changed

+137
-122
lines changed

src/main/java/net/minecraftforge/gradle/common/BaseExtension.java

Lines changed: 20 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,33 @@
55
import java.util.Map;
66
import java.util.Map.Entry;
77

8-
import joptsimple.internal.Strings;
9-
import net.minecraftforge.gradle.util.GradleConfigurationException;
10-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
11-
128
import org.gradle.api.Project;
139

1410
import com.google.common.collect.ImmutableMap;
1511
import com.google.common.io.Resources;
1612

13+
import joptsimple.internal.Strings;
14+
import net.minecraftforge.gradle.util.GradleConfigurationException;
15+
import net.minecraftforge.gradle.util.delayed.ReplacementProvider;
16+
1717
public abstract class BaseExtension
1818
{
1919
protected static final transient Map<String, String> MCP_VERSION_MAP = ImmutableMap.of("1.8", "9.10");
2020

21-
public final String forgeGradleVersion;
21+
public final String forgeGradleVersion;
2222

23-
protected transient Project project;
24-
protected String version;
25-
protected String mcpVersion = "unknown";
23+
protected transient Project project;
24+
protected transient ReplacementProvider replacer;
25+
protected String version;
26+
protected String mcpVersion = "unknown";
2627

2728
// this should never be touched except by the base plugin in this package
28-
Map<String, Map<String, int[]>> mcpJson;
29-
protected boolean mappingsSet = false;
30-
protected String mappingsChannel = null;
31-
protected int mappingsVersion = -1;
29+
Map<String, Map<String, int[]>> mcpJson;
30+
protected boolean mappingsSet = false;
31+
protected String mappingsChannel = null;
32+
protected int mappingsVersion = -1;
3233
// custom version for custom mappings
33-
protected String mappingsCustom = null;
34+
protected String mappingsCustom = null;
3435

3536
public BaseExtension(BasePlugin<? extends BaseExtension> plugin)
3637
{
@@ -44,7 +45,7 @@ public BaseExtension(BasePlugin<? extends BaseExtension> plugin)
4445

4546
if (version.equals("${version}"))
4647
{
47-
version = "2.0-SNAPSHOT"; // fallback
48+
version = "2.0-SNAPSHOT";// fallback
4849
}
4950

5051
}
@@ -66,7 +67,7 @@ public void setVersion(String version)
6667
{
6768
this.version = version;
6869

69-
TokenReplacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
70+
replacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
7071

7172
mcpVersion = MCP_VERSION_MAP.get(version);
7273

@@ -135,8 +136,8 @@ public void setMappings(String mappings)
135136
mappingsChannel = null;
136137
mappingsVersion = -1;
137138

138-
TokenReplacer.putReplacement(Constants.REPLACE_MCP_CHANNEL, mappingsChannel);
139-
TokenReplacer.putReplacement(Constants.REPLACE_MCP_VERSION, getMappingsVersion());
139+
replacer.putReplacement(Constants.REPLACE_MCP_CHANNEL, mappingsChannel);
140+
replacer.putReplacement(Constants.REPLACE_MCP_VERSION, getMappingsVersion());
140141

141142
return;
142143
}
@@ -167,8 +168,8 @@ public void setMappings(String mappings)
167168

168169
mappingsSet = true;
169170

170-
TokenReplacer.putReplacement(Constants.REPLACE_MCP_CHANNEL, mappingsChannel);
171-
TokenReplacer.putReplacement(Constants.REPLACE_MCP_VERSION, getMappingsVersion());
171+
replacer.putReplacement(Constants.REPLACE_MCP_CHANNEL, mappingsChannel);
172+
replacer.putReplacement(Constants.REPLACE_MCP_VERSION, getMappingsVersion());
172173

173174
// check
174175
checkMappings();

src/main/java/net/minecraftforge/gradle/common/BasePlugin.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
import net.minecraftforge.gradle.util.delayed.DelayedFile;
5656
import net.minecraftforge.gradle.util.delayed.DelayedFileTree;
5757
import net.minecraftforge.gradle.util.delayed.DelayedString;
58+
import net.minecraftforge.gradle.util.delayed.ReplacementProvider;
5859
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
5960
import net.minecraftforge.gradle.util.json.JsonFactory;
6061
import net.minecraftforge.gradle.util.json.fgversion.FGBuildStatus;
@@ -65,6 +66,7 @@ public abstract class BasePlugin<K extends BaseExtension> implements Plugin<Proj
6566
{
6667
public Project project;
6768
public BasePlugin<?> otherPlugin;
69+
public ReplacementProvider replacer = new ReplacementProvider();
6870

6971
@SuppressWarnings({ "rawtypes", "unchecked" })
7072
@Override
@@ -90,16 +92,16 @@ public final void apply(Project arg)
9092
}
9193

9294
// set the obvious replacements
93-
TokenReplacer.putReplacement(REPLACE_CACHE_DIR, cacheFile("").getAbsolutePath());
94-
TokenReplacer.putReplacement(REPLACE_BUILD_DIR, project.getBuildDir().getAbsolutePath());
95+
replacer.putReplacement(REPLACE_CACHE_DIR, cacheFile("").getAbsolutePath());
96+
replacer.putReplacement(REPLACE_BUILD_DIR, project.getBuildDir().getAbsolutePath());
9597

9698
// logging
9799
{
98100
File projectCacheDir = project.getGradle().getStartParameter().getProjectCacheDir();
99101
if (projectCacheDir == null)
100102
projectCacheDir = new File(project.getProjectDir(), ".gradle");
101103

102-
TokenReplacer.putReplacement(REPLACE_PROJECT_CACHE_DIR, projectCacheDir.getAbsolutePath());
104+
replacer.putReplacement(REPLACE_PROJECT_CACHE_DIR, projectCacheDir.getAbsolutePath());
103105

104106
FileLogListenner listener = new FileLogListenner(new File(projectCacheDir, "gradle.log"));
105107
project.getLogging().addStandardOutputListener(listener);
@@ -364,7 +366,7 @@ public Boolean call()
364366
Files.write(buf.toString().getBytes(Charsets.UTF_8), json);
365367

366368
// grab the AssetIndex if it isnt already there
367-
if (!TokenReplacer.hasReplacement(REPLACE_ASSET_INDEX))
369+
if (!replacer.hasReplacement(REPLACE_ASSET_INDEX))
368370
{
369371
parseAndStoreVersion(json, json.getParentFile());
370372
}
@@ -703,7 +705,7 @@ protected Version parseAndStoreVersion(File file, File... inheritanceDirs)
703705
project.getLogger().debug("RESOLVED: " + CONFIG_NATIVES);
704706

705707
// set asset index
706-
TokenReplacer.putReplacement(REPLACE_ASSET_INDEX, version.getAssets());
708+
replacer.putReplacement(REPLACE_ASSET_INDEX, version.getAssets());
707709

708710
return version;
709711
}
@@ -720,7 +722,7 @@ protected Version parseAndStoreVersion(File file)
720722
new CacheLoader<String, TokenReplacer>() {
721723
public TokenReplacer load(String key)
722724
{
723-
return new TokenReplacer(key);
725+
return new TokenReplacer(replacer, key);
724726
}
725727
});
726728
private LoadingCache<String, DelayedString> stringCache = CacheBuilder.newBuilder()

src/main/java/net/minecraftforge/gradle/patcher/PatcherExtension.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package net.minecraftforge.gradle.patcher;
22

3-
import groovy.lang.Closure;
4-
53
import java.io.File;
64

7-
import net.minecraftforge.gradle.common.BaseExtension;
8-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
9-
105
import org.gradle.api.NamedDomainObjectContainer;
116

7+
import groovy.lang.Closure;
8+
import net.minecraftforge.gradle.common.BaseExtension;
9+
1210
public class PatcherExtension extends BaseExtension
1311
{
1412
private Object versionJson;
@@ -51,7 +49,7 @@ public String getInstallerVersion()
5149
public void setInstallerVersion(String installerVersion)
5250
{
5351
this.installerVersion = installerVersion;
54-
TokenReplacer.putReplacement(PatcherConstants.REPLACE_INSTALLER, installerVersion);
52+
replacer.putReplacement(PatcherConstants.REPLACE_INSTALLER, installerVersion);
5553
}
5654

5755
public NamedDomainObjectContainer<PatcherProject> getProjects()

src/main/java/net/minecraftforge/gradle/user/UserBaseExtension.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,10 @@
66
import java.util.Map;
77
import java.util.Map.Entry;
88

9+
import com.google.common.collect.Lists;
10+
911
import net.minecraftforge.gradle.common.BaseExtension;
1012
import net.minecraftforge.gradle.common.Constants;
11-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
12-
13-
import com.google.common.collect.Lists;
1413

1514
public class UserBaseExtension extends BaseExtension
1615
{
@@ -83,7 +82,7 @@ public List<Object> getAccessTransformers()
8382
public void setRunDir(String value)
8483
{
8584
this.runDir = value;
86-
TokenReplacer.putReplacement(UserConstants.REPLACE_RUN_DIR, runDir);
85+
replacer.putReplacement(UserConstants.REPLACE_RUN_DIR, runDir);
8786
}
8887

8988
public String getRunDir()

src/main/java/net/minecraftforge/gradle/user/UserBasePlugin.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@
7575
import net.minecraftforge.gradle.tasks.RemapSources;
7676
import net.minecraftforge.gradle.util.GradleConfigurationException;
7777
import net.minecraftforge.gradle.util.delayed.DelayedFile;
78-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
7978

8079
public abstract class UserBasePlugin<T extends UserBaseExtension> extends BasePlugin<T>
8180
{
@@ -158,10 +157,10 @@ protected void afterEvaluate()
158157

159158
// add repalcements for run configs and gradle start
160159
T ext = getExtension();
161-
TokenReplacer.putReplacement(REPLACE_CLIENT_TWEAKER, getClientTweaker(ext));
162-
TokenReplacer.putReplacement(REPLACE_SERVER_TWEAKER, getServerTweaker(ext));
163-
TokenReplacer.putReplacement(REPLACE_CLIENT_MAIN, getClientRunClass(ext));
164-
TokenReplacer.putReplacement(REPLACE_SERVER_MAIN, getServerRunClass(ext));
160+
replacer.putReplacement(REPLACE_CLIENT_TWEAKER, getClientTweaker(ext));
161+
replacer.putReplacement(REPLACE_SERVER_TWEAKER, getServerTweaker(ext));
162+
replacer.putReplacement(REPLACE_CLIENT_MAIN, getClientRunClass(ext));
163+
replacer.putReplacement(REPLACE_SERVER_MAIN, getServerRunClass(ext));
165164

166165
// map configurations (only if the maven or maven publish plugins exist)
167166
mapConfigurations();

src/main/java/net/minecraftforge/gradle/user/patcherUser/PatcherUserBasePlugin.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import net.minecraftforge.gradle.user.TaskSingleReobf;
2727
import net.minecraftforge.gradle.user.UserBaseExtension;
2828
import net.minecraftforge.gradle.user.UserBasePlugin;
29-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
3029

3130
public abstract class PatcherUserBasePlugin<T extends UserBaseExtension> extends UserBasePlugin<T>
3231
{
@@ -132,10 +131,10 @@ protected void afterEvaluate()
132131
{
133132
// add replacements
134133
T ext = getExtension();
135-
TokenReplacer.putReplacement(REPLACE_API_GROUP, getApiGroup(ext));
136-
TokenReplacer.putReplacement(REPLACE_API_GROUP_DIR, getApiGroup(ext).replace('.', '/'));
137-
TokenReplacer.putReplacement(REPLACE_API_NAME, getApiName(ext));
138-
TokenReplacer.putReplacement(REPLACE_API_VERSION, getApiVersion(ext));
134+
replacer.putReplacement(REPLACE_API_GROUP, getApiGroup(ext));
135+
replacer.putReplacement(REPLACE_API_GROUP_DIR, getApiGroup(ext).replace('.', '/'));
136+
replacer.putReplacement(REPLACE_API_NAME, getApiName(ext));
137+
replacer.putReplacement(REPLACE_API_VERSION, getApiVersion(ext));
139138

140139
// read version file if exists
141140
{

src/main/java/net/minecraftforge/gradle/user/patcherUser/forge/ForgeExtension.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,18 @@
33
import java.util.regex.Matcher;
44
import java.util.regex.Pattern;
55

6+
import org.gradle.api.logging.Logger;
7+
import org.gradle.api.logging.Logging;
8+
9+
import com.google.common.base.Strings;
10+
611
import net.minecraftforge.gradle.common.Constants;
712
import net.minecraftforge.gradle.user.UserBaseExtension;
813
import net.minecraftforge.gradle.user.UserBasePlugin;
914
import net.minecraftforge.gradle.util.GradleConfigurationException;
10-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
1115
import net.minecraftforge.gradle.util.json.forgeversion.ForgeBuild;
1216
import net.minecraftforge.gradle.util.json.forgeversion.ForgeVersion;
1317

14-
import org.gradle.api.logging.Logger;
15-
import org.gradle.api.logging.Logging;
16-
17-
import com.google.common.base.Strings;
18-
1918
public class ForgeExtension extends UserBaseExtension
2019
{
2120
protected ForgeVersion forgeJson;
@@ -36,7 +35,7 @@ public void setForgeVersion(String forgeVersion)
3635
{
3736
checkAndSetVersion(forgeVersion);
3837

39-
TokenReplacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
38+
replacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
4039

4140
mcpVersion = MCP_VERSION_MAP.get(version);
4241
}
@@ -46,7 +45,7 @@ public void setVersion(String inVersion)
4645
{
4746
checkAndSetVersion(inVersion);
4847

49-
TokenReplacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
48+
replacer.putReplacement(Constants.REPLACE_MC_VERSION, version);
5049

5150
mcpVersion = MCP_VERSION_MAP.get(version);
5251

src/main/java/net/minecraftforge/gradle/user/tweakers/ServerTweaker.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
package net.minecraftforge.gradle.user.tweakers;
22

3-
import static net.minecraftforge.gradle.common.Constants.*;
3+
import static net.minecraftforge.gradle.common.Constants.CONFIG_MC_DEPS;
4+
import static net.minecraftforge.gradle.common.Constants.CONFIG_NATIVES;
5+
import static net.minecraftforge.gradle.common.Constants.JAR_SERVER_PURE;
6+
import static net.minecraftforge.gradle.common.Constants.MCP_PATCHES_SERVER;
7+
import static net.minecraftforge.gradle.common.Constants.REPLACE_ASSET_INDEX;
8+
import static net.minecraftforge.gradle.common.Constants.TASK_SPLIT_SERVER;
49

510
import java.io.File;
611

7-
import net.minecraftforge.gradle.common.Constants;
8-
import net.minecraftforge.gradle.util.delayed.TokenReplacer;
9-
import net.minecraftforge.gradle.util.json.JsonFactory;
10-
import net.minecraftforge.gradle.util.json.version.Version;
11-
1212
import org.gradle.api.artifacts.Configuration.State;
1313
import org.gradle.api.artifacts.dsl.DependencyHandler;
1414

1515
import com.google.common.base.Throwables;
1616

17+
import net.minecraftforge.gradle.common.Constants;
18+
import net.minecraftforge.gradle.util.json.JsonFactory;
19+
import net.minecraftforge.gradle.util.json.version.Version;
20+
1721
public class ServerTweaker extends TweakerPlugin
1822
{
1923
@Override
@@ -101,7 +105,7 @@ protected Version parseAndStoreVersion(File file, File... inheritanceDirs)
101105
project.getLogger().debug("RESOLVED: " + CONFIG_NATIVES);
102106

103107
// set asset index
104-
TokenReplacer.putReplacement(REPLACE_ASSET_INDEX, version.getAssets());
108+
replacer.putReplacement(REPLACE_ASSET_INDEX, version.getAssets());
105109

106110
return version;
107111
}

src/main/java/net/minecraftforge/gradle/util/delayed/DelayedBase.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ public abstract class DelayedBase<V> extends Closure<V>
77
{
88
protected TokenReplacer replacer;
99

10-
public DelayedBase(String pattern)
10+
public DelayedBase(ReplacementProvider provider, String pattern)
1111
{
1212
super(null);
13-
replacer = new TokenReplacer(pattern);
13+
replacer = new TokenReplacer(provider, pattern);
1414
}
1515

1616
public DelayedBase(TokenReplacer replacer)

src/main/java/net/minecraftforge/gradle/util/delayed/DelayedFile.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ public DelayedFile(File file)
1717
project = null;
1818
}
1919

20-
public DelayedFile(Project project, String pattern)
20+
public DelayedFile(Project project, ReplacementProvider provider, String pattern)
2121
{
22-
super(pattern);
22+
super(provider, pattern);
2323
hardcoded = null;
2424
this.project = project;
2525
}

0 commit comments

Comments
 (0)