Skip to content

Commit 8cb3088

Browse files
Mixin Configurability has arrived
Now you can disable any and all fixes you don't like, but why would you do that anyway? [#10](#10) done the way that we wanted to do it :P
1 parent d6cd066 commit 8cb3088

3 files changed

Lines changed: 91 additions & 7 deletions

File tree

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package org.dimdev.vanillafix;
2+
3+
import net.minecraftforge.common.config.Configuration;
4+
import net.minecraftforge.common.config.Property;
5+
6+
import java.io.File;
7+
8+
public class LoadingConfig {
9+
10+
private Configuration config;
11+
12+
public boolean bugFixes;
13+
public boolean crashFixes;
14+
public boolean idLimit;
15+
public boolean modSupport;
16+
public boolean profiler;
17+
public boolean textureFixes;
18+
19+
20+
public void init(File file) {
21+
if (!file.exists()) {
22+
bugFixes = true;
23+
crashFixes = true;
24+
idLimit = true;
25+
modSupport = true;
26+
profiler = true;
27+
textureFixes = true;
28+
return;
29+
}
30+
if (config == null) {
31+
config = new Configuration(file);
32+
reload();
33+
}
34+
}
35+
36+
public void reload() {
37+
bugFixes = getBoolean("bugFixes", "fixes", true);
38+
crashFixes = getBoolean("crashFixes", "fixes", true);
39+
idLimit = getBoolean("idLimit", "fixes", true);
40+
modSupport = getBoolean("modSupport", "fixes", true);
41+
profiler = getBoolean("profiler", "fixes", true);
42+
textureFixes = getBoolean("textureFixes", "fixes", true);
43+
}
44+
45+
private boolean getBoolean(String name, String category, boolean defaultValue) {
46+
Property prop = config.get(category, name, defaultValue);
47+
return prop.getBoolean(defaultValue);
48+
}
49+
50+
}

src/main/java/org/dimdev/vanillafix/ModConfig.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,35 @@ public enum ProblemAction {
2121
public static Crashes crashes = new Crashes();
2222

2323
public static class Fixes {
24-
// TODO
24+
@Name("bugFixes")
25+
@LangKey("vanillafix.fixes.bugFixes")
26+
@RequiresMcRestart
27+
public boolean bugFixes = true;
28+
29+
@Name("crashFixes")
30+
@LangKey("vanillafix.fixes.crashFixes")
31+
@RequiresMcRestart
32+
public boolean crashFixes = true;
33+
34+
@Name("idLimit")
35+
@LangKey("vanillafix.fixes.idLimit")
36+
@RequiresMcRestart
37+
public boolean idLimit = true;
38+
39+
@Name("modSupport")
40+
@LangKey("vanillafix.fixes.modSupport")
41+
@RequiresMcRestart
42+
public boolean modSupport = true;
43+
44+
@Name("profiler")
45+
@LangKey("vanillafix.fixes.profiler")
46+
@RequiresMcRestart
47+
public boolean profiler = true;
48+
49+
@Name("textureFixes")
50+
@LangKey("vanillafix.fixes.textureFixes")
51+
@RequiresMcRestart
52+
public boolean textureFixes = true;
2553
}
2654

2755
public static class Crashes {

src/main/java/org/dimdev/vanillafix/VanillaFixLoadingPlugin.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,28 @@ public class VanillaFixLoadingPlugin implements IFMLLoadingPlugin {
2929
private static final String MCP_VERSION = "20180601-1.12"; // TODO: Use version for current Minecraft version!
3030
private static boolean initialized = false;
3131

32+
public static LoadingConfig config;
33+
3234
public VanillaFixLoadingPlugin() {
3335
initialize();
3436

3537
MixinBootstrap.init();
36-
Mixins.addConfiguration("mixins.vanillafix.bugs.json");
37-
Mixins.addConfiguration("mixins.vanillafix.crashes.json");
38-
Mixins.addConfiguration("mixins.vanillafix.profiler.json");
39-
Mixins.addConfiguration("mixins.vanillafix.textures.json");
40-
Mixins.addConfiguration("mixins.vanillafix.idlimit.json");
41-
Mixins.addConfiguration("mixins.vanillafix.modsupport.json");
38+
39+
if (config.bugFixes) Mixins.addConfiguration("mixins.vanillafix.bugs.json");
40+
if (config.crashFixes) Mixins.addConfiguration("mixins.vanillafix.crashes.json");
41+
if (config.profiler) Mixins.addConfiguration("mixins.vanillafix.profiler.json");
42+
if (config.textureFixes) Mixins.addConfiguration("mixins.vanillafix.textures.json");
43+
if (config.idLimit) Mixins.addConfiguration("mixins.vanillafix.idlimit.json");
44+
if (config.modSupport) Mixins.addConfiguration("mixins.vanillafix.modsupport.json");
4245
}
4346

4447
public static void initialize() {
4548
if (initialized) return;
4649
initialized = true;
4750

51+
config = new LoadingConfig();
52+
config.init(new File(Launch.minecraftHome, "config/vanillafix.cfg"));
53+
4854
// Trust the "IdenTrust DST Root CA X3" certificate (used by Let's Encrypt, which is used by paste.dimdev.org)
4955
// TODO: Trust two other certificates, use same alias: https://bugs.openjdk.java.net/browse/JDK-8161008
5056
try (InputStream keyStoreInputStream = VanillaFixLoadingPlugin.class.getResourceAsStream("/dst_root_ca_x3.jks")) {

0 commit comments

Comments
 (0)