diff --git a/src/main/java/com/nomiceu/nomilabs/groovy/GroovyHelpers.java b/src/main/java/com/nomiceu/nomilabs/groovy/GroovyHelpers.java index 42f37df2..0ffc14ed 100644 --- a/src/main/java/com/nomiceu/nomilabs/groovy/GroovyHelpers.java +++ b/src/main/java/com/nomiceu/nomilabs/groovy/GroovyHelpers.java @@ -34,16 +34,10 @@ public static class TranslationHelpers { public static String translate(String key, Object... params) { return LabsTranslate.translate(key, params); } - public static String translateWithBackup(String key, String backup, Object... params) { - return LabsTranslate.translateWithBackup(key, backup, params); - } public static String translateFormat(String key, TooltipHelper.GTFormatCode format, Object... params) { return LabsTranslate.translateFormat(key, format, params); } - public static String translateWithBackupFormat(String key, String backup, TooltipHelper.GTFormatCode format, Object... params) { - return LabsTranslate.translateWithBackupFormat(key, backup, format, params); - } public static String format(String str, TextFormatting... formats) { return LabsTranslate.format(str, formats); diff --git a/src/main/java/com/nomiceu/nomilabs/remap/LabsMessageHelper.java b/src/main/java/com/nomiceu/nomilabs/remap/LabsMessageHelper.java index 91018d49..835ef896 100644 --- a/src/main/java/com/nomiceu/nomilabs/remap/LabsMessageHelper.java +++ b/src/main/java/com/nomiceu/nomilabs/remap/LabsMessageHelper.java @@ -1,10 +1,8 @@ package com.nomiceu.nomilabs.remap; -import net.minecraft.util.text.TextFormatting; import net.minecraftforge.fml.common.StartupQuery; -import static com.nomiceu.nomilabs.util.LabsTranslate.format; -import static com.nomiceu.nomilabs.util.LabsTranslate.translateWithBackup; +import static com.nomiceu.nomilabs.util.LabsTranslate.translate; public class LabsMessageHelper { public static void sendMessage(MessageType type, String[] message) { @@ -27,47 +25,40 @@ public enum MessageType { public static class Components { public static String[] getIntro() { return new String[] { - translateWithBackup("nomilabs.fixer.intro.1", "This world must be remapped."), - translateWithBackup("nomilabs.fixer.intro.2", format("A Backup will be made.", TextFormatting.BOLD)), - translateWithBackup("nomilabs.fixer.intro.3", "Pressing 'No' will cancel world loading."), - translateWithBackup("nomilabs.fixer.intro.4", - format("Note that after the world is loaded with this, you CANNOT undo this!.", TextFormatting.RED)), - translateWithBackup("nomilabs.fixer.intro.5", - String.format("You %s have to load from the backup in order to load in a previous version!", - format("WILL", TextFormatting.UNDERLINE))) + translate("nomilabs.fixer.intro.1"), + translate("nomilabs.fixer.intro.2"), + translate("nomilabs.fixer.intro.3"), + "", + translate("nomilabs.fixer.do_not_revert.intro_addition"), + translate("nomilabs.fixer.do_not_revert.1"), + translate("nomilabs.fixer.do_not_revert.2") }; } public static String[] getIntroAddition() { return new String[] { - translateWithBackup("nomilabs.fixer.intro.6", - format("The changes that must be made via Data Fixers have been printed to your log.", - TextFormatting.GRAY)) + "", + translate("nomilabs.fixer.intro.addition") }; } public static String[] getModeCheck(String mode) { return new String[] { - translateWithBackup("nomilabs.fixer.mode_check.1", - String.format("Are you sure you previously loaded this world with the pack mode '%s' ?", - format(mode, TextFormatting.YELLOW)), mode), - translateWithBackup("nomilabs.fixer.mode_check.2", - format(String.format("Launching with the wrong mode %s void items and/or blocks!", - format("WILL", TextFormatting.UNDERLINE) + TextFormatting.RED), - TextFormatting.RED)), - translateWithBackup("nomilabs.fixer.mode_check.3", - format("If you did not change it in your old instance, the default mode is 'Normal'.", TextFormatting.GRAY)), - translateWithBackup("nomilabs.fixer.mode_check.4", - "Press 'No' if you are not sure! (It will cancel world loading)") + translate("nomilabs.fixer.mode_check.1", mode), + translate("nomilabs.fixer.mode_check.2"), + translate("nomilabs.fixer.mode_check.3"), + translate("nomilabs.fixer.mode_check.4") }; } public static String[] getDoNotExit() { return new String[] { - translateWithBackup("nomilabs.fixer.do_not_exit.1", - format("Do not interrupt the loading process!", TextFormatting.RED)), - translateWithBackup("nomilabs.fixer.do_not_exit.2", - "If interrupted, load again from the backup, as your world may be corrupted!") + translate("nomilabs.fixer.do_not_exit.1"), + translate("nomilabs.fixer.do_not_exit.2"), + "", + translate("nomilabs.fixer.do_not_revert.do_not_exit_addition"), + translate("nomilabs.fixer.do_not_revert.1"), + translate("nomilabs.fixer.do_not_revert.2") }; } } diff --git a/src/main/java/com/nomiceu/nomilabs/util/LabsTranslate.java b/src/main/java/com/nomiceu/nomilabs/util/LabsTranslate.java index 38ffe7c5..9d5512ad 100644 --- a/src/main/java/com/nomiceu/nomilabs/util/LabsTranslate.java +++ b/src/main/java/com/nomiceu/nomilabs/util/LabsTranslate.java @@ -1,23 +1,42 @@ package com.nomiceu.nomilabs.util; import gregtech.client.utils.TooltipHelper; -import net.minecraft.client.resources.I18n; import net.minecraft.util.text.TextFormatting; +import net.minecraft.util.text.translation.I18n; import java.util.Arrays; +import java.util.IllegalFormatException; @SuppressWarnings("unused") public class LabsTranslate { public static String translate(String key, Object... params) { - return translateWithBackup(key, key, params); + if (LabsSide.isDedicatedServer()) return translateServerSide(key, params); // I18n is not available on Dedicated Servers + try { + return net.minecraft.client.resources.I18n.format(key, params); + } catch (Exception e) { + return translateServerSide(key, params); + } } - public static String translateWithBackup(String key, String backup, Object... params) { - if (LabsSide.isDedicatedServer()) return backup; // I18n is not available on Dedicated Servers + @SuppressWarnings("deprecation") + private static String translateServerSide(String key, Object... params) { try { - return I18n.format(key, params); + var localTranslated = I18n.translateToLocalFormatted(key, params); + if (!localTranslated.equals(key)) return localTranslated; + + // Try fallback + var fallbackTranslated = I18n.translateToFallback(key); + if (!fallbackTranslated.equals(key) && params.length != 0) { + try { + fallbackTranslated = String.format(fallbackTranslated, params); + } + catch (IllegalFormatException var5) { + fallbackTranslated = "Format error: " + fallbackTranslated; + } + } + return fallbackTranslated; } catch (Exception e) { - return backup; + return key; } } @@ -28,10 +47,6 @@ public static String translateFormat(String key, TooltipHelper.GTFormatCode form return format(translate(key, params), format); } - public static String translateWithBackupFormat(String key, String backup, TooltipHelper.GTFormatCode format, Object... params) { - return format(translateWithBackup(key, backup, params), format); - } - public static String format(String str, TextFormatting... formats) { return String.join("", Arrays.stream(formats).map(TextFormatting::toString).toArray(String[]::new)) + str + TextFormatting.RESET; diff --git a/src/main/resources/assets/nomilabs/lang/en_us.lang b/src/main/resources/assets/nomilabs/lang/en_us.lang index 485842b1..8bb00659 100644 --- a/src/main/resources/assets/nomilabs/lang/en_us.lang +++ b/src/main/resources/assets/nomilabs/lang/en_us.lang @@ -86,13 +86,17 @@ fluid.tough_alloy=Tough Alloy fluid.moltendarksoularium=Molten Dark Soularium # Data Fixers -# Don't forget to update this in LabsMessageHelper.Components as well! nomilabs.fixer.intro.1=This world must be remapped. nomilabs.fixer.intro.2=§lA Backup will be made.§r nomilabs.fixer.intro.3=Pressing 'No' will cancel world loading. -nomilabs.fixer.intro.4=§cNote that after the world is loaded with this, you §nCANNOT§r§c undo this!.§r -nomilabs.fixer.intro.5=You §nWILL§r have to load from the backup in order to load in a previous version! -nomilabs.fixer.intro.6=§7The changes that must be made via Data Fixers have been printed to your log.§r + +nomilabs.fixer.intro.addition=§7The changes that must be made via Data Fixers have been printed to your log.§r + +nomilabs.fixer.do_not_revert.intro_addition=§eWarning:§r +nomilabs.fixer.do_not_revert.do_not_exit_addition=§eReminder:§r + +nomilabs.fixer.do_not_revert.1=§cAfter the world is loaded with this, you §nCANNOT§r§c undo this!.§r +nomilabs.fixer.do_not_revert.2=You §nWILL§r have to load from the backup in order to load in a previous version! nomilabs.fixer.mode_check.1=Are you sure you previously loaded this world with the pack mode '§e%s§r' ? nomilabs.fixer.mode_check.2=Launching with the wrong mode §nWILL§r void items and/or blocks!