Skip to content

Commit

Permalink
im not sure if this even works
Browse files Browse the repository at this point in the history
  • Loading branch information
not-coded committed Nov 1, 2024
1 parent dd7ff85 commit 5422cec
Show file tree
Hide file tree
Showing 17 changed files with 290 additions and 26 deletions.
64 changes: 53 additions & 11 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
plugins {
id("fabric-loom") version "1.8-SNAPSHOT"
id("dev.architectury.loom") version "1.7.+"
id("com.modrinth.minotaur") version "2.+"
}

val modName = property("mod.name").toString()
version = "${property("mod.version")}" + "+" + "${property("mod.version_name")}"
group = property("mod.maven_group").toString()

val loader = loom.platform.get().name.lowercase()
val isFabric = loader == "fabric"
val isForge = loader == "forge"
val isNeoForge = loader == "neoforge"

stonecutter.const("fabric", isFabric)
stonecutter.const("forge", isForge)
stonecutter.const("neoforge", isNeoForge)

base {
archivesName.set(modName)
Expand All @@ -15,17 +23,35 @@ base {
repositories {
maven("https://maven.shedaniel.me/")
maven("https://maven.terraformersmc.com/releases/")
maven("https://maven.neoforged.net/releases")
maven("https://maven.minecraftforge.net")
}

dependencies {
minecraft("com.mojang:minecraft:${property("deps.minecraft")}")
mappings("net.fabricmc:yarn:${property("deps.yarn_mappings")}:v2")
modImplementation("net.fabricmc:fabric-loader:${property("deps.fabric_loader")}")

modImplementation("me.shedaniel.cloth:cloth-config-fabric:${property("deps.cloth_config_version")}")
modImplementation("com.terraformersmc:modmenu:${property("deps.mod_menu_version")}")
if(isFabric || isForge) {
mappings("net.fabricmc:yarn:${property("deps.yarn_mappings")}:v2")
}

implementation("org.lwjgl:lwjgl-glfw:3.3.2")

if(isFabric) {
modImplementation("net.fabricmc:fabric-loader:${property("deps.fabric_loader")}")

modImplementation("me.shedaniel.cloth:cloth-config-fabric:${property("deps.cloth_config_version")}")
modImplementation("com.terraformersmc:modmenu:${property("deps.mod_menu_version")}")
} else if (isForge) {
"forge"("net.minecraftforge:forge:${property("deps.minecraft")}-${property("deps.forge_loader")}")
implementation("me.shedaniel.cloth:cloth-config-forge:${property("deps.cloth_config_version")}")

} else if(isNeoForge) {
mappings("dev.architectury:yarn-mappings-patch-neoforge:${property("deps.neoforge_patch")}")

"neoForge"("net.neoforged:neoforge:${property("deps.neoforge_loader")}")
implementation("me.shedaniel.cloth:cloth-config-neoforge:${property("deps.cloth_config_version")}")

}

}

loom {
Expand All @@ -35,11 +61,16 @@ loom {
}
}

/*
runConfigs.all {
ideConfigGenerated(true)
ideConfigGenerated(stonecutter.current.isActive)
vmArgs("-Dmixin.debug.export=true")
runDir = "../../run"
}
runConfigs.remove(runConfigs["server"])
*/
}

val target = ">=${property("mod.min_target")}- <=${property("mod.max_target")}"
Expand All @@ -51,8 +82,19 @@ tasks.processResources {
"javaVersion" to project.property("deps.java")
)

filesMatching("fabric.mod.json") {
expand(expandProps)
if (isFabric) {
filesMatching("fabric.mod.json") { expand(expandProps) }
exclude("META-INF/mods.toml", "META-INF/neoforge.mods.toml", "pack.mcmeta")
}

if(isForge) {
filesMatching("META-INF/mods.toml") { expand(expandProps) }
exclude("fabric.mod.json", "META-INF/neoforge.mods.toml")
}

if (isNeoForge) {
filesMatching("META-INF/neoforge.mods.toml") { expand(expandProps) }
exclude("fabric.mod.json", "META-INF/mods.toml")
}

inputs.properties(expandProps)
Expand Down Expand Up @@ -83,12 +125,12 @@ modrinth {
versionType.set("release")
uploadFile.set(tasks.remapJar)
gameVersions.addAll(property("publishing.supported_versions").toString().split(","))
loaders.addAll("fabric", "quilt")
loaders.addAll("fabric", "quilt") // TODO: modify for forge and neoforge
//featured = true

dependencies {
required.project("cloth-config")
optional.project("modmenu")
optional.project("modmenu") // TODO: modify for forge and neoforge
}

val changes = rootProject.file("CHANGES.md").readText()
Expand Down
20 changes: 16 additions & 4 deletions settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
pluginManagement {
repositories {
maven("https://maven.fabricmc.net/")
maven("https://maven.architectury.dev")
maven("https://maven.neoforged.net/releases/")
maven("https://maven.minecraftforge.net")

gradlePluginPortal()
maven("https://maven.kikugie.dev/snapshots")
Expand All @@ -12,14 +15,23 @@ plugins {
}

stonecutter {
kotlinController = true
kotlinController= true
centralScript = "build.gradle.kts"

shared {
versions("1.16.5", "1.19", "1.19.3", "1.20.6")
vcsVersion = "1.19.3"
}
fun mc(mcVersion: String, loaders: Iterable<String>) {
for (loader in loaders) {
vers("$mcVersion-$loader", mcVersion)
}
}

mc("1.16.5", listOf("fabric", "forge"))
mc("1.19", listOf("fabric", "forge"))
mc("1.19.3", listOf("fabric", "forge"))
mc("1.20.6", listOf("fabric", "forge"/*, "neoforge"*/))

vcsVersion = ("1.20.6-fabric")
}
create(rootProject)
}

Expand Down
47 changes: 42 additions & 5 deletions src/main/java/net/notcoded/wayfix/WayFix.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,53 @@

import me.shedaniel.autoconfig.AutoConfig;
import me.shedaniel.autoconfig.serializer.GsonConfigSerializer;
import net.fabricmc.api.ClientModInitializer;
import net.notcoded.wayfix.config.ModConfig;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.glfw.GLFW;
import net.notcoded.wayfix.config.ModConfig;
//? if fabric {
import net.fabricmc.api.ClientModInitializer;
//?} elif forge {
/*
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.fml.ModLoadingContext;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.client.ConfigScreenHandler;
*///?} elif neoforge {
/*
import net.neoforged.api.distmarker.Dist;
import net.neoforged.fml.ModLoadingContext;
import net.neoforged.fml.common.Mod;
import net.neoforged.neoforge.client.gui.IConfigScreenFactory;
*///?}

public class WayFix implements ClientModInitializer {
//? if forge || neoforge
//@Mod(value = "wayfix"/*? if neoforge {*/, dist = Dist.CLIENT/*?}*/)
public class WayFix /*? if fabric {*/ implements ClientModInitializer /*?}*/ {
public static final Logger LOGGER = LogManager.getLogger(WayFix.class);
public static ModConfig config;

//? if fabric {
@Override
public void onInitializeClient() {
AutoConfig.register(ModConfig.class, GsonConfigSerializer::new);
WayFix.config = AutoConfig.getConfigHolder(ModConfig.class).getConfig();
registerConfig();
}
//?}

//? if forge || neoforge {
/*public WayFix() {
registerConfig();
//? if neoforge
////ModLoadingContext.get().registerExtensionPoint(IConfigScreenFactory.class, () -> (client, parent) -> AutoConfig.getConfigScreen(ModConfig.class, parent).get());
//? if forge
////ModLoadingContext.get().registerExtensionPoint(ConfigScreenHandler.ConfigScreenFactory.class, () ->
// new ConfigScreenHandler.ConfigScreenFactory(
// (mc, screen) -> AutoConfig.getConfigScreen(ModConfig.class, parent).get()
// )
//);
}
*///?}

public static boolean isWayland() {
try {
Expand All @@ -35,4 +67,9 @@ public static boolean supportsWayland() {
return false;
}
}

private void registerConfig() {
AutoConfig.register(ModConfig.class, GsonConfigSerializer::new);
WayFix.config = AutoConfig.getConfigHolder(ModConfig.class).getConfig();
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package net.notcoded.wayfix.config;

//? if fabric {
import com.terraformersmc.modmenu.api.ConfigScreenFactory;
import com.terraformersmc.modmenu.api.ModMenuApi;
import me.shedaniel.autoconfig.AutoConfig;
Expand All @@ -10,3 +11,4 @@ public ConfigScreenFactory<?> getModConfigScreenFactory() {
return parent -> AutoConfig.getConfigScreen(ModConfig.class, parent).get();
}
}
//?}
44 changes: 44 additions & 0 deletions src/main/resources/META-INF/mods.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
modLoader = "javafml"
loaderVersion = "*"
issueTrackerURL = "https://github.com/not-coded/WayFix/issues"
license = "LGPL-2.1"

[[mods]]
modId = "wayfix"
version = "${version}"
displayName = "WayFix"
authors = "NotCoded"
description = "Fixes multiple issues regarding Wayland compatibility for Minecraft."
logoFile = "assets/wayfix/icon.png"
logoBlur = false

[["dependencies.wayfix"]]
modId = "neoforge"
type = "required"
versionRange = "[${forgeConstraint}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "minecraft"
type = "required"
versionRange = "${minecraftVersion}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "java"
type = "required"
versionRange = "${javaVersion}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "cloth-config"
type = "required"
versionRange = ">=4.9.0"
ordering = "NONE"
side = "CLIENT"

[[mixins]]
config = "wayfix.mixins.json"
44 changes: 44 additions & 0 deletions src/main/resources/META-INF/neoforge.mods.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
modLoader = "javafml"
loaderVersion = "*"
issueTrackerURL = "https://github.com/not-coded/WayFix/issues"
license = "LGPL-2.1"

[[mods]]
modId = "wayfix"
version = "${version}"
displayName = "WayFix"
authors = "NotCoded"
description = "Fixes multiple issues regarding Wayland compatibility for Minecraft."
logoFile = "assets/wayfix/icon.png"
logoBlur = false

[["dependencies.wayfix"]]
modId = "neoforge"
type = "required"
versionRange = "[${forgeConstraint}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "minecraft"
type = "required"
versionRange = "${minecraftVersion}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "java"
type = "required"
versionRange = "${javaVersion}"
ordering = "NONE"
side = "CLIENT"

[["dependencies.wayfix"]]
modId = "cloth-config"
type = "required"
versionRange = ">=4.9.0"
ordering = "NONE"
side = "CLIENT"

[[mixins]]
config = "wayfix.mixins.json"
7 changes: 7 additions & 0 deletions src/main/resources/pack.mcmeta
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"pack": {
"description": "WayFix: Fixes multiple issues regarding Wayland compatibility for Minecraft.",
"forge:server_data_pack_format": 15,
"pack_format": 15
}
}
2 changes: 1 addition & 1 deletion stonecutter.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
plugins {
id("dev.kikugie.stonecutter")
}
stonecutter active "1.20.6" /* [SC] DO NOT EDIT */
stonecutter active "1.20.6-fabric" /* [SC] DO NOT EDIT */

stonecutter registerChiseled tasks.register("chiseledBuild", stonecutter.chiseled) {
group = "project"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# See latest at https://fabricmc.net/develop/
loom.platform=fabric

deps.minecraft=1.16.5
deps.yarn_mappings=1.16.5+build.10
deps.cloth_config_version=4.10.11
Expand Down
14 changes: 14 additions & 0 deletions versions/1.16.5-forge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
loom.platform=forge

deps.minecraft=1.16.5
deps.yarn_mappings=1.16.5+build.10
deps.cloth_config_version=4.10.11
deps.forge_loader=36.2.34
deps.java=9

mod.version_name=1.16-1.18.2

mod.min_target=1.16
mod.max_target=1.18.2

publishing.supported_versions=1.16,1.16.1,1.16.2,1.16.3,1.16.4,1.16.5,1.17,1.17.1,1.18,1.18.1,1.18.2
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# See latest at https://fabricmc.net/develop/
loom.platform=fabric

deps.minecraft=1.19
deps.yarn_mappings=1.19+build.4
deps.cloth_config_version=7.0.69
Expand Down
14 changes: 14 additions & 0 deletions versions/1.19-forge/gradle.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
loom.platform=forge

deps.minecraft=1.19
deps.yarn_mappings=1.19+build.4
deps.cloth_config_version=7.0.69
deps.forge_loader=41.1.0
deps.java=17

mod.version_name=1.19-1.19.2

mod.min_target=1.19
mod.max_target=1.19.2

publishing.supported_versions=1.19,1.19.1,1.19.2
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# See latest at https://fabricmc.net/develop/
loom.platform=fabric

deps.minecraft=1.19.3
deps.yarn_mappings=1.19.3+build.5
deps.cloth_config_version=9.0.94
Expand Down
Loading

0 comments on commit 5422cec

Please sign in to comment.