Skip to content

Commit 6026d9e

Browse files
committed
Add GuiConfigProviderConfigObject API.
1 parent 8d6db34 commit 6026d9e

File tree

5 files changed

+20
-6
lines changed

5 files changed

+20
-6
lines changed

loader/src/main/java/com/fox2code/foxloader/client/gui/GuiConfigProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@
2727
import net.minecraft.client.gui.GuiScreen;
2828

2929
@FunctionalInterface
30-
public interface GuiConfigProvider extends NoConfigObject {
30+
public interface GuiConfigProvider extends NoConfigObject, GuiConfigProviderConfigObject {
3131
GuiScreen provideConfigScreen(GuiScreen parent);
3232
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package com.fox2code.foxloader.client.gui;
2+
3+
import net.minecraft.client.gui.GuiScreen;
4+
5+
@FunctionalInterface
6+
public interface GuiConfigProviderConfigObject {
7+
GuiScreen provideConfigScreen(GuiScreen parent);
8+
}

loader/src/main/java/com/fox2code/foxloader/client/gui/GuiModConfig.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ protected void actionPerformed(GuiButton button) {
162162
configKey.callHandler(this.curInstance);
163163
Object instance = configKey.getField(this.curInstance);
164164
if (this.mc.currentScreen == this && instance != null) {
165-
if (instance instanceof GuiConfigProvider) {
166-
this.mc.displayGuiScreen(((GuiConfigProvider) instance)
165+
if (instance instanceof GuiConfigProviderConfigObject) {
166+
this.mc.displayGuiScreen(((GuiConfigProviderConfigObject) instance)
167167
.provideConfigScreen(this));
168168
} else if (instance instanceof GuiScreen) {
169169
this.mc.displayGuiScreen((GuiScreen) instance);

loader/src/main/java/com/fox2code/foxloader/client/gui/GuiModMenu.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ void updateActionButtons() {
154154
if (UpdateManager.getInstance().canUpdate(modContainer.getModId())) {
155155
this.addModButtonAction(ModActionButtonType.UPDATE);
156156
}
157-
if (configObject instanceof GuiConfigProvider ||
157+
if (configObject instanceof GuiConfigProviderConfigObject ||
158158
(configObject != null && !(configObject instanceof NoConfigObject))) {
159159
this.addModButtonAction(ModActionButtonType.CONFIGURE);
160160
}
@@ -236,9 +236,10 @@ void doAction(ModContainer modContainer, GuiModMenu guiModMenu) {
236236
@Override
237237
void doAction(ModContainer modContainer, GuiModMenu guiModMenu) {
238238
Object configObject = modContainer.getConfigObject();
239-
if (configObject instanceof GuiConfigProvider) {
239+
if (configObject instanceof GuiConfigProviderConfigObject) {
240240
Minecraft.getInstance().displayGuiScreen(
241-
((GuiConfigProvider) configObject).provideConfigScreen(guiModMenu));
241+
((GuiConfigProviderConfigObject) configObject)
242+
.provideConfigScreen(guiModMenu));
242243
} else if (!(configObject instanceof NoConfigObject)) {
243244
guiModMenu.openModConfigScreen(modContainer);
244245
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import com.fox2code.foxevents.Event;
2727
import com.fox2code.foxevents.EventCallback;
28+
import com.fox2code.foxloader.config.ConfigIO;
2829
import net.minecraft.common.networking.NetworkManager;
2930
import org.jetbrains.annotations.NotNull;
3031
import org.jetbrains.annotations.Nullable;
@@ -58,6 +59,10 @@ protected final void setConfigObject(@Nullable Object configObject) {
5859
return this.getModContainer().getConfigObject();
5960
}
6061

62+
public final void saveConfigObject() {
63+
ConfigIO.writeConfiguration(this.getModContainer(), this.getConfigObject());
64+
}
65+
6166
public void onPreInit() {}
6267

6368
public void onLatePreInit() {}

0 commit comments

Comments
 (0)