Skip to content

Commit c8f8bfc

Browse files
committed
Update 1.2.41
1 parent 887b4ac commit c8f8bfc

File tree

10 files changed

+47
-17
lines changed

10 files changed

+47
-17
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.fox2code.foxloader.client.mixins;
2+
3+
import com.fox2code.foxloader.config.NoConfigObject;
4+
import net.minecraft.src.client.gui.GuiScreen;
5+
import org.spongepowered.asm.mixin.Mixin;
6+
7+
@Mixin(GuiScreen.class)
8+
public class MixinGuiScreen implements NoConfigObject {
9+
}

client/src/main/resources/foxloader.client.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"MixinGuiDebug",
2323
"MixinGuiIngameMenu",
2424
"MixinGuiMainMenu",
25+
"MixinGuiScreen",
2526
"MixinGuiTextField",
2627
"MixinItem",
2728
"MixinItemStack",

common/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ group 'com.fox2code'
77
version project['foxloader.version']
88

99
dependencies {
10-
// TODO: Don't forget to update DependencyHelper
10+
// TODO: Don't forget to update DependencyHelper and ":dev" project
1111
api 'org.ow2.asm:asm-util:9.6'
1212
api 'org.ow2.asm:asm-commons:9.6'
1313
api 'org.semver4j:semver4j:5.2.2'

common/src/main/java/com/fox2code/foxloader/config/ConfigStructure.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,13 @@ private static ConfigMenu parseMenuImpl(
6161
Collections.unmodifiableList(configKeys));
6262
}
6363

64+
if (cls.isAssignableFrom(NoConfigObject.class)) {
65+
return configMenu;
66+
}
67+
6468
menuCache.put(cls, configMenu);
6569
for (Field field : cls.getFields()) {
70+
Class<?> fieldType = field.getType();
6671
ConfigEntry configEntry = field.getAnnotation(ConfigEntry.class);
6772
if (configEntry == null) continue;
6873
if ((field.getModifiers() & (Modifier.PUBLIC | Modifier.PRIVATE |
@@ -130,7 +135,7 @@ private static ConfigMenu parseMenuImpl(
130135
configKey = new ConfigKey(configEntry, ConfigKey.ConfigElement.BUTTON,
131136
subConfigMenu, declaringConfigKey, configTranslation, configPath, field, handler);
132137
ConfigMenu subConfigMenuResult =
133-
parseMenuImpl(field.getType(), modContainer, subMenuPrefix,
138+
parseMenuImpl(fieldType, modContainer, subMenuPrefix,
134139
configKey, subMenuConfigKeys, configKeyHashMap, menuCache);
135140
if (subConfigMenuResult != subConfigMenu) {
136141
// This can happen if the menu was already cached, to avoid infinite loops
@@ -166,7 +171,12 @@ private ConfigStructure(Map<String, ConfigKey> configKeyMap, ConfigMenu rootConf
166171

167172
public void loadJsonConfig(JsonObject jsonObject, Object config) {
168173
this.cls.cast(config); // Verify input type
169-
174+
for (ConfigKey configKey : this.configKeyMap.values()) {
175+
JsonElement element = getElementJsonObject(jsonObject, configKey.path);
176+
if (element != null) {
177+
setElementConfigKey(config, configKey, element);
178+
}
179+
}
170180
}
171181

172182
public JsonObject saveJsonConfig(Object config) {
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.fox2code.foxloader.config;
2+
3+
/**
4+
* Used to tell the config API to ignore this object
5+
*/
6+
public interface NoConfigObject {}

common/src/main/java/com/fox2code/foxloader/loader/Mod.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@ public final ModContainer getModContainer() {
2222
* @param configObject to use for the config screen.
2323
*/
2424
protected final void setConfigObject(Object configObject) {
25-
this.getModContainer().configObject = configObject;
25+
this.getModContainer().setConfigObject(configObject);
2626
}
2727

2828
/**
2929
* @return Object to use for the config screen.
3030
*/
3131
public final Object getConfigObject() {
32-
return this.getModContainer().configObject;
32+
return this.getModContainer().getConfigObject();
3333
}
3434

3535
/**

common/src/main/java/com/fox2code/foxloader/loader/ModContainer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.fox2code.foxloader.loader;
22

33
import com.fox2code.foxloader.config.ConfigStructure;
4+
import com.fox2code.foxloader.config.NoConfigObject;
45
import com.fox2code.foxloader.launcher.FoxLauncher;
56
import com.fox2code.foxloader.launcher.utils.FastThreadLocal;
67
import com.fox2code.foxloader.loader.lua.LuaVMHelper;
@@ -36,6 +37,7 @@ public final class ModContainer {
3637
public final Logger logger;
3738
public final boolean unofficial;
3839
private final boolean injected;
40+
private Object configObject;
3941
String prePatch;
4042
Mod commonMod;
4143
String commonModCls;
@@ -46,7 +48,6 @@ public final class ModContainer {
4648
Mod clientMod;
4749
String clientModCls;
4850
String clientMixins;
49-
Object configObject;
5051

5152
ModContainer(File file, String id, String name, String version,
5253
String description, String jitpack, boolean unofficial) {
@@ -131,7 +132,7 @@ public String getFileName() {
131132

132133
void setConfigObject(Object configObject) {
133134
this.configObject = configObject;
134-
if (configObject != null) {
135+
if (configObject != null && !(configObject instanceof NoConfigObject)) {
135136
ConfigStructure configStructure = ConfigStructure.parseFromClass(configObject.getClass(), this);
136137
File configFileDestination = new File(ModLoader.config, this.id + ".json");
137138
if (configFileDestination.exists()) {
@@ -161,7 +162,7 @@ public Object getConfigObject() {
161162
}
162163

163164
public void saveModConfig() {
164-
if (this.configObject == null) return;
165+
if (this.configObject == null || this.configObject instanceof NoConfigObject) return;
165166
ConfigStructure configStructure = ConfigStructure.parseFromClass(this.configObject.getClass(), this);
166167
File configFileDestination = new File(ModLoader.config, this.id + ".json");
167168
try {

common/src/main/java/com/fox2code/foxloader/loader/ModLoader.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -115,13 +115,15 @@ static void initializeModdedInstance(boolean client) {
115115
(dir, name) -> name.endsWith(".lua")))) {
116116
loadModContainerFromLua(mod);
117117
}
118-
for (File mod : Objects.requireNonNull(modsVersioned.listFiles(
119-
(dir, name) -> name.endsWith(".jar")))) {
120-
loadModContainerFromJar(mod, false);
121-
}
122-
for (File mod : Objects.requireNonNull(modsVersioned.listFiles(
123-
(dir, name) -> name.endsWith(".lua")))) {
124-
loadModContainerFromLua(mod);
118+
if (modsVersioned.isDirectory()) {
119+
for (File mod : Objects.requireNonNull(modsVersioned.listFiles(
120+
(dir, name) -> name.endsWith(".jar")))) {
121+
loadModContainerFromJar(mod, false);
122+
}
123+
for (File mod : Objects.requireNonNull(modsVersioned.listFiles(
124+
(dir, name) -> name.endsWith(".lua")))) {
125+
loadModContainerFromLua(mod);
126+
}
125127
}
126128
}
127129
// Inject mod that the gradle dev plugin asked us to load
@@ -515,6 +517,7 @@ public static class Contributors {
515517
addContributor("a5adabf9-0c1f-4d03-855b-61e334cd96d7", "Fox2Code");
516518
addContributor("76982056-c381-46f6-ab25-2415e1e4d554", "kivattt");
517519
addContributor("898febf0-4bd0-4a77-892c-2b1cbf534830", "_Dereku");
520+
addContributor("66580d8e-19ad-4564-a8f1-448d021be321", "Chocohead");
518521
}
519522

520523
private static void addContributor(String uuid, String name) {

dev/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ configurations {
2424
dependencies {
2525
//compileOnly gradleApi()
2626
//compileOnly localGroovy()
27-
api 'com.fox2code:JFallback:0.0.1'
27+
api 'com.fox2code:JFallback:0.0.2'
2828
api 'com.google.code.gson:gson:2.10.1'
2929
api 'org.semver4j:semver4j:5.2.2'
3030
api 'org.ow2.asm:asm-commons:9.6'

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ org.gradle.parallel=true
33
org.gradle.jvmargs=-Xmx1024m -XX:-UseGCOverheadLimit -Dfile.encoding=UTF-8
44

55
# FoxLoader properties
6-
foxloader.version=1.2.40
6+
foxloader.version=1.2.41
77
foxloader.lastReIndevTransformerChanges=1.2.39
88
# https://www.jitpack.io/#com.fox2code/FoxLoader
99

0 commit comments

Comments
 (0)