diff --git a/build.gradle.kts b/build.gradle.kts index 6d3b37b..354f31f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,16 @@ plugins { - id("jfmod") version "1.5-SNAPSHOT" + id("jfmod") version "1.6-SNAPSHOT" } allprojects { group = "io.gitlab.jfronny" } base.archivesName = "google-chat" -val fabricVersion = "0.96.11+1.20.4" jfMod { - minecraftVersion = "1.20.4" - yarn("build.3") - loaderVersion = "0.15.9" - libJfVersion = "3.14.3" + minecraftVersion = "1.20.5" + yarn("build.1") + loaderVersion = "0.15.10" + libJfVersion = "3.15.3" + fabricApiVersion = "0.97.6+1.20.5" modrinth { projectId = "google-chat" @@ -25,16 +25,19 @@ jfMod { } dependencies { - modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2:${jfMod.libJfVersion.get()}") - modImplementation("io.gitlab.jfronny.libjf:libjf-translate-v1:${jfMod.libJfVersion.get()}") - include(modImplementation(fabricApi.module("fabric-message-api-v1", fabricVersion))!!) + modImplementation("io.gitlab.jfronny.libjf:libjf-config-core-v2") + modImplementation("io.gitlab.jfronny.libjf:libjf-translate-v1") + include(modImplementation("net.fabricmc.fabric-api:fabric-message-api-v1")!!) // Keybind - modCompileOnly(fabricApi.module("fabric-key-binding-api-v1", fabricVersion)) - modCompileOnly(fabricApi.module("fabric-lifecycle-events-v1", fabricVersion)) + modCompileOnly("net.fabricmc.fabric-api:fabric-key-binding-api-v1") + modCompileOnly("net.fabricmc.fabric-api:fabric-lifecycle-events-v1") // Dev env - modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-ui-tiny:${jfMod.libJfVersion.get()}") - modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil:${jfMod.libJfVersion.get()}") - modLocalRuntime(fabricApi.module("fabric-resource-loader-v0", fabricVersion)) - modLocalRuntime("com.terraformersmc:modmenu:9.0.0-pre.1") + modLocalRuntime("io.gitlab.jfronny.libjf:libjf-config-ui-tiny") + modLocalRuntime("io.gitlab.jfronny.libjf:libjf-devutil") + modLocalRuntime("net.fabricmc.fabric-api:fabric-resource-loader-v0") + modLocalRuntime("com.terraformersmc:modmenu:10.0.0-beta.1") + // for modmenu + modLocalRuntime("net.fabricmc.fabric-api:fabric-screen-api-v1") + modLocalRuntime("net.fabricmc.fabric-api:fabric-key-binding-api-v1") } diff --git a/src/client/java/io/gitlab/jfronny/googlechat/client/mixin/ChatScreenMixin.java b/src/client/java/io/gitlab/jfronny/googlechat/client/mixin/ChatScreenMixin.java index 91c71ef..f93f19a 100644 --- a/src/client/java/io/gitlab/jfronny/googlechat/client/mixin/ChatScreenMixin.java +++ b/src/client/java/io/gitlab/jfronny/googlechat/client/mixin/ChatScreenMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyVariable; @Mixin(ChatScreen.class) public class ChatScreenMixin { - @ModifyVariable(method = "sendMessage(Ljava/lang/String;Z)Z", at = @At(value = "HEAD"), argsOnly = true, ordinal = 0) + @ModifyVariable(method = "sendMessage(Ljava/lang/String;Z)V", at = @At(value = "HEAD"), argsOnly = true, ordinal = 0) String googlechat$translateChatText(String chatText) { if (chatText.startsWith("/")) return chatText; // Bypass for client-side commands (Carpet, ...) return GoogleChat.translateIfNeeded(chatText, TranslationDirection.C2S, true); diff --git a/src/main/java/io/gitlab/jfronny/googlechat/GoogleChat.java b/src/main/java/io/gitlab/jfronny/googlechat/GoogleChat.java index 609327f..cd40b4d 100644 --- a/src/main/java/io/gitlab/jfronny/googlechat/GoogleChat.java +++ b/src/main/java/io/gitlab/jfronny/googlechat/GoogleChat.java @@ -1,7 +1,7 @@ package io.gitlab.jfronny.googlechat; import io.gitlab.jfronny.commons.io.cache.FixedSizeMap; -import io.gitlab.jfronny.commons.logging.Logger; +import io.gitlab.jfronny.commons.logger.SystemLoggerPlus; import io.gitlab.jfronny.commons.throwable.Coerce; import io.gitlab.jfronny.commons.throwable.Try; import io.gitlab.jfronny.libjf.translate.api.Language; @@ -19,7 +19,7 @@ import java.util.regex.Pattern; public class GoogleChat implements ModInitializer { public static final String MOD_ID = "google-chat"; - public static final Logger LOGGER = Logger.forName(MOD_ID); + public static final SystemLoggerPlus LOGGER = SystemLoggerPlus.forName(MOD_ID); public static TranslateService TRANSLATE_SERVICE; private static final boolean IS_SERVER = FabricLoader.getInstance().getEnvironmentType() == EnvType.SERVER; diff --git a/src/main/java/io/gitlab/jfronny/googlechat/GoogleChatConfig.java b/src/main/java/io/gitlab/jfronny/googlechat/GoogleChatConfig.java index bfb3fda..55523a3 100644 --- a/src/main/java/io/gitlab/jfronny/googlechat/GoogleChatConfig.java +++ b/src/main/java/io/gitlab/jfronny/googlechat/GoogleChatConfig.java @@ -1,11 +1,17 @@ package io.gitlab.jfronny.googlechat; -import io.gitlab.jfronny.commons.serialize.gson.api.v2.Ignore; +import io.gitlab.jfronny.commons.serialize.SerializeReader; +import io.gitlab.jfronny.commons.serialize.annotations.Ignore; +import io.gitlab.jfronny.commons.throwable.Assume; +import io.gitlab.jfronny.commons.throwable.ThrowingConsumer; import io.gitlab.jfronny.libjf.config.api.v2.*; import io.gitlab.jfronny.libjf.config.api.v2.dsl.ConfigBuilder; +import io.gitlab.jfronny.libjf.config.api.v2.dsl.Migration; import net.fabricmc.api.*; import net.fabricmc.loader.api.*; +import java.util.function.Consumer; + @JfConfig(tweaker = GoogleChatConfig.class) public class GoogleChatConfig { @Category(referencedConfigs = "libjf-translate-v1") @@ -64,17 +70,28 @@ public class GoogleChatConfig { public static ConfigBuilder tweak(ConfigBuilder builder) { return builder - .addMigration("enabled", reader -> General.enabled = reader.nextBoolean()) - .addMigration("serverLanguage", reader -> General.serverLanguage = reader.nextString()) - .addMigration("clientLanguage", reader -> General.clientLanguage = reader.nextString()) - .addMigration("translationTooltip", reader -> General.translationTooltip = reader.nextBoolean()) - .addMigration("desugar", reader -> Processing.desugar = reader.nextBoolean()) - .addMigration("receivingRegex", reader -> Processing.receivingRegex = reader.nextString()) - .addMigration("receivingRegexIsBlacklist", reader -> Processing.receivingRegexIsBlacklist = reader.nextBoolean()) - .addMigration("sendingRegex", reader -> Processing.sendingRegex = reader.nextString()) - .addMigration("sendingRegexIsBlacklist", reader -> Processing.sendingRegexIsBlacklist = reader.nextBoolean()) - .addMigration("cacheSize", reader -> Advanced.cacheSize = reader.nextInt()) - .addMigration("debugLogs", reader -> Advanced.debugLogs = reader.nextBoolean()); + .addMigration("enabled", of(reader -> General.enabled = reader.nextBoolean())) + .addMigration("serverLanguage", of(reader -> General.serverLanguage = reader.nextString())) + .addMigration("clientLanguage", of(reader -> General.clientLanguage = reader.nextString())) + .addMigration("translationTooltip", of(reader -> General.translationTooltip = reader.nextBoolean())) + .addMigration("desugar", of(reader -> Processing.desugar = reader.nextBoolean())) + .addMigration("receivingRegex", of(reader -> Processing.receivingRegex = reader.nextString())) + .addMigration("receivingRegexIsBlacklist", of(reader -> Processing.receivingRegexIsBlacklist = reader.nextBoolean())) + .addMigration("sendingRegex", of(reader -> Processing.sendingRegex = reader.nextString())) + .addMigration("sendingRegexIsBlacklist", of(reader -> Processing.sendingRegexIsBlacklist = reader.nextBoolean())) + .addMigration("cacheSize", of(reader -> Advanced.cacheSize = reader.nextInt())) + .addMigration("debugLogs", of(reader -> Advanced.debugLogs = reader.nextBoolean())); + } + + private static Migration of(ThrowingConsumer, Exception> dm) { + //TODO use the libjf-native method + Consumer> cn = ((ThrowingConsumer, RuntimeException>) (ThrowingConsumer) dm)::accept; + return new Migration() { + @Override + public > void apply(Reader reader) throws TEx { + cn.accept(reader); + } + }; } static { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index dd8ce8c..55f1ba5 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -29,7 +29,7 @@ "depends": { "fabricloader": ">=0.12.12", "minecraft": "*", - "libjf-config-core-v1": "*", + "libjf-config-core-v2": "*", "libjf-translate-v1": "*", "fabric-message-api-v1": "*" }