mirror of
https://github.com/TeamMidnightDust/MidnightLib.git
synced 2025-12-17 17:55:09 +01:00
Compare commits
4 Commits
72a403080c
...
architectu
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3db1c1eb23 | ||
|
|
c07c466398 | ||
|
|
16710282ba | ||
|
|
98859fbc28 |
@@ -3,8 +3,6 @@ package eu.midnightdust.core;
|
|||||||
import eu.midnightdust.core.config.MidnightLibConfig;
|
import eu.midnightdust.core.config.MidnightLibConfig;
|
||||||
import eu.midnightdust.lib.config.AutoCommand;
|
import eu.midnightdust.lib.config.AutoCommand;
|
||||||
import eu.midnightdust.lib.config.MidnightConfig;
|
import eu.midnightdust.lib.config.MidnightConfig;
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
import net.minecraft.util.Util;
|
import net.minecraft.util.Util;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -19,7 +17,6 @@ public class MidnightLib {
|
|||||||
public static final String MOD_ID = "midnightlib";
|
public static final String MOD_ID = "midnightlib";
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
|
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
public static void onInitializeClient() {
|
public static void onInitializeClient() {
|
||||||
try {
|
try {
|
||||||
if (Util.getOperatingSystem() != Util.OperatingSystem.OSX) {
|
if (Util.getOperatingSystem() != Util.OperatingSystem.OSX) {
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ package eu.midnightdust.core.screen;
|
|||||||
|
|
||||||
import eu.midnightdust.core.MidnightLib;
|
import eu.midnightdust.core.MidnightLib;
|
||||||
import eu.midnightdust.lib.config.MidnightConfig;
|
import eu.midnightdust.lib.config.MidnightConfig;
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.widget.ButtonWidget;
|
import net.minecraft.client.gui.widget.ButtonWidget;
|
||||||
@@ -17,7 +15,6 @@ import java.util.Objects;
|
|||||||
|
|
||||||
import eu.midnightdust.lib.config.MidnightConfigListWidget;
|
import eu.midnightdust.lib.config.MidnightConfigListWidget;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
public class MidnightConfigOverviewScreen extends Screen {
|
public class MidnightConfigOverviewScreen extends Screen {
|
||||||
|
|
||||||
public MidnightConfigOverviewScreen(Screen parent) {
|
public MidnightConfigOverviewScreen(Screen parent) {
|
||||||
|
|||||||
@@ -16,12 +16,12 @@ public class EntryInfo {
|
|||||||
public MidnightConfig.Condition[] conditions;
|
public MidnightConfig.Condition[] conditions;
|
||||||
public final Field field;
|
public final Field field;
|
||||||
public final Class<?> dataType;
|
public final Class<?> dataType;
|
||||||
public final String modid, fieldName;
|
public final String modid, fieldName, translationKey;
|
||||||
int listIndex;
|
int listIndex;
|
||||||
Object defaultValue, value, function;
|
Object defaultValue, value, function;
|
||||||
String tempValue; // The value visible in the config screen
|
String tempValue; // The value visible in the config screen
|
||||||
boolean inLimits = true;
|
boolean inLimits = true;
|
||||||
Text name, error;
|
Text error;
|
||||||
ClickableWidget actionButton; // color picker button / explorer button
|
ClickableWidget actionButton; // color picker button / explorer button
|
||||||
Tab tab;
|
Tab tab;
|
||||||
boolean conditionsMet = true;
|
boolean conditionsMet = true;
|
||||||
@@ -41,9 +41,10 @@ public class EntryInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (entry != null && !entry.name().isEmpty())
|
if (entry != null && !entry.name().isEmpty())
|
||||||
this.name = Text.translatable(entry.name());
|
this.translationKey = entry.name();
|
||||||
else if (comment != null && !comment.name().isEmpty())
|
else if (comment != null && !comment.name().isEmpty())
|
||||||
this.name = Text.translatable(comment.name());
|
this.translationKey = comment.name();
|
||||||
|
else this.translationKey = modid + ".midnightconfig." + fieldName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setValue(Object value) {
|
public void setValue(Object value) {
|
||||||
@@ -97,7 +98,7 @@ public class EntryInfo {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Tooltip getTooltip(boolean isButton) {
|
public Tooltip getTooltip(boolean isButton) {
|
||||||
String key = this.modid + ".midnightconfig." + this.fieldName + (!isButton ? ".label" : "") + ".tooltip";
|
String key = translationKey + (!isButton ? ".label" : "") + ".tooltip";
|
||||||
return Tooltip.of(isButton && this.error != null ? this.error : I18n.hasTranslation(key) ? Text.translatable(key) : Text.empty());
|
return Tooltip.of(isButton && this.error != null ? this.error : I18n.hasTranslation(key) ? Text.translatable(key) : Text.empty());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,6 @@ package eu.midnightdust.lib.config;
|
|||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import com.google.gson.stream.*;
|
import com.google.gson.stream.*;
|
||||||
import eu.midnightdust.lib.util.PlatformFunctions;
|
import eu.midnightdust.lib.util.PlatformFunctions;
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.widget.*;
|
import net.minecraft.client.gui.widget.*;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
@@ -39,7 +37,7 @@ public abstract class MidnightConfig {
|
|||||||
private static final Pattern DECIMAL_ONLY = Pattern.compile("-?(\\d+\\.?\\d*|\\d*\\.?\\d+|\\.)");
|
private static final Pattern DECIMAL_ONLY = Pattern.compile("-?(\\d+\\.?\\d*|\\d*\\.?\\d+|\\.)");
|
||||||
private static final Pattern HEXADECIMAL_ONLY = Pattern.compile("(-?[#0-9a-fA-F]*)");
|
private static final Pattern HEXADECIMAL_ONLY = Pattern.compile("(-?[#0-9a-fA-F]*)");
|
||||||
private static final Gson gson = new GsonBuilder()
|
private static final Gson gson = new GsonBuilder()
|
||||||
.excludeFieldsWithModifiers(Modifier.TRANSIENT).excludeFieldsWithModifiers(Modifier.PRIVATE)
|
.excludeFieldsWithModifiers(Modifier.TRANSIENT).excludeFieldsWithModifiers(Modifier.PRIVATE).excludeFieldsWithModifiers(Modifier.FINAL)
|
||||||
.addSerializationExclusionStrategy(new ExclusionStrategy() {
|
.addSerializationExclusionStrategy(new ExclusionStrategy() {
|
||||||
public boolean shouldSkipClass(Class<?> clazz) { return false; }
|
public boolean shouldSkipClass(Class<?> clazz) { return false; }
|
||||||
public boolean shouldSkipField(FieldAttributes fieldAttributes) { return fieldAttributes.getAnnotation(Entry.class) == null; }
|
public boolean shouldSkipField(FieldAttributes fieldAttributes) { return fieldAttributes.getAnnotation(Entry.class) == null; }
|
||||||
@@ -72,18 +70,16 @@ public abstract class MidnightConfig {
|
|||||||
MidnightConfig instance = createInstance(modid, config);
|
MidnightConfig instance = createInstance(modid, config);
|
||||||
|
|
||||||
for (Field field : config.getFields()) {
|
for (Field field : config.getFields()) {
|
||||||
EntryInfo info = new EntryInfo(field, modid);
|
|
||||||
//noinspection ConstantValue
|
//noinspection ConstantValue
|
||||||
if ((field.isAnnotationPresent(Entry.class) || field.isAnnotationPresent(Comment.class))
|
if ((field.isAnnotationPresent(Entry.class) || field.isAnnotationPresent(Comment.class))
|
||||||
&& !field.isAnnotationPresent(Server.class)
|
&& !field.isAnnotationPresent(Server.class)
|
||||||
&& !field.isAnnotationPresent(Hidden.class)
|
&& !field.isAnnotationPresent(Hidden.class)
|
||||||
&& PlatformFunctions.isClientEnv())
|
&& PlatformFunctions.isClientEnv())
|
||||||
instance.addClientEntry(field, info);
|
instance.addClientEntry(field, new EntryInfo(field, modid));
|
||||||
}
|
}
|
||||||
instance.loadValuesFromJson();
|
instance.loadValuesFromJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
public void addClientEntry(Field field, EntryInfo info) {
|
public void addClientEntry(Field field, EntryInfo info) {
|
||||||
Entry e = info.entry;
|
Entry e = info.entry;
|
||||||
if (e != null && info.dataType != null) {
|
if (e != null && info.dataType != null) {
|
||||||
@@ -215,12 +211,10 @@ public abstract class MidnightConfig {
|
|||||||
public void onTabInit(String tabName, MidnightConfigListWidget list, MidnightConfigScreen screen) {
|
public void onTabInit(String tabName, MidnightConfigListWidget list, MidnightConfigScreen screen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
public static MidnightConfigScreen getScreen(Screen parent, String modid) {
|
||||||
public static Screen getScreen(Screen parent, String modid) {
|
|
||||||
return configInstances.get(modid).getScreen(parent);
|
return configInstances.get(modid).getScreen(parent);
|
||||||
}
|
}
|
||||||
@Environment(EnvType.CLIENT)
|
public MidnightConfigScreen getScreen(Screen parent) {
|
||||||
public Screen getScreen(Screen parent) {
|
|
||||||
return new MidnightConfigScreen(parent, modid);
|
return new MidnightConfigScreen(parent, modid);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
package eu.midnightdust.lib.config;
|
package eu.midnightdust.lib.config;
|
||||||
|
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.gl.RenderPipelines;
|
import net.minecraft.client.gl.RenderPipelines;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
@@ -12,7 +10,6 @@ import net.minecraft.text.Text;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
public class MidnightConfigListWidget extends ElementListWidget<ButtonEntry> {
|
public class MidnightConfigListWidget extends ElementListWidget<ButtonEntry> {
|
||||||
public boolean renderHeaderSeparator = true;
|
public boolean renderHeaderSeparator = true;
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package eu.midnightdust.lib.config;
|
package eu.midnightdust.lib.config;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import net.fabricmc.api.EnvType;
|
|
||||||
import net.fabricmc.api.Environment;
|
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.gui.tab.GridScreenTab;
|
import net.minecraft.client.gui.tab.GridScreenTab;
|
||||||
import net.minecraft.client.gui.tab.Tab;
|
import net.minecraft.client.gui.tab.Tab;
|
||||||
import net.minecraft.client.gui.tab.TabManager;
|
import net.minecraft.client.gui.tab.TabManager;
|
||||||
|
import net.minecraft.client.gui.tooltip.Tooltip;
|
||||||
import net.minecraft.client.gui.widget.*;
|
import net.minecraft.client.gui.widget.*;
|
||||||
import net.minecraft.client.input.KeyInput;
|
import net.minecraft.client.input.KeyInput;
|
||||||
import net.minecraft.client.resource.language.I18n;
|
import net.minecraft.client.resource.language.I18n;
|
||||||
@@ -28,7 +27,6 @@ import java.util.function.BiFunction;
|
|||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.function.Predicate;
|
import java.util.function.Predicate;
|
||||||
|
|
||||||
@Environment(EnvType.CLIENT)
|
|
||||||
public class MidnightConfigScreen extends Screen {
|
public class MidnightConfigScreen extends Screen {
|
||||||
public MidnightConfig instance;
|
public MidnightConfig instance;
|
||||||
public final String translationPrefix, modid;
|
public final String translationPrefix, modid;
|
||||||
@@ -77,7 +75,7 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
}
|
}
|
||||||
scrollProgress = list.getScrollY();
|
scrollProgress = list.getScrollY();
|
||||||
for (EntryInfo info : MidnightConfig.entries.values())
|
for (EntryInfo info : MidnightConfig.entries.values())
|
||||||
info.updateFieldValue();
|
if (Objects.equals(modid, info.modid)) info.updateFieldValue();
|
||||||
updateButtons();
|
updateButtons();
|
||||||
if (instance.reloadScreen) {
|
if (instance.reloadScreen) {
|
||||||
updateList();
|
updateList();
|
||||||
@@ -156,7 +154,6 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
if (!visibleButLocked) continue;
|
if (!visibleButLocked) continue;
|
||||||
}
|
}
|
||||||
if (info.modid.equals(modid) && (info.tab == null || info.tab == tabManager.getCurrentTab())) {
|
if (info.modid.equals(modid) && (info.tab == null || info.tab == tabManager.getCurrentTab())) {
|
||||||
Text name = Objects.requireNonNullElseGet(info.name, () -> Text.translatable(translationPrefix + info.fieldName));
|
|
||||||
TextIconButtonWidget resetButton = TextIconButtonWidget.builder(Text.translatable("controls.reset"), (button -> {
|
TextIconButtonWidget resetButton = TextIconButtonWidget.builder(Text.translatable("controls.reset"), (button -> {
|
||||||
info.value = info.defaultValue;
|
info.value = info.defaultValue;
|
||||||
info.listIndex = 0;
|
info.listIndex = 0;
|
||||||
@@ -195,7 +192,7 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
info.listIndex = info.listIndex != values.size() ? info.listIndex + 1 : 0;
|
info.listIndex = info.listIndex != values.size() ? info.listIndex + 1 : 0;
|
||||||
info.tempValue = info.listIndex != values.size() ? info.toTemporaryValue() : "";
|
info.tempValue = info.listIndex != values.size() ? info.toTemporaryValue() : "";
|
||||||
updateList();
|
updateList();
|
||||||
})).dimensions(width - 185, 0, 20, 20).build();
|
})).dimensions(width - 185, 0, 20, 20).tooltip(Tooltip.of(Text.translatable("midnightconfig.action.list_index", info.listIndex))).build();
|
||||||
}
|
}
|
||||||
if (e.isColor()) {
|
if (e.isColor()) {
|
||||||
ButtonWidget colorButton = ButtonWidget.builder(Text.literal("⬛"),
|
ButtonWidget colorButton = ButtonWidget.builder(Text.literal("⬛"),
|
||||||
@@ -206,7 +203,7 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
updateList();
|
updateList();
|
||||||
}
|
}
|
||||||
}).start()
|
}).start()
|
||||||
).dimensions(width - 185, 0, 20, 20).build();
|
).dimensions(width - 185, 0, 20, 20).tooltip(Tooltip.of(Text.translatable("midnightconfig.action.color_chooser"))).build();
|
||||||
try {
|
try {
|
||||||
colorButton.setMessage(Text.literal("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB())));
|
colorButton.setMessage(Text.literal("⬛").setStyle(Style.EMPTY.withColor(Color.decode(info.tempValue).getRGB())));
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
@@ -228,6 +225,7 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
}
|
}
|
||||||
}).start(), true
|
}).start(), true
|
||||||
).texture(Identifier.of("midnightlib", "icon/explorer"), 12, 12).dimension(20, 20).build();
|
).texture(Identifier.of("midnightlib", "icon/explorer"), 12, 12).dimension(20, 20).build();
|
||||||
|
explorerButton.setTooltip(Tooltip.of(Text.translatable("midnightconfig.action.file_chooser")));
|
||||||
explorerButton.setPosition(width - 185, 0);
|
explorerButton.setPosition(width - 185, 0);
|
||||||
info.actionButton = explorerButton;
|
info.actionButton = explorerButton;
|
||||||
}
|
}
|
||||||
@@ -246,8 +244,8 @@ public class MidnightConfigScreen extends Screen {
|
|||||||
widgets.add(cycleButton);
|
widgets.add(cycleButton);
|
||||||
}
|
}
|
||||||
if (!info.conditionsMet) widgets.forEach(w -> w.active = false);
|
if (!info.conditionsMet) widgets.forEach(w -> w.active = false);
|
||||||
this.list.addButton(widgets, name, info);
|
this.list.addButton(widgets, Text.translatable(info.translationKey), info);
|
||||||
} else this.list.addButton(List.of(), name, info);
|
} else this.list.addButton(List.of(), Text.translatable(info.translationKey), info);
|
||||||
}
|
}
|
||||||
list.setScrollY(scrollProgress);
|
list.setScrollY(scrollProgress);
|
||||||
updateButtons();
|
updateButtons();
|
||||||
|
|||||||
@@ -3,5 +3,8 @@
|
|||||||
"midnightlib.midnightconfig.title":"MidnightLib Konfiguration",
|
"midnightlib.midnightconfig.title":"MidnightLib Konfiguration",
|
||||||
"midnightlib.midnightconfig.config_screen_list":"Konfigurationsübersicht",
|
"midnightlib.midnightconfig.config_screen_list":"Konfigurationsübersicht",
|
||||||
"modmenu.summaryTranslation.midnightlib": "Code-Bibliothek für einfache Konfiguration.",
|
"modmenu.summaryTranslation.midnightlib": "Code-Bibliothek für einfache Konfiguration.",
|
||||||
"midnightconfig.colorChooser.title": "Wähle eine Farbe"
|
"midnightconfig.colorChooser.title": "Wähle eine Farbe",
|
||||||
|
"midnightconfig.action.list_index": "Bearbeite Liste an Index %s",
|
||||||
|
"midnightconfig.action.color_chooser": "Öffne Farbauswahl",
|
||||||
|
"midnightconfig.action.file_chooser": "Öffne Dateiauswahl"
|
||||||
}
|
}
|
||||||
@@ -9,5 +9,8 @@
|
|||||||
"midnightlib.curseforge":"CurseForge",
|
"midnightlib.curseforge":"CurseForge",
|
||||||
"midnightlib.wiki":"Wiki",
|
"midnightlib.wiki":"Wiki",
|
||||||
"modmenu.summaryTranslation.midnightlib": "Common Library for easy configuration.",
|
"modmenu.summaryTranslation.midnightlib": "Common Library for easy configuration.",
|
||||||
"midnightconfig.colorChooser.title": "Choose a color"
|
"midnightconfig.colorChooser.title": "Choose a color",
|
||||||
|
"midnightconfig.action.list_index": "Editing list at index %s",
|
||||||
|
"midnightconfig.action.color_chooser": "Open color chooser",
|
||||||
|
"midnightconfig.action.file_chooser": "Open file chooser"
|
||||||
}
|
}
|
||||||
@@ -31,6 +31,11 @@ loom {
|
|||||||
configName = "Test Minecraft Client"
|
configName = "Test Minecraft Client"
|
||||||
source sourceSets.test
|
source sourceSets.test
|
||||||
}
|
}
|
||||||
|
testServer {
|
||||||
|
server()
|
||||||
|
configName = "Test Minecraft Server"
|
||||||
|
source sourceSets.test
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
package eu.midnightdust.fabric.core;
|
package eu.midnightdust.fabric.core;
|
||||||
|
|
||||||
import eu.midnightdust.core.MidnightLib;
|
import eu.midnightdust.core.MidnightLib;
|
||||||
import net.fabricmc.api.*;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
|
import net.fabricmc.api.DedicatedServerModInitializer;
|
||||||
|
|
||||||
public class MidnightLibFabric implements DedicatedServerModInitializer, ClientModInitializer {
|
public class MidnightLibFabric implements DedicatedServerModInitializer, ClientModInitializer {
|
||||||
@Override @Environment(EnvType.CLIENT)
|
@Override
|
||||||
public void onInitializeClient() {
|
public void onInitializeClient() {
|
||||||
MidnightLib.onInitializeClient();
|
MidnightLib.onInitializeClient();
|
||||||
MidnightLib.registerAutoCommand();
|
MidnightLib.registerAutoCommand();
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
org.gradle.jvmargs=-Xmx3172M
|
org.gradle.jvmargs=-Xmx3172M
|
||||||
|
|
||||||
minecraft_version=1.21.9-rc1
|
minecraft_version=1.21.9
|
||||||
supported_versions=
|
supported_versions=
|
||||||
yarn_mappings=1.21.9-rc1+build.2
|
yarn_mappings=1.21.9+build.1
|
||||||
enabled_platforms=fabric,neoforge
|
enabled_platforms=fabric,neoforge
|
||||||
|
|
||||||
archives_base_name=midnightlib
|
archives_base_name=midnightlib
|
||||||
mod_version=1.8.0
|
mod_version=1.8.3
|
||||||
maven_group=eu.midnightdust
|
maven_group=eu.midnightdust
|
||||||
release_type=release
|
release_type=release
|
||||||
curseforge_id=488090
|
curseforge_id=488090
|
||||||
modrinth_id=codAaoxh
|
modrinth_id=codAaoxh
|
||||||
|
|
||||||
fabric_loader_version=0.17.2
|
fabric_loader_version=0.17.2
|
||||||
fabric_api_version=0.133.13+1.21.9
|
fabric_api_version=0.133.14+1.21.9
|
||||||
|
|
||||||
neoforge_version=21.6.0-beta
|
neoforge_version=21.9.9-beta
|
||||||
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
yarn_mappings_patch_neoforge_version = 1.21+build.4
|
||||||
|
|
||||||
mod_menu_version = 9.0.0
|
mod_menu_version = 9.0.0
|
||||||
@@ -39,6 +39,20 @@ loom {
|
|||||||
client()
|
client()
|
||||||
name = "Test Minecraft Client"
|
name = "Test Minecraft Client"
|
||||||
|
|
||||||
|
mods {
|
||||||
|
create('midnightlib') {
|
||||||
|
sourceSet sourceSets.main
|
||||||
|
}
|
||||||
|
create('modid') { // test mod
|
||||||
|
sourceSet sourceSets.test
|
||||||
|
}
|
||||||
|
}
|
||||||
|
source sourceSets.test
|
||||||
|
}
|
||||||
|
testServer {
|
||||||
|
server()
|
||||||
|
name = "Test Minecraft Server"
|
||||||
|
|
||||||
mods {
|
mods {
|
||||||
create('midnightlib') {
|
create('midnightlib') {
|
||||||
sourceSet sourceSets.main
|
sourceSet sourceSets.main
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ public class PlatformFunctionsImpl {
|
|||||||
return FMLPaths.CONFIGDIR.get();
|
return FMLPaths.CONFIGDIR.get();
|
||||||
}
|
}
|
||||||
public static boolean isClientEnv() {
|
public static boolean isClientEnv() {
|
||||||
return FMLEnvironment.dist.isClient();
|
return FMLEnvironment.getDist().isClient();
|
||||||
}
|
}
|
||||||
public static boolean isModLoaded(String modid) {
|
public static boolean isModLoaded(String modid) {
|
||||||
return ModList.get().isLoaded(modid);
|
return ModList.get().isLoaded(modid);
|
||||||
|
|||||||
@@ -23,15 +23,15 @@ public class MidnightLibNeoForge {
|
|||||||
public static List<LiteralArgumentBuilder<ServerCommandSource>> commands = new ArrayList<>();
|
public static List<LiteralArgumentBuilder<ServerCommandSource>> commands = new ArrayList<>();
|
||||||
|
|
||||||
public MidnightLibNeoForge() {
|
public MidnightLibNeoForge() {
|
||||||
if (FMLEnvironment.dist == Dist.CLIENT) MidnightLib.onInitializeClient();
|
if (FMLEnvironment.getDist() == Dist.CLIENT) MidnightLib.onInitializeClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventBusSubscriber(modid = "midnightlib", bus = EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
|
@EventBusSubscriber(modid = "midnightlib", value = Dist.CLIENT)
|
||||||
public static class MidnightLibBusEvents {
|
public static class MidnightLibBusEvents {
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onPostInit(FMLClientSetupEvent event) {
|
public static void onPostInit(FMLClientSetupEvent event) {
|
||||||
ModList.get().forEachModContainer((modid, modContainer) -> {
|
ModList.get().forEachModContainer((modid, modContainer) -> {
|
||||||
if (MidnightConfig.configClass.containsKey(modid) && !MidnightLib.hiddenMods.contains(modid)) {
|
if (MidnightConfig.configInstances.containsKey(modid) && !MidnightLib.hiddenMods.contains(modid)) {
|
||||||
modContainer.registerExtensionPoint(IConfigScreenFactory.class, (minecraftClient, screen) -> MidnightConfig.getScreen(screen, modid));
|
modContainer.registerExtensionPoint(IConfigScreenFactory.class, (minecraftClient, screen) -> MidnightConfig.getScreen(screen, modid));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ pluginManagement {
|
|||||||
|
|
||||||
include("common")
|
include("common")
|
||||||
include("fabric")
|
include("fabric")
|
||||||
//include("neoforge")
|
include("neoforge")
|
||||||
//include("quilt")
|
//include("quilt")
|
||||||
|
|
||||||
rootProject.name = "midnightlib"
|
rootProject.name = "midnightlib"
|
||||||
Reference in New Issue
Block a user