diff --git a/src/main/java/ru/betterend/BetterEnd.java b/src/main/java/ru/betterend/BetterEnd.java index dae46513..1683cf8a 100644 --- a/src/main/java/ru/betterend/BetterEnd.java +++ b/src/main/java/ru/betterend/BetterEnd.java @@ -1,9 +1,5 @@ package ru.betterend; -import java.util.List; - -import com.google.common.collect.Lists; - import net.fabricmc.api.ModInitializer; import net.fabricmc.loader.api.FabricLoader; import net.minecraft.util.Identifier; @@ -26,6 +22,7 @@ import ru.betterend.registry.ItemTagRegistry; import ru.betterend.registry.SoundRegistry; import ru.betterend.registry.StructureRegistry; import ru.betterend.util.Logger; +import ru.betterend.util.TranslationHelper; import ru.betterend.world.generator.BetterEndBiomeSource; public class BetterEnd implements ModInitializer { @@ -56,7 +53,7 @@ public class BetterEnd implements ModInitializer { FabricLoader.getInstance().getEntrypoints("betterend", BetterEndPlugin.class).forEach(BetterEndPlugin::register); if (isDevEnvironment()) { - printMissingNames(); + TranslationHelper.printMissingNames(); } } @@ -68,35 +65,7 @@ public class BetterEnd implements ModInitializer { return String.format("%s:%s", MOD_ID, id); } - private static boolean isDevEnvironment() { + public static boolean isDevEnvironment() { return FabricLoader.getInstance().isDevelopmentEnvironment(); } - - private static void printMissingNames() { - List missingNames = Lists.newArrayList(); - - ItemRegistry.getModBlocks().forEach((block) -> { - String name = block.getName().asString(); - if (name.contains(".betterend.")) { - missingNames.add(name); - } - }); - - ItemRegistry.getModItems().forEach((item) -> { - String name = item.getName().asString(); - if (name.contains(".betterend.")) { - missingNames.add(name); - } - }); - - if (!missingNames.isEmpty()) { - System.out.println("========================================"); - System.out.println(" MISSING NAMES LIST "); - System.out.println("========================================"); - missingNames.forEach((name) -> { - System.out.println(name); - }); - System.out.println("========================================"); - } - } } diff --git a/src/main/java/ru/betterend/util/TranslationHelper.java b/src/main/java/ru/betterend/util/TranslationHelper.java new file mode 100644 index 00000000..83726375 --- /dev/null +++ b/src/main/java/ru/betterend/util/TranslationHelper.java @@ -0,0 +1,75 @@ +package ru.betterend.util; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.Collections; +import java.util.List; + +import com.google.common.collect.Lists; +import com.google.gson.Gson; +import com.google.gson.JsonObject; + +import ru.betterend.BetterEnd; +import ru.betterend.registry.ItemRegistry; + +public class TranslationHelper { + public static void printMissingNames() { + List missingNamesEn = Lists.newArrayList(); + List missingNamesRu = Lists.newArrayList(); + + Gson gson = new Gson(); + InputStream streamEn = BetterEnd.class.getResourceAsStream("/assets/betterend/lang/en_us.json"); + InputStream streamRu = BetterEnd.class.getResourceAsStream("/assets/betterend/lang/ru_ru.json"); + JsonObject translationEn = gson.fromJson(new InputStreamReader(streamEn), JsonObject.class); + JsonObject translationRu = gson.fromJson(new InputStreamReader(streamRu), JsonObject.class); + + ItemRegistry.getModBlocks().forEach((block) -> { + String name = block.getName().getString(); + if (!translationEn.has(name)) { + missingNamesEn.add(name); + } + if (!translationRu.has(name)) { + missingNamesRu.add(name); + } + }); + + ItemRegistry.getModItems().forEach((item) -> { + String name = item.getName().getString(); + if (!translationEn.has(name)) { + missingNamesEn.add(name); + } + if (!translationRu.has(name)) { + missingNamesRu.add(name); + } + }); + + if (!missingNamesEn.isEmpty() || !missingNamesRu.isEmpty()) { + + System.out.println("========================================"); + System.out.println(" MISSING NAMES LIST"); + + if (!missingNamesEn.isEmpty()) { + Collections.sort(missingNamesEn); + System.out.println("========================================"); + System.out.println(" ENGLISH"); + System.out.println("========================================"); + missingNamesEn.forEach((name) -> { + System.out.println(name); + }); + + } + + if (!missingNamesRu.isEmpty()) { + Collections.sort(missingNamesRu); + System.out.println("========================================"); + System.out.println(" RUSSIAN"); + System.out.println("========================================"); + missingNamesRu.forEach((name) -> { + System.out.println(name); + }); + } + + System.out.println("========================================"); + } + } +}