From d4bb5a94308d4379ef3d6cc7b9221ea0d98ff051 Mon Sep 17 00:00:00 2001 From: Wyvest <45589059+Wyvest@users.noreply.github.com> Date: Sat, 2 Jul 2022 06:12:23 +0700 Subject: Separate Minecraft dependant and non-dependant code --- build.gradle.kts | 237 ++------------- root.gradle.kts | 10 - settings.gradle.kts | 18 +- .../compatibility/vigilance/VigilanceConfig.java | 8 +- .../oneconfig/config/profiles/Profiles.java | 16 +- .../oneconfig/events/event/ChatReceiveEvent.java | 11 +- .../oneconfig/events/event/ReceivePacketEvent.java | 6 +- .../oneconfig/events/event/ScreenOpenEvent.java | 5 +- .../oneconfig/events/event/SendPacketEvent.java | 5 +- .../oneconfig/events/event/TimerUpdateEvent.java | 19 +- .../java/cc/polyfrost/oneconfig/gui/GuiPause.java | 9 + .../java/cc/polyfrost/oneconfig/gui/HudGui.java | 65 ++-- .../cc/polyfrost/oneconfig/gui/OneConfigGui.java | 25 +- .../java/cc/polyfrost/oneconfig/gui/SideBar.java | 8 +- .../oneconfig/gui/elements/BasicElement.java | 4 +- .../oneconfig/gui/elements/ColorSelector.java | 18 +- .../polyfrost/oneconfig/gui/elements/ModCard.java | 8 +- .../polyfrost/oneconfig/gui/elements/Slider.java | 4 +- .../gui/elements/config/ConfigCheckbox.java | 4 +- .../gui/elements/config/ConfigDropdown.java | 22 +- .../gui/elements/config/ConfigPageButton.java | 4 +- .../gui/elements/config/ConfigSlider.java | 4 +- .../gui/elements/config/ConfigSwitch.java | 4 +- .../gui/elements/config/ConfigTextBox.java | 4 +- .../gui/elements/text/TextInputField.java | 17 +- .../cc/polyfrost/oneconfig/gui/pages/Page.java | 8 +- src/main/java/cc/polyfrost/oneconfig/hud/Hud.java | 12 +- .../java/cc/polyfrost/oneconfig/hud/TextHud.java | 3 +- .../java/cc/polyfrost/oneconfig/images/Image.java | 8 +- .../cc/polyfrost/oneconfig/internal/OneConfig.java | 87 ------ .../oneconfig/internal/config/OneConfigConfig.java | 14 +- .../oneconfig/internal/config/Preferences.java | 14 +- .../oneconfig/internal/config/core/ConfigCore.java | 2 + .../oneconfig/internal/gui/BlurHandler.java | 140 +-------- .../oneconfig/internal/init/OneConfigInit.java | 2 - .../internal/mixin/FontRendererMixin.java | 15 - .../internal/mixin/GuiIngameForgeMixin.java | 17 -- .../oneconfig/internal/mixin/MinecraftMixin.java | 98 ------ .../internal/mixin/NetHandlerPlayClientMixin.java | 36 --- .../internal/mixin/NetworkManagerMixin.java | 23 -- .../internal/mixin/OptifineConfigMixin.java | 21 -- .../internal/mixin/ShaderGroupAccessor.java | 14 - .../oneconfig/internal/mixin/VigilantMixin.java | 8 - .../oneconfig/internal/mixin/WorldClientMixin.java | 21 -- .../internal/plugin/asm/ClassTransformer.java | 102 ------- .../internal/plugin/asm/ITransformer.java | 24 -- .../internal/plugin/asm/OneConfigTweaker.java | 117 -------- .../asm/tweakers/NanoVGGLConfigTransformer.java | 47 --- .../plugin/asm/tweakers/VigilantTransformer.java | 89 ------ .../plugin/hooks/Lwjgl2FunctionProvider.java | 39 --- .../internal/plugin/hooks/OptifineConfigHook.java | 23 -- .../internal/plugin/hooks/VigilantHook.java | 27 -- .../polyfrost/oneconfig/platform/GLPlatform.java | 17 ++ .../polyfrost/oneconfig/platform/GuiPlatform.java | 8 + .../polyfrost/oneconfig/platform/I18nPlatform.java | 5 + .../oneconfig/platform/LoaderPlatform.java | 19 ++ .../oneconfig/platform/MousePlatform.java | 15 + .../cc/polyfrost/oneconfig/platform/Platform.java | 55 ++++ .../oneconfig/platform/ServerPlatform.java | 7 + .../oneconfig/renderer/RenderManager.java | 29 +- .../polyfrost/oneconfig/test/TestConfig_Test.java | 6 +- .../cc/polyfrost/oneconfig/test/TestMod_Test.java | 14 - .../oneconfig/test/TestMultilineHud_Test.java | 3 - .../oneconfig/test/TestNanoVGGui_Test.java | 1 - .../cc/polyfrost/oneconfig/utils/InputUtils.java | 13 +- .../oneconfig/utils/commands/CommandManager.java | 328 +------------------- .../utils/commands/PlatformCommandManager.java | 7 + .../cc/polyfrost/oneconfig/utils/gui/GuiUtils.java | 27 +- .../polyfrost/oneconfig/utils/gui/OneUIScreen.java | 31 +- .../oneconfig/utils/hypixel/HypixelUtils.java | 19 +- .../cc/polyfrost/oneconfig/utils/dsl/DSLs.kt | 9 - .../polyfrost/oneconfig/utils/dsl/GuiUtilsDSL.kt | 11 - src/main/resources/mixins.oneconfig.json | 22 -- versions/build.gradle.kts | 306 +++++++++++++++++++ versions/root.gradle.kts | 9 + .../oneconfig/events/event/ChatReceiveEvent.java | 22 ++ .../oneconfig/events/event/ReceivePacketEvent.java | 11 + .../oneconfig/events/event/ScreenOpenEvent.java | 17 ++ .../oneconfig/events/event/SendPacketEvent.java | 11 + .../oneconfig/events/event/TimerUpdateEvent.java | 24 ++ .../cc/polyfrost/oneconfig/internal/OneConfig.java | 93 ++++++ .../internal/gui/impl/BlurHandlerImpl.java | 132 +++++++++ .../internal/mixin/GuiIngameForgeMixin.java | 19 ++ .../oneconfig/internal/mixin/MinecraftMixin.java | 100 +++++++ .../internal/mixin/NetHandlerPlayClientMixin.java | 38 +++ .../internal/mixin/NetworkManagerMixin.java | 25 ++ .../internal/mixin/OptifineConfigMixin.java | 23 ++ .../internal/mixin/ShaderGroupAccessor.java | 16 + .../oneconfig/internal/mixin/VigilantMixin.java | 10 + .../oneconfig/internal/mixin/WorldClientMixin.java | 23 ++ .../internal/plugin/asm/ClassTransformer.java | 102 +++++++ .../internal/plugin/asm/ITransformer.java | 24 ++ .../internal/plugin/asm/OneConfigTweaker.java | 117 ++++++++ .../asm/tweakers/NanoVGGLConfigTransformer.java | 47 +++ .../plugin/asm/tweakers/VigilantTransformer.java | 89 ++++++ .../plugin/hooks/Lwjgl2FunctionProvider.java | 47 +++ .../internal/plugin/hooks/OptifineConfigHook.java | 22 ++ .../internal/plugin/hooks/VigilantHook.java | 26 ++ .../oneconfig/platform/impl/GLPlatformImpl.java | 67 +++++ .../oneconfig/platform/impl/GuiPlatformImpl.java | 31 ++ .../oneconfig/platform/impl/I18nPlatformImpl.java | 13 + .../platform/impl/LoaderPlatformImpl.java | 26 ++ .../oneconfig/platform/impl/MousePlatformImpl.java | 53 ++++ .../oneconfig/platform/impl/PlatformImpl.java | 12 + .../platform/impl/ServerPlatformImpl.java | 22 ++ .../utils/commands/PlatformCommandManagerImpl.java | 330 +++++++++++++++++++++ .../cc/polyfrost/oneconfig/utils/gui/GuiUtils.java | 100 +++++++ .../cc/polyfrost/oneconfig/utils/dsl/DSLs.kt | 9 + .../polyfrost/oneconfig/utils/dsl/GuiUtilsDSL.kt | 11 + ...cc.polyfrost.oneconfig.internal.gui.BlurHandler | 1 + .../cc.polyfrost.oneconfig.platform.GLPlatform | 1 + .../cc.polyfrost.oneconfig.platform.GuiPlatform | 1 + .../cc.polyfrost.oneconfig.platform.I18nPlatform | 1 + .../cc.polyfrost.oneconfig.platform.LoaderPlatform | 1 + .../cc.polyfrost.oneconfig.platform.MousePlatform | 1 + .../cc.polyfrost.oneconfig.platform.Platform | 1 + .../cc.polyfrost.oneconfig.platform.ServerPlatform | 1 + ...oneconfig.utils.commands.PlatformCommandManager | 1 + versions/src/main/resources/mixins.oneconfig.json | 21 ++ 119 files changed, 2455 insertions(+), 1794 deletions(-) delete mode 100644 root.gradle.kts create mode 100644 src/main/java/cc/polyfrost/oneconfig/gui/GuiPause.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/FontRendererMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/GuiIngameForgeMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetHandlerPlayClientMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetworkManagerMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/OptifineConfigMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/ShaderGroupAccessor.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/VigilantMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/mixin/WorldClientMixin.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/ClassTransformer.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/ITransformer.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/tweakers/NanoVGGLConfigTransformer.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/tweakers/VigilantTransformer.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/Lwjgl2FunctionProvider.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/OptifineConfigHook.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/VigilantHook.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/GLPlatform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/GuiPlatform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/I18nPlatform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/LoaderPlatform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/MousePlatform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/Platform.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/platform/ServerPlatform.java delete mode 100644 src/main/java/cc/polyfrost/oneconfig/test/TestMod_Test.java create mode 100644 src/main/java/cc/polyfrost/oneconfig/utils/commands/PlatformCommandManager.java delete mode 100644 src/main/kotlin/cc/polyfrost/oneconfig/utils/dsl/DSLs.kt delete mode 100644 src/main/kotlin/cc/polyfrost/oneconfig/utils/dsl/GuiUtilsDSL.kt delete mode 100644 src/main/resources/mixins.oneconfig.json create mode 100644 versions/build.gradle.kts create mode 100644 versions/root.gradle.kts create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/events/event/ChatReceiveEvent.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/events/event/ReceivePacketEvent.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/events/event/ScreenOpenEvent.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/events/event/SendPacketEvent.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/events/event/TimerUpdateEvent.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/gui/impl/BlurHandlerImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/GuiIngameForgeMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetHandlerPlayClientMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/NetworkManagerMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/OptifineConfigMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/ShaderGroupAccessor.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/VigilantMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/mixin/WorldClientMixin.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/ClassTransformer.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/ITransformer.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/OneConfigTweaker.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/tweakers/NanoVGGLConfigTransformer.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/asm/tweakers/VigilantTransformer.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/Lwjgl2FunctionProvider.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/OptifineConfigHook.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/internal/plugin/hooks/VigilantHook.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GLPlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/GuiPlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/I18nPlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/LoaderPlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/MousePlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/PlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/platform/impl/ServerPlatformImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/utils/commands/PlatformCommandManagerImpl.java create mode 100644 versions/src/main/java/cc/polyfrost/oneconfig/utils/gui/GuiUtils.java create mode 100644 versions/src/main/kotlin/cc/polyfrost/oneconfig/utils/dsl/DSLs.kt create mode 100644 versions/src/main/kotlin/cc/polyfrost/oneconfig/utils/dsl/GuiUtilsDSL.kt create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.internal.gui.BlurHandler create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.GLPlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.GuiPlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.I18nPlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.LoaderPlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.MousePlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.Platform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.platform.ServerPlatform create mode 100644 versions/src/main/resources/META-INF/services/cc.polyfrost.oneconfig.utils.commands.PlatformCommandManager create mode 100644 versions/src/main/resources/mixins.oneconfig.json diff --git a/build.gradle.kts b/build.gradle.kts index 1f20571..944612c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,25 +1,22 @@ -import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar +import gg.essential.gradle.multiversion.StripReferencesTransform.Companion.registerStripReferencesAttribute import gg.essential.gradle.util.RelocationTransform.Companion.registerRelocationAttribute -import gg.essential.gradle.util.noServerRunConfigs import gg.essential.gradle.util.prebundle -import net.fabricmc.loom.task.RemapSourcesJarTask plugins { - kotlin("jvm") - id("gg.essential.multi-version") + kotlin("jvm") version "1.6.21" id("gg.essential.defaults.repo") id("gg.essential.defaults.java") - id("gg.essential.defaults.loom") - id("com.github.johnrengelman.shadow") id("net.kyori.blossom") version "1.3.0" - id("io.github.juuxel.loom-quiltflower-mini") - id("org.jetbrains.dokka") version "1.6.21" id("maven-publish") id("signing") java } +kotlin.jvmToolchain { + (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(8)) +} + java { withSourcesJar() } @@ -28,10 +25,6 @@ val mod_name: String by project val mod_version: String by project val mod_id: String by project -preprocess { - vars.put("MODERN", if (project.platform.mcMinor >= 16) 1 else 0) -} - blossom { replaceToken("@VER@", mod_version) replaceToken("@NAME@", mod_name) @@ -40,25 +33,6 @@ blossom { version = mod_version group = "cc.polyfrost" -base { - archivesName.set("$mod_id-$platform") -} -loom { - noServerRunConfigs() - if (project.platform.isLegacyForge) { - launchConfigs.named("client") { - arg("--tweakClass", "cc.polyfrost.oneconfig.internal.plugin.asm.OneConfigTweaker") - property("mixin.debug.export", "true") - property("debugBytecode", "true") - } - } - if (project.platform.isForge) { - forge { - mixinConfig("mixins.${mod_id}.json") - } - } - mixin.defaultRefmapName.set("mixins.${mod_id}.refmap.json") -} repositories { maven("https://repo.polyfrost.cc/releases") @@ -90,12 +64,29 @@ sourceSets { } } +val common = registerStripReferencesAttribute("common") { + excludes.add("net.minecraft") + excludes.add("net.minecraftforge") +} + dependencies { - compileOnly("gg.essential:vigilance-$platform:222") { + + compileOnly("com.google.code.gson:gson:2.2.4") + compileOnly("commons-io:commons-io:2.4") + compileOnly("com.google.guava:guava:17.0") + compileOnly("org.lwjgl:lwjgl-opengl:3.3.1") + compileOnly("org.apache.logging.log4j:log4j-core:2.0-beta9") + compileOnly("org.apache.logging.log4j:log4j-api:2.0-beta9") + compileOnly("org.ow2.asm:asm-debug-all:5.0.3") + compileOnly("org.apache.commons:commons-lang3:3.3.2") + + compileOnly("gg.essential:vigilance-1.8.9-forge:222") { + attributes { attribute(common, true) } isTransitive = false } - shadeRelocated("gg.essential:universalcraft-$platform:211") { + shadeRelocated("gg.essential:universalcraft-1.8.9-forge:211") { + attributes { attribute(common, true) } isTransitive = false } @@ -130,197 +121,29 @@ dependencies { shade("cc.polyfrost:lwjgl:1.0.0-alpha1") shadeNoPom(prebundle(shadeRelocated)) - dokkaHtmlPlugin("org.jetbrains.dokka:kotlin-as-java-plugin:1.6.21") - configurations.named(JavaPlugin.COMPILE_CLASSPATH_CONFIGURATION_NAME) { extendsFrom(shadeNoPom) } configurations.named(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME) { extendsFrom(shadeNoPom) } } -tasks.processResources { - inputs.property("id", mod_id) - inputs.property("name", mod_name) - val java = if (project.platform.mcMinor >= 18) { - 17 - } else { - if (project.platform.mcMinor == 17) 16 else 8 - } - val compatLevel = "JAVA_${java}" - inputs.property("java", java) - inputs.property("java_level", compatLevel) - inputs.property("version", mod_version) - inputs.property("mcVersionStr", project.platform.mcVersionStr) - filesMatching(listOf("mcmod.info", "mixins.${mod_id}.json", "mods.toml")) { - expand( - mapOf( - "id" to mod_id, - "name" to mod_name, - "java" to java, - "java_level" to compatLevel, - "version" to mod_version, - "mcVersionStr" to project.platform.mcVersionStr - ) - ) - } - filesMatching("fabric.mod.json") { - expand( - mapOf( - "id" to mod_id, - "name" to mod_name, - "java" to java, - "java_level" to compatLevel, - "version" to mod_version, - "mcVersionStr" to project.platform.mcVersionStr.substringBeforeLast(".") + ".x" - ) - ) - } -} - tasks { withType(Jar::class.java) { - if (project.platform.isFabric) { - exclude("mcmod.info", "mods.toml") - } else { - exclude("fabric.mod.json") - if (project.platform.isLegacyForge) { - exclude("mods.toml") - exclude("META-INF/versions/**") - exclude("**/module-info.class") - exclude("**/package-info.class") - } else { - exclude("mcmod.info") - } - } + duplicatesStrategy = DuplicatesStrategy.EXCLUDE if (!name.contains("sourcesjar", ignoreCase = true) || !name.contains("dokka", ignoreCase = true)) { exclude("**/**_Test.**") exclude("**/**_Test$**.**") } } - named("shadowJar") { - archiveClassifier.set("donotusethis") - configurations = listOf(shade, shadeNoPom) - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - dependsOn(jar) - } - remapJar { - input.set(shadowJar.get().archiveFile) - archiveClassifier.set("full") - } - fun Jar.excludeInternal() { - exclude("**/internal/**") - } jar { - dependsOn(shadeNoPom) - from({ shadeNoPom.map { if (it.isDirectory) it else zipTree(it) } }) - manifest { - attributes( - mapOf( - "ModSide" to "CLIENT", - "ForceLoadAsMod" to true, - "TweakOrder" to "0", - "MixinConfigs" to "mixins.oneconfig.json", - "TweakClass" to "cc.polyfrost.oneconfig.internal.plugin.asm.OneConfigTweaker" - ) - ) - } - excludeInternal() + dependsOn(shadeNoPom, shade) + from({ ArrayList().also { it.addAll(shadeNoPom); it.addAll(shade) }.map { if (it.isDirectory) it else zipTree(it) } }) + archiveClassifier.set("") } - dokkaHtml.configure { - outputDirectory.set(buildDir.resolve("dokka")) - moduleName.set("OneConfig $platform") - moduleVersion.set(mod_version) - dokkaSourceSets { - configureEach { - jdkVersion.set(8) - //reportUndocumented.set(true) - } - } - doLast { - val outputFile = outputDirectory.get().resolve("images/logo-icon.svg") - if (outputFile.exists()) { - outputFile.delete() - } - val inputFile = project.rootDir.resolve("src/main/resources/assets/oneconfig/icons/OneConfig.svg") - inputFile.copyTo(outputFile) - } - } - val dokkaJar = create("dokkaJar", Jar::class.java) { - archiveClassifier.set("dokka") - group = "build" - dependsOn(dokkaHtml) - from(layout.buildDirectory.dir("dokka")) - } named("sourcesJar") { - dependsOn(dokkaJar) - excludeInternal() + exclude("**/internal/**") archiveClassifier.set("sources") doFirst { archiveClassifier.set("sources") } } - withType { - enabled = false - } -} - -afterEvaluate { - val checkFile = file(".gradle/loom-cache/SETUP") - @Suppress("UNUSED_VARIABLE") - val setupGradle by tasks.creating { - group = "loom" - description = "Setup OneConfig" - dependsOn(tasks.named("genSourcesWithQuiltflower").get()) - doLast { - checkFile.parentFile.mkdirs() - checkFile.createNewFile() - } - } - - if (!checkFile.exists()) { - logger.error("--------------") - logger.error("PLEASE RUN THE `setupGradle` TASK, OR ELSE UNEXPECTED THING MAY HAPPEN!") - logger.error("`setupGradle` is in the loom category of your gradle project.") - logger.error("--------------") - } -} - -publishing { - publications { - register("oneconfig-$platform") { - groupId = "cc.polyfrost" - artifactId = base.archivesName.get() - - artifact(tasks["jar"]) - artifact(tasks["remapJar"]) - artifact(tasks["sourcesJar"]) - artifact(tasks["dokkaJar"]) - } - } - - repositories { - maven { - name = "releases" - url = uri("https://repo.polyfrost.cc/releases") - credentials(PasswordCredentials::class) - authentication { - create("basic") - } - } - maven { - name = "snapshots" - url = uri("https://repo.polyfrost.cc/snapshots") - credentials(PasswordCredentials::class) - authentication { - create("basic") - } - } - maven { - name = "private" - url = uri("https://repo.polyfrost.cc/private") - credentials(PasswordCredentials::class) - authentication { - create("basic") - } - } - } } \ No newline at end of file diff --git a/root.gradle.kts b/root.gradle.kts deleted file mode 100644 index 73e3461..0000000 --- a/root.gradle.kts +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - kotlin("jvm") version "1.6.21" apply false - id("gg.essential.multi-version.root") - id("com.github.johnrengelman.shadow") version "7.1.2" apply false - id("io.github.juuxel.loom-quiltflower-mini") version "171a6e2e49" apply false -} - -preprocess { - "1.8.9-forge"(10809, "srg") {} -} \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index 69f48d4..859b472 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -8,6 +8,8 @@ pluginManagement { plugins { val egtVersion = "0.1.10" id("gg.essential.multi-version.root") version egtVersion + id("gg.essential.defaults.repo") version egtVersion + id("gg.essential.defaults.java") version egtVersion } resolutionStrategy { eachPlugin { @@ -21,15 +23,21 @@ pluginManagement { val mod_name: String by settings rootProject.name = mod_name -rootProject.buildFileName = "root.gradle.kts" + +include(":lwjgl") + +include(":platform") +project(":platform").apply { + projectDir = file("versions/") + buildFileName = "root.gradle.kts" +} listOf( "1.8.9-forge" ).forEach { version -> - include(":$version") - project(":$version").apply { + include(":platform:$version") + project(":platform:$version").apply { projectDir = file("versions/$version") - buildFileName = "../../build.gradle.kts" + buildFileName = "../build.gradle.kts" } } -include(":lwjgl") \ No newline at end of file diff --git a/src/main/java/cc/polyfrost/oneconfig/config/compatibility/vigilance/VigilanceConfig.java b/src/main/java/cc/polyfrost/oneconfig/config/compatibility/vigilance/VigilanceConfig.java index 1948e0a..97dd0cb 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/compatibility/vigilance/VigilanceConfig.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/compatibility/vigilance/VigilanceConfig.java @@ -8,11 +8,11 @@ import cc.polyfrost.oneconfig.config.elements.OptionPage; import cc.polyfrost.oneconfig.config.elements.BasicOption; import cc.polyfrost.oneconfig.config.Config; import cc.polyfrost.oneconfig.gui.elements.config.*; +import cc.polyfrost.oneconfig.platform.Platform; import gg.essential.vigilance.Vigilant; import gg.essential.vigilance.data.*; import kotlin.reflect.KMutableProperty0; import kotlin.reflect.jvm.ReflectJvmMapping; -import net.minecraft.client.resources.I18n; import java.awt.*; import java.lang.reflect.Field; @@ -131,7 +131,7 @@ public class VigilanceConfig extends Config { private String getName(PropertyAttributesExt ext) { try { PropertyAttributesExt.class.getDeclaredField("i18nName").setAccessible(true); - return I18n.format((String) PropertyAttributesExt.class.getDeclaredField("i18nName").get(ext)); + return Platform.getI18nPlatform().format((String) PropertyAttributesExt.class.getDeclaredField("i18nName").get(ext)); } catch (IllegalAccessException | NoSuchFieldException e) { return ext.getName(); } @@ -140,7 +140,7 @@ public class VigilanceConfig extends Config { private String getCategory(PropertyAttributesExt ext) { try { PropertyAttributesExt.class.getDeclaredField("i18nCategory").setAccessible(true); - return I18n.format((String) PropertyAttributesExt.class.getDeclaredField("i18nCategory").get(ext)); + return Platform.getI18nPlatform().format((String) PropertyAttributesExt.class.getDeclaredField("i18nCategory").get(ext)); } catch (IllegalAccessException | NoSuchFieldException e) { return ext.getCategory(); } @@ -149,7 +149,7 @@ public class VigilanceConfig extends Config { private String getSubcategory(PropertyAttributesExt ext) { try { PropertyAttributesExt.class.getDeclaredField("i18nSubcategory").setAccessible(true); - return I18n.format((String) PropertyAttributesExt.class.getDeclaredField("i18nSubcategory").get(ext)); + return Platform.getI18nPlatform().format((String) PropertyAttributesExt.class.getDeclaredField("i18nSubcategory").get(ext)); } catch (IllegalAccessException | NoSuchFieldException e) { return ext.getSubcategory(); } diff --git a/src/main/java/cc/polyfrost/oneconfig/config/profiles/Profiles.java b/src/main/java/cc/polyfrost/oneconfig/config/profiles/Profiles.java index 0f5ce09..29a9daa 100644 --- a/src/main/java/cc/polyfrost/oneconfig/config/profiles/Profiles.java +++ b/src/main/java/cc/polyfrost/oneconfig/config/profiles/Profiles.java @@ -1,9 +1,10 @@ package cc.polyfrost.oneconfig.config.profiles; -import cc.polyfrost.oneconfig.internal.OneConfig; import cc.polyfrost.oneconfig.internal.config.OneConfigConfig; import cc.polyfrost.oneconfig.internal.config.core.ConfigCore; import org.apache.commons.io.FileUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import java.io.File; import java.io.IOException; @@ -11,13 +12,14 @@ import java.util.ArrayList; import java.util.Arrays; public class Profiles { + private static final Logger LOGGER = LogManager.getLogger("OneConfig Profiles"); public static final File nonProfileSpecificDir = new File("OneConfig/config"); public static final File profileDir = new File("OneConfig/profiles"); public static ArrayList profiles; public static String getCurrentProfile() { if (!profileDir.exists() && !profileDir.mkdir()) { - OneConfig.LOGGER.fatal("Could not create profiles folder"); + LOGGER.fatal("Could not create profiles folder"); return null; } if (profiles == null) { @@ -33,7 +35,7 @@ public class Profiles { public static void createProfile(String name) { File folder = new File(profileDir, name); if (!folder.exists() && !folder.mkdir()) { - OneConfig.LOGGER.fatal("Could not create profile folder"); + LOGGER.fatal("Could not create profile folder"); return; } profiles.add(name); @@ -58,7 +60,7 @@ public class Profiles { public static void loadProfile(String profile) { ConfigCore.saveAll(); OneConfigConfig.currentProfile = profile; - OneConfig.config.save(); + //OneConfig.config.save(); todo do we actually need this ConfigCore.reInitAll(); } @@ -70,14 +72,14 @@ public class Profiles { profiles.remove(name); profiles.add(newName); } catch (IOException e) { - OneConfig.LOGGER.error("Failed to rename profile"); + LOGGER.error("Failed to rename profile"); } } public static void deleteProfile(String name) { if (name.equals(getCurrentProfile())) { if (profiles.size() == 1) { - OneConfig.LOGGER.error("Cannot delete only profile!"); + LOGGER.error("Cannot delete only profile!"); return; } loadProfile(profiles.stream().filter(entry -> !entry.equals(name)).findFirst().get()); @@ -86,7 +88,7 @@ public class Profiles { FileUtils.deleteDirectory(getProfileDir(name)); profiles.remove(name); } catch (IOException e) { - OneConfig.LOGGER.error("Failed to delete profile"); + LOGGER.error("Failed to delete profile"); } } } diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/ChatReceiveEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/ChatReceiveEvent.java index 616479e..299ce12 100644 --- a/src/main/java/cc/polyfrost/oneconfig/events/event/ChatReceiveEvent.java +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/ChatReceiveEvent.java @@ -1,8 +1,5 @@ package cc.polyfrost.oneconfig.events.event; - -import net.minecraft.util.IChatComponent; - /** * Called when a chat message is received. */ @@ -10,9 +7,13 @@ public class ChatReceiveEvent extends CancellableEvent { /** * The message that was received. */ - public final IChatComponent message; + public final Object message; - public ChatReceiveEvent(IChatComponent message) { + public ChatReceiveEvent(Object message) { this.message = message; } + + public String getFullyUnformattedMessage() { + return ""; + } } diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/ReceivePacketEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/ReceivePacketEvent.java index 17bc16d..f35bd0c 100644 --- a/src/main/java/cc/polyfrost/oneconfig/events/event/ReceivePacketEvent.java +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/ReceivePacketEvent.java @@ -1,11 +1,9 @@ package cc.polyfrost.oneconfig.events.event; -import net.minecraft.network.Packet; - public class ReceivePacketEvent extends CancellableEvent { - public final Packet packet; + public final Object packet; - public ReceivePacketEvent(Packet packet) { + public ReceivePacketEvent(Object packet) { this.packet = packet; } } diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/ScreenOpenEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/ScreenOpenEvent.java index 4593638..daee38b 100644 --- a/src/main/java/cc/polyfrost/oneconfig/events/event/ScreenOpenEvent.java +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/ScreenOpenEvent.java @@ -1,6 +1,5 @@ package cc.polyfrost.oneconfig.events.event; -import net.minecraft.client.gui.GuiScreen; import org.jetbrains.annotations.Nullable; /** @@ -9,9 +8,9 @@ import org.jetbrains.annotations.Nullable; */ public class ScreenOpenEvent extends CancellableEvent { @Nullable - public final GuiScreen screen; + public final Object screen; - public ScreenOpenEvent(@Nullable GuiScreen screen) { + public ScreenOpenEvent(@Nullable Object screen) { this.screen = screen; } } diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/SendPacketEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/SendPacketEvent.java index 3cee784..791f8d6 100644 --- a/src/main/java/cc/polyfrost/oneconfig/events/event/SendPacketEvent.java +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/SendPacketEvent.java @@ -1,11 +1,10 @@ package cc.polyfrost.oneconfig.events.event; -import net.minecraft.network.Packet; public class SendPacketEvent extends CancellableEvent { - public final Packet packet; + public final Object packet; - public SendPacketEvent(Packet packet) { + public SendPacketEvent(Object packet) { this.packet = packet; } } diff --git a/src/main/java/cc/polyfrost/oneconfig/events/event/TimerUpdateEvent.java b/src/main/java/cc/polyfrost/oneconfig/events/event/TimerUpdateEvent.java index a8b88dc..c5f863c 100644 --- a/src/main/java/cc/polyfrost/oneconfig/events/event/TimerUpdateEvent.java +++ b/src/main/java/cc/polyfrost/oneconfig/events/event/TimerUpdateEvent.java @@ -1,23 +1,12 @@ package cc.polyfrost.oneconfig.events.event; -import net.minecraft.util.Timer; - -/** - * Called when the {@link Timer} is updated. - * Can be used as an alternative to getting instances of {@link Timer} - * via Mixin or Access Wideners / Transformers - */ public class TimerUpdateEvent { - /** - * Whether the deltaTicks / renderPartialTicks was updated - */ + public final boolean updatedDeltaTicks; - /** - * The {@link Timer} instance - */ - public final Timer timer; - public TimerUpdateEvent(Timer timer, boolean updatedDeltaTicks) { + public final Object timer; + + public TimerUpdateEvent(Object timer, boolean updatedDeltaTicks) { this.timer = timer; this.updatedDeltaTicks = updatedDeltaTicks; } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/GuiPause.java b/src/main/java/cc/polyfrost/oneconfig/gui/GuiPause.java new file mode 100644 index 0000000..44b2b5c --- /dev/null +++ b/src/main/java/cc/polyfrost/oneconfig/gui/GuiPause.java @@ -0,0 +1,9 @@ +package cc.polyfrost.oneconfig.gui; + +/** + * Hack that allows GUIs to set whether the game should pause when the GUI is displayed without depending on + * Minecraft itself. + */ +public interface GuiPause { + boolean doesGuiPauseGame(); +} diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java b/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java index b13170a..2c3e681 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/HudGui.java @@ -3,6 +3,7 @@ package cc.polyfrost.oneconfig.gui; import cc.polyfrost.oneconfig.internal.config.core.ConfigCore; import cc.polyfrost.oneconfig.hud.Hud; import cc.polyfrost.oneconfig.internal.hud.HudCore; +import cc.polyfrost.oneconfig.libs.universal.UResolution; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.libs.universal.UKeyboard; import cc.polyfrost.oneconfig.libs.universal.UMatrixStack; @@ -13,7 +14,7 @@ import org.jetbrains.annotations.Nullable; import java.awt.*; import java.util.ArrayList; -public class HudGui extends UScreen { +public class HudGui extends UScreen implements GuiPause { private Hud editingHud; private boolean isDragging; private boolean isScaling; @@ -29,7 +30,7 @@ public class HudGui extends UScreen { @Override public void onDrawScreen(@NotNull UMatrixStack matrixStack, int mouseX, int mouseY, float partialTicks) { - RenderManager.drawGlRect(0, 0, this.width, this.height, new Color(80, 80, 80, 50).getRGB()); + RenderManager.drawGlRect(0, 0, UResolution.getScaledWidth(), UResolution.getScaledHeight(), new Color(80, 80, 80, 50).getRGB()); if (isDragging) { setPosition(mouseX - xOffset, mouseY - yOffset, true); @@ -42,8 +43,8 @@ public class HudGui extends UScreen { private void processHud(Hud hud, int mouseX) { if (hud == editingHud && isScaling) { - float xFloat = hud.getXScaled(this.width); - float yFloat = hud.getYScaled(this.height); + float xFloat = hud.getXScaled(UResolution.getScaledWidth()); + float yFloat = hud.getYScaled(UResolution.getScaledHeight()); float pos = getXSnapping(mouseX, true); float newWidth = pos - xFloat; float newScale = newWidth / ((hud.getWidth(hud.scale) + hud.paddingX * hud.scale) / hud.scale); @@ -53,16 +54,16 @@ public class HudGui extends UScreen { newScale = 0.3f; hud.scale = newScale; - if (xFloat / this.width > 0.5) - editingHud.xUnscaled = (xFloat + (hud.getWidth(hud.scale) + hud.paddingX * hud.scale)) / (double) this.width; - if (yFloat / this.height > 0.5) - editingHud.yUnscaled = (yFloat + (hud.getHeight(hud.scale) + hud.paddingY * hud.scale)) / (double) this.height; + if (xFloat / UResolution.getScaledWidth() > 0.5) + editingHud.xUnscaled = (xFloat + (hud.getWidth(hud.scale) + hud.paddingX * hud.scale)) / (double) UResolution.getScaledWidth(); + if (yFloat / UResolution.getScaledHeight() > 0.5) + editingHud.yUnscaled = (yFloat + (hud.getHeight(hud.scale) + hud.paddingY * hud.scale)) / (double) UResolution.getScaledHeight(); } int width = (int) (hud.getExampleWidth(hud.scale) + hud.paddingX * hud.scale); int height = (int) (hud.getExampleHeight(hud.scale) + hud.paddingY * hud.scale); - int x = (int) hud.getXScaled(this.width); - int y = (int) hud.getYScaled(this.height); + int x = (int) hud.getXScaled(UResolution.getScaledWidth()); + int y = (int) hud.getYScaled(UResolution.getScaledHeight()); hud.drawExampleAll(x, y, hud.scale, true); int color = new Color(215, 224, 235).getRGB(); @@ -90,12 +91,12 @@ public class HudGui extends UScreen { if (newX < 0) newX = 0; - else if (newX + width > this.width) - newX = this.width - width; + else if (newX + width > UResolution.getScaledWidth()) + newX = UResolution.getScaledWidth() - width; if (newY < 0) newY = 0; - else if (newY + height > this.height) - newY = this.height - height; + else if (newY + height > UResolution.getScaledHeight()) + newY = UResolution.getScaledHeight() - height; if (snap) { float snapX = getXSnapping(newX, false); @@ -106,14 +107,14 @@ public class HudGui extends UScreen { } } - if (newX / this.width <= 0.5) - editingHud.xUnscaled = newX / (double) this.width; + if (newX / UResolution.getScaledWidth() <= 0.5) + editingHud.xUnscaled = newX / (double) UResolution.getScaledWidth(); else - editingHud.xUnscaled = (newX + width) / (double) this.width; - if (newY / this.height <= 0.5) - editingHud.yUnscaled = newY / (double) this.height; + editingHud.xUnscaled = (newX + width) / (double) UResolution.getScaledWidth(); + if (newY / UResolution.getScaledHeight() <= 0.5) + editingHud.yUnscaled = newY / (double) UResolution.getScaledHeight(); else - editingHud.yUnscaled = (newY + height) / (double) this.height; + editingHud.yUnscaled = (newY + height) / (double) UResolution.getScaledHeight(); } private float getXSnapping(float pos, boolean rightOnly) { @@ -124,7 +125,7 @@ public class HudGui extends UScreen { verticalLines.addAll(getXSnappingHud(hud)); } getSpaceSnapping(verticalLines); - verticalLines.add(this.width / 2f); + verticalLines.add(UResolution.getScaledWidth() / 2f); float smallestDiff = -1; float smallestLine = 0; float smallestOffset = 0; @@ -139,7 +140,7 @@ public class HudGui extends UScreen { } if (smallestDiff != -1) { float finalSmallestLine = smallestLine; - RenderManager.setupAndDraw(true, (vg) -> RenderManager.drawLine(vg, finalSmallestLine, 0, finalSmallestLine, this.height, 1, new Color(255, 255, 255).getRGB())); + RenderManager.setupAndDraw(true, (vg) -> RenderManager.drawLine(vg, finalSmallestLine, 0, finalSmallestLine, UResolution.getScaledHeight(), 1, new Color(255, 255, 255).getRGB())); return smallestLine - smallestOffset; } return pos; @@ -149,7 +150,7 @@ public class HudGui extends UScreen { ArrayList verticalLines = new ArrayList<>(); if (hud == editingHud) return verticalLines; int hudWidth = (int) (hud.getWidth(hud.scale) + hud.paddingX * hud.scale); - int hudX = (int) hud.getXScaled(this.width); + int hudX = (int) hud.getXScaled(UResolution.getScaledWidth()); verticalLines.add((float) hudX); verticalLines.add((float) (hudX + hudWidth)); return verticalLines; @@ -163,7 +164,7 @@ public class HudGui extends UScreen { horizontalLines.addAll(getYSnappingHud(hud)); } getSpaceSnapping(horizontalLines); - horizontalLines.add(this.height / 2f); + horizontalLines.add(UResolution.getScaledHeight() / 2f); float smallestDiff = -1; float smallestLine = 0; float smallestOffset = 0; @@ -178,7 +179,7 @@ public class HudGui extends UScreen { } if (smallestDiff != -1) { float finalSmallestLine = smallestLine; - RenderManager.setupAndDraw(true, (vg) -> RenderManager.drawLine(vg, 0, finalSmallestLine, this.width, finalSmallestLine, 1, new Color(255, 255, 255).getRGB())); + RenderManager.setupAndDraw(true, (vg) -> RenderManager.drawLine(vg, 0, finalSmallestLine, UResolution.getScaledWidth(), finalSmallestLine, 1, new Color(255, 255, 255).getRGB())); return smallestLine - smallestOffset; } return pos; @@ -188,7 +189,7 @@ public class HudGui extends UScreen { ArrayList horizontalLines = new ArrayList<>(); if (hud == editingHud) return horizontalLines; int hudHeight = (int) (hud.getHeight(hud.scale) + hud.paddingY * hud.scale); - int hudY = (int) hud.getYScaled(this.height); + int hudY = (int) hud.getYScaled(UResolution.getScaledHeight()); horizontalLines.add((float) hudY); horizontalLines.add((float) (hudY + hudHeight)); return horizontalLines; @@ -212,8 +213,8 @@ public class HudGui extends UScreen { if (editingHud != null) { int width = (int) (editingHud.getWidth(editingHud.scale) + editingHud.paddingX * editingHud.scale); int height = (int) (editingHud.getHeight(editingHud.scale) + editingHud.paddingY * editingHud.scale); - float x = editingHud.getXScaled(this.width); - float y = editingHud.getYScaled(this.height); + float x = editingHud.getXScaled(UResolution.getScaledWidth()); + float y = editingHud.getYScaled(UResolution.getScaledHeight()); if (mouseX >= x + width - 3 && mouseX <= x + width + 3 && mouseY >= y + height - 3 && mouseY <= y + height + 3) { isScaling = true; return; @@ -231,8 +232,8 @@ public class HudGui extends UScreen { private boolean mouseClickedHud(Hud hud, int mouseX, int mouseY) { int width = (int) (hud.getWidth(hud.scale) + hud.paddingX * hud.scale); int height = (int) (hud.getHeight(hud.scale) + hud.paddingY * hud.scale); - float x = hud.getXScaled(this.width); - float y = hud.getYScaled(this.height); + float x = hud.getXScaled(UResolution.getScaledWidth()); + float y = hud.getYScaled(UResolution.getScaledHeight()); if (mouseX >= x && mouseX <= x + width && mouseY >= y && mouseY <= y + height) { editingHud = hud; xOffset = (int) (mouseX - x); @@ -253,8 +254,8 @@ public class HudGui extends UScreen { @Override public void onKeyPressed(int keyCode, char typedChar, @Nullable UKeyboard.Modifiers modifiers) { if (editingHud != null) { - float x = editingHud.getXScaled(this.width); - float y = editingHud.getYScaled(this.height); + float x = editingHud.getXScaled(UResolution.getScaledWidth()); + float y = editingHud.getYScaled(UResolution.getScaledHeight()); if (keyCode == UKeyboard.KEY_UP) { setPosition(x, y - 1, false); } else if (keyCode == UKeyboard.KEY_DOWN) { diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java index fd3c86b..35946e0 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/OneConfigGui.java @@ -8,7 +8,6 @@ import cc.polyfrost.oneconfig.gui.elements.ColorSelector; import cc.polyfrost.oneconfig.gui.elements.text.TextInputField; import cc.polyfrost.oneconfig.gui.pages.ModsPage; import cc.polyfrost.oneconfig.gui.pages.Page; -import cc.polyfrost.oneconfig.internal.OneConfig; import cc.polyfrost.oneconfig.internal.assets.Colors; import cc.polyfrost.oneconfig.internal.assets.SVGs; import cc.polyfrost.oneconfig.internal.config.OneConfigConfig; @@ -17,6 +16,7 @@ import cc.polyfrost.oneconfig.libs.universal.UKeyboard; import cc.polyfrost.oneconfig.libs.universal.UMatrixStack; import cc.polyfrost.oneconfig.libs.universal.UResolution; import cc.polyfrost.oneconfig.libs.universal.UScreen; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.renderer.font.Fonts; import cc.polyfrost.oneconfig.renderer.scissor.Scissor; @@ -26,12 +26,11 @@ import cc.polyfrost.oneconfig.utils.color.ColorPalette; import cc.polyfrost.oneconfig.utils.gui.GuiUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.lwjgl.input.Mouse; import org.lwjgl.nanovg.NanoVG; import java.util.ArrayList; -public class OneConfigGui extends UScreen { +public class OneConfigGui extends UScreen implements GuiPause { public static OneConfigGui INSTANCE; public static OneConfigGui instanceToRestore = null; private final SideBar sideBar = new SideBar(); @@ -110,7 +109,7 @@ public class OneConfigGui extends UScreen { RenderManager.setAlpha(vg, 0.5f); } else { backArrow.disable(false); - if (!backArrow.isHovered() || Mouse.isButtonDown(0)) RenderManager.setAlpha(vg, 0.8f); + if (!backArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0)) RenderManager.setAlpha(vg, 0.8f); } RenderManager.drawSvg(vg, SVGs.CARET_LEFT, x + 246, y + 22, 28, 28); RenderManager.setAlpha(vg, 1f); @@ -119,7 +118,7 @@ public class OneConfigGui extends UScreen { RenderManager.setAlpha(vg, 0.5f); } else { forwardArrow.disable(false); - if (!forwardArrow.isHovered() || Mouse.isButtonDown(0)) RenderManager.setAlpha(vg, 0.8f); + if (!forwardArrow.isHovered() || Platform.getMousePlatform().isButtonDown(0)) RenderManager.setAlpha(vg, 0.8f); } RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, x + 294, y + 22, 28, 28); RenderManager.setAlpha(vg, 1f); @@ -167,7 +166,7 @@ public class OneConfigGui extends UScreen { boolean hovered = InputUtils.isAreaHovered((int) breadcrumbX, y + 24, (int) width, 36); int color = Colors.WHITE_60; if (i == currentPage.parents.size() - 1) color = Colors.WHITE; - else if (hovered && !Mouse.isButtonDown(0)) color = Colors.WHITE_80; + else if (hovered && !Platform.getMousePlatform().isButtonDown(0)) color = Colors.WHITE_80; RenderManager.drawText(vg, title, breadcrumbX, y + 38, color, 24f, Fonts.SEMIBOLD); if (i != 0) RenderManager.drawSvg(vg, SVGs.CARET_RIGHT, breadcrumbX - 28, y + 25, 24, 24, color); @@ -182,7 +181,7 @@ public class OneConfigGui extends UScreen { currentColorSelector.draw(vg); } }); - mouseDown = Mouse.isButtonDown(0); + mouseDown = Platform.getMousePlatform().isButtonDown(0); } @Override @@ -194,7 +193,7 @@ public class OneConfigGui extends UScreen { if (currentColorSelector != null) currentColorSelector.keyTyped(typedChar, keyCode); currentPage.keyTyped(typedChar, keyCode); } catch (Exception e) { - OneConfig.LOGGER.error("Error while processing keyboard input; ignoring!"); + e.printStackTrace(); } } @@ -273,11 +272,6 @@ public class OneConfigGui extends UScreen { return textInputField.getInput(); } - @Override - public boolean doesGuiPauseGame() { - return false; - } - @Override public void onScreenClose() { currentPage.finishUpAndClose(); @@ -285,4 +279,9 @@ public class OneConfigGui extends UScreen { INSTANCE = null; super.onScreenClose(); } + + @Override + public boolean doesGuiPauseGame() { + return false; + } } diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java b/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java index f6ce543..df3330d 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/SideBar.java @@ -7,13 +7,13 @@ import cc.polyfrost.oneconfig.gui.elements.BasicButton; import cc.polyfrost.oneconfig.gui.pages.CreditsPage; import cc.polyfrost.oneconfig.gui.pages.ModConfigPage; import cc.polyfrost.oneconfig.gui.pages.ModsPage; -import cc.polyfrost.oneconfig.internal.OneConfig; import cc.polyfrost.oneconfig.internal.assets.Colors; +import cc.polyfrost.oneconfig.internal.assets.SVGs; +import cc.polyfrost.oneconfig.internal.config.Preferences; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.renderer.font.Fonts; -import cc.polyfrost.oneconfig.internal.assets.SVGs; -import cc.polyfrost.oneconfig.utils.gui.GuiUtils; import cc.polyfrost.oneconfig.utils.color.ColorPalette; +import cc.polyfrost.oneconfig.utils.gui.GuiUtils; import java.util.ArrayList; @@ -42,7 +42,7 @@ public class SideBar { public SideBar() { buttons.get(0).setClickAction(new CreditsPage()); buttons.get(2).setClickAction(new ModsPage()); - buttons.get(8).setClickAction(new ModConfigPage(OneConfig.preferences.mod.defaultPage, true)); + buttons.get(8).setClickAction(new ModConfigPage(Preferences.getInstance().mod.defaultPage, true)); HUDButton.setClickAction(() -> GuiUtils.displayScreen(new HudGui())); CloseButton.setClickAction(GuiUtils::closeScreen); for (BasicButton button : buttons) { diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java index 56eac2d..6f203c4 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/BasicElement.java @@ -1,11 +1,11 @@ package cc.polyfrost.oneconfig.gui.elements; import cc.polyfrost.oneconfig.gui.animations.ColorAnimation; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.utils.InputUtils; import cc.polyfrost.oneconfig.utils.color.ColorPalette; import org.jetbrains.annotations.NotNull; -import org.lwjgl.input.Mouse; public class BasicElement { protected int width, height; @@ -93,7 +93,7 @@ public class BasicElement { clicked = false; } else { hovered = InputUtils.isAreaHovered(x - hitBoxX, y - hitBoxY, width + hitBoxX, height + hitBoxY); - pressed = hovered && Mouse.isButtonDown(0); + pressed = hovered && Platform.getMousePlatform().isButtonDown(0); clicked = InputUtils.isClicked(block) && hovered; if (clicked) { diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java index 668fdb3..1fed640 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ColorSelector.java @@ -12,6 +12,7 @@ import cc.polyfrost.oneconfig.internal.assets.Colors; import cc.polyfrost.oneconfig.internal.assets.Images; import cc.polyfrost.oneconfig.internal.assets.SVGs; import cc.polyfrost.oneconfig.internal.config.OneConfigConfig; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.renderer.font.Fonts; import cc.polyfrost.oneconfig.renderer.scissor.Scissor; @@ -20,7 +21,6 @@ import cc.polyfrost.oneconfig.utils.IOUtils; import cc.polyfrost.oneconfig.utils.InputUtils; import cc.polyfrost.oneconfig.utils.NetworkUtils; import cc.polyfrost.oneconfig.utils.color.ColorPalette; -import org.lwjgl.input.Mouse; import java.awt.*; import java.util.ArrayList; @@ -203,7 +203,7 @@ public class ColorSelector { inputScissor = InputUtils.blockInputArea(x - 3, y - 3, width + 6, height + 6); ScissorManager.resetScissor(vg, scissor); - mouseWasDown = Mouse.isButtonDown(0); + mouseWasDown = Platform.getMousePlatform().isButtonDown(0); if (closeBtn.isClicked()) { OneConfigGui.INSTANCE.closeColorSelector(); } @@ -241,9 +241,9 @@ public class ColorSelector { } private void doDrag() { - if (InputUtils.isAreaHovered(x, y, 368, 64) && Mouse.isButtonDown(0) && !dragging) { - int dx = (int) (Mouse.getDX() / (OneConfigGui.INSTANCE == null ? 1 : OneConfigGui.INSTANCE.getScaleFactor())); - int dy = (int) (Mouse.getDY() / (OneConfigGui.INSTANCE == null ? 1 : OneConfigGui.INSTANCE.getScaleFactor())); + if (InputUtils.isAreaHovered(x, y, 368, 64) && Platform.getMousePlatform().isButtonDown(0) && !dragging) { + int dx = (int) (Platform.getMousePlatform().getMouseDX() / (OneConfigGui.INSTANCE == null ? 1 : OneConfigGui.INSTANCE.getScaleFactor())); + int dy = (int) (Platform.getMousePlatform().getMouseDY() / (OneConfigGui.INSTANCE == null ? 1 : OneConfigGui.INSTANCE.getScaleFactor())); x += dx; mouseX += dx; y -= dy; @@ -252,8 +252,8 @@ public class ColorSelector { } private void setColorFromXY() { - boolean isMouseDown = Mouse.isButtonDown(0); - boolean hovered = Mouse.isButtonDown(0) && InputUtils.isAreaHovered(x + 16, y + 120, 384, 288); + boolean isMouseDown = Platform.getMousePlatform().isButtonDown(0); + boolean hovered = Platform.getMousePlatform().isButtonDown(0) && InputUtils.isAreaHovered(x + 16, y + 120, 384, 288); if (hovered && isMouseDown && !mouseWasDown) dragging = true; switch (mode) { case 0: @@ -282,8 +282,8 @@ public class ColorSelector { int circleCenterX = x + 208; int circleCenterY = y + 264; double squareDist = Math.pow((circleCenterX - InputUtils.mouseX()), 2) + Math.pow((circleCenterY - InputUtils.mouseY()), 2); - hovered = squareDist < 144 * 144 && Mouse.isButtonDown(0); - isMouseDown = Mouse.isButtonDown(0); + hovered = squareDist < 144 * 144 && Platform.getMousePlatform().isButtonDown(0); + isMouseDown = Platform.getMousePlatform().isButtonDown(0); if (hovered && isMouseDown && !mouseWasDown) dragging = true; int angle = 0; diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java index 2938c41..eebdba1 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/ModCard.java @@ -5,11 +5,11 @@ import cc.polyfrost.oneconfig.gui.OneConfigGui; import cc.polyfrost.oneconfig.gui.animations.ColorAnimation; import cc.polyfrost.oneconfig.gui.pages.ModConfigPage; import cc.polyfrost.oneconfig.gui.pages.ModsPage; -import cc.polyfrost.oneconfig.internal.OneConfig; import cc.polyfrost.oneconfig.internal.assets.Colors; import cc.polyfrost.oneconfig.internal.assets.SVGs; import cc.polyfrost.oneconfig.internal.config.OneConfigConfig; import cc.polyfrost.oneconfig.internal.config.core.ConfigCore; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.renderer.font.Fonts; import cc.polyfrost.oneconfig.renderer.scissor.Scissor; @@ -18,7 +18,6 @@ import cc.polyfrost.oneconfig.utils.InputUtils; import cc.polyfrost.oneconfig.utils.color.ColorPalette; import cc.polyfrost.oneconfig.utils.color.ColorUtils; import org.jetbrains.annotations.NotNull; -import org.lwjgl.input.Mouse; public class ModCard extends BasicElement { private final Mod modData; @@ -51,8 +50,8 @@ public class ModCard extends BasicElement { isHoveredMain = InputUtils.isAreaHovered(x, y, width, 87); boolean isHoveredSecondary = InputUtils.isAreaHovered(x, y + 87, width - 32, 32) && !disabled; if (disabled) RenderManager.setAlpha(vg, 0.5f); - RenderManager.drawRoundedRectVaried(vg, x, y, width, 87, colorFrame.getColor(isHoveredMain, isHoveredMain && Mouse.isButtonDown(0)), 12f, 12f, 0f, 0f); - RenderManager.drawRoundedRectVaried(vg, x, y + 87, width, 32, colorToggle.getColor(isHoveredSecondary, isHoveredSecondary && Mouse.isButtonDown(0)), 0f, 0f, 12f, 12f); + RenderManager.drawRoundedRectVaried(vg, x, y, width, 87, colorFrame.getColor(isHoveredMain, isHoveredMain && Platform.getMousePlatform().isButtonDown(0)), 12f, 12f, 0f, 0f); + RenderManager.drawRoundedRectVaried(vg, x, y + 87, width, 32, colorToggle.getColor(isHoveredSecondary, isHoveredSecondary && Platform.getMousePlatform().isButtonDown(0)), 0f, 0f, 12f, 12f); RenderManager.drawLine(vg, x, y + 86, x + width, y + 86, 2, Colors.GRAY_300); if (modData.modIcon != null) { if (modData.modIcon.toLowerCase().endsWith(".svg")) @@ -68,7 +67,6 @@ public class ModCard extends BasicElement { else OneConfigConfig.favoriteMods.remove(modData.name); ConfigCore.sortMods(); page.reloadMods(); - OneConfig.config.save(); } Scissor scissor2 = ScissorManager.scissor(vg, x, y + 87, width - 32, 32); RenderManager.drawText(vg, cleanName, x + 12, y + 103, ColorUtils.setAlpha(Colors.WHITE, (int) (colorToggle.getAlpha() * 255)), 14f, Fonts.MEDIUM); diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java index 8c9dfb6..dda5621 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/Slider.java @@ -1,9 +1,9 @@ package cc.polyfrost.oneconfig.gui.elements; import cc.polyfrost.oneconfig.internal.assets.Colors; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.utils.InputUtils; -import org.lwjgl.input.Mouse; public class Slider extends BasicElement { private final float min, max; @@ -34,7 +34,7 @@ public class Slider extends BasicElement { public void update(int x, int y) { super.update(x, y); - boolean isMouseDown = Mouse.isButtonDown(0); + boolean isMouseDown = Platform.getMousePlatform().isButtonDown(0); boolean hovered = InputUtils.isAreaHovered(x - 6, y - 3, width + 12, height + 6); if (hovered && isMouseDown && !mouseWasDown) dragging = true; mouseWasDown = isMouseDown; diff --git a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java index 0ff7d8f..51303c6 100644 --- a/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java +++ b/src/main/java/cc/polyfrost/oneconfig/gui/elements/config/ConfigCheckbox.java @@ -7,13 +7,13 @@ import cc.polyfrost.oneconfig.gui.animations.Animation; import cc.polyfrost.oneconfig.gui.animations.ColorAnimation; import cc.polyfrost.oneconfig.gui.animations.DummyAnimation; import cc.polyfrost.oneconfig.gui.animations.EaseInOutQuad; +import cc.polyfrost.oneconfig.platform.Platform; import cc.polyfrost.oneconfig.renderer.RenderManager; import cc.polyfrost.oneconfig.renderer.font.Fonts; import cc.polyfrost.oneconfig.internal.assets.SVGs; import cc.polyfrost.oneconfig.utils.InputUtils; import cc.polyfrost.oneconfig.utils.color.ColorPalette; import cc.polyfrost.oneconfig.utils.color.ColorUtils; -import org.lwjgl.input.Mouse; import java.awt.*; import java.lang.reflect.Field; @@ -57,7 +57,7 @@ public class ConfigCheckbox extends BasicOption { RenderManager.drawText(vg, name, x + 32, y + 17, Colors.WHITE_90, 14f, Fonts.MEDIUM); - RenderManager.drawRoundedRect(vg, x, y + 4, 24, 24, color.getColor(hover, hove