diff --git a/build.gradle.kts b/build.gradle.kts index ae9cf24..6cc3b83 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -59,8 +59,7 @@ loom { } if (loader == "forge") { forge.mixinConfigs( - "template-common.mixins.json", - "template-forge.mixins.json", + "midnightlib.mixins.json", ) } } diff --git a/src/main/java/eu/midnightdust/core/MidnightLib.java b/src/main/java/eu/midnightdust/core/MidnightLib.java index a1daf61..09e1891 100644 --- a/src/main/java/eu/midnightdust/core/MidnightLib.java +++ b/src/main/java/eu/midnightdust/core/MidnightLib.java @@ -41,6 +41,25 @@ import net.neoforged.neoforge.event.RegisterCommandsEvent; import java.util.ConcurrentModificationException; +@Mod("midnightlib") +public class MidnightLib { +*///?} else if forge { +/*import java.util.ConcurrentModificationException; +import eu.midnightdust.lib.util.PlatformFunctions; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import net.minecraft.commands.CommandSourceStack; +import net.minecraftforge.client.ConfigScreenHandler; +import net.minecraftforge.event.RegisterCommandsEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.fml.DistExecutor; +import net.minecraftforge.fml.IExtensionPoint; +import net.minecraftforge.fml.ModLoadingContext; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.network.NetworkConstants; + @Mod("midnightlib") public class MidnightLib { *///?} @@ -126,4 +145,37 @@ public class MidnightLib { } } *///?} + + //? if forge { + /*public MidnightLib() { + ModLoadingContext.get().registerExtensionPoint(IExtensionPoint.DisplayTest.class, () -> new IExtensionPoint.DisplayTest(() -> NetworkConstants.IGNORESERVERONLY, (remote, server) -> true)); + if (PlatformFunctions.isClientEnv()) this.onInitializeClient(); + } + + public static List> commands = new ArrayList<>(); + + @Mod.EventBusSubscriber(modid = "midnightlib", bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) + public static class MidnightLibBusEvents { + @SubscribeEvent + public static void onPostInit(FMLClientSetupEvent event) { + ModList.get().forEachModContainer((modid, modContainer) -> { + if (MidnightConfig.configInstances.containsKey(modid) && !MidnightLib.hiddenMods.contains(modid)) { + modContainer.registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () -> new ConfigScreenHandler.ConfigScreenFactory((minecraftClient, screen) -> MidnightConfig.getScreen(screen, modid))); + } + }); + MidnightLib.registerAutoCommand(); + } + } + + @Mod.EventBusSubscriber(modid = "midnightlib") + public static class MidnightLibEvents { + @SubscribeEvent + public static void registerCommands(RegisterCommandsEvent event) { + try { + commands.forEach(command -> event.getDispatcher().register(command)); + } + catch (ConcurrentModificationException ignored) {} + } + } + *///?} } diff --git a/src/main/java/eu/midnightdust/core/config/MidnightLibConfig.java b/src/main/java/eu/midnightdust/core/config/MidnightLibConfig.java index 8be89a8..08e5a10 100644 --- a/src/main/java/eu/midnightdust/core/config/MidnightLibConfig.java +++ b/src/main/java/eu/midnightdust/core/config/MidnightLibConfig.java @@ -6,7 +6,7 @@ import eu.midnightdust.lib.util.PlatformFunctions; import java.util.Objects; public class MidnightLibConfig extends MidnightConfig { - public static final boolean HAS_MODMENU = PlatformFunctions.isModLoaded("modmenu") || Objects.equals(PlatformFunctions.getPlatformName(), "neoforge"); + public static final boolean HAS_MODMENU = PlatformFunctions.isModLoaded("modmenu") || !Objects.equals(PlatformFunctions.getPlatformName(), "fabric"); @Entry public static ConfigButton config_screen_list = HAS_MODMENU ? ConfigButton.MODMENU : ConfigButton.TRUE; diff --git a/src/main/java/eu/midnightdust/lib/util/PlatformFunctions.java b/src/main/java/eu/midnightdust/lib/util/PlatformFunctions.java index 2a36d01..04428c9 100644 --- a/src/main/java/eu/midnightdust/lib/util/PlatformFunctions.java +++ b/src/main/java/eu/midnightdust/lib/util/PlatformFunctions.java @@ -3,7 +3,11 @@ package eu.midnightdust.lib.util; import com.mojang.brigadier.builder.LiteralArgumentBuilder; import java.nio.file.Path; +import eu.midnightdust.core.MidnightLib; import net.minecraft.commands.CommandSourceStack; +import net.minecraftforge.fml.ModList; +import net.minecraftforge.fml.loading.FMLEnvironment; +import net.minecraftforge.fml.loading.FMLPaths; //? if fabric { import net.fabricmc.api.EnvType; @@ -55,6 +59,20 @@ public class PlatformFunctions { MidnightLib.commands.add(command); } *///?} else if forge { - // - //?} + /*public static String getPlatformName() { + return "forge"; + } + public static Path getConfigDirectory() { + return FMLPaths.CONFIGDIR.get(); + } + public static boolean isClientEnv() { + return FMLEnvironment.dist.isClient(); + } + public static boolean isModLoaded(String modid) { + return ModList.get().isLoaded(modid); + } + public static void registerCommand(LiteralArgumentBuilder command) { + MidnightLib.commands.add(command); + } + *///?} } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..35d3799 --- /dev/null +++ b/src/main/resources/META-INF/mods.toml @@ -0,0 +1,31 @@ +modLoader = "javafml" +loaderVersion = "[43,)" +#issueTrackerURL = "" +license = "MIT License" + +[[mods]] +modId = "midnightlib" +version = "${version}" +displayName = "${name}" +logoFile = "midnightlib.png" +authors = "TeamMidnightDust, Motschen" +description = ''' +Lightweight config library with config screens and commands. +''' + +[[mixins]] +config = "midnightlib.mixins.json" + +[[dependencies.midnightlib]] +modId = "forge" +mandatory = true +versionRange = "[43,)" +ordering = "NONE" +side = "BOTH" + +[[dependencies.midnightlib]] +modId = "minecraft" +mandatory = true +versionRange = "[1.20,)" +ordering = "NONE" +side = "BOTH" diff --git a/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/explorer.png b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/explorer.png new file mode 100644 index 0000000..d7f4311 Binary files /dev/null and b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/explorer.png differ diff --git a/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/midnightlib.png b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/midnightlib.png new file mode 100644 index 0000000..f76adb6 Binary files /dev/null and b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/midnightlib.png differ diff --git a/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/reset.png b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/reset.png new file mode 100644 index 0000000..c0f9aaa Binary files /dev/null and b/versions/1.20.1-forge/src/main/resources/assets/midnightlib/icon/reset.png differ diff --git a/versions/1.20.1-forge/src/main/resources/pack.mcmeta b/versions/1.20.1-forge/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..0a839a6 --- /dev/null +++ b/versions/1.20.1-forge/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "MidnightLib", + "pack_format": 9 + } +}