diff --git a/api/build.gradle b/api/build.gradle new file mode 100644 index 000000000..e69de29bb diff --git a/src/main/java/com/terraformersmc/modmenu/api/ConfigScreenFactory.java b/api/src/main/java/com/terraformersmc/modmenu/api/ConfigScreenFactory.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/api/ConfigScreenFactory.java rename to api/src/main/java/com/terraformersmc/modmenu/api/ConfigScreenFactory.java diff --git a/src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java similarity index 93% rename from src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java rename to api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java index 72c9f6266..0e07e2f54 100644 --- a/src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java +++ b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApi.java @@ -1,7 +1,5 @@ package com.terraformersmc.modmenu.api; -import com.terraformersmc.modmenu.ModMenu; -import com.terraformersmc.modmenu.gui.ModsScreen; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; @@ -18,7 +16,7 @@ public interface ModMenuApi { * @return A "Mods" Screen */ static Screen createModsScreen(Screen previous) { - return new ModsScreen(previous); + return ModMenuApiImpl.getGuiProvider().createModsScreen(previous); } /** @@ -28,7 +26,7 @@ static Screen createModsScreen(Screen previous) { * @return The text that would be displayed on a Mods button */ static Text createModsButtonText() { - return ModMenu.createModsButtonText(true); + return ModMenuApiImpl.getGuiProvider().createModsButtonText(); } /** diff --git a/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApiImpl.java b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApiImpl.java new file mode 100644 index 000000000..f39abc6af --- /dev/null +++ b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuApiImpl.java @@ -0,0 +1,35 @@ +package com.terraformersmc.modmenu.api; + +import net.fabricmc.loader.api.FabricLoader; + +class ModMenuApiImpl { + static ModMenuGuiProvider guiProvider = null; + static ModMenuUpdateHandlerPreferenceProvider updateHandlerPreferenceProvider = null; + + static ModMenuGuiProvider getGuiProvider() { + if (guiProvider == null) { + var entrypoints = FabricLoader.getInstance().getEntrypoints("modmenu-gui", ModMenuGuiProvider.class); + if (!entrypoints.isEmpty()) { + guiProvider = entrypoints.getFirst(); + } + } + if (guiProvider == null) { + throw new RuntimeException("Mod Menu's GUI is not installed, download here: https://modrinth.com/mod/modmenu"); + } + return guiProvider; + } + + static ModMenuUpdateHandlerPreferenceProvider getUpdateHandlerPreferenceProvider() { + if (updateHandlerPreferenceProvider == null) { + var entrypoints = FabricLoader.getInstance() + .getEntrypoints("modmenu-update-preferences", ModMenuUpdateHandlerPreferenceProvider.class); + if (!entrypoints.isEmpty()) { + updateHandlerPreferenceProvider = entrypoints.getFirst(); + } + } + if (updateHandlerPreferenceProvider == null) { + throw new RuntimeException("Mod Menu's GUI is not installed, download here: https://modrinth.com/mod/modmenu"); + } + return updateHandlerPreferenceProvider; + } +} diff --git a/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuGuiProvider.java b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuGuiProvider.java new file mode 100644 index 000000000..82a91b10d --- /dev/null +++ b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuGuiProvider.java @@ -0,0 +1,29 @@ +package com.terraformersmc.modmenu.api; + +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; + +/** + * This is used to provide your own Mods screens much like Mod Menu's GUI module does. + * Most mods should not use this API. + * To use it, implement this as a "modmenu-gui" entrypoint to your mod. + */ +public interface ModMenuGuiProvider { + + /** + * Used for creating a {@link Screen} instance of the Mod Menu + * "Mods" screen + * + * @param previous The screen before opening + * @return A "Mods" Screen + */ + Screen createModsScreen(Screen previous); + + /** + * Used for creating a {@link Text} just like what would appear + * on a Mod Menu Mods button + * + * @return The text that would be displayed on a Mods button + */ + Text createModsButtonText(); +} diff --git a/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuUpdateHandlerPreferenceProvider.java b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuUpdateHandlerPreferenceProvider.java new file mode 100644 index 000000000..481476cf4 --- /dev/null +++ b/api/src/main/java/com/terraformersmc/modmenu/api/ModMenuUpdateHandlerPreferenceProvider.java @@ -0,0 +1,14 @@ +package com.terraformersmc.modmenu.api; + +/** + * This is used to provide a user's preferences for the updates API in Mod Menu. + * To use it, implement this as a "modmenu-update-preferences" entrypoint to your mod. + */ +public interface ModMenuUpdateHandlerPreferenceProvider { + /** + * Used for your GUI provider to indicate a user's update channel preferences to users of Mod Menu API + * + * @return The update channel the user prefers + */ + UpdateChannel getUpdateChannelPreference(); +} diff --git a/src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java b/api/src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java similarity index 72% rename from src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java rename to api/src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java index f4eb2020d..81e012ca1 100644 --- a/src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java +++ b/api/src/main/java/com/terraformersmc/modmenu/api/UpdateChannel.java @@ -1,7 +1,5 @@ package com.terraformersmc.modmenu.api; -import com.terraformersmc.modmenu.config.ModMenuConfig; - /** * Supported update channels, in ascending order by stability. */ @@ -12,6 +10,6 @@ public enum UpdateChannel { * @return the user's preferred update channel. */ public static UpdateChannel getUserPreference() { - return ModMenuConfig.UPDATE_CHANNEL.getValue(); + return ModMenuApiImpl.getUpdateHandlerPreferenceProvider().getUpdateChannelPreference(); } } diff --git a/src/main/java/com/terraformersmc/modmenu/api/UpdateChecker.java b/api/src/main/java/com/terraformersmc/modmenu/api/UpdateChecker.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/api/UpdateChecker.java rename to api/src/main/java/com/terraformersmc/modmenu/api/UpdateChecker.java diff --git a/src/main/java/com/terraformersmc/modmenu/api/UpdateInfo.java b/api/src/main/java/com/terraformersmc/modmenu/api/UpdateInfo.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/api/UpdateInfo.java rename to api/src/main/java/com/terraformersmc/modmenu/api/UpdateInfo.java diff --git a/src/main/resources/assets/modmenu/icon.png b/api/src/main/resources/assets/modmenu/icon.png similarity index 100% rename from src/main/resources/assets/modmenu/icon.png rename to api/src/main/resources/assets/modmenu/icon.png diff --git a/api/src/main/resources/fabric.mod.json b/api/src/main/resources/fabric.mod.json new file mode 100644 index 000000000..ad5518e26 --- /dev/null +++ b/api/src/main/resources/fabric.mod.json @@ -0,0 +1,14 @@ +{ + "schemaVersion": 1, + "id": "modmenu-api", + "name": "Mod Menu API", + "version": "$version", + "environment": "client", + "license": "MIT", + "icon": "assets/modmenu/icon.png", + "depends": { + "fabricloader": ">=0.15.10", + "minecraft": ">=1.21" + }, + "description": "The API used for defining config screens and update checkers in Mod Menu." +} diff --git a/build.gradle b/build.gradle index 56a0bdf34..719650d9a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,37 +1,75 @@ plugins { - id 'fabric-loom' version '1.6-SNAPSHOT' + id 'java' + id 'idea' + id 'eclipse' + id 'maven-publish' + id 'fabric-loom' version '1.6.+' } -apply from: 'https://raw.githubusercontent.com/TerraformersMC/GradleScripts/2.7/ferry.gradle' +allprojects { + apply plugin: 'java' + apply plugin: 'idea' + apply plugin: 'eclipse' + apply plugin: 'maven-publish' + apply plugin: 'fabric-loom' -dependencies { - minecraft "com.mojang:minecraft:$project.minecraft_version" - mappings "net.fabricmc:yarn:$project.yarn_mappings:v2" + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 - mod "fabric-loader", "net.fabricmc:fabric-loader:$project.loader_version" + repositories { + maven { + name = 'Nucleoid' + url = 'https://maven.nucleoid.xyz/' + } + } - includeMod "fabric-api", fabricApi.module("fabric-api-base", project.fabric_version) - includeMod "fabric-api", fabricApi.module("fabric-resource-loader-v0", project.fabric_version) - includeMod "fabric-api", fabricApi.module("fabric-screen-api-v1", project.fabric_version) - includeMod "fabric-api", fabricApi.module("fabric-key-binding-api-v1", project.fabric_version) - includeMod "fabric-api", fabricApi.module("fabric-lifecycle-events-v1", project.fabric_version) + ext { + mod = { String localOverrideKey, Object dep -> + File file = file("../.${localOverrideKey}-local"); + if (file.exists()) { + dependencies.implementation(dep) + } else { + dependencies.modImplementation(dep) + } + } - includeMod "text-placeholder-api", "eu.pb4:placeholder-api:${project.text_placeholder_api_version}" + includeMod = { String localOverrideKey, Object dep -> + mod(localOverrideKey, dep) + dependencies.include(dep) + } + } - compileOnly "org.quiltmc:quilt-loader:$project.quilt_loader_version" -} + dependencies { + minecraft "com.mojang:minecraft:$project.minecraft_version" + mappings "net.fabricmc:yarn:$project.yarn_mappings:v2" + + mod "fabric-loader", "net.fabricmc:fabric-loader:$project.loader_version" + } + + tasks.withType(JavaCompile).configureEach { + it.options.release = 21 + it.options.encoding = "UTF-8" + } + + java { + withSourcesJar() -repositories { - maven { - name = 'TerraformersMC' - url = 'https://maven.terraformersmc.com/' + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } - maven { - name = 'Quilt' - url = 'https://maven.quiltmc.org/repository/release' + + jar { + from "LICENSE" } - maven { - name = 'Nucleoid' - url = 'https://maven.nucleoid.xyz/' +} + +dependencies { + modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modImplementation "eu.pb4:placeholder-api:${project.text_placeholder_api_version}" + + afterEvaluate { + subprojects.each { + implementation project(path: ":${it.path}", configuration: "namedElements") + } } } diff --git a/build.gradle.disabled b/build.gradle.disabled new file mode 100644 index 000000000..451a5ca31 --- /dev/null +++ b/build.gradle.disabled @@ -0,0 +1,355 @@ +buildscript { + repositories { + maven { + name = 'TerraformersMC' + url = 'https://maven.terraformersmc.com/' + } + } + + dependencies { + classpath "org.kohsuke:github-api:1.114" + } +} + +plugins { + id 'com.modrinth.minotaur' version '2.+' // Modrinth publishing + id 'com.matthewprenger.cursegradle' version '1.4.0' // CurseForge publishing + id 'org.ajoberstar.grgit' version '4.1.0' // Reading changelogs from git commits + id 'net.dumbcode.gradlehook' version '1.3.1' // Discord release webhook +} + +version = getVersion() + +ext.curseReleaseType = "release" +ext.releaseChangelog = "No Changelog Available" +ext.stabilitySuffix = "" +ext.curseforgeDownloadLink = null +ext.modrinthDownloadLink = null +ext.githubDownloadLink = null +ext.releaseType = project.default_release_type + +tasks.register('generateChangelog') { + def changes = StringBuilder.newInstance() + if (!project.hasProperty("lastTag") || !project.hasProperty("currentTag")) { + println "Missing lastTag or currentTag parameters, aborting changelog creation" + return; + } + def lastTag = project.getProperty("lastTag") + def currentTag = project.getProperty("currentTag") + def commits = "git log --max-count=$project.changelog_max_commit_search --pretty=format:\"%b\" $lastTag..$currentTag".execute() + println "Last version: $lastTag" + println "Current version: $currentTag" + + if (currentTag.contains("-alpha")) { + releaseType = "alpha" + curseReleaseType = "alpha" + stabilitySuffix = " (Alpha)" + } else if (currentTag.contains("-beta")) { + releaseType = "beta" + curseReleaseType = "beta" + stabilitySuffix = " (Beta)" + } else if (currentTag.contains("-pre")) { + releaseType = "pre" + curseReleaseType = "beta" + stabilitySuffix = " (Pre-Release)" + } else if (currentTag.contains("-rc")) { + releaseType = "rc" + curseReleaseType = "beta" + stabilitySuffix = " (Release Candidate)" + } else if (!currentTag.contains("-")) { + releaseType = "stable" + } + println "Release type: $releaseType" + + commits.in.eachLine { line -> // Loops over the lines the git log command returns + def processedLine = line.toString() + if (processedLine.startsWith("\"")) { + processedLine = processedLine.substring(1) + } + if (processedLine.endsWith("\"")) { + processedLine = processedLine.substring(0, processedLine.length() - 1) + } + println "Reading line: $processedLine" + + if (processedLine.startsWith("- ")) { + println "Adding changelog line:" + println " $processedLine" + if (changes.length() == 0) { + changes << processedLine + } else { + changes << "\n$processedLine" + } + } + } + commits.err.eachLine { line -> println line } + commits.waitFor() + println "Changelog:" + releaseChangelog = changes.toString() + if (releaseChangelog.isEmpty()) { + releaseChangelog = "No Changelog Available" + } + println releaseChangelog +} + +processResources { + inputs.property "version", version + + filesMatching("fabric.mod.json") { + expand "version": project.version + } +} + +curseforge { + if (System.getenv().CURSEFORGE_TOKEN) { + apiKey = System.getenv().CURSEFORGE_TOKEN + } else { + println "No CURSEFORGE_TOKEN specified" + } + project { + id = project.curseforge_id + releaseType = curseReleaseType + project.curseforge_game_versions.split(", ").each { + String gameVersion -> addGameVersion gameVersion + } + changelog = releaseChangelog + mainArtifact(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar")) + mainArtifact.displayName = "$project.project_name v$version for $project.minecraft_version" + if (!project.curseforge_required_dependencies.isEmpty() || !project.curseforge_optional_dependencies.isEmpty()) { + relations { + if (!project.curseforge_required_dependencies.isEmpty()) { + project.curseforge_required_dependencies.split(", ").each { + String dep -> requiredDependency dep + } + } + if (!project.curseforge_optional_dependencies.isEmpty()) { + project.curseforge_optional_dependencies.split(", ").each { + String dep -> optionalDependency dep + } + } + } + } + afterEvaluate { + uploadTask.dependsOn(remapJar) + } + } + options { + forgeGradleIntegration = false + } +} + +tasks.getByName("curseforge").doLast { + def fileId = (tasks.getByName("curseforge$curseforge_id").property("mainArtifact"))['fileID'] + curseforgeDownloadLink = "https://www.curseforge.com/minecraft/mc-mods/$project.curseforge_slug/files/$fileId"; + sendDiscordWebhook() +} + +tasks.register('github') { + dependsOn build + + onlyIf { + System.getenv().GITHUB_TOKEN + } + + doLast { + def github = org.kohsuke.github.GitHub.connectUsingOAuth(System.getenv().GITHUB_TOKEN as String) + def repository = github.getRepository(System.getenv().GITHUB_REPOSITORY) + + def releaseBuilder = new org.kohsuke.github.GHReleaseBuilder(repository, project.getProperty("currentTag")) + releaseBuilder.name("$project.project_name v$version for $project.minecraft_version") + releaseBuilder.body(releaseChangelog) + releaseBuilder.commitish(getBranch()) + if (releaseType != "stable") { + releaseBuilder.prerelease(true) + } + + def ghRelease = releaseBuilder.create() + ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar"), "application/java-archive"); + githubDownloadLink = ghRelease.getHtmlUrl() + sendDiscordWebhook() + } +} + +// Truncates changelogs for the Discord Webhook +ext.createDiscordChangelog = { fullChangelogUrl -> + def webhookChangelog = StringBuilder.newInstance() + def changelogLines = releaseChangelog.split("\n") + def maxLines = Integer.decode(project.discord_webhook_changelog_line_limit) + if (changelogLines.length <= maxLines) { + return releaseChangelog + } else { + def lines = 0 + changelogLines.find { line -> + if (webhookChangelog.length() == 0) { + webhookChangelog << line + } else { + webhookChangelog << "\n$line" + } + lines++ + if (lines >= maxLines) { + webhookChangelog << "\n(+ " + (changelogLines.length - lines) + " more) See [Full Changelog]($fullChangelogUrl)" + return true; + } + } + } + return webhookChangelog.toString() +} + +void sendDiscordWebhook() { + println "CurseForge download: $curseforgeDownloadLink" + println "Modrinth download: $modrinthDownloadLink" + println "GitHub download: $githubDownloadLink" + if (curseforgeDownloadLink != null && modrinthDownloadLink != null && githubDownloadLink != null && System.getenv().DISCORD_ANNOUNCEMENT_WEBHOOK) { + println "Preparing webhook" + def release_url = modrinthDownloadLink + def discordChangelog = createDiscordChangelog(release_url) + + def result = DiscordBuilder.createForm { + if (project.use_project_username.toBoolean()) { + avatar_url = project.project_logo + username = project.project_name + } + embed { + color = Integer.decode(project.project_color) + author { + name = project.project_name + stabilitySuffix + url = project.project_url + } + thumbnail { url = project.project_logo } + title = "$project.project_name v$version for $project.minecraft_version Released" + url = release_url + field { + name = "Changes:" + value = discordChangelog + } + field { + name = "Downloads:" + value = "[$modrinth_emote Modrinth]($modrinthDownloadLink)\n[$curseforge_emote CurseForge]($curseforgeDownloadLink)\n[$github_emote GitHub]($githubDownloadLink)" + } + footer { + text = "A $project.loader_name Mod" + icon_url = project.loader_icon + } + } + }.send(System.getenv().DISCORD_ANNOUNCEMENT_WEBHOOK) + + println "Discord Webhook Response: " + result.responseCode + } +} + +String getBranch() { + def ENV = System.getenv() + if (ENV.GITHUB_REF) { + def branch = ENV.GITHUB_REF + return branch.substring(branch.lastIndexOf("/") + 1) + } + + if (grgit == null) { + return "unknown" + } + + def branch = grgit.branch.current().name + return branch.substring(branch.lastIndexOf("/") + 1) +} + +modrinth { + projectId = project.modrinth_id + versionName = "$project.project_name v$version for $project.minecraft_version" + uploadFile = file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar") + changelog = releaseChangelog + versionType = curseReleaseType + project.modrinth_game_versions.split(", ").each { + gameVersions.add it + } + project.modrinth_mod_loaders.split(", ").each { + loaders.add it + } + dependencies { + if (project.hasProperty("modrinth_required_dependencies")) { + project.modrinth_required_dependencies.split(", ").each { dep -> + required.project dep.trim() + } + } + if (project.hasProperty("modrinth_optional_dependencies")) { + project.modrinth_optional_dependencies.split(", ").each { dep -> + optional.project dep.trim() + } + } + if (project.hasProperty("modrinth_incompatible_dependencies")) { + project.modrinth_incompatible_dependencies.split(", ").each { dep -> + incompatible.project dep.trim() + } + } + if (project.hasProperty("modrinth_embedded_dependencies")) { + project.modrinth_embedded_dependencies.split(", ").each { dep -> + embedded.project dep.trim() + } + } + } +} + +tasks.modrinth.doLast { + if (tasks.modrinth.wasUploadSuccessful()) { + modrinthDownloadLink = "https://modrinth.com/mod/$project.modrinth_slug/version/$version" + sendDiscordWebhook() + } +} + +String getVersion() { + def version = "unknown" + if (project.hasProperty("currentTag")) { + return project.currentTag.replace("v", "") + } + def branchLines = "git branch --show-current".execute().in.readLines() + if (!branchLines.isEmpty()) { + version = branchLines.get(0) + } + + def tagLines = "git describe --tags --exact-match --abbrev=0".execute().in.readLines() + def release = false + if (!tagLines.isEmpty()) { + def line = tagLines.get(0) + def regex = /v([0-9].[0-9].[0-9])/ + if (line.matches(regex)) { + version = (line =~ regex)[0][1] // gets 1st match group of 1st match + release = true + } + } + if (!release) { + def lastTag = "git describe --tags --abbrev=0".execute().in.readLines() + def lastCommit = "git rev-parse --short HEAD".execute().in.readLines() + if (!lastTag.isEmpty() && !lastCommit.isEmpty()) { + version = lastTag.get(0) + "+" + version + "." + lastCommit.get(0) + } + } + return version +} + +publishing { + publications { + mavenJava(MavenPublication) { + artifact(sourcesJar) { + builtBy remapSourcesJar + } + + afterEvaluate { + artifact remapJar + } + } + } + + setupRepositories(repositories) +} + +static void setupRepositories(RepositoryHandler repositories) { + //repositories.mavenLocal() // uncomment for testing + def ENV = System.getenv() + if (ENV.MAVEN_URL) { + repositories.maven { + url ENV.MAVEN_URL + credentials { + username ENV.MAVEN_USERNAME + password ENV.MAVEN_PASSWORD + } + } + } +} diff --git a/gui/build.gradle b/gui/build.gradle new file mode 100644 index 000000000..cda94f158 --- /dev/null +++ b/gui/build.gradle @@ -0,0 +1,21 @@ +repositories { + maven { + name = 'Quilt' + url = 'https://maven.quiltmc.org/repository/release' + } +} + +dependencies { + include(modImplementation fabricApi.module("fabric-api-base", project.fabric_version)) + include(modImplementation fabricApi.module("fabric-resource-loader-v0", project.fabric_version)) + include(modImplementation fabricApi.module("fabric-screen-api-v1", project.fabric_version)) + include(modImplementation fabricApi.module("fabric-key-binding-api-v1", project.fabric_version)) + include(modImplementation fabricApi.module("fabric-lifecycle-events-v1", project.fabric_version)) + + include(modImplementation "eu.pb4:placeholder-api:${project.text_placeholder_api_version}") + + // For supporting extra Quilt APIs + compileOnly "org.quiltmc:quilt-loader:$project.quilt_loader_version" + + implementation project(path: ":api", configuration: "namedElements") +} diff --git a/src/main/java/com/terraformersmc/modmenu/ModMenu.java b/gui/src/main/java/com/terraformersmc/modmenu/ModMenu.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/ModMenu.java rename to gui/src/main/java/com/terraformersmc/modmenu/ModMenu.java diff --git a/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuCompat.java b/gui/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuCompat.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/ModMenuModMenuCompat.java rename to gui/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuCompat.java diff --git a/gui/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuGuiProviderAndUpdatePreferences.java b/gui/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuGuiProviderAndUpdatePreferences.java new file mode 100644 index 000000000..8654d45c1 --- /dev/null +++ b/gui/src/main/java/com/terraformersmc/modmenu/ModMenuModMenuGuiProviderAndUpdatePreferences.java @@ -0,0 +1,26 @@ +package com.terraformersmc.modmenu; + +import com.terraformersmc.modmenu.api.ModMenuGuiProvider; +import com.terraformersmc.modmenu.api.ModMenuUpdateHandlerPreferenceProvider; +import com.terraformersmc.modmenu.api.UpdateChannel; +import com.terraformersmc.modmenu.config.ModMenuConfig; +import com.terraformersmc.modmenu.gui.ModsScreen; +import net.minecraft.client.gui.screen.Screen; +import net.minecraft.text.Text; + +public class ModMenuModMenuGuiProviderAndUpdatePreferences implements ModMenuGuiProvider, ModMenuUpdateHandlerPreferenceProvider { + @Override + public Screen createModsScreen(Screen previous) { + return new ModsScreen(previous); + } + + @Override + public Text createModsButtonText() { + return ModMenu.createModsButtonText(true); + } + + @Override + public UpdateChannel getUpdateChannelPreference() { + return ModMenuConfig.UPDATE_CHANNEL.getValue(); + } +} diff --git a/src/main/java/com/terraformersmc/modmenu/TextPlaceholderApiCompat.java b/gui/src/main/java/com/terraformersmc/modmenu/TextPlaceholderApiCompat.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/TextPlaceholderApiCompat.java rename to gui/src/main/java/com/terraformersmc/modmenu/TextPlaceholderApiCompat.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/FileOnlyConfig.java b/gui/src/main/java/com/terraformersmc/modmenu/config/FileOnlyConfig.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/FileOnlyConfig.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/FileOnlyConfig.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfig.java b/gui/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfig.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/ModMenuConfig.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfig.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfigManager.java b/gui/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfigManager.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/ModMenuConfigManager.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/ModMenuConfigManager.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/option/BooleanConfigOption.java b/gui/src/main/java/com/terraformersmc/modmenu/config/option/BooleanConfigOption.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/option/BooleanConfigOption.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/option/BooleanConfigOption.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/option/ConfigOptionStorage.java b/gui/src/main/java/com/terraformersmc/modmenu/config/option/ConfigOptionStorage.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/option/ConfigOptionStorage.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/option/ConfigOptionStorage.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/option/EnumConfigOption.java b/gui/src/main/java/com/terraformersmc/modmenu/config/option/EnumConfigOption.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/option/EnumConfigOption.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/option/EnumConfigOption.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/option/OptionConvertable.java b/gui/src/main/java/com/terraformersmc/modmenu/config/option/OptionConvertable.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/option/OptionConvertable.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/option/OptionConvertable.java diff --git a/src/main/java/com/terraformersmc/modmenu/config/option/StringSetConfigOption.java b/gui/src/main/java/com/terraformersmc/modmenu/config/option/StringSetConfigOption.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/config/option/StringSetConfigOption.java rename to gui/src/main/java/com/terraformersmc/modmenu/config/option/StringSetConfigOption.java diff --git a/src/main/java/com/terraformersmc/modmenu/event/ModMenuEventHandler.java b/gui/src/main/java/com/terraformersmc/modmenu/event/ModMenuEventHandler.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/event/ModMenuEventHandler.java rename to gui/src/main/java/com/terraformersmc/modmenu/event/ModMenuEventHandler.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/ModMenuOptionsScreen.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/ModMenuOptionsScreen.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/ModMenuOptionsScreen.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/ModMenuOptionsScreen.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/ModsScreen.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/ModsScreen.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/ModsScreen.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/ModsScreen.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/DescriptionListWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/DescriptionListWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/DescriptionListWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/DescriptionListWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/LegacyTexturedButtonWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/LegacyTexturedButtonWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/LegacyTexturedButtonWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/LegacyTexturedButtonWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/ModListWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/ModListWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/ModListWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/ModListWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/ModMenuButtonWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/ModMenuButtonWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/ModMenuButtonWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/ModMenuButtonWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateAvailableBadge.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateAvailableBadge.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateAvailableBadge.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateAvailableBadge.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateCheckerTexturedButtonWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateCheckerTexturedButtonWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateCheckerTexturedButtonWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/UpdateCheckerTexturedButtonWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ChildEntry.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ChildEntry.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ChildEntry.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ChildEntry.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/IndependentEntry.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/IndependentEntry.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/entries/IndependentEntry.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/IndependentEntry.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ModListEntry.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ModListEntry.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ModListEntry.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ModListEntry.java diff --git a/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ParentEntry.java b/gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ParentEntry.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ParentEntry.java rename to gui/src/main/java/com/terraformersmc/modmenu/gui/widget/entries/ParentEntry.java diff --git a/src/main/java/com/terraformersmc/modmenu/mixin/AccessorGridWidget.java b/gui/src/main/java/com/terraformersmc/modmenu/mixin/AccessorGridWidget.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/mixin/AccessorGridWidget.java rename to gui/src/main/java/com/terraformersmc/modmenu/mixin/AccessorGridWidget.java diff --git a/src/main/java/com/terraformersmc/modmenu/mixin/MixinGameMenu.java b/gui/src/main/java/com/terraformersmc/modmenu/mixin/MixinGameMenu.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/mixin/MixinGameMenu.java rename to gui/src/main/java/com/terraformersmc/modmenu/mixin/MixinGameMenu.java diff --git a/src/main/java/com/terraformersmc/modmenu/mixin/MixinTitleScreen.java b/gui/src/main/java/com/terraformersmc/modmenu/mixin/MixinTitleScreen.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/mixin/MixinTitleScreen.java rename to gui/src/main/java/com/terraformersmc/modmenu/mixin/MixinTitleScreen.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/DrawingUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/DrawingUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/DrawingUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/DrawingUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/EnumToLowerCaseJsonConverter.java b/gui/src/main/java/com/terraformersmc/modmenu/util/EnumToLowerCaseJsonConverter.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/EnumToLowerCaseJsonConverter.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/EnumToLowerCaseJsonConverter.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/HttpUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/HttpUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/HttpUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/HttpUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/JsonUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/JsonUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/JsonUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/JsonUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/ModMenuScreenTexts.java b/gui/src/main/java/com/terraformersmc/modmenu/util/ModMenuScreenTexts.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/ModMenuScreenTexts.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/ModMenuScreenTexts.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/OptionalUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/OptionalUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/OptionalUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/OptionalUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/TranslationUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/TranslationUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/TranslationUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/TranslationUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerThreadFactory.java b/gui/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerThreadFactory.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerThreadFactory.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerThreadFactory.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/UpdateCheckerUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/VersionUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/VersionUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/VersionUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/VersionUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/Mod.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/Mod.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/Mod.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/Mod.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/ModBadgeRenderer.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModBadgeRenderer.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/ModBadgeRenderer.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModBadgeRenderer.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/ModSearch.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModSearch.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/ModSearch.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModSearch.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/ModrinthUpdateInfo.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModrinthUpdateInfo.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/ModrinthUpdateInfo.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/ModrinthUpdateInfo.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/CustomValueUtil.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/CustomValueUtil.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/fabric/CustomValueUtil.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/CustomValueUtil.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricDummyParentMod.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricDummyParentMod.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricDummyParentMod.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricDummyParentMod.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricIconHandler.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricIconHandler.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricIconHandler.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricIconHandler.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricLoaderUpdateChecker.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricLoaderUpdateChecker.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricLoaderUpdateChecker.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricLoaderUpdateChecker.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricMod.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricMod.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricMod.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/fabric/FabricMod.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltLoaderUpdateChecker.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltLoaderUpdateChecker.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltLoaderUpdateChecker.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltLoaderUpdateChecker.java diff --git a/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltMod.java b/gui/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltMod.java similarity index 100% rename from src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltMod.java rename to gui/src/main/java/com/terraformersmc/modmenu/util/mod/quilt/QuiltMod.java diff --git a/src/main/resources/assets/modmenu/fabric.png b/gui/src/main/resources/assets/modmenu/fabric.png similarity index 100% rename from src/main/resources/assets/modmenu/fabric.png rename to gui/src/main/resources/assets/modmenu/fabric.png diff --git a/gui/src/main/resources/assets/modmenu/icon.png b/gui/src/main/resources/assets/modmenu/icon.png new file mode 100644 index 000000000..225bf945d Binary files /dev/null and b/gui/src/main/resources/assets/modmenu/icon.png differ diff --git a/src/main/resources/assets/modmenu/java_icon.png b/gui/src/main/resources/assets/modmenu/java_icon.png similarity index 100% rename from src/main/resources/assets/modmenu/java_icon.png rename to gui/src/main/resources/assets/modmenu/java_icon.png diff --git a/src/main/resources/assets/modmenu/lang/af_za.json b/gui/src/main/resources/assets/modmenu/lang/af_za.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/af_za.json rename to gui/src/main/resources/assets/modmenu/lang/af_za.json diff --git a/src/main/resources/assets/modmenu/lang/an-ES.json b/gui/src/main/resources/assets/modmenu/lang/an-ES.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/an-ES.json rename to gui/src/main/resources/assets/modmenu/lang/an-ES.json diff --git a/src/main/resources/assets/modmenu/lang/ar_sa.json b/gui/src/main/resources/assets/modmenu/lang/ar_sa.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ar_sa.json rename to gui/src/main/resources/assets/modmenu/lang/ar_sa.json diff --git a/src/main/resources/assets/modmenu/lang/ast_es.json b/gui/src/main/resources/assets/modmenu/lang/ast_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ast_es.json rename to gui/src/main/resources/assets/modmenu/lang/ast_es.json diff --git a/src/main/resources/assets/modmenu/lang/az_az.json b/gui/src/main/resources/assets/modmenu/lang/az_az.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/az_az.json rename to gui/src/main/resources/assets/modmenu/lang/az_az.json diff --git a/src/main/resources/assets/modmenu/lang/ba_ru.json b/gui/src/main/resources/assets/modmenu/lang/ba_ru.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ba_ru.json rename to gui/src/main/resources/assets/modmenu/lang/ba_ru.json diff --git a/src/main/resources/assets/modmenu/lang/bak.json b/gui/src/main/resources/assets/modmenu/lang/bak.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/bak.json rename to gui/src/main/resources/assets/modmenu/lang/bak.json diff --git a/src/main/resources/assets/modmenu/lang/bar.json b/gui/src/main/resources/assets/modmenu/lang/bar.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/bar.json rename to gui/src/main/resources/assets/modmenu/lang/bar.json diff --git a/src/main/resources/assets/modmenu/lang/be_by.json b/gui/src/main/resources/assets/modmenu/lang/be_by.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/be_by.json rename to gui/src/main/resources/assets/modmenu/lang/be_by.json diff --git a/src/main/resources/assets/modmenu/lang/bg_bg.json b/gui/src/main/resources/assets/modmenu/lang/bg_bg.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/bg_bg.json rename to gui/src/main/resources/assets/modmenu/lang/bg_bg.json diff --git a/src/main/resources/assets/modmenu/lang/bn-BD.json b/gui/src/main/resources/assets/modmenu/lang/bn-BD.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/bn-BD.json rename to gui/src/main/resources/assets/modmenu/lang/bn-BD.json diff --git a/src/main/resources/assets/modmenu/lang/br_fr.json b/gui/src/main/resources/assets/modmenu/lang/br_fr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/br_fr.json rename to gui/src/main/resources/assets/modmenu/lang/br_fr.json diff --git a/src/main/resources/assets/modmenu/lang/brb.json b/gui/src/main/resources/assets/modmenu/lang/brb.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/brb.json rename to gui/src/main/resources/assets/modmenu/lang/brb.json diff --git a/src/main/resources/assets/modmenu/lang/bs_ba.json b/gui/src/main/resources/assets/modmenu/lang/bs_ba.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/bs_ba.json rename to gui/src/main/resources/assets/modmenu/lang/bs_ba.json diff --git a/src/main/resources/assets/modmenu/lang/ca_es.json b/gui/src/main/resources/assets/modmenu/lang/ca_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ca_es.json rename to gui/src/main/resources/assets/modmenu/lang/ca_es.json diff --git a/src/main/resources/assets/modmenu/lang/chn.json b/gui/src/main/resources/assets/modmenu/lang/chn.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/chn.json rename to gui/src/main/resources/assets/modmenu/lang/chn.json diff --git a/src/main/resources/assets/modmenu/lang/ckb-IR.json b/gui/src/main/resources/assets/modmenu/lang/ckb-IR.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ckb-IR.json rename to gui/src/main/resources/assets/modmenu/lang/ckb-IR.json diff --git a/src/main/resources/assets/modmenu/lang/cs_cz.json b/gui/src/main/resources/assets/modmenu/lang/cs_cz.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/cs_cz.json rename to gui/src/main/resources/assets/modmenu/lang/cs_cz.json diff --git a/src/main/resources/assets/modmenu/lang/csb-PL.json b/gui/src/main/resources/assets/modmenu/lang/csb-PL.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/csb-PL.json rename to gui/src/main/resources/assets/modmenu/lang/csb-PL.json diff --git a/src/main/resources/assets/modmenu/lang/cv-CU.json b/gui/src/main/resources/assets/modmenu/lang/cv-CU.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/cv-CU.json rename to gui/src/main/resources/assets/modmenu/lang/cv-CU.json diff --git a/src/main/resources/assets/modmenu/lang/cy_gb.json b/gui/src/main/resources/assets/modmenu/lang/cy_gb.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/cy_gb.json rename to gui/src/main/resources/assets/modmenu/lang/cy_gb.json diff --git a/src/main/resources/assets/modmenu/lang/da_dk.json b/gui/src/main/resources/assets/modmenu/lang/da_dk.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/da_dk.json rename to gui/src/main/resources/assets/modmenu/lang/da_dk.json diff --git a/src/main/resources/assets/modmenu/lang/de_at.json b/gui/src/main/resources/assets/modmenu/lang/de_at.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/de_at.json rename to gui/src/main/resources/assets/modmenu/lang/de_at.json diff --git a/src/main/resources/assets/modmenu/lang/de_ch.json b/gui/src/main/resources/assets/modmenu/lang/de_ch.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/de_ch.json rename to gui/src/main/resources/assets/modmenu/lang/de_ch.json diff --git a/src/main/resources/assets/modmenu/lang/de_de.json b/gui/src/main/resources/assets/modmenu/lang/de_de.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/de_de.json rename to gui/src/main/resources/assets/modmenu/lang/de_de.json diff --git a/src/main/resources/assets/modmenu/lang/dsb-DE.json b/gui/src/main/resources/assets/modmenu/lang/dsb-DE.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/dsb-DE.json rename to gui/src/main/resources/assets/modmenu/lang/dsb-DE.json diff --git a/src/main/resources/assets/modmenu/lang/egl.json b/gui/src/main/resources/assets/modmenu/lang/egl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/egl.json rename to gui/src/main/resources/assets/modmenu/lang/egl.json diff --git a/src/main/resources/assets/modmenu/lang/el_gr.json b/gui/src/main/resources/assets/modmenu/lang/el_gr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/el_gr.json rename to gui/src/main/resources/assets/modmenu/lang/el_gr.json diff --git a/src/main/resources/assets/modmenu/lang/en_au.json b/gui/src/main/resources/assets/modmenu/lang/en_au.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_au.json rename to gui/src/main/resources/assets/modmenu/lang/en_au.json diff --git a/src/main/resources/assets/modmenu/lang/en_ca.json b/gui/src/main/resources/assets/modmenu/lang/en_ca.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_ca.json rename to gui/src/main/resources/assets/modmenu/lang/en_ca.json diff --git a/src/main/resources/assets/modmenu/lang/en_gb.json b/gui/src/main/resources/assets/modmenu/lang/en_gb.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_gb.json rename to gui/src/main/resources/assets/modmenu/lang/en_gb.json diff --git a/src/main/resources/assets/modmenu/lang/en_nz.json b/gui/src/main/resources/assets/modmenu/lang/en_nz.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_nz.json rename to gui/src/main/resources/assets/modmenu/lang/en_nz.json diff --git a/src/main/resources/assets/modmenu/lang/en_pt.json b/gui/src/main/resources/assets/modmenu/lang/en_pt.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_pt.json rename to gui/src/main/resources/assets/modmenu/lang/en_pt.json diff --git a/src/main/resources/assets/modmenu/lang/en_ud.json b/gui/src/main/resources/assets/modmenu/lang/en_ud.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_ud.json rename to gui/src/main/resources/assets/modmenu/lang/en_ud.json diff --git a/src/main/resources/assets/modmenu/lang/en_us.json b/gui/src/main/resources/assets/modmenu/lang/en_us.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/en_us.json rename to gui/src/main/resources/assets/modmenu/lang/en_us.json diff --git a/src/main/resources/assets/modmenu/lang/enp.json b/gui/src/main/resources/assets/modmenu/lang/enp.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/enp.json rename to gui/src/main/resources/assets/modmenu/lang/enp.json diff --git a/src/main/resources/assets/modmenu/lang/enws.json b/gui/src/main/resources/assets/modmenu/lang/enws.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/enws.json rename to gui/src/main/resources/assets/modmenu/lang/enws.json diff --git a/src/main/resources/assets/modmenu/lang/eo_uy.json b/gui/src/main/resources/assets/modmenu/lang/eo_uy.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/eo_uy.json rename to gui/src/main/resources/assets/modmenu/lang/eo_uy.json diff --git a/src/main/resources/assets/modmenu/lang/es_ar.json b/gui/src/main/resources/assets/modmenu/lang/es_ar.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_ar.json rename to gui/src/main/resources/assets/modmenu/lang/es_ar.json diff --git a/src/main/resources/assets/modmenu/lang/es_cl.json b/gui/src/main/resources/assets/modmenu/lang/es_cl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_cl.json rename to gui/src/main/resources/assets/modmenu/lang/es_cl.json diff --git a/src/main/resources/assets/modmenu/lang/es_ec.json b/gui/src/main/resources/assets/modmenu/lang/es_ec.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_ec.json rename to gui/src/main/resources/assets/modmenu/lang/es_ec.json diff --git a/src/main/resources/assets/modmenu/lang/es_es.json b/gui/src/main/resources/assets/modmenu/lang/es_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_es.json rename to gui/src/main/resources/assets/modmenu/lang/es_es.json diff --git a/src/main/resources/assets/modmenu/lang/es_mx.json b/gui/src/main/resources/assets/modmenu/lang/es_mx.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_mx.json rename to gui/src/main/resources/assets/modmenu/lang/es_mx.json diff --git a/src/main/resources/assets/modmenu/lang/es_uy.json b/gui/src/main/resources/assets/modmenu/lang/es_uy.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_uy.json rename to gui/src/main/resources/assets/modmenu/lang/es_uy.json diff --git a/src/main/resources/assets/modmenu/lang/es_ve.json b/gui/src/main/resources/assets/modmenu/lang/es_ve.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/es_ve.json rename to gui/src/main/resources/assets/modmenu/lang/es_ve.json diff --git a/src/main/resources/assets/modmenu/lang/esan.json b/gui/src/main/resources/assets/modmenu/lang/esan.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/esan.json rename to gui/src/main/resources/assets/modmenu/lang/esan.json diff --git a/src/main/resources/assets/modmenu/lang/et_ee.json b/gui/src/main/resources/assets/modmenu/lang/et_ee.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/et_ee.json rename to gui/src/main/resources/assets/modmenu/lang/et_ee.json diff --git a/src/main/resources/assets/modmenu/lang/eu_es.json b/gui/src/main/resources/assets/modmenu/lang/eu_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/eu_es.json rename to gui/src/main/resources/assets/modmenu/lang/eu_es.json diff --git a/src/main/resources/assets/modmenu/lang/fa_ir.json b/gui/src/main/resources/assets/modmenu/lang/fa_ir.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fa_ir.json rename to gui/src/main/resources/assets/modmenu/lang/fa_ir.json diff --git a/src/main/resources/assets/modmenu/lang/fi_fi.json b/gui/src/main/resources/assets/modmenu/lang/fi_fi.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fi_fi.json rename to gui/src/main/resources/assets/modmenu/lang/fi_fi.json diff --git a/src/main/resources/assets/modmenu/lang/fil_ph.json b/gui/src/main/resources/assets/modmenu/lang/fil_ph.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fil_ph.json rename to gui/src/main/resources/assets/modmenu/lang/fil_ph.json diff --git a/src/main/resources/assets/modmenu/lang/fo_fo.json b/gui/src/main/resources/assets/modmenu/lang/fo_fo.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fo_fo.json rename to gui/src/main/resources/assets/modmenu/lang/fo_fo.json diff --git a/src/main/resources/assets/modmenu/lang/fr_ca.json b/gui/src/main/resources/assets/modmenu/lang/fr_ca.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fr_ca.json rename to gui/src/main/resources/assets/modmenu/lang/fr_ca.json diff --git a/src/main/resources/assets/modmenu/lang/fr_fr.json b/gui/src/main/resources/assets/modmenu/lang/fr_fr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fr_fr.json rename to gui/src/main/resources/assets/modmenu/lang/fr_fr.json diff --git a/src/main/resources/assets/modmenu/lang/fra_de.json b/gui/src/main/resources/assets/modmenu/lang/fra_de.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fra_de.json rename to gui/src/main/resources/assets/modmenu/lang/fra_de.json diff --git a/src/main/resources/assets/modmenu/lang/fur_it.json b/gui/src/main/resources/assets/modmenu/lang/fur_it.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fur_it.json rename to gui/src/main/resources/assets/modmenu/lang/fur_it.json diff --git a/src/main/resources/assets/modmenu/lang/fy_nl.json b/gui/src/main/resources/assets/modmenu/lang/fy_nl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/fy_nl.json rename to gui/src/main/resources/assets/modmenu/lang/fy_nl.json diff --git a/src/main/resources/assets/modmenu/lang/ga_ie.json b/gui/src/main/resources/assets/modmenu/lang/ga_ie.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ga_ie.json rename to gui/src/main/resources/assets/modmenu/lang/ga_ie.json diff --git a/src/main/resources/assets/modmenu/lang/gd_gb.json b/gui/src/main/resources/assets/modmenu/lang/gd_gb.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/gd_gb.json rename to gui/src/main/resources/assets/modmenu/lang/gd_gb.json diff --git a/src/main/resources/assets/modmenu/lang/gl_es.json b/gui/src/main/resources/assets/modmenu/lang/gl_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/gl_es.json rename to gui/src/main/resources/assets/modmenu/lang/gl_es.json diff --git a/src/main/resources/assets/modmenu/lang/got_de.json b/gui/src/main/resources/assets/modmenu/lang/got_de.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/got_de.json rename to gui/src/main/resources/assets/modmenu/lang/got_de.json diff --git a/src/main/resources/assets/modmenu/lang/gv_im.json b/gui/src/main/resources/assets/modmenu/lang/gv_im.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/gv_im.json rename to gui/src/main/resources/assets/modmenu/lang/gv_im.json diff --git a/src/main/resources/assets/modmenu/lang/haw_us.json b/gui/src/main/resources/assets/modmenu/lang/haw_us.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/haw_us.json rename to gui/src/main/resources/assets/modmenu/lang/haw_us.json diff --git a/src/main/resources/assets/modmenu/lang/he_il.json b/gui/src/main/resources/assets/modmenu/lang/he_il.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/he_il.json rename to gui/src/main/resources/assets/modmenu/lang/he_il.json diff --git a/src/main/resources/assets/modmenu/lang/hes.json b/gui/src/main/resources/assets/modmenu/lang/hes.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hes.json rename to gui/src/main/resources/assets/modmenu/lang/hes.json diff --git a/src/main/resources/assets/modmenu/lang/hi_in.json b/gui/src/main/resources/assets/modmenu/lang/hi_in.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hi_in.json rename to gui/src/main/resources/assets/modmenu/lang/hi_in.json diff --git a/src/main/resources/assets/modmenu/lang/hr_hr.json b/gui/src/main/resources/assets/modmenu/lang/hr_hr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hr_hr.json rename to gui/src/main/resources/assets/modmenu/lang/hr_hr.json diff --git a/src/main/resources/assets/modmenu/lang/hsb-DE.json b/gui/src/main/resources/assets/modmenu/lang/hsb-DE.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hsb-DE.json rename to gui/src/main/resources/assets/modmenu/lang/hsb-DE.json diff --git a/src/main/resources/assets/modmenu/lang/hu_hu.json b/gui/src/main/resources/assets/modmenu/lang/hu_hu.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hu_hu.json rename to gui/src/main/resources/assets/modmenu/lang/hu_hu.json diff --git a/src/main/resources/assets/modmenu/lang/hy_am.json b/gui/src/main/resources/assets/modmenu/lang/hy_am.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/hy_am.json rename to gui/src/main/resources/assets/modmenu/lang/hy_am.json diff --git a/src/main/resources/assets/modmenu/lang/id_id.json b/gui/src/main/resources/assets/modmenu/lang/id_id.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/id_id.json rename to gui/src/main/resources/assets/modmenu/lang/id_id.json diff --git a/src/main/resources/assets/modmenu/lang/ig_ng.json b/gui/src/main/resources/assets/modmenu/lang/ig_ng.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ig_ng.json rename to gui/src/main/resources/assets/modmenu/lang/ig_ng.json diff --git a/src/main/resources/assets/modmenu/lang/io_en.json b/gui/src/main/resources/assets/modmenu/lang/io_en.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/io_en.json rename to gui/src/main/resources/assets/modmenu/lang/io_en.json diff --git a/src/main/resources/assets/modmenu/lang/is_is.json b/gui/src/main/resources/assets/modmenu/lang/is_is.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/is_is.json rename to gui/src/main/resources/assets/modmenu/lang/is_is.json diff --git a/src/main/resources/assets/modmenu/lang/isv.json b/gui/src/main/resources/assets/modmenu/lang/isv.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/isv.json rename to gui/src/main/resources/assets/modmenu/lang/isv.json diff --git a/src/main/resources/assets/modmenu/lang/it_it.json b/gui/src/main/resources/assets/modmenu/lang/it_it.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/it_it.json rename to gui/src/main/resources/assets/modmenu/lang/it_it.json diff --git a/src/main/resources/assets/modmenu/lang/ja_jp.json b/gui/src/main/resources/assets/modmenu/lang/ja_jp.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ja_jp.json rename to gui/src/main/resources/assets/modmenu/lang/ja_jp.json diff --git a/src/main/resources/assets/modmenu/lang/jbo_en.json b/gui/src/main/resources/assets/modmenu/lang/jbo_en.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/jbo_en.json rename to gui/src/main/resources/assets/modmenu/lang/jbo_en.json diff --git a/src/main/resources/assets/modmenu/lang/ka_ge.json b/gui/src/main/resources/assets/modmenu/lang/ka_ge.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ka_ge.json rename to gui/src/main/resources/assets/modmenu/lang/ka_ge.json diff --git a/src/main/resources/assets/modmenu/lang/kab-KAB.json b/gui/src/main/resources/assets/modmenu/lang/kab-KAB.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/kab-KAB.json rename to gui/src/main/resources/assets/modmenu/lang/kab-KAB.json diff --git a/src/main/resources/assets/modmenu/lang/kk_kz.json b/gui/src/main/resources/assets/modmenu/lang/kk_kz.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/kk_kz.json rename to gui/src/main/resources/assets/modmenu/lang/kk_kz.json diff --git a/src/main/resources/assets/modmenu/lang/kn_in.json b/gui/src/main/resources/assets/modmenu/lang/kn_in.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/kn_in.json rename to gui/src/main/resources/assets/modmenu/lang/kn_in.json diff --git a/src/main/resources/assets/modmenu/lang/ko_kr.json b/gui/src/main/resources/assets/modmenu/lang/ko_kr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ko_kr.json rename to gui/src/main/resources/assets/modmenu/lang/ko_kr.json diff --git a/src/main/resources/assets/modmenu/lang/ksh.json b/gui/src/main/resources/assets/modmenu/lang/ksh.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ksh.json rename to gui/src/main/resources/assets/modmenu/lang/ksh.json diff --git a/src/main/resources/assets/modmenu/lang/kw_gb.json b/gui/src/main/resources/assets/modmenu/lang/kw_gb.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/kw_gb.json rename to gui/src/main/resources/assets/modmenu/lang/kw_gb.json diff --git a/src/main/resources/assets/modmenu/lang/la_la.json b/gui/src/main/resources/assets/modmenu/lang/la_la.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/la_la.json rename to gui/src/main/resources/assets/modmenu/lang/la_la.json diff --git a/src/main/resources/assets/modmenu/lang/lb_lu.json b/gui/src/main/resources/assets/modmenu/lang/lb_lu.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lb_lu.json rename to gui/src/main/resources/assets/modmenu/lang/lb_lu.json diff --git a/src/main/resources/assets/modmenu/lang/li_li.json b/gui/src/main/resources/assets/modmenu/lang/li_li.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/li_li.json rename to gui/src/main/resources/assets/modmenu/lang/li_li.json diff --git a/src/main/resources/assets/modmenu/lang/lmo.json b/gui/src/main/resources/assets/modmenu/lang/lmo.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lmo.json rename to gui/src/main/resources/assets/modmenu/lang/lmo.json diff --git a/src/main/resources/assets/modmenu/lang/lol_us.json b/gui/src/main/resources/assets/modmenu/lang/lol_us.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lol_us.json rename to gui/src/main/resources/assets/modmenu/lang/lol_us.json diff --git a/src/main/resources/assets/modmenu/lang/lt_lt.json b/gui/src/main/resources/assets/modmenu/lang/lt_lt.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lt_lt.json rename to gui/src/main/resources/assets/modmenu/lang/lt_lt.json diff --git a/src/main/resources/assets/modmenu/lang/lv_lv.json b/gui/src/main/resources/assets/modmenu/lang/lv_lv.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lv_lv.json rename to gui/src/main/resources/assets/modmenu/lang/lv_lv.json diff --git a/src/main/resources/assets/modmenu/lang/lzh.json b/gui/src/main/resources/assets/modmenu/lang/lzh.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/lzh.json rename to gui/src/main/resources/assets/modmenu/lang/lzh.json diff --git a/src/main/resources/assets/modmenu/lang/me-ME.json b/gui/src/main/resources/assets/modmenu/lang/me-ME.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/me-ME.json rename to gui/src/main/resources/assets/modmenu/lang/me-ME.json diff --git a/src/main/resources/assets/modmenu/lang/mi_NZ.json b/gui/src/main/resources/assets/modmenu/lang/mi_NZ.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/mi_NZ.json rename to gui/src/main/resources/assets/modmenu/lang/mi_NZ.json diff --git a/src/main/resources/assets/modmenu/lang/mk_mk.json b/gui/src/main/resources/assets/modmenu/lang/mk_mk.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/mk_mk.json rename to gui/src/main/resources/assets/modmenu/lang/mk_mk.json diff --git a/src/main/resources/assets/modmenu/lang/mn_mn.json b/gui/src/main/resources/assets/modmenu/lang/mn_mn.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/mn_mn.json rename to gui/src/main/resources/assets/modmenu/lang/mn_mn.json diff --git a/src/main/resources/assets/modmenu/lang/moe.json b/gui/src/main/resources/assets/modmenu/lang/moe.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/moe.json rename to gui/src/main/resources/assets/modmenu/lang/moe.json diff --git a/src/main/resources/assets/modmenu/lang/moh-CA.json b/gui/src/main/resources/assets/modmenu/lang/moh-CA.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/moh-CA.json rename to gui/src/main/resources/assets/modmenu/lang/moh-CA.json diff --git a/src/main/resources/assets/modmenu/lang/ms_my.json b/gui/src/main/resources/assets/modmenu/lang/ms_my.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ms_my.json rename to gui/src/main/resources/assets/modmenu/lang/ms_my.json diff --git a/src/main/resources/assets/modmenu/lang/mt_mt.json b/gui/src/main/resources/assets/modmenu/lang/mt_mt.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/mt_mt.json rename to gui/src/main/resources/assets/modmenu/lang/mt_mt.json diff --git a/src/main/resources/assets/modmenu/lang/nah.json b/gui/src/main/resources/assets/modmenu/lang/nah.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nah.json rename to gui/src/main/resources/assets/modmenu/lang/nah.json diff --git a/src/main/resources/assets/modmenu/lang/nds_de.json b/gui/src/main/resources/assets/modmenu/lang/nds_de.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nds_de.json rename to gui/src/main/resources/assets/modmenu/lang/nds_de.json diff --git a/src/main/resources/assets/modmenu/lang/ne-NP.json b/gui/src/main/resources/assets/modmenu/lang/ne-NP.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ne-NP.json rename to gui/src/main/resources/assets/modmenu/lang/ne-NP.json diff --git a/src/main/resources/assets/modmenu/lang/nl_be.json b/gui/src/main/resources/assets/modmenu/lang/nl_be.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nl_be.json rename to gui/src/main/resources/assets/modmenu/lang/nl_be.json diff --git a/src/main/resources/assets/modmenu/lang/nl_nl.json b/gui/src/main/resources/assets/modmenu/lang/nl_nl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nl_nl.json rename to gui/src/main/resources/assets/modmenu/lang/nl_nl.json diff --git a/src/main/resources/assets/modmenu/lang/nn_no.json b/gui/src/main/resources/assets/modmenu/lang/nn_no.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nn_no.json rename to gui/src/main/resources/assets/modmenu/lang/nn_no.json diff --git a/src/main/resources/assets/modmenu/lang/no_no.json b/gui/src/main/resources/assets/modmenu/lang/no_no.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/no_no.json rename to gui/src/main/resources/assets/modmenu/lang/no_no.json diff --git a/src/main/resources/assets/modmenu/lang/nuk.json b/gui/src/main/resources/assets/modmenu/lang/nuk.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/nuk.json rename to gui/src/main/resources/assets/modmenu/lang/nuk.json diff --git a/src/main/resources/assets/modmenu/lang/oc_fr.json b/gui/src/main/resources/assets/modmenu/lang/oc_fr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/oc_fr.json rename to gui/src/main/resources/assets/modmenu/lang/oc_fr.json diff --git a/src/main/resources/assets/modmenu/lang/oj-CA.json b/gui/src/main/resources/assets/modmenu/lang/oj-CA.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/oj-CA.json rename to gui/src/main/resources/assets/modmenu/lang/oj-CA.json diff --git a/src/main/resources/assets/modmenu/lang/ovd.json b/gui/src/main/resources/assets/modmenu/lang/ovd.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ovd.json rename to gui/src/main/resources/assets/modmenu/lang/ovd.json diff --git a/src/main/resources/assets/modmenu/lang/pl_pl.json b/gui/src/main/resources/assets/modmenu/lang/pl_pl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/pl_pl.json rename to gui/src/main/resources/assets/modmenu/lang/pl_pl.json diff --git a/src/main/resources/assets/modmenu/lang/pt_br.json b/gui/src/main/resources/assets/modmenu/lang/pt_br.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/pt_br.json rename to gui/src/main/resources/assets/modmenu/lang/pt_br.json diff --git a/src/main/resources/assets/modmenu/lang/pt_pt.json b/gui/src/main/resources/assets/modmenu/lang/pt_pt.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/pt_pt.json rename to gui/src/main/resources/assets/modmenu/lang/pt_pt.json diff --git a/src/main/resources/assets/modmenu/lang/qya_aa.json b/gui/src/main/resources/assets/modmenu/lang/qya_aa.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/qya_aa.json rename to gui/src/main/resources/assets/modmenu/lang/qya_aa.json diff --git a/src/main/resources/assets/modmenu/lang/ro_ro.json b/gui/src/main/resources/assets/modmenu/lang/ro_ro.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ro_ro.json rename to gui/src/main/resources/assets/modmenu/lang/ro_ro.json diff --git a/src/main/resources/assets/modmenu/lang/rpr.json b/gui/src/main/resources/assets/modmenu/lang/rpr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/rpr.json rename to gui/src/main/resources/assets/modmenu/lang/rpr.json diff --git a/src/main/resources/assets/modmenu/lang/ru_ru.json b/gui/src/main/resources/assets/modmenu/lang/ru_ru.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ru_ru.json rename to gui/src/main/resources/assets/modmenu/lang/ru_ru.json diff --git a/src/main/resources/assets/modmenu/lang/sah-SAH.json b/gui/src/main/resources/assets/modmenu/lang/sah-SAH.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sah-SAH.json rename to gui/src/main/resources/assets/modmenu/lang/sah-SAH.json diff --git a/src/main/resources/assets/modmenu/lang/scn.json b/gui/src/main/resources/assets/modmenu/lang/scn.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/scn.json rename to gui/src/main/resources/assets/modmenu/lang/scn.json diff --git a/src/main/resources/assets/modmenu/lang/se_no.json b/gui/src/main/resources/assets/modmenu/lang/se_no.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/se_no.json rename to gui/src/main/resources/assets/modmenu/lang/se_no.json diff --git a/src/main/resources/assets/modmenu/lang/sjd.json b/gui/src/main/resources/assets/modmenu/lang/sjd.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sjd.json rename to gui/src/main/resources/assets/modmenu/lang/sjd.json diff --git a/src/main/resources/assets/modmenu/lang/sk_sk.json b/gui/src/main/resources/assets/modmenu/lang/sk_sk.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sk_sk.json rename to gui/src/main/resources/assets/modmenu/lang/sk_sk.json diff --git a/src/main/resources/assets/modmenu/lang/sl_si.json b/gui/src/main/resources/assets/modmenu/lang/sl_si.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sl_si.json rename to gui/src/main/resources/assets/modmenu/lang/sl_si.json diff --git a/src/main/resources/assets/modmenu/lang/so_so.json b/gui/src/main/resources/assets/modmenu/lang/so_so.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/so_so.json rename to gui/src/main/resources/assets/modmenu/lang/so_so.json diff --git a/src/main/resources/assets/modmenu/lang/sq_al.json b/gui/src/main/resources/assets/modmenu/lang/sq_al.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sq_al.json rename to gui/src/main/resources/assets/modmenu/lang/sq_al.json diff --git a/src/main/resources/assets/modmenu/lang/sr-Cyrl-ME.json b/gui/src/main/resources/assets/modmenu/lang/sr-Cyrl-ME.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sr-Cyrl-ME.json rename to gui/src/main/resources/assets/modmenu/lang/sr-Cyrl-ME.json diff --git a/src/main/resources/assets/modmenu/lang/sr_sp.json b/gui/src/main/resources/assets/modmenu/lang/sr_sp.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sr_sp.json rename to gui/src/main/resources/assets/modmenu/lang/sr_sp.json diff --git a/src/main/resources/assets/modmenu/lang/sv_se.json b/gui/src/main/resources/assets/modmenu/lang/sv_se.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sv_se.json rename to gui/src/main/resources/assets/modmenu/lang/sv_se.json diff --git a/src/main/resources/assets/modmenu/lang/swg.json b/gui/src/main/resources/assets/modmenu/lang/swg.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/swg.json rename to gui/src/main/resources/assets/modmenu/lang/swg.json diff --git a/src/main/resources/assets/modmenu/lang/sxu.json b/gui/src/main/resources/assets/modmenu/lang/sxu.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/sxu.json rename to gui/src/main/resources/assets/modmenu/lang/sxu.json diff --git a/src/main/resources/assets/modmenu/lang/szl.json b/gui/src/main/resources/assets/modmenu/lang/szl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/szl.json rename to gui/src/main/resources/assets/modmenu/lang/szl.json diff --git a/src/main/resources/assets/modmenu/lang/ta_in.json b/gui/src/main/resources/assets/modmenu/lang/ta_in.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ta_in.json rename to gui/src/main/resources/assets/modmenu/lang/ta_in.json diff --git a/src/main/resources/assets/modmenu/lang/th_th.json b/gui/src/main/resources/assets/modmenu/lang/th_th.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/th_th.json rename to gui/src/main/resources/assets/modmenu/lang/th_th.json diff --git a/src/main/resources/assets/modmenu/lang/tl_ph.json b/gui/src/main/resources/assets/modmenu/lang/tl_ph.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tl_ph.json rename to gui/src/main/resources/assets/modmenu/lang/tl_ph.json diff --git a/src/main/resources/assets/modmenu/lang/tlh_aa.json b/gui/src/main/resources/assets/modmenu/lang/tlh_aa.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tlh_aa.json rename to gui/src/main/resources/assets/modmenu/lang/tlh_aa.json diff --git a/src/main/resources/assets/modmenu/lang/tok.json b/gui/src/main/resources/assets/modmenu/lang/tok.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tok.json rename to gui/src/main/resources/assets/modmenu/lang/tok.json diff --git a/src/main/resources/assets/modmenu/lang/tr_tr.json b/gui/src/main/resources/assets/modmenu/lang/tr_tr.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tr_tr.json rename to gui/src/main/resources/assets/modmenu/lang/tr_tr.json diff --git a/src/main/resources/assets/modmenu/lang/tt_ru.json b/gui/src/main/resources/assets/modmenu/lang/tt_ru.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tt_ru.json rename to gui/src/main/resources/assets/modmenu/lang/tt_ru.json diff --git a/src/main/resources/assets/modmenu/lang/tzl_tzl.json b/gui/src/main/resources/assets/modmenu/lang/tzl_tzl.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/tzl_tzl.json rename to gui/src/main/resources/assets/modmenu/lang/tzl_tzl.json diff --git a/src/main/resources/assets/modmenu/lang/uk_ua.json b/gui/src/main/resources/assets/modmenu/lang/uk_ua.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/uk_ua.json rename to gui/src/main/resources/assets/modmenu/lang/uk_ua.json diff --git a/src/main/resources/assets/modmenu/lang/ur-PK.json b/gui/src/main/resources/assets/modmenu/lang/ur-PK.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/ur-PK.json rename to gui/src/main/resources/assets/modmenu/lang/ur-PK.json diff --git a/src/main/resources/assets/modmenu/lang/uz-UZ.json b/gui/src/main/resources/assets/modmenu/lang/uz-UZ.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/uz-UZ.json rename to gui/src/main/resources/assets/modmenu/lang/uz-UZ.json diff --git a/src/main/resources/assets/modmenu/lang/val_es.json b/gui/src/main/resources/assets/modmenu/lang/val_es.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/val_es.json rename to gui/src/main/resources/assets/modmenu/lang/val_es.json diff --git a/src/main/resources/assets/modmenu/lang/vec_it.json b/gui/src/main/resources/assets/modmenu/lang/vec_it.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/vec_it.json rename to gui/src/main/resources/assets/modmenu/lang/vec_it.json diff --git a/src/main/resources/assets/modmenu/lang/vi_vn.json b/gui/src/main/resources/assets/modmenu/lang/vi_vn.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/vi_vn.json rename to gui/src/main/resources/assets/modmenu/lang/vi_vn.json diff --git a/src/main/resources/assets/modmenu/lang/yi_de.json b/gui/src/main/resources/assets/modmenu/lang/yi_de.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/yi_de.json rename to gui/src/main/resources/assets/modmenu/lang/yi_de.json diff --git a/src/main/resources/assets/modmenu/lang/yo_ng.json b/gui/src/main/resources/assets/modmenu/lang/yo_ng.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/yo_ng.json rename to gui/src/main/resources/assets/modmenu/lang/yo_ng.json diff --git a/src/main/resources/assets/modmenu/lang/zh_cn.json b/gui/src/main/resources/assets/modmenu/lang/zh_cn.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/zh_cn.json rename to gui/src/main/resources/assets/modmenu/lang/zh_cn.json diff --git a/src/main/resources/assets/modmenu/lang/zh_hk.json b/gui/src/main/resources/assets/modmenu/lang/zh_hk.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/zh_hk.json rename to gui/src/main/resources/assets/modmenu/lang/zh_hk.json diff --git a/src/main/resources/assets/modmenu/lang/zh_tw.json b/gui/src/main/resources/assets/modmenu/lang/zh_tw.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/zh_tw.json rename to gui/src/main/resources/assets/modmenu/lang/zh_tw.json diff --git a/src/main/resources/assets/modmenu/lang/zlm-Arab.json b/gui/src/main/resources/assets/modmenu/lang/zlm-Arab.json similarity index 100% rename from src/main/resources/assets/modmenu/lang/zlm-Arab.json rename to gui/src/main/resources/assets/modmenu/lang/zlm-Arab.json diff --git a/src/main/resources/assets/modmenu/minecraft_icon.png b/gui/src/main/resources/assets/modmenu/minecraft_icon.png similarity index 100% rename from src/main/resources/assets/modmenu/minecraft_icon.png rename to gui/src/main/resources/assets/modmenu/minecraft_icon.png diff --git a/src/main/resources/assets/modmenu/textures/gui/configure_button.png b/gui/src/main/resources/assets/modmenu/textures/gui/configure_button.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/configure_button.png rename to gui/src/main/resources/assets/modmenu/textures/gui/configure_button.png diff --git a/src/main/resources/assets/modmenu/textures/gui/filters_button.png b/gui/src/main/resources/assets/modmenu/textures/gui/filters_button.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/filters_button.png rename to gui/src/main/resources/assets/modmenu/textures/gui/filters_button.png diff --git a/src/main/resources/assets/modmenu/textures/gui/mod_configuration.png b/gui/src/main/resources/assets/modmenu/textures/gui/mod_configuration.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/mod_configuration.png rename to gui/src/main/resources/assets/modmenu/textures/gui/mod_configuration.png diff --git a/src/main/resources/assets/modmenu/textures/gui/mods_button.png b/gui/src/main/resources/assets/modmenu/textures/gui/mods_button.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/mods_button.png rename to gui/src/main/resources/assets/modmenu/textures/gui/mods_button.png diff --git a/src/main/resources/assets/modmenu/textures/gui/mods_button_alt.png b/gui/src/main/resources/assets/modmenu/textures/gui/mods_button_alt.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/mods_button_alt.png rename to gui/src/main/resources/assets/modmenu/textures/gui/mods_button_alt.png diff --git a/src/main/resources/assets/modmenu/textures/gui/mods_button_alt3.png b/gui/src/main/resources/assets/modmenu/textures/gui/mods_button_alt3.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/mods_button_alt3.png rename to gui/src/main/resources/assets/modmenu/textures/gui/mods_button_alt3.png diff --git a/src/main/resources/assets/modmenu/textures/gui/parent_mod.png b/gui/src/main/resources/assets/modmenu/textures/gui/parent_mod.png similarity index 100% rename from src/main/resources/assets/modmenu/textures/gui/parent_mod.png rename to gui/src/main/resources/assets/modmenu/textures/gui/parent_mod.png diff --git a/src/main/resources/assets/modmenu/unknown_icon.png b/gui/src/main/resources/assets/modmenu/unknown_icon.png similarity index 100% rename from src/main/resources/assets/modmenu/unknown_icon.png rename to gui/src/main/resources/assets/modmenu/unknown_icon.png diff --git a/src/main/resources/assets/modmenu/unknown_parent.png b/gui/src/main/resources/assets/modmenu/unknown_parent.png similarity index 100% rename from src/main/resources/assets/modmenu/unknown_parent.png rename to gui/src/main/resources/assets/modmenu/unknown_parent.png diff --git a/src/main/resources/fabric.mod.json b/gui/src/main/resources/fabric.mod.json similarity index 90% rename from src/main/resources/fabric.mod.json rename to gui/src/main/resources/fabric.mod.json index e5c7997fe..fb42da7b7 100644 --- a/src/main/resources/fabric.mod.json +++ b/gui/src/main/resources/fabric.mod.json @@ -12,6 +12,12 @@ ], "modmenu": [ "com.terraformersmc.modmenu.ModMenuModMenuCompat" + ], + "modmenu-gui": [ + "com.terraformersmc.modmenu.ModMenuModMenuGuiProviderAndUpdatePreferences" + ], + "modmenu-update-preferences": [ + "com.terraformersmc.modmenu.ModMenuModMenuGuiProviderAndUpdatePreferences" ] }, "contact": { diff --git a/src/main/resources/high_contrast/assets/modmenu/textures/gui/configure_button.png b/gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/configure_button.png similarity index 100% rename from src/main/resources/high_contrast/assets/modmenu/textures/gui/configure_button.png rename to gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/configure_button.png diff --git a/src/main/resources/high_contrast/assets/modmenu/textures/gui/filters_button.png b/gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/filters_button.png similarity index 100% rename from src/main/resources/high_contrast/assets/modmenu/textures/gui/filters_button.png rename to gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/filters_button.png diff --git a/src/main/resources/high_contrast/assets/modmenu/textures/gui/mods_button.png b/gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/mods_button.png similarity index 100% rename from src/main/resources/high_contrast/assets/modmenu/textures/gui/mods_button.png rename to gui/src/main/resources/high_contrast/assets/modmenu/textures/gui/mods_button.png diff --git a/src/main/resources/mixins.modmenu.json b/gui/src/main/resources/mixins.modmenu.json similarity index 100% rename from src/main/resources/mixins.modmenu.json rename to gui/src/main/resources/mixins.modmenu.json diff --git a/src/main/resources/programmer_art/assets/modmenu/textures/gui/configure_button.png b/gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/configure_button.png similarity index 100% rename from src/main/resources/programmer_art/assets/modmenu/textures/gui/configure_button.png rename to gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/configure_button.png diff --git a/src/main/resources/programmer_art/assets/modmenu/textures/gui/filters_button.png b/gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/filters_button.png similarity index 100% rename from src/main/resources/programmer_art/assets/modmenu/textures/gui/filters_button.png rename to gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/filters_button.png diff --git a/src/main/resources/programmer_art/assets/modmenu/textures/gui/mods_button.png b/gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/mods_button.png similarity index 100% rename from src/main/resources/programmer_art/assets/modmenu/textures/gui/mods_button.png rename to gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/mods_button.png diff --git a/src/main/resources/programmer_art/assets/modmenu/textures/gui/parent_mod.png b/gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/parent_mod.png similarity index 100% rename from src/main/resources/programmer_art/assets/modmenu/textures/gui/parent_mod.png rename to gui/src/main/resources/programmer_art/assets/modmenu/textures/gui/parent_mod.png diff --git a/settings.gradle b/settings.gradle index 6c4176c76..000969705 100644 --- a/settings.gradle +++ b/settings.gradle @@ -8,8 +8,14 @@ pluginManagement { } } -if (JavaVersion.current().ordinal() + 1 < 17) { - throw new IllegalStateException("Please run gradle with Java 17+!") +if (JavaVersion.current().ordinal() + 1 < 21) { + throw new IllegalStateException("Please run gradle with Java 21+!") } rootProject.name = "modmenu" + +include "api" +include "engine" +include "gui" +include "provider-fabric" +include "provider-quilt"