Skip to content

Commit 600b164

Browse files
authored
fix: Config screens registered for mods without a config that implement ModMenuApi (#944)
* API Change: ModMenuApi#getModConfigScreenFactory default now returns null * Only insert non-null factories into configScreenFactories
1 parent 8e124f1 commit 600b164

2 files changed

Lines changed: 6 additions & 4 deletions

File tree

src/main/java/com/terraformersmc/modmenu/ModMenu.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,9 @@ public void onInitializeClient() {
103103
String modId = metadata.getId();
104104
try {
105105
ModMenuApi api = entrypoint.getEntrypoint();
106-
configScreenFactories.put(modId, api.getModConfigScreenFactory());
107-
apiImplementations.add(api);
106+
var factory = api.getModConfigScreenFactory();
107+
if (factory != null) configScreenFactories.put(modId, factory);
108+
apiImplementations.add(api);
108109
updateCheckers.put(modId, api.getUpdateChecker());
109110
providedUpdateCheckers.putAll(api.getProvidedUpdateCheckers());
110111
api.attachModpackBadges(modpackMods::add);

src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.terraformersmc.modmenu.ModMenu;
44
import com.terraformersmc.modmenu.gui.ModsScreen;
5+
import org.jetbrains.annotations.Nullable;
56
import net.minecraft.client.gui.screen.Screen;
67
import net.minecraft.text.Text;
78

@@ -37,8 +38,8 @@ static Text createModsButtonText() {
3738
*
3839
* @return A factory for constructing config screen instances.
3940
*/
40-
default ConfigScreenFactory<?> getModConfigScreenFactory() {
41-
return screen -> null;
41+
default @Nullable ConfigScreenFactory<?> getModConfigScreenFactory() {
42+
return null;
4243
}
4344

4445
/**

0 commit comments

Comments
 (0)