Skip to content

Commit b0b5fe5

Browse files
committed
move minecraft home path retrieval to separate util class
1 parent cae1b91 commit b0b5fe5

File tree

5 files changed

+27
-10
lines changed

5 files changed

+27
-10
lines changed

src/main/java/com/falsepattern/lib/config/ConfigurationManager.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@
33
import com.falsepattern.lib.StableAPI;
44
import com.falsepattern.lib.internal.CoreLoadingPlugin;
55
import com.falsepattern.lib.internal.FalsePatternLib;
6+
import com.falsepattern.lib.util.FileUtil;
67
import cpw.mods.fml.client.config.IConfigElement;
78
import cpw.mods.fml.client.event.ConfigChangedEvent;
89
import cpw.mods.fml.common.FMLCommonHandler;
910
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
11+
12+
import java.io.File;
1013
import java.lang.reflect.Field;
1114
import java.lang.reflect.InvocationTargetException;
1215
import java.nio.file.Path;
@@ -24,6 +27,7 @@
2427
import lombok.SneakyThrows;
2528
import lombok.val;
2629
import lombok.var;
30+
import net.minecraft.launchwrapper.Launch;
2731
import net.minecraftforge.common.config.ConfigElement;
2832
import net.minecraftforge.common.config.Configuration;
2933

@@ -49,6 +53,7 @@ public class ConfigurationManager {
4953
* @param configClass The class to register.
5054
*/
5155
public static void registerConfig(Class<?> configClass) throws ConfigException {
56+
init();
5257
val cfg = Optional.ofNullable(configClass.getAnnotation(Config.class))
5358
.orElseThrow(() -> new ConfigException(
5459
"Class " + configClass.getName() + " does not have a @Config annotation!"));
@@ -192,6 +197,7 @@ private static Object extractValue(Field field) {
192197
*/
193198
@SuppressWarnings({"rawtypes", "unchecked"})
194199
public static List<IConfigElement> getConfigElements(Class<?> configClass) throws ConfigException {
200+
init();
195201
val cfg = Optional.ofNullable(configClass.getAnnotation(Config.class))
196202
.orElseThrow(() -> new ConfigException(
197203
"Class " + configClass.getName() + " does not have a @Config annotation!"));
@@ -217,14 +223,11 @@ public static List<IConfigElement> getConfigElements(Class<?> configClass) throw
217223
})).collect(Collectors.toList());
218224
}
219225

220-
/**
221-
* Internal, do not use.
222-
*/
223-
public static void init() {
226+
private static void init() {
224227
if (initialized) {
225228
return;
226229
}
227-
configDir = CoreLoadingPlugin.mcDir.toPath().resolve("config");
230+
configDir = FileUtil.getMinecraftHome().toPath().resolve("config");
228231
FMLCommonHandler.instance().bus().register(instance);
229232
initialized = true;
230233
}
@@ -236,6 +239,7 @@ public static void init() {
236239
*/
237240
@SubscribeEvent
238241
public void onConfigChanged(ConfigChangedEvent.OnConfigChangedEvent event) {
242+
init();
239243
val config = configs.get(event.modID);
240244
if (config == null) {
241245
return;

src/main/java/com/falsepattern/lib/dependencies/DependencyLoader.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.util.Map;
1515
import java.util.Set;
1616

17+
import com.falsepattern.lib.util.FileUtil;
1718
import lombok.*;
1819
import net.minecraft.launchwrapper.LaunchClassLoader;
1920

@@ -84,7 +85,7 @@ public static void loadLibrary(@NonNull String loadingModId,
8485
}
8586
return;
8687
}
87-
val modsDir = new File(CoreLoadingPlugin.mcDir, "mods");
88+
val modsDir = new File(FileUtil.getMinecraftHome(), "mods");
8889
val mavenJarName =
8990
String.format("%s-%s%s.jar", artifactId, preferredVersion, (suffix != null) ? ("-" + suffix) : "");
9091
val jarName = groupId + "-" + mavenJarName;

src/main/java/com/falsepattern/lib/internal/CoreLoadingPlugin.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
@Name(Tags.MODID)
1313
@SortingIndex(500)
1414
public class CoreLoadingPlugin implements IFMLLoadingPlugin {
15-
public static File mcDir;
1615

1716
@Override
1817
public String[] getASMTransformerClass() {
@@ -31,8 +30,6 @@ public String getSetupClass() {
3130

3231
@Override
3332
public void injectData(Map<String, Object> data) {
34-
mcDir = (File) data.get("mcLocation");
35-
ConfigurationManager.init();
3633
}
3734

3835
@Override

src/main/java/com/falsepattern/lib/mixin/IMixinPlugin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
import java.util.List;
1212
import java.util.Set;
1313
import java.util.stream.Collectors;
14+
15+
import com.falsepattern.lib.util.FileUtil;
1416
import lombok.val;
1517
import net.minecraft.launchwrapper.Launch;
1618
import org.apache.logging.log4j.LogManager;
@@ -23,7 +25,7 @@
2325

2426
@StableAPI(since = "0.8.0")
2527
public interface IMixinPlugin extends IMixinConfigPlugin {
26-
Path MODS_DIRECTORY_PATH = CoreLoadingPlugin.mcDir.toPath().resolve("mods");
28+
Path MODS_DIRECTORY_PATH = FileUtil.getMinecraftHome().toPath().resolve("mods");
2729

2830
static Logger createLogger(String modName) {
2931
return LogManager.getLogger(modName + " Mixin Loader");
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.falsepattern.lib.util;
2+
3+
import com.falsepattern.lib.StableAPI;
4+
import net.minecraft.launchwrapper.Launch;
5+
6+
import java.io.File;
7+
8+
@StableAPI(since = "0.8.2")
9+
public class FileUtil {
10+
public static File getMinecraftHome() {
11+
return Launch.minecraftHome == null ? new File(".") : Launch.minecraftHome;
12+
}
13+
}

0 commit comments

Comments
 (0)