From 34d780832559b52980853ceaae524dd6752f7221 Mon Sep 17 00:00:00 2001 From: FlorianMichael <60033407+FlorianMichael@users.noreply.github.com> Date: Sun, 26 Nov 2023 04:21:26 +0100 Subject: [PATCH] Continue with recoding the project: - Added proper system for config files / saving: Added SaveManager and AbstractSave Deleted random save classes (ClassiCubeAccountHandler and BedrockAccountHandler) - Moved data classes into proper packages - renamed translation keys to fit english translation - Deleted deprecated or useless settings and added new setting for optional fixes - Changed settings system to save names instead of ordinals - Added setting to save selected version --- .../viafabricplus/ViaFabricPlus.java | 95 +- ...PreLoadCallback.java => LoadCallback.java} | 14 +- ...k.java => PostViaVersionLoadCallback.java} | 10 +- ...ack.java => RegisterSettingsCallback.java} | 14 +- .../ClientPlayerInteractionManager1_18_2.java | 4 +- .../viafabricplus/fixes/ClientsideFixes.java | 20 +- .../fixes/TripleChestHandler1_13_2.java | 2 +- .../fixes/account/BedrockAccountHandler.java | 71 - .../account/ClassiCubeAccountHandler.java | 78 - .../fixes/{model => boat}/BoatModel_1_8.java | 2 +- .../fixes/{ => boat}/BoatRenderer1_8.java | 3 +- .../screen/ClassicItemSelectionScreen.java | 15 +- .../fixes/diff/ItemRegistryDiffPre1_20_2.java | 1378 ++++++++++++++++ .../fixes/{ => diff}/Material1_19_4.java | 2 +- .../fixes/{ => diff}/RecipesPre1_12.java | 2 +- .../fixes/tracker/WolfHealthTracker.java | 4 +- ...gin.java => ViaFabricPlusMixinPlugin.java} | 2 +- .../injection/mixin/base/MixinMain.java | 5 +- .../integration/MixinAddServerScreen.java | 8 +- .../mixin/base/integration/MixinDebugHud.java | 2 +- .../MixinDownloadingTerrainScreen.java | 2 +- .../integration/MixinMultiplayerScreen.java | 6 +- ...ltiplayerServerListWidget_ServerEntry.java | 6 +- .../MixinCCAuthenticationResponse.java | 10 +- .../authlib/MixinYggdrasilUserApiService.java | 2 +- .../MixinClientPlayerInteractionManager.java | 2 +- .../fixes/minecraft/MixinFontStorage.java | 7 +- .../fixes/minecraft/MixinMinecraftClient.java | 2 +- .../MixinServerResourcePackProvider.java | 5 +- .../minecraft/entity/MixinEntityModels.java | 2 +- .../entity/MixinEntityRenderDispatcher.java | 2 +- .../minecraft/entity/MixinLivingEntity.java | 3 +- .../fixes/minecraft/item/MixinAxeItem.java | 2 +- .../item/MixinItemGroup_EntriesImpl.java | 12 +- .../fixes/minecraft/item/MixinItemGroups.java | 4 +- .../item/MixinItemPlacementContext.java | 2 +- .../minecraft/item/MixinPickaxeItem.java | 2 +- .../MixinClientPlayNetworkHandler.java | 2 +- .../screen/MixinConnectScreen_1.java | 19 +- .../minecraft/screen/MixinOptionsScreen.java | 6 +- .../MixinCraftingScreenHandler.java | 2 +- .../MixinPlayerScreenHandler.java | 2 +- .../fixes/vialegacy/MixinViaLegacyConfig.java | 37 - .../viaversion/MixinEntityPackets1_17.java | 6 +- .../viaversion/MixinWorldPackets1_17.java | 6 +- .../reference}/BuiltinEmptyGlyph1_12_2.java | 2 +- .../ClassicWorldHeightInjections.java} | 4 +- .../reference}/KeyPairResponse1_19_0.java | 2 +- .../mappings/CharacterMappings.java | 54 - .../mappings/ItemReleaseVersionMappings.java | 1422 ----------------- .../mappings/PackFormatsMappings.java | 147 -- .../protocolhack/ProtocolHack.java | 55 +- .../impl/ViaFabricPlusVLViaConfig.java | 57 - .../ViaFabricPlusViaVersionPlatformImpl.java | 40 - .../netty/ViaFabricPlusVLLegacyPipeline.java | 3 +- .../ViaFabricPlusViaDecoder.java | 6 +- .../ViaFabricPlusTransferProvider.java | 4 +- .../ViaFabricPlusClassicMPPassProvider.java | 4 +- .../ViaFabricPlusOldAuthProvider.java | 9 +- .../ViaFabricPlusBaseVersionProvider.java | 2 +- .../util/BlockStateTranslator.java | 2 +- .../protocolhack/util/ItemTranslator.java | 4 +- .../FileSaver.java => save/AbstractSave.java} | 26 +- .../viafabricplus/save/SaveManager.java | 60 + .../viafabricplus/save/impl/AccountsSave.java | 88 + .../viafabricplus/save/impl/SettingsSave.java | 76 + ...olSelectionScreen.java => MainScreen.java} | 24 +- ...creen.java => PerServerVersionScreen.java} | 12 +- .../VFPListEntry.java} | 4 +- .../screen/{ => base}/VFPScreen.java | 18 +- .../screen/classic4j/BetaCraftScreen.java | 14 +- .../ClassiCubeLoginScreen.java | 31 +- .../{classicube => }/ClassiCubeMFAScreen.java | 22 +- .../ClassiCubeServerListScreen.java | 32 +- .../BooleanSettingRenderer.java | 10 +- .../ButtonSettingRenderer.java | 8 +- .../ModeSettingRenderer.java | 8 +- .../ProtocolSyncBooleanSettingRenderer.java | 14 +- .../screen/settings/SettingsScreen.java | 13 +- .../meta => }/TitleRenderer.java | 6 +- .../settings/SettingsManager.java | 54 + .../settings/SettingsSystem.java | 95 -- .../settings/{ => base}/AbstractSetting.java | 22 +- .../{type => base}/BooleanSetting.java | 13 +- .../{type => base}/ButtonSetting.java | 11 +- .../settings/{type => base}/ModeSetting.java | 24 +- .../settings/{ => base}/SettingGroup.java | 4 +- .../VersionedBooleanSetting.java} | 37 +- .../settings/impl/AuthenticationSettings.java | 17 +- .../settings/impl/BedrockSettings.java | 56 +- .../settings/impl/DebugSettings.java | 28 +- .../settings/impl/ExperimentalSettings.java | 35 - .../settings/impl/GeneralSettings.java | 60 +- .../settings/impl/VisualSettings.java | 32 +- .../viafabricplus/util/ChatUtil.java | 6 + .../ClassLoaderPriorityUtil.java} | 24 +- .../ModMenuScreenFactory.java} | 5 +- .../assets/viafabricplus/lang/cs_cz.json | 110 +- .../assets/viafabricplus/lang/de_de.json | 84 +- .../assets/viafabricplus/lang/en_us.json | 163 +- .../assets/viafabricplus/lang/es_ar.json | 154 +- .../assets/viafabricplus/lang/es_cl.json | 154 +- .../assets/viafabricplus/lang/es_ec.json | 154 +- .../assets/viafabricplus/lang/es_es.json | 154 +- .../assets/viafabricplus/lang/es_mx.json | 154 +- .../assets/viafabricplus/lang/es_uy.json | 154 +- .../assets/viafabricplus/lang/es_ve.json | 154 +- .../assets/viafabricplus/lang/fi_fi.json | 116 +- .../assets/viafabricplus/lang/fr_fr.json | 112 +- .../assets/viafabricplus/lang/hu_hu.json | 142 +- .../assets/viafabricplus/lang/ja_jp.json | 106 +- .../assets/viafabricplus/lang/lb_lu.json | 84 +- .../assets/viafabricplus/lang/pl_pl.json | 154 +- .../assets/viafabricplus/lang/ru_ru.json | 138 +- .../assets/viafabricplus/lang/th_th.json | 84 +- .../assets/viafabricplus/lang/uk_ua.json | 154 +- .../assets/viafabricplus/lang/zh_cn.json | 156 +- .../assets/viafabricplus/lang/zh_hk.json | 160 +- .../assets/viafabricplus/lang/zh_tw.json | 154 +- src/main/resources/fabric.mod.json | 2 +- src/main/resources/viafabricplus.mixins.json | 3 +- 121 files changed, 3656 insertions(+), 4032 deletions(-) rename src/main/java/de/florianmichael/viafabricplus/event/{PreLoadCallback.java => LoadCallback.java} (78%) rename src/main/java/de/florianmichael/viafabricplus/event/{FinishViaVersionStartupCallback.java => PostViaVersionLoadCallback.java} (75%) rename src/main/java/de/florianmichael/viafabricplus/event/{InitializeSettingsCallback.java => RegisterSettingsCallback.java} (75%) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/fixes/account/BedrockAccountHandler.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/fixes/account/ClassiCubeAccountHandler.java rename src/main/java/de/florianmichael/viafabricplus/fixes/{model => boat}/BoatModel_1_8.java (98%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => boat}/BoatRenderer1_8.java (96%) create mode 100644 src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiffPre1_20_2.java rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => diff}/Material1_19_4.java (99%) rename src/main/java/de/florianmichael/viafabricplus/fixes/{ => diff}/RecipesPre1_12.java (98%) rename src/main/java/de/florianmichael/viafabricplus/injection/{VFPMixinPlugin.java => ViaFabricPlusMixinPlugin.java} (97%) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinViaLegacyConfig.java rename src/main/java/de/florianmichael/viafabricplus/{fixes/model => injection/reference}/BuiltinEmptyGlyph1_12_2.java (96%) rename src/main/java/de/florianmichael/viafabricplus/{fixes/classic/ClassicWorldHeightInjection.java => injection/reference/ClassicWorldHeightInjections.java} (98%) rename src/main/java/de/florianmichael/viafabricplus/{fixes/model => injection/reference}/KeyPairResponse1_19_0.java (95%) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/mappings/CharacterMappings.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/mappings/ItemReleaseVersionMappings.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/mappings/PackFormatsMappings.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/ViaFabricPlusVLViaConfig.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/platform/ViaFabricPlusViaVersionPlatformImpl.java rename src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/{viaversion => }/ViaFabricPlusViaDecoder.java (89%) rename src/main/java/de/florianmichael/viafabricplus/{util/FileSaver.java => save/AbstractSave.java} (71%) create mode 100644 src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java create mode 100644 src/main/java/de/florianmichael/viafabricplus/save/impl/AccountsSave.java create mode 100644 src/main/java/de/florianmichael/viafabricplus/save/impl/SettingsSave.java rename src/main/java/de/florianmichael/viafabricplus/screen/{common/ProtocolSelectionScreen.java => MainScreen.java} (88%) rename src/main/java/de/florianmichael/viafabricplus/screen/{common/ForceVersionScreen.java => PerServerVersionScreen.java} (91%) rename src/main/java/de/florianmichael/viafabricplus/screen/{MappedSlotEntry.java => base/VFPListEntry.java} (96%) rename src/main/java/de/florianmichael/viafabricplus/screen/{ => base}/VFPScreen.java (90%) rename src/main/java/de/florianmichael/viafabricplus/screen/classic4j/{classicube => }/ClassiCubeLoginScreen.java (80%) rename src/main/java/de/florianmichael/viafabricplus/screen/classic4j/{classicube => }/ClassiCubeMFAScreen.java (83%) rename src/main/java/de/florianmichael/viafabricplus/screen/classic4j/{classicube => }/ClassiCubeServerListScreen.java (84%) rename src/main/java/de/florianmichael/viafabricplus/screen/settings/{settingrenderer => }/BooleanSettingRenderer.java (87%) rename src/main/java/de/florianmichael/viafabricplus/screen/settings/{settingrenderer => }/ButtonSettingRenderer.java (87%) rename src/main/java/de/florianmichael/viafabricplus/screen/settings/{settingrenderer => }/ModeSettingRenderer.java (89%) rename src/main/java/de/florianmichael/viafabricplus/screen/settings/{settingrenderer => }/ProtocolSyncBooleanSettingRenderer.java (82%) rename src/main/java/de/florianmichael/viafabricplus/screen/settings/{settingrenderer/meta => }/TitleRenderer.java (91%) create mode 100644 src/main/java/de/florianmichael/viafabricplus/settings/SettingsManager.java delete mode 100644 src/main/java/de/florianmichael/viafabricplus/settings/SettingsSystem.java rename src/main/java/de/florianmichael/viafabricplus/settings/{ => base}/AbstractSetting.java (75%) rename src/main/java/de/florianmichael/viafabricplus/settings/{type => base}/BooleanSetting.java (76%) rename src/main/java/de/florianmichael/viafabricplus/settings/{type => base}/ButtonSetting.java (78%) rename src/main/java/de/florianmichael/viafabricplus/settings/{type => base}/ModeSetting.java (72%) rename src/main/java/de/florianmichael/viafabricplus/settings/{ => base}/SettingGroup.java (93%) rename src/main/java/de/florianmichael/viafabricplus/settings/{type/ProtocolSyncBooleanSetting.java => base/VersionedBooleanSetting.java} (57%) delete mode 100644 src/main/java/de/florianmichael/viafabricplus/settings/impl/ExperimentalSettings.java rename src/main/java/de/florianmichael/viafabricplus/{protocolhack/util/ViaJarReplacer.java => util/ClassLoaderPriorityUtil.java} (76%) rename src/main/java/de/florianmichael/viafabricplus/{screen/settings/ModMenuImpl.java => util/ModMenuScreenFactory.java} (87%) diff --git a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java index eb225bfc7..15ca96f4d 100644 --- a/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java +++ b/src/main/java/de/florianmichael/viafabricplus/ViaFabricPlus.java @@ -19,21 +19,13 @@ package de.florianmichael.viafabricplus; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import de.florianmichael.viafabricplus.event.PostGameLoadCallback; -import de.florianmichael.viafabricplus.event.PreLoadCallback; +import de.florianmichael.viafabricplus.event.LoadCallback; import de.florianmichael.viafabricplus.fixes.ClientsideFixes; -import de.florianmichael.viafabricplus.fixes.account.BedrockAccountHandler; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; -import de.florianmichael.viafabricplus.fixes.classic.CustomClassicProtocolExtensions; -import de.florianmichael.viafabricplus.fixes.classic.screen.ClassicItemSelectionScreen; -import de.florianmichael.viafabricplus.mappings.CharacterMappings; -import de.florianmichael.viafabricplus.mappings.ItemReleaseVersionMappings; -import de.florianmichael.viafabricplus.mappings.PackFormatsMappings; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import de.florianmichael.viafabricplus.protocolhack.util.ViaJarReplacer; -import de.florianmichael.viafabricplus.settings.SettingsSystem; +import de.florianmichael.viafabricplus.util.ClassLoaderPriorityUtil; +import de.florianmichael.viafabricplus.save.SaveManager; +import de.florianmichael.viafabricplus.settings.SettingsManager; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -41,13 +33,9 @@ /* * TODO | General + * - Make recipe fixes dynamic instead of a data dump in java classes * - Check if relevant for protocol translation: TakeItemEntityPacket isEmpty case (1.20 -> 1.20.1 change) * - Window interactions in <= 1.16.5 has changed and can be detected by the server - * - Entity hit boxes and eye heights has changed in almost all versions - * - Block hardness / resistance has changed in almost all versions - * - Item properties: maxDamage and stackCount? - * - Recipes for <= 1.8 are broken - * - Supported character fix should cover all versions * - Most CTS protocol features aren't supported (see https://github.com/ViaVersion/ViaFabricPlus/issues/181) * - Most CPE features aren't implemented correctly (see https://github.com/ViaVersion/ViaFabricPlus/issues/152) * - Bedrock scaffolding should be added as soon as ViaBedrock supports block placement (see https://github.com/ViaVersion/ViaFabricPlus/issues/204) @@ -58,12 +46,9 @@ * - Blit-jump is not supported in <= 1.8.9 (https://github.com/ViaVersion/ViaFabricPlus/issues/225) * * TODO | Migration v3 - * - Make recipe fixes dynamic instead of a data dump in java classes * - Rename all methods - * - Use ViaProxy config patch for some clientside fixes options (Remove ViaFabricPlusVLViaConfig) + * - Use ViaProxy config patch for some clientside fixes options (Remove ViaFabricPlusVLViaConfig and MixinViaLegacyConfig) * - Re-add Debug Hud information list - * - Recode config save base to support singleton Jsons - * - Rebase fixes package / change all packages * - Fix auto detect to not be a huge mess * - Fix MixinAbstractDonkeyEntity * - Boats are probably broken. Check entity height offset fix @@ -71,58 +56,48 @@ * - Sort injection methods in fixes package by version * - Add setting for revertOnlyPlayerCramming * - Add setting for MixinLockableContainerBlockEntity + * - Diff ItemRegistryDiff from projects and add missing items + * - Fix third party implementations properly */ public class ViaFabricPlus { + private static final ViaFabricPlus instance = new ViaFabricPlus(); - public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); - public static final Logger LOGGER = LogManager.getLogger("ViaFabricPlus"); - public static final File RUN_DIRECTORY = new File("ViaFabricPlus"); - - public static final ViaFabricPlus INSTANCE = new ViaFabricPlus(); + private final Logger logger = LogManager.getLogger("ViaFabricPlus"); + private final File directory = new File("ViaFabricPlus"); - private final SettingsSystem settingsSystem = new SettingsSystem(); + private SettingsManager settingsManager; + private SaveManager saveManager; + @SuppressWarnings("ResultOfMethodCallIgnored") public void bootstrap() { - if (!RUN_DIRECTORY.exists()) { - RUN_DIRECTORY.mkdir(); - } - - // Load overriding jars first so other code can access the new classes - ViaJarReplacer.loadOverridingJars(); - - // PreLoad Callback (for example to register new protocols) - PreLoadCallback.EVENT.invoker().onLoad(); + directory.mkdir(); + ClassLoaderPriorityUtil.loadOverridingJars(directory); // Load overriding jars first so other code can access the new classes - // Classic Stuff - CustomClassicProtocolExtensions.create(); + ClientsideFixes.init(); // Init clientside related fixes + ProtocolHack.init(directory); // Init ViaVersion protocol translator platform - // Account Handler - ClassiCubeAccountHandler.create(); - BedrockAccountHandler.create(); - - // Fixes which requires to be loaded pre - ClientsideFixes.init(); - CharacterMappings.load(); + settingsManager = new SettingsManager(); + saveManager = new SaveManager(settingsManager); + PostGameLoadCallback.EVENT.register(saveManager::init); // Has to wait for Minecraft because of the translation system usages + } - // Protocol Translator - ProtocolHack.initCommands(); - ProtocolHack.init(); + public static ViaFabricPlus global() { + return instance; + } - // Stuff which requires Minecraft to be initialized - PostGameLoadCallback.EVENT.register(() -> { - // Has to be loaded before the settings system in order to catch the ChangeProtocolVersionCallback call - ClassicItemSelectionScreen.create(); + public Logger getLogger() { + return logger; + } - // General settings - settingsSystem.init(); + public File getDirectory() { + return directory; + } - // Version related mappings - PackFormatsMappings.load(); - ItemReleaseVersionMappings.create(); - }); + public SettingsManager getSettingsManager() { + return settingsManager; } - public SettingsSystem getSettingsSystem() { - return settingsSystem; + public SaveManager getSaveManager() { + return saveManager; } } diff --git a/src/main/java/de/florianmichael/viafabricplus/event/PreLoadCallback.java b/src/main/java/de/florianmichael/viafabricplus/event/LoadCallback.java similarity index 78% rename from src/main/java/de/florianmichael/viafabricplus/event/PreLoadCallback.java rename to src/main/java/de/florianmichael/viafabricplus/event/LoadCallback.java index 0f04788e6..651595435 100644 --- a/src/main/java/de/florianmichael/viafabricplus/event/PreLoadCallback.java +++ b/src/main/java/de/florianmichael/viafabricplus/event/LoadCallback.java @@ -25,13 +25,17 @@ /** * This event is fired before everything is loaded. */ -public interface PreLoadCallback { +public interface LoadCallback { - Event EVENT = EventFactory.createArrayBacked(PreLoadCallback.class, listeners -> () -> { - for (PreLoadCallback listener : listeners) { - listener.onLoad(); + Event EVENT = EventFactory.createArrayBacked(LoadCallback.class, listeners -> state -> { + for (LoadCallback listener : listeners) { + listener.onLoad(state); } }); - void onLoad(); + void onLoad(final State state); + + enum State { + PRE, POST + } } diff --git a/src/main/java/de/florianmichael/viafabricplus/event/FinishViaVersionStartupCallback.java b/src/main/java/de/florianmichael/viafabricplus/event/PostViaVersionLoadCallback.java similarity index 75% rename from src/main/java/de/florianmichael/viafabricplus/event/FinishViaVersionStartupCallback.java rename to src/main/java/de/florianmichael/viafabricplus/event/PostViaVersionLoadCallback.java index 8a9184173..d8765c126 100644 --- a/src/main/java/de/florianmichael/viafabricplus/event/FinishViaVersionStartupCallback.java +++ b/src/main/java/de/florianmichael/viafabricplus/event/PostViaVersionLoadCallback.java @@ -25,13 +25,13 @@ /** * This event is fired when ViaVersion's startup is finished. */ -public interface FinishViaVersionStartupCallback { +public interface PostViaVersionLoadCallback { - Event EVENT = EventFactory.createArrayBacked(FinishViaVersionStartupCallback.class, listeners -> () -> { - for (FinishViaVersionStartupCallback listener : listeners) { - listener.onFinishViaVersionStartup(); + Event EVENT = EventFactory.createArrayBacked(PostViaVersionLoadCallback.class, listeners -> () -> { + for (PostViaVersionLoadCallback listener : listeners) { + listener.onPostViaVersionLoad(); } }); - void onFinishViaVersionStartup(); + void onPostViaVersionLoad(); } diff --git a/src/main/java/de/florianmichael/viafabricplus/event/InitializeSettingsCallback.java b/src/main/java/de/florianmichael/viafabricplus/event/RegisterSettingsCallback.java similarity index 75% rename from src/main/java/de/florianmichael/viafabricplus/event/InitializeSettingsCallback.java rename to src/main/java/de/florianmichael/viafabricplus/event/RegisterSettingsCallback.java index d74b92e16..956b1d8da 100644 --- a/src/main/java/de/florianmichael/viafabricplus/event/InitializeSettingsCallback.java +++ b/src/main/java/de/florianmichael/viafabricplus/event/RegisterSettingsCallback.java @@ -25,13 +25,17 @@ /** * This event is fired when ViaFabricPlus has initialized its settings, and before it starts reading the values from the settings file. */ -public interface InitializeSettingsCallback { +public interface RegisterSettingsCallback { - Event EVENT = EventFactory.createArrayBacked(InitializeSettingsCallback.class, listeners -> () -> { - for (InitializeSettingsCallback listener : listeners) { - listener.onInitializeSettings(); + Event EVENT = EventFactory.createArrayBacked(RegisterSettingsCallback.class, listeners -> state -> { + for (RegisterSettingsCallback listener : listeners) { + listener.onInitializeSettings(state); } }); - void onInitializeSettings(); + void onInitializeSettings(final State state); + + enum State { + PRE, POST + } } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java index 4d3724d12..c1d38df3d 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientPlayerInteractionManager1_18_2.java @@ -46,7 +46,7 @@ public class ClientPlayerInteractionManager1_18_2 { ClientPlayerInteractionManager1_18_2.handleBlockBreakAck(pos, blockState, action, allGood); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to read BlockBreakAck packet data", e); + ViaFabricPlus.global().getLogger().error("Failed to read BlockBreakAck packet data", e); } }; @@ -84,7 +84,7 @@ public static void handleBlockBreakAck(final BlockPos blockPos, final BlockState } while (UN_ACKED_ACTIONS.size() >= 50) { - ViaFabricPlus.LOGGER.error("Too many unacked block actions, dropping {}", UN_ACKED_ACTIONS.firstKey()); + ViaFabricPlus.global().getLogger().error("Too many unacked block actions, dropping {}", UN_ACKED_ACTIONS.firstKey()); UN_ACKED_ACTIONS.removeFirst(); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java index 6e89ef7f3..a231ba88b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/ClientsideFixes.java @@ -23,7 +23,9 @@ import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; import de.florianmichael.viafabricplus.event.PostGameLoadCallback; import de.florianmichael.viafabricplus.event.LoadClassicProtocolExtensionCallback; -import de.florianmichael.viafabricplus.injection.VFPMixinPlugin; +import de.florianmichael.viafabricplus.fixes.classic.CustomClassicProtocolExtensions; +import de.florianmichael.viafabricplus.fixes.classic.screen.ClassicItemSelectionScreen; +import de.florianmichael.viafabricplus.injection.ViaFabricPlusMixinPlugin; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Blocks; @@ -78,6 +80,8 @@ public class ClientsideFixes { private static int currentChatLimit = 256; public static void init() { + CustomClassicProtocolExtensions.create(); + PostGameLoadCallback.EVENT.register(() -> { // Loads the armor points of all armor items in legacy versions (<= 1.8.x) for (Item armorItem : Arrays.asList(Items.LEATHER_HELMET, Items.LEATHER_CHESTPLATE, Items.LEATHER_BOOTS, @@ -104,7 +108,7 @@ public static void init() { }); // Reloads some clientside stuff when the protocol version changes - ChangeProtocolVersionCallback.EVENT.register(protocolVersion -> MinecraftClient.getInstance().execute(() -> { + ChangeProtocolVersionCallback.EVENT.register((oldVersion, newVersion) -> MinecraftClient.getInstance().execute(() -> { if (MinecraftClient.getInstance() == null) return; // Reloads all bounding boxes @@ -115,23 +119,27 @@ public static void init() { } // Calculates the current chat limit, since it changes depending on the protocol version - if (protocolVersion.isOlderThanOrEqualTo(VersionEnum.c0_28toc0_30)) { + if (newVersion.isOlderThanOrEqualTo(VersionEnum.c0_28toc0_30)) { currentChatLimit = 64 - (MinecraftClient.getInstance().getSession().getUsername().length() + 2); - } else if (protocolVersion.equals(VersionEnum.bedrockLatest)) { + } else if (newVersion.equals(VersionEnum.bedrockLatest)) { currentChatLimit = 512; - } else if (protocolVersion.isOlderThanOrEqualTo(VersionEnum.r1_9_3tor1_9_4)) { + } else if (newVersion.isOlderThanOrEqualTo(VersionEnum.r1_9_3tor1_9_4)) { currentChatLimit = 100; } else { currentChatLimit = 256; } - if (!VFPMixinPlugin.DASH_LOADER_PRESENT) { + if (!ViaFabricPlusMixinPlugin.DASH_LOADER_PRESENT) { // Reloads all font storages to fix the font renderer for (FontStorage storage : MinecraftClient.getInstance().fontManager.fontStorages.values()) { storage.glyphRendererCache.clear(); storage.glyphCache.clear(); } } + + if (newVersion.isOlderThanOrEqualTo(VersionEnum.c0_28toc0_30)) { + ClassicItemSelectionScreen.INSTANCE.reload(newVersion, false); + } })); // Calculates the current chat limit, since it changes depending on the protocol version diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/TripleChestHandler1_13_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/TripleChestHandler1_13_2.java index 47e695532..70fa681ea 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/TripleChestHandler1_13_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/TripleChestHandler1_13_2.java @@ -41,7 +41,7 @@ public class TripleChestHandler1_13_2 { try { TripleChestHandler1_13_2.handleTripleChestHandler(Type.SHORT.readPrimitive(byteBuf), Type.COMPONENT.read(byteBuf), Type.SHORT.readPrimitive(byteBuf)); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to open custom ScreenHandler with dimension 9xN", e); + ViaFabricPlus.global().getLogger().error("Failed to open custom ScreenHandler with dimension 9xN", e); } }; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/account/BedrockAccountHandler.java b/src/main/java/de/florianmichael/viafabricplus/fixes/account/BedrockAccountHandler.java deleted file mode 100644 index a7c0984ad..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/account/BedrockAccountHandler.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.fixes.account; - -import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.ViaFabricPlus; -import de.florianmichael.viafabricplus.util.FileSaver; -import net.raphimc.minecraftauth.MinecraftAuth; -import net.raphimc.minecraftauth.step.bedrock.session.StepFullBedrockSession; -import net.raphimc.minecraftauth.util.MicrosoftConstants; -import org.apache.http.impl.client.CloseableHttpClient; - -public class BedrockAccountHandler extends FileSaver { - public static BedrockAccountHandler INSTANCE; - - public static void create() { - BedrockAccountHandler.INSTANCE = new BedrockAccountHandler(); - BedrockAccountHandler.INSTANCE.init(); - } - - private StepFullBedrockSession.FullBedrockSession bedrockSession; - - public BedrockAccountHandler() { - super("bedrock.account"); - } - - @Override - public void write(JsonObject object) { - if (bedrockSession == null) return; - - object.add("bedrockSession", MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.toJson(bedrockSession)); - } - - @Override - public void read(JsonObject object) { - try { - bedrockSession = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.fromJson(object.get("bedrockSession").getAsJsonObject()); - - try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) { - bedrockSession = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.refresh(httpClient, bedrockSession); - } - } catch (Exception e) { - ViaFabricPlus.LOGGER.warn("No Bedrock account could be found"); - } - } - - public StepFullBedrockSession.FullBedrockSession getBedrockSession() { - return bedrockSession; - } - - public void setBedrockSession(StepFullBedrockSession.FullBedrockSession bedrockSession) { - this.bedrockSession = bedrockSession; - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/account/ClassiCubeAccountHandler.java b/src/main/java/de/florianmichael/viafabricplus/fixes/account/ClassiCubeAccountHandler.java deleted file mode 100644 index 84163089b..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/account/ClassiCubeAccountHandler.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.fixes.account; - -import com.google.gson.JsonObject; -import de.florianmichael.classic4j.model.classicube.account.CCAccount; -import de.florianmichael.viafabricplus.event.DisconnectCallback; -import de.florianmichael.viafabricplus.protocolhack.provider.vialegacy.ViaFabricPlusClassicMPPassProvider; -import de.florianmichael.viafabricplus.util.FileSaver; - -public class ClassiCubeAccountHandler extends FileSaver { - public static ClassiCubeAccountHandler INSTANCE; - - public static void create() { - ClassiCubeAccountHandler.INSTANCE = new ClassiCubeAccountHandler(); - ClassiCubeAccountHandler.INSTANCE.init(); - } - - private CCAccount account; - - private String username; - private String password; - - public ClassiCubeAccountHandler() { - super("classicube.account"); - - DisconnectCallback.EVENT.register(() -> ViaFabricPlusClassicMPPassProvider.classiCubeMPPass = null); - } - - @Override - public void write(JsonObject object) { - object.addProperty("username", username); - object.addProperty("password", password); - } - - @Override - public void read(JsonObject object) { - if (object.has("username")) username = object.get("username").getAsString(); - if (object.has("password")) password = object.get("password").getAsString(); - } - - public CCAccount getAccount() { - return account; - } - - public String getUsername() { - return username; - } - - public String getPassword() { - return password; - } - - public void setAccount(CCAccount account) { - this.account = account; - if (account != null) { - username = account.username(); - password = account.password(); - } - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/model/BoatModel_1_8.java b/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel_1_8.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/model/BoatModel_1_8.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel_1_8.java index 7ea5055f7..f23156696 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/model/BoatModel_1_8.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatModel_1_8.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.model; +package de.florianmichael.viafabricplus.fixes.boat; import com.google.common.collect.ImmutableList; import net.minecraft.client.model.*; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/BoatRenderer1_8.java b/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java similarity index 96% rename from src/main/java/de/florianmichael/viafabricplus/fixes/BoatRenderer1_8.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java index cf799b445..fadec7c3a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/BoatRenderer1_8.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/boat/BoatRenderer1_8.java @@ -17,9 +17,8 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.boat; -import de.florianmichael.viafabricplus.fixes.model.BoatModel_1_8; import net.minecraft.client.render.OverlayTexture; import net.minecraft.client.render.VertexConsumer; import net.minecraft.client.render.VertexConsumerProvider; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java index e6d70d40e..c564dbdfe 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/classic/screen/ClassicItemSelectionScreen.java @@ -19,8 +19,7 @@ package de.florianmichael.viafabricplus.fixes.classic.screen; -import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; -import de.florianmichael.viafabricplus.screen.VFPScreen; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; import net.minecraft.client.gui.DrawContext; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; @@ -34,17 +33,7 @@ @SuppressWarnings("DataFlowIssue") public class ClassicItemSelectionScreen extends VFPScreen { - public static ClassicItemSelectionScreen INSTANCE; - - public static void create() { - INSTANCE = new ClassicItemSelectionScreen(); - - ChangeProtocolVersionCallback.EVENT.register(protocolVersion -> { - if (protocolVersion.isOlderThanOrEqualTo(VersionEnum.c0_28toc0_30)) { - INSTANCE.reload(protocolVersion, false); - } - }); - } + public static ClassicItemSelectionScreen INSTANCE = new ClassicItemSelectionScreen(); private static final int MAX_ROW_DIVIDER = 9; private static final int ITEM_XY_BOX_DIMENSION_CLASSIC = 25; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiffPre1_20_2.java b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiffPre1_20_2.java new file mode 100644 index 000000000..ae560a2b4 --- /dev/null +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/ItemRegistryDiffPre1_20_2.java @@ -0,0 +1,1378 @@ +/* + * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus + * Copyright (C) 2021-2023 FlorianMichael/EnZaXD + * Copyright (C) 2023 RK_01/RaphiMC and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.florianmichael.viafabricplus.fixes.diff; + +import net.raphimc.vialoader.util.VersionEnum; +import net.minecraft.item.Item; +import net.minecraft.item.Items; +import net.raphimc.vialoader.util.VersionRange; + +import java.util.*; + +public class ItemRegistryDiffPre1_20_2 { + public final static Map ITEM_REGISTRY_DIFF = new HashMap<>(); + + static { + ITEM_REGISTRY_DIFF.put(Items.CALIBRATED_SCULK_SENSOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.PITCHER_PLANT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SNIFFER_EGG, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SUSPICIOUS_GRAVEL, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.PITCHER_POD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.ANGLER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BLADE_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BREWER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BURN_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.DANGER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.EXPLORER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.FRIEND_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.HEART_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.HEARTBREAK_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.HOWL_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.MINER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.MOURNER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.PLENTY_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SHEAF_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SHELTER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SNORT_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_RELIC, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_BLOCK, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_BAMBOO_BLOCK, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_PLANKS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_MOSAIC, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_STAIRS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_MOSAIC_STAIRS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_SLAB, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_MOSAIC_SLAB, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_FENCE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_DOOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_BUTTON, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_CHEST_RAFT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_RAFT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_BOOKSHELF, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.CAMEL_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.PIGLIN_HEAD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.OAK_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); + + ITEM_REGISTRY_DIFF.put(Items.BRUSH, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_BOAT, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_BUTTON, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_DOOR, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_FENCE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_LEAVES, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_LOG, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_PLANKS, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_SAPLING, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_SIGN, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_SLAB, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_STAIRS, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.CHERRY_WOOD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.DECORATED_POT, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.PINK_PETALS, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.ARCHER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.ARMS_UP_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.PRIZE_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SKULL_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SNIFFER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_CHERRY_LOG, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_CHERRY_WOOD, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.SUSPICIOUS_SAND, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.TORCHFLOWER, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.TORCHFLOWER_SEEDS, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + ITEM_REGISTRY_DIFF.put(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); + + ITEM_REGISTRY_DIFF.put(Items.IRON_GOLEM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_3)); + ITEM_REGISTRY_DIFF.put(Items.SNOW_GOLEM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_3)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.ALLAY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.DISC_FRAGMENT_5, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.ECHO_SHARD, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.FROG_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.FROGSPAWN, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.GOAT_HORN, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_BUTTON, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_DOOR, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_FENCE, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_LEAVES, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_LOG, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_PLANKS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_PROPAGULE, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_ROOTS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_SIGN, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_SLAB, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_STAIRS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MANGROVE_WOOD, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUD, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUD_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUD_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUD_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUD_BRICKS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUDDY_MANGROVE_ROOTS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_5, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.OAK_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.OCHRE_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.PACKED_MUD, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.PEARLESCENT_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.RECOVERY_COMPASS, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.REINFORCED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.SCULK, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.SCULK_CATALYST, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.SCULK_SHRIEKER, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.SCULK_VEIN, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_MANGROVE_LOG, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_MANGROVE_WOOD, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.TADPOLE_BUCKET, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.TADPOLE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.VERDANT_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); + ITEM_REGISTRY_DIFF.put(Items.WARDEN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); + + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_OTHERSIDE, VersionRange.andNewer(VersionEnum.r1_18tor1_18_1)); + + ITEM_REGISTRY_DIFF.put(Items.AMETHYST_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AMETHYST_CLUSTER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AMETHYST_SHARD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AXOLOTL_BUCKET, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AXOLOTL_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AZALEA, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.AZALEA_LEAVES, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BIG_DRIPLEAF, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BUDDING_AMETHYST, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.BUNDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CALCITE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COBBLED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COBBLED_DEEPSLATE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COBBLED_DEEPSLATE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COBBLED_DEEPSLATE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COPPER_INGOT, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.COPPER_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CRACKED_DEEPSLATE_BRICKS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CRACKED_DEEPSLATE_TILES, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_BRICKS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_COAL_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_COPPER_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_DIAMOND_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_EMERALD_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_GOLD_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_IRON_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_LAPIS_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_REDSTONE_ORE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_TILE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_TILE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_TILE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DEEPSLATE_TILES, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.DRIPSTONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.EXPOSED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.EXPOSED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.EXPOSED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.EXPOSED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.FLOWERING_AZALEA, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.FLOWERING_AZALEA_LEAVES, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GLOW_BERRIES, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GLOW_INK_SAC, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GLOW_ITEM_FRAME, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GLOW_LICHEN, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GLOW_SQUID_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GOAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.HANGING_ROOTS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LARGE_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LIGHTNING_ROD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.LIME_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.MEDIUM_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.MOSS_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.MOSS_CARPET, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.OXIDIZED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.OXIDIZED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.OXIDIZED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.OXIDIZED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.PINK_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POINTED_DRIPSTONE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DEEPSLATE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DEEPSLATE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DEEPSLATE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.POWDER_SNOW_BUCKET, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_GOLD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_GOLD_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_IRON, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RAW_IRON_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.RED_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.ROOTED_DIRT, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SCULK_SENSOR, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SMALL_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SMALL_DRIPLEAF, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_BASALT, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SPORE_BLOSSOM, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.SPYGLASS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.TINTED_GLASS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.TUFF, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_EXPOSED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_EXPOSED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_EXPOSED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_EXPOSED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_OXIDIZED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_OXIDIZED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_OXIDIZED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_OXIDIZED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_WEATHERED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_WEATHERED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_WEATHERED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WAXED_WEATHERED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WEATHERED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WEATHERED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WEATHERED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WEATHERED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); + + ITEM_REGISTRY_DIFF.put(Items.ANCIENT_DEBRIS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.BASALT, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.BLACKSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.BLACKSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.BLACKSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CHAIN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_POLISHED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRACKED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRACKED_POLISHED_BLACKSTONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_DOOR, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_FENCE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_FUNGUS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_NYLIUM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_PLANKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_ROOTS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_SIGN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_STEM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRIMSON_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.CRYING_OBSIDIAN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.GILDED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.HOGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.LODESTONE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_PIGSTEP, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_GOLD_ORE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_SPROUTS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_AXE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_BLOCK, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_BOOTS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_CHESTPLATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_HELMET, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_HOE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_INGOT, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_LEGGINGS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_PICKAXE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_SCRAP, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_SHOVEL, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.NETHERITE_SWORD, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.PIGLIN_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.PIGLIN_BRUTE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.PIGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BASALT, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_BLACKSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.RESPAWN_ANCHOR, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.SHROOMLIGHT, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.SOUL_CAMPFIRE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.SOUL_LANTERN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.SOUL_SOIL, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.SOUL_TORCH, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.STRIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_CRIMSON_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_CRIMSON_STEM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_WARPED_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_WARPED_STEM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.TARGET, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.TWISTING_VINES, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_DOOR, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_FENCE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_FUNGUS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_FUNGUS_ON_A_STICK, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_NYLIUM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_PLANKS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_ROOTS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_SIGN, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_STEM, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WARPED_WART_BLOCK, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.WEEPING_VINES, VersionRange.andNewer(VersionEnum.r1_16)); + ITEM_REGISTRY_DIFF.put(Items.ZOGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); + + ITEM_REGISTRY_DIFF.put(Items.BEE_NEST, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.BEE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.BEEHIVE, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.HONEY_BLOCK, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.HONEY_BOTTLE, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.HONEYCOMB, VersionRange.andNewer(VersionEnum.r1_15)); + ITEM_REGISTRY_DIFF.put(Items.HONEYCOMB_BLOCK, VersionRange.andNewer(VersionEnum.r1_15)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.ANDESITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.ANDESITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.ANDESITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BAMBOO, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BARREL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BELL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_DYE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BLAST_FURNACE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_DYE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_DYE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CAMPFIRE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CARTOGRAPHY_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.COMPOSTER, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CORNFLOWER, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CREEPER_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CROSSBOW, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CUT_RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.CUT_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.DIORITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.DIORITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.DIORITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.END_STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.END_STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.END_STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.FLETCHING_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.FLOWER_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.FOX_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.GLOBE_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.GRANITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.GRANITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.GRANITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.GRINDSTONE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.JIGSAW, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.LANTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.LEATHER_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.LECTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.LILY_OF_THE_VALLEY, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.LOOM, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOJANG_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_COBBLESTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_COBBLESTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.PANDA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.PILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_ANDESITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_ANDESITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DIORITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DIORITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_GRANITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_GRANITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.RAVAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.RED_NETHER_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.RED_NETHER_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.RED_NETHER_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.RED_SANDSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SANDSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SCAFFOLDING, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SKULL_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMITHING_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOKER, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_QUARTZ_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_QUARTZ_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_RED_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.STONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.STONECUTTER, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SUSPICIOUS_STEW, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.SWEET_BERRIES, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.TRADER_LLAMA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.WANDERING_TRADER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_DYE, VersionRange.andNewer(VersionEnum.r1_14)); + ITEM_REGISTRY_DIFF.put(Items.WITHER_ROSE, VersionRange.andNewer(VersionEnum.r1_14)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_ICE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BRAIN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BRAIN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BRAIN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BUBBLE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BUBBLE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.BUBBLE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.CARVED_PUMPKIN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.CHIPPED_ANVIL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.COD_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.COD_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.CONDUIT, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DAMAGED_ANVIL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DARK_PRISMARINE_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DARK_PRISMARINE_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BRAIN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BRAIN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BRAIN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BUBBLE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BUBBLE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_BUBBLE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_FIRE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_FIRE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_FIRE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_HORN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_HORN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_HORN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_TUBE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_TUBE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEAD_TUBE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DEBUG_STICK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DOLPHIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DRIED_KELP, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DRIED_KELP_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.DROWNED_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.FIRE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.FIRE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.FIRE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.HEART_OF_THE_SEA, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.HORN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.HORN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.HORN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.KELP, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.MUSHROOM_STEM, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.NAUTILUS_SHELL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + //ITEM_REGISTRY_DIFF.put(Items.PETRIFIED_OAK_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); it's right, but the item exists in another form before, so it's actually wrong + ITEM_REGISTRY_DIFF.put(Items.PHANTOM_MEMBRANE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PHANTOM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PUFFERFISH_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.PUFFERFISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SALMON_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SALMON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SCUTE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SEA_PICKLE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SEAGRASS, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_QUARTZ, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_STONE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_ACACIA_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_ACACIA_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_BIRCH_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_BIRCH_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_DARK_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_DARK_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_JUNGLE_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_JUNGLE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_SPRUCE_LOG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.STRIPPED_SPRUCE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TRIDENT, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TROPICAL_FISH_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TROPICAL_FISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TUBE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TUBE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TUBE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TURTLE_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TURTLE_HELMET, VersionRange.andNewer(VersionEnum.r1_13)); + ITEM_REGISTRY_DIFF.put(Items.TURTLE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); + + ITEM_REGISTRY_DIFF.put(Items.BLACK_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.KNOWLEDGE_BOOK, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIME_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIME_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIME_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.LIME_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PARROT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PINK_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PINK_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PINK_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PINK_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.RED_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.RED_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.RED_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_BED, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); + + ITEM_REGISTRY_DIFF.put(Items.BLACK_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.DONKEY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.EVOKER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.FILLED_MAP, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.HUSK_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.IRON_NUGGET, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.LIME_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.LLAMA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.MULE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.OBSERVER, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.PINK_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.RED_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.SHULKER_SHELL, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.SKELETON_HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.STRAY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.TOTEM_OF_UNDYING, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.VEX_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.VINDICATOR_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.WITHER_SKELETON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.ZOMBIE_HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + ITEM_REGISTRY_DIFF.put(Items.ZOMBIE_VILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); + + ITEM_REGISTRY_DIFF.put(Items.BONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_10)); + ITEM_REGISTRY_DIFF.put(Items.MAGMA_BLOCK, VersionRange.andNewer(VersionEnum.r1_10).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.NETHER_WART_BLOCK, VersionRange.andNewer(VersionEnum.r1_10)); + ITEM_REGISTRY_DIFF.put(Items.POLAR_BEAR_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_10)); + ITEM_REGISTRY_DIFF.put(Items.RED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_10)); + ITEM_REGISTRY_DIFF.put(Items.STRUCTURE_VOID, VersionRange.andNewer(VersionEnum.r1_10)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.BEETROOT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.BEETROOT_SEEDS, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.BEETROOT_SOUP, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.CHAIN_COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.CHORUS_FLOWER, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.CHORUS_FRUIT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.CHORUS_PLANT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.DIRT_PATH, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.DRAGON_BREATH, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.DRAGON_HEAD, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.ELYTRA, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.END_CRYSTAL, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.END_ROD, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.END_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.LINGERING_POTION, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.POPPED_CHORUS_FRUIT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.PURPUR_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.PURPUR_PILLAR, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.PURPUR_SLAB, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.PURPUR_STAIRS, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.REPEATING_COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.SHIELD, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.SHULKER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.SPECTRAL_ARROW, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.STRUCTURE_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); + ITEM_REGISTRY_DIFF.put(Items.TIPPED_ARROW, VersionRange.andNewer(VersionEnum.r1_9)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ANDESITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ARMOR_STAND, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BARRIER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.COARSE_DIRT, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_MUTTON, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_RABBIT, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.CREEPER_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.CUT_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.DARK_PRISMARINE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.DIORITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ELDER_GUARDIAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ENDERMITE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.GRANITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.GUARDIAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.IRON_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.LIME_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.MUTTON, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PINK_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PLAYER_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_ANDESITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_DIORITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.POLISHED_GRANITE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_BRICKS, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_CRYSTALS, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PRISMARINE_SHARD, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RABBIT, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RABBIT_FOOT, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RABBIT_HIDE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RABBIT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RABBIT_STEW, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RED_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.RED_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SEA_LANTERN, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SKELETON_SKULL, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SLIME_BLOCK, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.WET_SPONGE, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.WITHER_SKELETON_SKULL, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); + ITEM_REGISTRY_DIFF.put(Items.ZOMBIE_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); + + ITEM_REGISTRY_DIFF.put(Items.ACACIA_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_LEAVES, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_LOG, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_PLANKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_SAPLING, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_SLAB, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ACACIA_STAIRS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ALLIUM, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.AZURE_BLUET, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_ORCHID, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.COMMAND_BLOCK_MINECART, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_SALMON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_LEAVES, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_PLANKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_SAPLING, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_SLAB, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.DARK_OAK_STAIRS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_CHISELED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LARGE_FERN, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LILAC, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIME_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.LIME_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.OXEYE_DAISY, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PACKED_ICE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PEONY, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PINK_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PINK_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PINK_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PODZOL, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PUFFERFISH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.RED_SAND, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.RED_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.RED_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.RED_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.ROSE_BUSH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.SALMON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.SUNFLOWER, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.TALL_GRASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.TROPICAL_FISH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); + + ITEM_REGISTRY_DIFF.put(Items.BLACK_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.BLACK_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.COAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.HAY_BLOCK, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.IRON_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LEAD, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIME_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.LIME_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.NAME_TAG, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.PINK_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.PINK_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.RED_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.RED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); + + ITEM_REGISTRY_DIFF.put(Items.ACTIVATOR_RAIL, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_QUARTZ_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.COMPARATOR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.DAYLIGHT_DETECTOR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.DROPPER, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.HEAVY_WEIGHTED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.HOPPER, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.HOPPER_MINECART, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_WEIGHTED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_QUARTZ_ORE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ_PILLAR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ_SLAB, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.QUARTZ_STAIRS, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.REDSTONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.TNT_MINECART, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + ITEM_REGISTRY_DIFF.put(Items.TRAPPED_CHEST, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); + + ITEM_REGISTRY_DIFF.put(Items.ANVIL, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.BAKED_POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.BAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.BEACON, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.CARROT, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.CARROT_ON_A_STICK, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.COBBLESTONE_WALL, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.ENCHANTED_BOOK, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.FIREWORK_ROCKET, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.FIREWORK_STAR, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.FLOWER_POT, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_CARROT, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.ITEM_FRAME, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.MAP, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_COBBLESTONE_WALL, VersionRange.andNewer(VersionEnum.r1_4_2)); + // "[The disc was] made available in survival" Is this the release in which it was added or made available? + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_WAIT, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_STAR, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.OAK_BUTTON, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.POISONOUS_POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.PUMPKIN_PIE, VersionRange.andNewer(VersionEnum.r1_4_2)); + ITEM_REGISTRY_DIFF.put(Items.WITCH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_4_2)); + + ITEM_REGISTRY_DIFF.put(Items.BIRCH_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.COCOA_BEANS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.EMERALD, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.EMERALD_BLOCK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.EMERALD_ORE, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.ENCHANTED_GOLDEN_APPLE, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.ENDER_CHEST, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.TRIPWIRE_HOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.WRITABLE_BOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + ITEM_REGISTRY_DIFF.put(Items.WRITTEN_BOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); + + ITEM_REGISTRY_DIFF.put(Items.CHISELED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.CHISELED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.CUT_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.EXPERIENCE_BOTTLE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.FIRE_CHARGE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_LEAVES, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_LOG, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.JUNGLE_SAPLING, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.OCELOT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + ITEM_REGISTRY_DIFF.put(Items.REDSTONE_LAMP, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); + + ITEM_REGISTRY_DIFF.put(Items.BLAZE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.CAVE_SPIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.CHICKEN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.COW_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.CREEPER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.ENDERMAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.GHAST_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.MAGMA_CUBE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.MOOSHROOM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.PIG_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SHEEP_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SILVERFISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SKELETON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SLIME_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SPIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.SQUID_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.VILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.WOLF_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.ZOMBIE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + ITEM_REGISTRY_DIFF.put(Items.ZOMBIFIED_PIGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); + + ITEM_REGISTRY_DIFF.put(Items.BLAZE_POWDER, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.BLAZE_ROD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.BREWING_STAND, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.CAULDRON, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.DRAGON_EGG, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.ENCHANTING_TABLE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.END_PORTAL_FRAME, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.END_STONE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.ENDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.FERMENTED_SPIDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.GHAST_TEAR, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.GLASS_BOTTLE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.GLISTERING_MELON_SLICE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.GOLD_NUGGET, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MAGMA_CREAM, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_11, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_BLOCKS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_CHIRP, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_FAR, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_MALL, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_MELLOHI, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_STAL, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_STRAD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_WARD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICK_FENCE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHER_WART, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.POTION, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.SPIDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.SPLASH_POTION, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + + // b1.9-pre1 + ITEM_REGISTRY_DIFF.put(Items.LILY_PAD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + ITEM_REGISTRY_DIFF.put(Items.MYCELIUM, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); + + ITEM_REGISTRY_DIFF.put(Items.BEEF, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.BRICK_SLAB, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.BRICK_STAIRS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.BROWN_MUSHROOM_BLOCK, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.CHICKEN, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_BEEF, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_CHICKEN, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.ENDER_PEARL, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.GLASS_PANE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_COBBLESTONE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_STONE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.INFESTED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.IRON_BARS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.MELON, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.MELON_SEEDS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.MELON_SLICE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.MUSHROOM_STEM, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.OAK_FENCE_GATE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.PUMPKIN_SEEDS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.RED_MUSHROOM_BLOCK, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.ROTTEN_FLESH, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + ITEM_REGISTRY_DIFF.put(Items.STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.VINE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); + + ITEM_REGISTRY_DIFF.put(Items.PISTON, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); + ITEM_REGISTRY_DIFF.put(Items.SHEARS, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); + ITEM_REGISTRY_DIFF.put(Items.STICKY_PISTON, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); + + ITEM_REGISTRY_DIFF.put(Items.DEAD_BUSH, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); + ITEM_REGISTRY_DIFF.put(Items.FERN, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); + ITEM_REGISTRY_DIFF.put(Items.GRASS, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); + ITEM_REGISTRY_DIFF.put(Items.MAP, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); + ITEM_REGISTRY_DIFF.put(Items.OAK_TRAPDOOR, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); + + ITEM_REGISTRY_DIFF.put(Items.BIRCH_SAPLING, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); + ITEM_REGISTRY_DIFF.put(Items.COBWEB, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); + ITEM_REGISTRY_DIFF.put(Items.DETECTOR_RAIL, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); + ITEM_REGISTRY_DIFF.put(Items.POWERED_RAIL, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_SAPLING, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); + + ITEM_REGISTRY_DIFF.put(Items.COOKIE, VersionRange.andNewer(VersionEnum.b1_4tob1_4_1)); + ITEM_REGISTRY_DIFF.put(Items.TRAPPED_CHEST, VersionRange.andNewer(VersionEnum.b1_4tob1_4_1)); + + ITEM_REGISTRY_DIFF.put(Items.COBBLESTONE_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.OAK_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); + ITEM_REGISTRY_DIFF.put(Items.RED_BED, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); + ITEM_REGISTRY_DIFF.put(Items.REPEATER, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); + ITEM_REGISTRY_DIFF.put(Items.SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); + + ITEM_REGISTRY_DIFF.put(Items.BIRCH_LEAVES, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.BIRCH_LOG, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.BONE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.BONE_MEAL, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.CAKE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.CHARCOAL, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.COCOA_BEANS, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.CYAN_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.DISPENSER, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.INK_SAC, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LAPIS_BLOCK, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LAPIS_LAZULI, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LAPIS_ORE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.LIME_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.NOTE_BLOCK, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.PINK_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.RED_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.SANDSTONE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_LEAVES, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.SPRUCE_LOG, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.SUGAR, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); + + ITEM_REGISTRY_DIFF.put(Items.CARVED_PUMPKIN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.CLOCK, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.COD, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.COOKED_COD, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.GLOWSTONE, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.GLOWSTONE_DUST, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.JACK_O_LANTERN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.NETHERRACK, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.PUMPKIN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + ITEM_REGISTRY_DIFF.put(Items.SOUL_SAND, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); + + ITEM_REGISTRY_DIFF.put(Items.COMPASS, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); + ITEM_REGISTRY_DIFF.put(Items.FISHING_ROD, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); + + // Indev with former 20100223 (it's not known) + ITEM_REGISTRY_DIFF.put(Items.PAINTING, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); + + ITEM_REGISTRY_DIFF.put(Items.OAK_FENCE, VersionRange.andNewer(VersionEnum.a1_0_17toa1_0_17_4)); + + // a1.0.14 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.CHEST_MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.EGG, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.FURNACE_MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.JUKEBOX, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_13, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.MUSIC_DISC_CAT, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // a1.0.11 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.BOOK, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.BRICK, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CLAY, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CLAY_BALL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.PAPER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.SLIME_BALL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.SUGAR_CANE, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // a1.0.8 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.LEATHER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.MILK_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // a1.0.6 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.CACTUS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.OAK_BOAT, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // a1.0.5 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.SNOW_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.SNOWBALL, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // a1.0.4 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.ICE, VersionRange.andNewer(VersionEnum.a1_0_15).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.SNOW, VersionRange.andNewer(VersionEnum.a1_0_15).add(VersionRange.single(VersionEnum.c0_30cpe))); + + // a1.0.1 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.IRON_DOOR, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LEVER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.OAK_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.REDSTONE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.REDSTONE_ORE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.REDSTONE_TORCH, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_BUTTON, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100629 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.COBBLESTONE_STAIRS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.OAK_STAIRS, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100625-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.SADDLE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.SPAWNER, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100624 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.OAK_DOOR, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.RAIL, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100615 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LAVA_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WATER_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100607 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.LADDER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.OAK_SIGN, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100227-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_APPLE, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100219 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.COOKED_PORKCHOP, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.FLINT, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.FURNACE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.PORKCHOP, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100212-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.CHAINMAIL_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CHAINMAIL_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CHAINMAIL_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CHAINMAIL_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 20100206 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.BREAD, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.FARMLAND, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WHEAT, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WHEAT_SEEDS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WOODEN_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 0.31 20100130 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.BOWL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.CRAFTING_TABLE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.FEATHER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLDEN_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GUNPOWDER, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.MUSHROOM_STEW, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STRING, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Infdev 0.31 20100129 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.STICK, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20100128 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.COAL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_ORE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.DIAMOND_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GOLD_INGOT, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_INGOT, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.STONE_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WOODEN_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WOODEN_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WOODEN_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.WOODEN_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20091231-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.APPLE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.IRON_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LEATHER_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LEATHER_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LEATHER_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.LEATHER_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20100124-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.CHEST, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20100122 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.ARROW, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.BOW, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20100110 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.FLINT_AND_STEEL, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Indev 0.31 20091223-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.STONE_SLAB, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.TORCH, VersionRange.andNewer(VersionEnum.a1_0_15)); + + // Cave game tech test? I literally have no idea + ITEM_REGISTRY_DIFF.put(Items.BEDROCK, VersionRange.andNewer(VersionEnum.a1_0_15)); + ITEM_REGISTRY_DIFF.put(Items.GRASS_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); + + ITEM_REGISTRY_DIFF.put(Items.OBSIDIAN, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.TNT, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + + // 0.26 SURVIVAL TEST (doesn't have multiplayer, so we assign it to the next multiplayer version) + ITEM_REGISTRY_DIFF.put(Items.BOOKSHELF, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.BRICKS, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.COAL_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.GOLD_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.IRON_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + ITEM_REGISTRY_DIFF.put(Items.MOSSY_COBBLESTONE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); + + ITEM_REGISTRY_DIFF.put(Items.BLACK_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.BLUE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.BROWN_MUSHROOM, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.BROWN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.CYAN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.DANDELION, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.GRAY_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.GREEN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_BLUE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.LIGHT_GRAY_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.LIME_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.MAGENTA_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.ORANGE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.PINK_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); + ITEM_REGISTRY_DIFF.put(Items.POPPY, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.PURPLE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.RED_MUSHROOM, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.RED_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.SMOOTH_STONE_SLAB, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.WHITE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + ITEM_REGISTRY_DIFF.put(Items.YELLOW_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); + + ITEM_REGISTRY_DIFF.put(Items.SPONGE, VersionRange.andNewer(VersionEnum.c0_0_19a_06)); + } +} diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/Material1_19_4.java b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java similarity index 99% rename from src/main/java/de/florianmichael/viafabricplus/fixes/Material1_19_4.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java index 24fbf8db9..7a787667e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/Material1_19_4.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/Material1_19_4.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.diff; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/RecipesPre1_12.java b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/RecipesPre1_12.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/RecipesPre1_12.java rename to src/main/java/de/florianmichael/viafabricplus/fixes/diff/RecipesPre1_12.java index 89dfc614b..0e138598c 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/RecipesPre1_12.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/diff/RecipesPre1_12.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes; +package de.florianmichael.viafabricplus.fixes.diff; import net.minecraft.block.ConcretePowderBlock; import net.minecraft.block.GlazedTerracottaBlock; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/tracker/WolfHealthTracker.java b/src/main/java/de/florianmichael/viafabricplus/fixes/tracker/WolfHealthTracker.java index 13bf7d80c..44120e02d 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/tracker/WolfHealthTracker.java +++ b/src/main/java/de/florianmichael/viafabricplus/fixes/tracker/WolfHealthTracker.java @@ -43,11 +43,11 @@ public void setWolfHealth(final int entityId, final float wolfHealth) { public static WolfHealthTracker get() { final var connection = ProtocolHack.getPlayNetworkUserConnection(); - WolfHealthTracker tracker = connection.get(WolfHealthTracker.class); - + var tracker = connection.get(WolfHealthTracker.class); if (tracker == null) { connection.put(tracker = new WolfHealthTracker(connection)); } + return tracker; } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/VFPMixinPlugin.java b/src/main/java/de/florianmichael/viafabricplus/injection/ViaFabricPlusMixinPlugin.java similarity index 97% rename from src/main/java/de/florianmichael/viafabricplus/injection/VFPMixinPlugin.java rename to src/main/java/de/florianmichael/viafabricplus/injection/ViaFabricPlusMixinPlugin.java index 7d298fd23..5572f5ea3 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/VFPMixinPlugin.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/ViaFabricPlusMixinPlugin.java @@ -27,7 +27,7 @@ import java.util.List; import java.util.Set; -public class VFPMixinPlugin implements IMixinConfigPlugin { +public class ViaFabricPlusMixinPlugin implements IMixinConfigPlugin { public static final String INJECTOR_PACKAGE = "de.florianmichael.viafabricplus.injection.mixin."; private static final String MC_FIXES_PACKAGE = "fixes.minecraft."; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/MixinMain.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/MixinMain.java index 388cc2f3d..011faab4d 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/MixinMain.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/MixinMain.java @@ -20,6 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.base; import de.florianmichael.viafabricplus.ViaFabricPlus; +import de.florianmichael.viafabricplus.event.LoadCallback; import net.minecraft.client.main.Main; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -31,7 +32,9 @@ public abstract class MixinMain { @Inject(method = "main", at = @At(value = "INVOKE", target = "Lnet/minecraft/util/crash/CrashReport;initCrashReport()V")) private static void bootstrap(CallbackInfo ci) { - ViaFabricPlus.INSTANCE.bootstrap(); + LoadCallback.EVENT.invoker().onLoad(LoadCallback.State.PRE); + ViaFabricPlus.global().bootstrap(); + LoadCallback.EVENT.invoker().onLoad(LoadCallback.State.POST); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinAddServerScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinAddServerScreen.java index c4562f8db..b9beab1ea 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinAddServerScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinAddServerScreen.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.base.integration; import de.florianmichael.viafabricplus.injection.access.IServerInfo; -import de.florianmichael.viafabricplus.screen.common.ForceVersionScreen; +import de.florianmichael.viafabricplus.screen.PerServerVersionScreen; import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; import net.minecraft.client.gui.screen.AddServerScreen; import net.minecraft.client.gui.screen.Screen; @@ -74,16 +74,16 @@ private void addVersionSetterButton(CallbackInfo ci) { } // Create the button - ButtonWidget.Builder buttonBuilder = ButtonWidget.builder(forcedVersion == null ? Text.translatable("misc.viafabricplus.addserverscreenbuttontitle") : Text.literal(forcedVersion.getName()), button -> { + ButtonWidget.Builder buttonBuilder = ButtonWidget.builder(forcedVersion == null ? Text.translatable("base.viafabricplus.set_version_for_this_server") : Text.literal(forcedVersion.getName()), button -> { // Store current input in case the user cancels the version selection viaFabricPlus$nameField = serverNameField.getText(); viaFabricPlus$addressField = addressField.getText(); - client.setScreen(new ForceVersionScreen(this, version -> ((IServerInfo) server).viaFabricPlus$forceVersion(version))); + client.setScreen(new PerServerVersionScreen(this, version -> ((IServerInfo) server).viaFabricPlus$forceVersion(version))); }).size(98, 20); // Set the button's position according to the configured orientation - buttonBuilder = GeneralSettings.withOrientation(buttonBuilder, GeneralSettings.INSTANCE.addServerScreenButtonOrientation.getIndex(), width, height); + buttonBuilder = GeneralSettings.withOrientation(buttonBuilder, GeneralSettings.global().addServerScreenButtonOrientation.getIndex(), width, height); // Add the button to the screen this.addDrawableChild(buttonBuilder.build()); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDebugHud.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDebugHud.java index b57d74cba..30cd678a1 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDebugHud.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDebugHud.java @@ -35,7 +35,7 @@ public abstract class MixinDebugHud { @Inject(method = "getLeftText", at = @At("RETURN")) public void addViaFabricPlusInformation(CallbackInfoReturnable> cir) { - if (MinecraftClient.getInstance().isInSingleplayer() || !GeneralSettings.INSTANCE.showExtraInformationInDebugHud.getValue()) return; + if (MinecraftClient.getInstance().isInSingleplayer() || !GeneralSettings.global().showExtraInformationInDebugHud.getValue()) return; final List information = new ArrayList<>(); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDownloadingTerrainScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDownloadingTerrainScreen.java index 187131777..226d8908b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDownloadingTerrainScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinDownloadingTerrainScreen.java @@ -42,7 +42,7 @@ public MixinDownloadingTerrainScreen(Text title) { @Inject(method = "render", at = @At("RETURN")) private void renderClassicProgress(DrawContext context, int mouseX, int mouseY, float delta, CallbackInfo ci) { - if (GeneralSettings.INSTANCE.showClassicLoadingProgressInConnectScreen.getValue()) { + if (GeneralSettings.global().showClassicLoadingProgressInConnectScreen.getValue()) { // Check if ViaVersion is translating final UserConnection connection = ProtocolHack.getPlayNetworkUserConnection(); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerScreen.java index da918eed5..612821a79 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerScreen.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.base.integration; -import de.florianmichael.viafabricplus.screen.common.ProtocolSelectionScreen; +import de.florianmichael.viafabricplus.screen.MainScreen; import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.multiplayer.MultiplayerScreen; @@ -41,10 +41,10 @@ public MixinMultiplayerScreen(Text title) { private void addProtocolSelectionButton(CallbackInfo ci) { // Create the button var builder = ButtonWidget.builder(Text.literal("ViaFabricPlus"), button -> - ProtocolSelectionScreen.INSTANCE.open(this)).size(98, 20); + MainScreen.INSTANCE.open(this)).size(98, 20); // Set the button's position according to the configured orientation - builder = GeneralSettings.withOrientation(builder, GeneralSettings.INSTANCE.multiplayerScreenButtonOrientation.getIndex(), width, height); + builder = GeneralSettings.withOrientation(builder, GeneralSettings.global().multiplayerScreenButtonOrientation.getIndex(), width, height); // Add the button to the screen this.addDrawableChild(builder.build()); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerServerListWidget_ServerEntry.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerServerListWidget_ServerEntry.java index d3144a7bf..4a55a7b8e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerServerListWidget_ServerEntry.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/base/integration/MixinMultiplayerServerListWidget_ServerEntry.java @@ -46,14 +46,14 @@ public abstract class MixinMultiplayerServerListWidget_ServerEntry { @WrapOperation(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/screen/multiplayer/MultiplayerScreen;setMultiplayerScreenTooltip(Ljava/util/List;)V", ordinal = 0)) private void drawTranslatingState(MultiplayerScreen instance, List tooltip, Operation original) { - if (GeneralSettings.INSTANCE.showAdvertisedServerVersion.getValue()) { + if (GeneralSettings.global().showAdvertisedServerVersion.getValue()) { final IServerInfo mixinServerInfo = ((IServerInfo) server); if (mixinServerInfo.viaFabricPlus$enabled()) { final var versionEnum = VersionEnum.fromProtocolId(mixinServerInfo.viaFabricPlus$translatingVersion()); - tooltip.add(Text.translatable("misc.viafabricplus.translate", versionEnum != VersionEnum.UNKNOWN ? versionEnum.getName() + " (" + versionEnum.getVersion() + ")" : mixinServerInfo.viaFabricPlus$translatingVersion())); - tooltip.add(Text.translatable("misc.viafabricplus.serverversion", server.version.getString() + " (" + server.protocolVersion + ")")); + tooltip.add(Text.translatable("base.viafabricplus.via_translates_to", versionEnum != VersionEnum.UNKNOWN ? versionEnum.getName() + " (" + versionEnum.getVersion() + ")" : mixinServerInfo.viaFabricPlus$translatingVersion())); + tooltip.add(Text.translatable("base.viafabricplus.server_version", server.version.getString() + " (" + server.protocolVersion + ")")); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/compat/classic4j/MixinCCAuthenticationResponse.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/compat/classic4j/MixinCCAuthenticationResponse.java index 3c90a2867..d698eac78 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/compat/classic4j/MixinCCAuthenticationResponse.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/compat/classic4j/MixinCCAuthenticationResponse.java @@ -33,11 +33,11 @@ public abstract class MixinCCAuthenticationResponse { @Redirect(method = "getErrorDisplay", at = @At(value = "FIELD", target = "Lde/florianmichael/classic4j/model/classicube/CCError;description:Ljava/lang/String;")) private String mapTranslations(CCError instance) { switch (instance) { - case TOKEN -> Text.translatable("classicube.viafabricplus.error.token").getString(); - case USERNAME -> Text.translatable("classicube.viafabricplus.error.username").getString(); - case PASSWORD -> Text.translatable("classicube.viafabricplus.error.password").getString(); - case VERIFICATION -> Text.translatable("classicube.viafabricplus.error.verification").getString(); - case LOGIN_CODE -> Text.translatable("classicube.viafabricplus.error.logincode").getString(); + case TOKEN -> Text.translatable("classic4j_library.viafabricplus.error.token").getString(); + case USERNAME -> Text.translatable("classic4j_library.viafabricplus.error.username").getString(); + case PASSWORD -> Text.translatable("classic4j_library.viafabricplus.error.password").getString(); + case VERIFICATION -> Text.translatable("classic4j_library.viafabricplus.error.verification").getString(); + case LOGIN_CODE -> Text.translatable("classic4j_library.viafabricplus.error.logincode").getString(); } return instance.description; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java index 55f79cfdb..247bdce90 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/authlib/MixinYggdrasilUserApiService.java @@ -22,7 +22,7 @@ import com.mojang.authlib.minecraft.client.MinecraftClient; import com.mojang.authlib.yggdrasil.YggdrasilUserApiService; import com.mojang.authlib.yggdrasil.response.KeyPairResponse; -import de.florianmichael.viafabricplus.fixes.model.KeyPairResponse1_19_0; +import de.florianmichael.viafabricplus.injection.reference.KeyPairResponse1_19_0; import de.florianmichael.viafabricplus.injection.access.ILegacyKeySignatureStorage; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientPlayerInteractionManager.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientPlayerInteractionManager.java index 2b2162ca6..0aa1fb3e5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientPlayerInteractionManager.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinClientPlayerInteractionManager.java @@ -134,7 +134,7 @@ else if (clickSlot.getSlot() < 0 || clickSlot.getSlot() >= viaFabricPlus$oldItem try { clickSlotPacket.sendToServer(Protocol1_17To1_16_4.class); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to send Click Slot Packet", e); + ViaFabricPlus.global().getLogger().error("Failed to send Click Slot Packet", e); } viaFabricPlus$oldCursorStack = null; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java index 6cf3169de..bb0ff0e49 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinFontStorage.java @@ -19,8 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft; -import de.florianmichael.viafabricplus.fixes.model.BuiltinEmptyGlyph1_12_2; -import de.florianmichael.viafabricplus.mappings.CharacterMappings; +import de.florianmichael.viafabricplus.injection.reference.BuiltinEmptyGlyph1_12_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import net.minecraft.client.font.*; @@ -36,6 +35,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -61,7 +61,8 @@ public abstract class MixinFontStorage { @Inject(method = "setFonts", at = @At("HEAD")) private void trackForbiddenCharacters(List fonts, CallbackInfo ci) { - viaFabricPlus$forbiddenCharacters = CharacterMappings.getForbiddenCharactersForID(this.id); +// viaFabricPlus$forbiddenCharacters = CharacterMappings.getForbiddenCharactersForID(this.id); + viaFabricPlus$forbiddenCharacters = new HashMap<>(); // TODO | Fix } @Unique diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java index 663ba674c..53ebff897 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinMinecraftClient.java @@ -137,7 +137,7 @@ private void onInventoryKeyPressed(CallbackInfo ci) { try { clientStatus.sendToServer(Protocol1_12To1_11_1.class); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to send Open Inventory Packet", e); + ViaFabricPlus.global().getLogger().error("Failed to send Open Inventory Packet", e); } } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinServerResourcePackProvider.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinServerResourcePackProvider.java index 930bca3f8..04a464a42 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinServerResourcePackProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/MixinServerResourcePackProvider.java @@ -22,9 +22,9 @@ import com.google.common.hash.HashCode; import com.google.common.hash.Hashing; import com.google.common.io.Files; -import de.florianmichael.viafabricplus.mappings.PackFormatsMappings; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.GameVersion; +import net.minecraft.SharedConstants; import net.minecraft.client.resource.ServerResourcePackProvider; import net.raphimc.vialoader.util.VersionEnum; import org.apache.commons.codec.digest.DigestUtils; @@ -50,7 +50,8 @@ public abstract class MixinServerResourcePackProvider { @Redirect(method = "getDownloadHeaders", at = @At(value = "INVOKE", target = "Lnet/minecraft/SharedConstants;getGameVersion()Lnet/minecraft/GameVersion;")) private static GameVersion editHeaders() { - return PackFormatsMappings.current(); +// return PackFormatsMappings.current(); + return SharedConstants.getGameVersion(); // TODO | Fix } @Inject(method = "getDownloadHeaders", at = @At("TAIL"), cancellable = true) diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java index b77724279..2d81efc03 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityModels.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; import com.google.common.collect.ImmutableMap; -import de.florianmichael.viafabricplus.fixes.model.BoatModel_1_8; +import de.florianmichael.viafabricplus.fixes.boat.BoatModel_1_8; import net.minecraft.client.model.TexturedModelData; import net.minecraft.client.render.entity.model.EntityModelLayer; import net.minecraft.client.render.entity.model.EntityModels; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java index 987349e84..84aa62d4a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinEntityRenderDispatcher.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.entity; -import de.florianmichael.viafabricplus.fixes.BoatRenderer1_8; +import de.florianmichael.viafabricplus.fixes.boat.BoatRenderer1_8; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.client.render.entity.EntityRenderDispatcher; import net.minecraft.client.render.entity.EntityRenderer; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java index b1e47df27..384898f01 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/entity/MixinLivingEntity.java @@ -21,7 +21,6 @@ import de.florianmichael.viafabricplus.fixes.EntityHeightOffsetsPre1_20_2; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import de.florianmichael.viafabricplus.settings.impl.ExperimentalSettings; import net.minecraft.block.BlockState; import net.minecraft.block.TrapdoorBlock; import net.minecraft.entity.*; @@ -144,7 +143,7 @@ private boolean modifySwimSprintSpeed(LivingEntity instance) { @Redirect(method = "tickMovement", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/LivingEntity;getFluidHeight(Lnet/minecraft/registry/tag/TagKey;)D")) private double redirectFluidHeight(LivingEntity instance, TagKey tagKey) { - if (ExperimentalSettings.INSTANCE.waterMovementEdgeDetection.getValue() && ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_12_2) && tagKey == FluidTags.WATER) { + if (ProtocolHack.getTargetVersion().isOlderThanOrEqualTo(VersionEnum.r1_12_2) && tagKey == FluidTags.WATER) { if (instance.getFluidHeight(tagKey) > 0) { return 1; } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java index c3b4e25e7..29d6e90ef 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinAxeItem.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; import com.google.common.collect.ImmutableSet; -import de.florianmichael.viafabricplus.fixes.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; import net.minecraft.block.BlockState; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java index e368b30a4..93f519c0a 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroup_EntriesImpl.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; -import de.florianmichael.viafabricplus.mappings.ItemReleaseVersionMappings; +import de.florianmichael.viafabricplus.fixes.diff.ItemRegistryDiffPre1_20_2; import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.item.Item; @@ -39,14 +39,16 @@ public abstract class MixinItemGroup_EntriesImpl { @Redirect(method = "add", at = @At(value = "INVOKE", target = "Lnet/minecraft/item/Item;isEnabled(Lnet/minecraft/resource/featuretoggle/FeatureSet;)Z")) private boolean removeUnknownItems(Item instance, FeatureSet featureSet) { - final var index = GeneralSettings.INSTANCE.removeNotAvailableItemsFromCreativeTab.getIndex(); + final var index = GeneralSettings.global().removeNotAvailableItemsFromCreativeTab.getIndex(); if (index == 2 || MinecraftClient.getInstance().isInSingleplayer()) return instance.isEnabled(featureSet); if (index == 1 && !Registries.ITEM_GROUP.getId(this.group).getNamespace().equals("minecraft")) return instance.isEnabled(featureSet); - if (ItemReleaseVersionMappings.INSTANCE.getCurrentMap().contains(instance)) { - return instance.isEnabled(featureSet); - } + // TODO | Fix + +// if (ItemRegistryDiffPre1_20_2.INSTANCE.getCurrentMap().contains(instance)) { +// return instance.isEnabled(featureSet); +// } return false; } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroups.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroups.java index 09588a3bf..797570896 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroups.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemGroups.java @@ -53,9 +53,9 @@ private static void updateEntries(ItemGroup.DisplayContext displayContext) { @Inject(method = "updateDisplayContext", at = @At("HEAD"), cancellable = true) private static void trackLastVersion(FeatureSet enabledFeatures, boolean operatorEnabled, RegistryWrapper.WrapperLookup lookup, CallbackInfoReturnable cir) { - if (viaFabricPlus$version != ProtocolHack.getTargetVersion() || viaFabricPlus$state != GeneralSettings.INSTANCE.removeNotAvailableItemsFromCreativeTab.getIndex()) { + if (viaFabricPlus$version != ProtocolHack.getTargetVersion() || viaFabricPlus$state != GeneralSettings.global().removeNotAvailableItemsFromCreativeTab.getIndex()) { viaFabricPlus$version = ProtocolHack.getTargetVersion(); - viaFabricPlus$state = GeneralSettings.INSTANCE.removeNotAvailableItemsFromCreativeTab.getIndex(); + viaFabricPlus$state = GeneralSettings.global().removeNotAvailableItemsFromCreativeTab.getIndex(); displayContext = new ItemGroup.DisplayContext(enabledFeatures, operatorEnabled, lookup); updateEntries(displayContext); diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java index 40e7f55ec..cf5703b39 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinItemPlacementContext.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; -import de.florianmichael.viafabricplus.fixes.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.block.Block; import net.minecraft.block.Blocks; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java index 2a2bd05db..529f50ccb 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/item/MixinPickaxeItem.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.item; import com.google.common.collect.ImmutableSet; -import de.florianmichael.viafabricplus.fixes.Material1_19_4; +import de.florianmichael.viafabricplus.fixes.diff.Material1_19_4; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.fabricmc.yarn.constants.MiningLevels; import net.minecraft.block.Block; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java index 7a7e5c7fd..bbad5f917 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/network/MixinClientPlayNetworkHandler.java @@ -20,7 +20,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.network; import com.llamalad7.mixinextras.injector.WrapWithCondition; -import de.florianmichael.viafabricplus.fixes.RecipesPre1_12; +import de.florianmichael.viafabricplus.fixes.diff.RecipesPre1_12; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinConnectScreen_1.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinConnectScreen_1.java index 9c09e07ed..fddc8a6b5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinConnectScreen_1.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinConnectScreen_1.java @@ -24,8 +24,6 @@ import com.viaversion.viaversion.api.minecraft.signature.storage.ChatSession1_19_0; import com.viaversion.viaversion.api.minecraft.signature.storage.ChatSession1_19_1; import de.florianmichael.viafabricplus.ViaFabricPlus; -import de.florianmichael.viafabricplus.fixes.account.BedrockAccountHandler; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; import de.florianmichael.viafabricplus.injection.access.IClientConnection; import de.florianmichael.viafabricplus.injection.access.ILegacyKeySignatureStorage; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; @@ -85,9 +83,12 @@ private int replacePort(InetSocketAddress instance) { @Redirect(method = "run", at = @At(value = "INVOKE", target = "Lnet/minecraft/network/ClientConnection;send(Lnet/minecraft/network/packet/Packet;)V")) private void spoofUserName(ClientConnection instance, Packet packet) { - if (AuthenticationSettings.INSTANCE.spoofUserNameIfUsingClassiCube.getValue() && ViaFabricPlusClassicMPPassProvider.classiCubeMPPass != null && ClassiCubeAccountHandler.INSTANCE.getAccount() != null) { - instance.send(new LoginHelloC2SPacket(ClassiCubeAccountHandler.INSTANCE.getAccount().username(), MinecraftClient.getInstance().getSession().getUuidOrNull())); - return; + if (AuthenticationSettings.INSTANCE.setSessionNameToClassiCubeNameInServerList.getValue() && ViaFabricPlusClassicMPPassProvider.classiCubeMPPass != null) { + final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount(); + if (account != null) { + instance.send(new LoginHelloC2SPacket(account.username(), MinecraftClient.getInstance().getSession().getUuidOrNull())); + return; + } } instance.send(packet); @@ -104,13 +105,13 @@ private void setupConnectionSessions(CallbackInfo ci) { final VersionEnum targetVersion = VersionEnum.fromUserConnection(userConnection); if (targetVersion == VersionEnum.bedrockLatest) { - var bedrockSession = BedrockAccountHandler.INSTANCE.getBedrockSession(); + var bedrockSession = ViaFabricPlus.global().getSaveManager().getAccountsSave().getBedrockAccount(); if (bedrockSession == null) return; try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) { bedrockSession = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.refresh(httpClient, bedrockSession); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to refresh Bedrock chain data. Please re-login to Bedrock!", e); + ViaFabricPlus.global().getLogger().error("Failed to refresh Bedrock chain data. Please re-login to Bedrock!", e); return; } @@ -138,11 +139,11 @@ private void setupConnectionSessions(CallbackInfo ci) { if (legacyKey != null) { userConnection.put(new ChatSession1_19_0(playerUuid, profile.privateKey(), new ProfileKey(publicKeyData.expiresAt().toEpochMilli(), publicKeyData.key().getEncoded(), legacyKey))); } else { - ViaFabricPlus.LOGGER.error("Failed to fetch legacy key, can't setup ChatSession"); + ViaFabricPlus.global().getLogger().error("Failed to fetch legacy key, can't setup ChatSession"); } } } else { - ViaFabricPlus.LOGGER.error("Failed to fetch keyPair, can't setup ChatSession"); + ViaFabricPlus.global().getLogger().error("Failed to fetch keyPair, can't setup ChatSession"); } } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinOptionsScreen.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinOptionsScreen.java index 7bb5f7448..5ff5e1e69 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinOptionsScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/MixinOptionsScreen.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen; -import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; +import de.florianmichael.viafabricplus.settings.impl.VisualSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.screen.option.OptionsScreen; @@ -40,8 +40,8 @@ protected MixinOptionsScreen(Text title) { } @Inject(method = "init", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/widget/GridWidget$Adder;add(Lnet/minecraft/client/gui/widget/Widget;)Lnet/minecraft/client/gui/widget/Widget;", ordinal = 10, shift = At.Shift.AFTER), locals = LocalCapture.CAPTURE_FAILHARD) - private void addValuesButton(CallbackInfo ci, GridWidget gridWidget, GridWidget.Adder adder) { - if (GeneralSettings.INSTANCE.showSuperSecretSettings.getValue() && MinecraftClient.getInstance().player != null) { + private void showSuperSecretSettings(CallbackInfo ci, GridWidget gridWidget, GridWidget.Adder adder) { + if (VisualSettings.INSTANCE.showSuperSecretSettings.isEnabled() && MinecraftClient.getInstance().player != null) { this.addDrawableChild(ButtonWidget.builder(Text.literal("Super Secret Settings..."), button -> MinecraftClient.getInstance().gameRenderer.cycleSuperSecretSetting()).dimensions(this.width / 2 + 5, this.height / 6 + 18, 150, 20).build()); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java index 69e272d4f..0517fbd9b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinCraftingScreenHandler.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen.screenhandler; -import de.florianmichael.viafabricplus.fixes.RecipesPre1_12; +import de.florianmichael.viafabricplus.fixes.diff.RecipesPre1_12; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.inventory.Inventory; import net.minecraft.inventory.RecipeInputInventory; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java index 97543acc4..c396199c4 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/minecraft/screen/screenhandler/MixinPlayerScreenHandler.java @@ -19,7 +19,7 @@ package de.florianmichael.viafabricplus.injection.mixin.fixes.minecraft.screen.screenhandler; -import de.florianmichael.viafabricplus.fixes.RecipesPre1_12; +import de.florianmichael.viafabricplus.fixes.diff.RecipesPre1_12; import net.minecraft.inventory.Inventory; import net.minecraft.inventory.RecipeInputInventory; import net.raphimc.vialoader.util.VersionEnum; diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinViaLegacyConfig.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinViaLegacyConfig.java deleted file mode 100644 index b634057a4..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/vialegacy/MixinViaLegacyConfig.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.injection.mixin.fixes.vialegacy; - -import de.florianmichael.viafabricplus.settings.impl.AuthenticationSettings; -import net.raphimc.vialegacy.ViaLegacyConfig; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; - -@Mixin(value = ViaLegacyConfig.class, remap = false) -public abstract class MixinViaLegacyConfig { - - @Inject(method = "isLegacySkinLoading", at = @At("HEAD"), cancellable = true) - public void overwriteValue(CallbackInfoReturnable cir) { - cir.setReturnValue(AuthenticationSettings.INSTANCE.allowViaLegacyToLoadSkinsInLegacyVersions.getValue()); - } - -} diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java index 353b963b8..083d03fdf 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinEntityPackets1_17.java @@ -25,7 +25,7 @@ import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.packets.EntityPackets; -import de.florianmichael.viafabricplus.fixes.classic.ClassicWorldHeightInjection; +import de.florianmichael.viafabricplus.injection.reference.ClassicWorldHeightInjections; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -36,8 +36,8 @@ public abstract class MixinEntityPackets1_17 { @Redirect(method = "registerPackets", at = @At(value = "INVOKE", target = "Lcom/viaversion/viaversion/protocols/protocol1_17to1_16_4/Protocol1_17To1_16_4;registerClientbound(Lcom/viaversion/viaversion/api/protocol/packet/ClientboundPacketType;Lcom/viaversion/viaversion/api/protocol/remapper/PacketHandler;)V")) private void handleClassicWorldHeight(Protocol1_17To1_16_4 instance, ClientboundPacketType packetType, PacketHandler packetHandler) { - if (packetType == ClientboundPackets1_16_2.JOIN_GAME) packetHandler = ClassicWorldHeightInjection.handleJoinGame(packetHandler); - if (packetType == ClientboundPackets1_16_2.RESPAWN) packetHandler = ClassicWorldHeightInjection.handleRespawn(packetHandler); + if (packetType == ClientboundPackets1_16_2.JOIN_GAME) packetHandler = ClassicWorldHeightInjections.handleJoinGame(packetHandler); + if (packetType == ClientboundPackets1_16_2.RESPAWN) packetHandler = ClassicWorldHeightInjections.handleRespawn(packetHandler); ((Protocol) instance).registerClientbound(packetType, packetHandler); } diff --git a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java index 6378b40fb..2eb1096f7 100644 --- a/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/mixin/fixes/viaversion/MixinWorldPackets1_17.java @@ -25,7 +25,7 @@ import com.viaversion.viaversion.protocols.protocol1_16_2to1_16_1.ClientboundPackets1_16_2; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.Protocol1_17To1_16_4; import com.viaversion.viaversion.protocols.protocol1_17to1_16_4.packets.WorldPackets; -import de.florianmichael.viafabricplus.fixes.classic.ClassicWorldHeightInjection; +import de.florianmichael.viafabricplus.injection.reference.ClassicWorldHeightInjections; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; @@ -36,8 +36,8 @@ public abstract class MixinWorldPackets1_17 { @Redirect(method = "register", at = @At(value = "INVOKE", target = "Lcom/viaversion/viaversion/protocols/protocol1_17to1_16_4/Protocol1_17To1_16_4;registerClientbound(Lcom/viaversion/viaversion/api/protocol/packet/ClientboundPacketType;Lcom/viaversion/viaversion/api/protocol/remapper/PacketHandler;)V")) private static void handleClassicWorldHeight(Protocol1_17To1_16_4 instance, ClientboundPacketType packetType, PacketHandler packetHandler) { - if (packetType == ClientboundPackets1_16_2.CHUNK_DATA) packetHandler = ClassicWorldHeightInjection.handleChunkData(packetHandler); - if (packetType == ClientboundPackets1_16_2.UPDATE_LIGHT) packetHandler = ClassicWorldHeightInjection.handleUpdateLight(packetHandler); + if (packetType == ClientboundPackets1_16_2.CHUNK_DATA) packetHandler = ClassicWorldHeightInjections.handleChunkData(packetHandler); + if (packetType == ClientboundPackets1_16_2.UPDATE_LIGHT) packetHandler = ClassicWorldHeightInjections.handleUpdateLight(packetHandler); ((Protocol) instance).registerClientbound(packetType, packetHandler); } diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/model/BuiltinEmptyGlyph1_12_2.java b/src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java similarity index 96% rename from src/main/java/de/florianmichael/viafabricplus/fixes/model/BuiltinEmptyGlyph1_12_2.java rename to src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java index be28f4d58..fa1646d46 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/model/BuiltinEmptyGlyph1_12_2.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/reference/BuiltinEmptyGlyph1_12_2.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.model; +package de.florianmichael.viafabricplus.injection.reference; import net.minecraft.client.font.Glyph; import net.minecraft.client.font.GlyphRenderer; diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjection.java b/src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java similarity index 98% rename from src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjection.java rename to src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java index 55f628bab..5b26b9d8b 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/classic/ClassicWorldHeightInjection.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/reference/ClassicWorldHeightInjections.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.classic; +package de.florianmichael.viafabricplus.injection.reference; import com.viaversion.viaversion.api.Via; import com.viaversion.viaversion.api.connection.UserConnection; @@ -40,7 +40,7 @@ import java.util.BitSet; import java.util.List; -public class ClassicWorldHeightInjection { +public class ClassicWorldHeightInjections { public static PacketHandler handleJoinGame(final PacketHandler parentHandler) { return wrapper -> { diff --git a/src/main/java/de/florianmichael/viafabricplus/fixes/model/KeyPairResponse1_19_0.java b/src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java similarity index 95% rename from src/main/java/de/florianmichael/viafabricplus/fixes/model/KeyPairResponse1_19_0.java rename to src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java index 6ef1078d5..4d9042291 100644 --- a/src/main/java/de/florianmichael/viafabricplus/fixes/model/KeyPairResponse1_19_0.java +++ b/src/main/java/de/florianmichael/viafabricplus/injection/reference/KeyPairResponse1_19_0.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.fixes.model; +package de.florianmichael.viafabricplus.injection.reference; import com.mojang.authlib.yggdrasil.response.KeyPairResponse; diff --git a/src/main/java/de/florianmichael/viafabricplus/mappings/CharacterMappings.java b/src/main/java/de/florianmichael/viafabricplus/mappings/CharacterMappings.java deleted file mode 100644 index 1525505bf..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/mappings/CharacterMappings.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.mappings; - -import com.google.gson.*; -import de.florianmichael.viafabricplus.ViaFabricPlus; -import net.minecraft.util.Identifier; - -import java.io.InputStreamReader; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -public class CharacterMappings { - public static Map>> forbiddenCharacters1_19_4To1_20 = new HashMap<>(); - - public static void load() { - final JsonObject file = ViaFabricPlus.GSON.fromJson(new InputStreamReader(CharacterMappings.class.getResourceAsStream("/assets/viafabricplus/characters1_19_4to1_20.json")), JsonObject.class); - for (Map.Entry layer1 : file.entrySet()) { // missing / uniform / bitmap - final Map> typeStorage = new HashMap<>(); - for (Map.Entry layer2 : layer1.getValue().getAsJsonObject().entrySet()) { // blank / space / unicode - final List type2Storage = new ArrayList<>(); - for (JsonElement element : layer2.getValue().getAsJsonArray()) { // data - type2Storage.add(element.getAsInt()); - } - typeStorage.put(layer2.getKey(), type2Storage); - } - forbiddenCharacters1_19_4To1_20.put(layer1.getKey(), typeStorage); - } - } - - public static Map> getForbiddenCharactersForID(final Identifier id) { - if (!forbiddenCharacters1_19_4To1_20.containsKey(id.toString())) return new HashMap<>(); - return forbiddenCharacters1_19_4To1_20.get(id.toString()); - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/mappings/ItemReleaseVersionMappings.java b/src/main/java/de/florianmichael/viafabricplus/mappings/ItemReleaseVersionMappings.java deleted file mode 100644 index 75aea5c9a..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/mappings/ItemReleaseVersionMappings.java +++ /dev/null @@ -1,1422 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.mappings; - -import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import net.raphimc.vialoader.util.VersionEnum; -import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; -import net.minecraft.item.Item; -import net.minecraft.item.Items; -import net.minecraft.registry.Registries; -import net.raphimc.vialoader.util.VersionRange; - -import java.util.*; - -public class ItemReleaseVersionMappings { - public static ItemReleaseVersionMappings INSTANCE; - - public static void create() { - INSTANCE = new ItemReleaseVersionMappings(); - INSTANCE.load(); - INSTANCE.update(ProtocolHack.getTargetVersion()); - - ChangeProtocolVersionCallback.EVENT.register(protocolVersion -> INSTANCE.update(protocolVersion)); - } - - private final Map itemMap = new HashMap<>(); - private final List currentMap = new ArrayList<>(); - - public void update(final VersionEnum versionEnum) { - INSTANCE.currentMap.clear(); - INSTANCE.currentMap.addAll(Registries.ITEM.stream().filter(item -> INSTANCE.contains(item, versionEnum)).toList()); - } - - public boolean contains(final Item item, final VersionEnum versionEnum) { - if (!itemMap.containsKey(item)) return true; - - return itemMap.get(item).contains(versionEnum); - } - - public void load() { - register(Items.CALIBRATED_SCULK_SENSOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.PITCHER_PLANT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SNIFFER_EGG, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SUSPICIOUS_GRAVEL, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.PITCHER_POD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.WAYFINDER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SHAPER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SILENCE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.RAISER_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.HOST_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.ANGLER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BLADE_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BREWER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BURN_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.DANGER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.EXPLORER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.FRIEND_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.HEART_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.HEARTBREAK_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.HOWL_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.MINER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.MOURNER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.PLENTY_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SHEAF_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SHELTER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SNORT_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.MUSIC_DISC_RELIC, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_BLOCK, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.STRIPPED_BAMBOO_BLOCK, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_PLANKS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_MOSAIC, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_STAIRS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_MOSAIC_STAIRS, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_SLAB, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_MOSAIC_SLAB, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_FENCE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_DOOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_BUTTON, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_CHEST_RAFT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_RAFT, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.CHISELED_BOOKSHELF, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.CAMEL_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.PIGLIN_HEAD, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.OAK_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.SPRUCE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BIRCH_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.JUNGLE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.ACACIA_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.CHERRY_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.DARK_OAK_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.MANGROVE_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.BAMBOO_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.CRIMSON_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - register(Items.WARPED_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_20tor1_20_1)); - - register(Items.BRUSH, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_BOAT, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_BUTTON, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_DOOR, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_FENCE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_HANGING_SIGN, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_LEAVES, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_LOG, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_PLANKS, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_SAPLING, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_SIGN, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_SLAB, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_STAIRS, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.CHERRY_WOOD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.COAST_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.DECORATED_POT, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.DUNE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.EYE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.NETHERITE_UPGRADE_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.PINK_PETALS, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.ARCHER_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.ARMS_UP_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.PRIZE_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SKULL_POTTERY_SHERD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.RIB_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SENTRY_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SNIFFER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SNOUT_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SPIRE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.STRIPPED_CHERRY_LOG, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.STRIPPED_CHERRY_WOOD, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.SUSPICIOUS_SAND, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.TIDE_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.TORCHFLOWER, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.TORCHFLOWER_SEEDS, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.VEX_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.WARD_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - register(Items.WILD_ARMOR_TRIM_SMITHING_TEMPLATE, VersionRange.andNewer(VersionEnum.r1_19_4)); - - register(Items.IRON_GOLEM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_3)); - register(Items.SNOW_GOLEM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19_3)); - - register(Items.ACACIA_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.ALLAY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.BIRCH_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.DARK_OAK_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.DISC_FRAGMENT_5, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.ECHO_SHARD, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.FROG_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.FROGSPAWN, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.GOAT_HORN, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.JUNGLE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_BUTTON, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_DOOR, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_FENCE, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_LEAVES, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_LOG, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_PLANKS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_PROPAGULE, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_ROOTS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_SIGN, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_SLAB, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_STAIRS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MANGROVE_WOOD, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUD, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUD_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUD_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUD_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUD_BRICKS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUDDY_MANGROVE_ROOTS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.MUSIC_DISC_5, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.OAK_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.OCHRE_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.PACKED_MUD, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.PEARLESCENT_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.RECOVERY_COMPASS, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.REINFORCED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.SCULK, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.SCULK_CATALYST, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.SCULK_SHRIEKER, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.SCULK_VEIN, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.SPRUCE_CHEST_BOAT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.STRIPPED_MANGROVE_LOG, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.STRIPPED_MANGROVE_WOOD, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.TADPOLE_BUCKET, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.TADPOLE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.VERDANT_FROGLIGHT, VersionRange.andNewer(VersionEnum.r1_19)); - register(Items.WARDEN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_19)); - - register(Items.MUSIC_DISC_OTHERSIDE, VersionRange.andNewer(VersionEnum.r1_18tor1_18_1)); - - register(Items.AMETHYST_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AMETHYST_CLUSTER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AMETHYST_SHARD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AXOLOTL_BUCKET, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AXOLOTL_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AZALEA, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.AZALEA_LEAVES, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BIG_DRIPLEAF, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BLACK_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BLUE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BROWN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BUDDING_AMETHYST, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.BUNDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CALCITE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CHISELED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COBBLED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COBBLED_DEEPSLATE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COBBLED_DEEPSLATE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COBBLED_DEEPSLATE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COPPER_INGOT, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.COPPER_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CRACKED_DEEPSLATE_BRICKS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CRACKED_DEEPSLATE_TILES, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.CYAN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_BRICKS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_COAL_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_COPPER_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_DIAMOND_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_EMERALD_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_GOLD_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_IRON_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_LAPIS_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_REDSTONE_ORE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_TILE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_TILE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_TILE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DEEPSLATE_TILES, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.DRIPSTONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.EXPOSED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.EXPOSED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.EXPOSED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.EXPOSED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.FLOWERING_AZALEA, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.FLOWERING_AZALEA_LEAVES, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GLOW_BERRIES, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GLOW_INK_SAC, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GLOW_ITEM_FRAME, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GLOW_LICHEN, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GLOW_SQUID_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GOAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GRAY_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.GREEN_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.HANGING_ROOTS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.INFESTED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LARGE_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LIGHT, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LIGHT_BLUE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LIGHT_GRAY_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LIGHTNING_ROD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.LIME_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.MAGENTA_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.MEDIUM_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.MOSS_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.MOSS_CARPET, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.ORANGE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.OXIDIZED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.OXIDIZED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.OXIDIZED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.OXIDIZED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.PINK_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POINTED_DRIPSTONE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POLISHED_DEEPSLATE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POLISHED_DEEPSLATE_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POLISHED_DEEPSLATE_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POLISHED_DEEPSLATE_WALL, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.POWDER_SNOW_BUCKET, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.PURPLE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_GOLD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_GOLD_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_IRON, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RAW_IRON_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.RED_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.ROOTED_DIRT, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SCULK_SENSOR, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SMALL_AMETHYST_BUD, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SMALL_DRIPLEAF, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SMOOTH_BASALT, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SPORE_BLOSSOM, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.SPYGLASS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.TINTED_GLASS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.TUFF, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_COPPER_BLOCK, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_EXPOSED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_EXPOSED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_EXPOSED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_EXPOSED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_OXIDIZED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_OXIDIZED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_OXIDIZED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_OXIDIZED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_WEATHERED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_WEATHERED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_WEATHERED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WAXED_WEATHERED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WEATHERED_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WEATHERED_CUT_COPPER, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WEATHERED_CUT_COPPER_SLAB, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WEATHERED_CUT_COPPER_STAIRS, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.WHITE_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - register(Items.YELLOW_CANDLE, VersionRange.andNewer(VersionEnum.r1_17)); - - register(Items.ANCIENT_DEBRIS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.BASALT, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.BLACKSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.BLACKSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.BLACKSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CHAIN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CHISELED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CHISELED_POLISHED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRACKED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRACKED_POLISHED_BLACKSTONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_DOOR, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_FENCE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_FUNGUS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_NYLIUM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_PLANKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_ROOTS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_SIGN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_STEM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRIMSON_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.CRYING_OBSIDIAN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.GILDED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.HOGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.LODESTONE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.MUSIC_DISC_PIGSTEP, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHER_GOLD_ORE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHER_SPROUTS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_AXE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_BLOCK, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_BOOTS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_CHESTPLATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_HELMET, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_HOE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_INGOT, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_LEGGINGS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_PICKAXE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_SCRAP, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_SHOVEL, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.NETHERITE_SWORD, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.PIGLIN_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.PIGLIN_BRUTE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.PIGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BASALT, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.POLISHED_BLACKSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.QUARTZ_BRICKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.RESPAWN_ANCHOR, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.SHROOMLIGHT, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.SOUL_CAMPFIRE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.SOUL_LANTERN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.SOUL_SOIL, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.SOUL_TORCH, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.STRIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.STRIPPED_CRIMSON_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.STRIPPED_CRIMSON_STEM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.STRIPPED_WARPED_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.STRIPPED_WARPED_STEM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.TARGET, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.TWISTING_VINES, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_BUTTON, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_DOOR, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_FENCE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_FUNGUS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_FUNGUS_ON_A_STICK, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_HYPHAE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_NYLIUM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_PLANKS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_ROOTS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_SIGN, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_SLAB, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_STAIRS, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_STEM, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WARPED_WART_BLOCK, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.WEEPING_VINES, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.ZOGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - register(Items.ZOMBIFIED_PIGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_16)); - - register(Items.BEE_NEST, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.BEE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.BEEHIVE, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.HONEY_BLOCK, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.HONEY_BOTTLE, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.HONEYCOMB, VersionRange.andNewer(VersionEnum.r1_15)); - register(Items.HONEYCOMB_BLOCK, VersionRange.andNewer(VersionEnum.r1_15)); - - register(Items.ACACIA_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.ANDESITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.ANDESITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.ANDESITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BAMBOO, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BARREL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BELL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BIRCH_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BLACK_DYE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BLAST_FURNACE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BLUE_DYE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.BROWN_DYE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CAMPFIRE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CARTOGRAPHY_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.COMPOSTER, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CORNFLOWER, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CREEPER_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CROSSBOW, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CUT_RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.CUT_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.DARK_OAK_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.DIORITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.DIORITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.DIORITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.END_STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.END_STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.END_STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.FLETCHING_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.FLOWER_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.FOX_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.GLOBE_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.GRANITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.GRANITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.GRANITE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.GRINDSTONE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.JIGSAW, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.JUNGLE_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.LANTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.LEATHER_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.LECTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.LILY_OF_THE_VALLEY, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.LOOM, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOJANG_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOSSY_COBBLESTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOSSY_COBBLESTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOSSY_STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOSSY_STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.MOSSY_STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.NETHER_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.PANDA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.PILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_ANDESITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_ANDESITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_DIORITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_DIORITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_GRANITE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.POLISHED_GRANITE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.PRISMARINE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.RAVAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.RED_NETHER_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.RED_NETHER_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.RED_NETHER_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.RED_SANDSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SANDSTONE_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SCAFFOLDING, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SKULL_BANNER_PATTERN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMITHING_TABLE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOKER, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_QUARTZ_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_QUARTZ_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_RED_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SMOOTH_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SPRUCE_SIGN, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.STONE_BRICK_WALL, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.STONE_SLAB, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.STONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.STONECUTTER, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SUSPICIOUS_STEW, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.SWEET_BERRIES, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.TRADER_LLAMA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.WANDERING_TRADER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.WHITE_DYE, VersionRange.andNewer(VersionEnum.r1_14)); - register(Items.WITHER_ROSE, VersionRange.andNewer(VersionEnum.r1_14)); - - register(Items.ACACIA_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.ACACIA_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.ACACIA_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BIRCH_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BIRCH_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BIRCH_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BLUE_ICE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BRAIN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BRAIN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BRAIN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BUBBLE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BUBBLE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.BUBBLE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.CARVED_PUMPKIN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.CHIPPED_ANVIL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.COD_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.COD_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.CONDUIT, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DAMAGED_ANVIL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DARK_OAK_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DARK_OAK_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DARK_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DARK_PRISMARINE_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DARK_PRISMARINE_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BRAIN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BRAIN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BRAIN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BUBBLE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BUBBLE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_BUBBLE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_FIRE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_FIRE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_FIRE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_HORN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_HORN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_HORN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_TUBE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_TUBE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEAD_TUBE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DEBUG_STICK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DOLPHIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DRIED_KELP, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DRIED_KELP_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.DROWNED_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.FIRE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.FIRE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.FIRE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.HEART_OF_THE_SEA, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.HORN_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.HORN_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.HORN_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.JUNGLE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.JUNGLE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.JUNGLE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.KELP, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.MUSHROOM_STEM, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.NAUTILUS_SHELL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - //register(Items.PETRIFIED_OAK_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); it's right, but the item exists in another form before, so it's actually wrong - register(Items.PHANTOM_MEMBRANE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PHANTOM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PRISMARINE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PRISMARINE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PRISMARINE_SLAB, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PRISMARINE_STAIRS, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PUFFERFISH_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.PUFFERFISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SALMON_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SALMON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SCUTE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SEA_PICKLE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SEAGRASS, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SMOOTH_QUARTZ, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SMOOTH_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SMOOTH_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SMOOTH_STONE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SPRUCE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SPRUCE_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.SPRUCE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_ACACIA_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_ACACIA_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_BIRCH_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_BIRCH_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_DARK_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_DARK_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_JUNGLE_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_JUNGLE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_OAK_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_SPRUCE_LOG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.STRIPPED_SPRUCE_WOOD, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TRIDENT, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TROPICAL_FISH_BUCKET, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TROPICAL_FISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TUBE_CORAL, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TUBE_CORAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TUBE_CORAL_FAN, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TURTLE_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TURTLE_HELMET, VersionRange.andNewer(VersionEnum.r1_13)); - register(Items.TURTLE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_13)); - - register(Items.BLACK_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLACK_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLACK_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLACK_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLUE_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLUE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLUE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BLUE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BROWN_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BROWN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BROWN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.BROWN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.CYAN_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.CYAN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.CYAN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.CYAN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GRAY_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GRAY_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GRAY_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GRAY_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GREEN_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GREEN_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GREEN_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.GREEN_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.KNOWLEDGE_BOOK, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_BLUE_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_BLUE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_BLUE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_BLUE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_GRAY_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_GRAY_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_GRAY_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIGHT_GRAY_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIME_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIME_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIME_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.LIME_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.MAGENTA_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.MAGENTA_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.MAGENTA_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.MAGENTA_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.ORANGE_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.ORANGE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.ORANGE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.ORANGE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PARROT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PINK_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PINK_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PINK_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PINK_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PURPLE_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PURPLE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PURPLE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.PURPLE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.RED_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.RED_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.RED_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.WHITE_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.WHITE_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.WHITE_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.WHITE_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.YELLOW_BED, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.YELLOW_CONCRETE, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.YELLOW_CONCRETE_POWDER, VersionRange.andNewer(VersionEnum.r1_12)); - register(Items.YELLOW_GLAZED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_12)); - - register(Items.BLACK_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.BLUE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.BROWN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.CYAN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.DONKEY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.EVOKER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.FILLED_MAP, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.GRAY_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.GREEN_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.HUSK_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.IRON_NUGGET, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.LIGHT_BLUE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.LIGHT_GRAY_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.LIME_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.LLAMA_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.MAGENTA_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.MULE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.OBSERVER, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.ORANGE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.PINK_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.PURPLE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.RED_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.SHULKER_SHELL, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.SKELETON_HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.STRAY_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.TOTEM_OF_UNDYING, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.VEX_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.VINDICATOR_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.WHITE_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.WITHER_SKELETON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.YELLOW_SHULKER_BOX, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.ZOMBIE_HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - register(Items.ZOMBIE_VILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_11)); - - register(Items.BONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_10)); - register(Items.MAGMA_BLOCK, VersionRange.andNewer(VersionEnum.r1_10).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.NETHER_WART_BLOCK, VersionRange.andNewer(VersionEnum.r1_10)); - register(Items.POLAR_BEAR_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_10)); - register(Items.RED_NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_10)); - register(Items.STRUCTURE_VOID, VersionRange.andNewer(VersionEnum.r1_10)); - - register(Items.ACACIA_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.BEETROOT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.BEETROOT_SEEDS, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.BEETROOT_SOUP, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.BIRCH_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.CHAIN_COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.CHORUS_FLOWER, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.CHORUS_FRUIT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.CHORUS_PLANT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.DARK_OAK_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.DIRT_PATH, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.DRAGON_BREATH, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.DRAGON_HEAD, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.ELYTRA, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.END_CRYSTAL, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.END_ROD, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.END_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.JUNGLE_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.LINGERING_POTION, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.POPPED_CHORUS_FRUIT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.PURPUR_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.PURPUR_PILLAR, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.PURPUR_SLAB, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.PURPUR_STAIRS, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.REPEATING_COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.SHIELD, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.SHULKER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.SPECTRAL_ARROW, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.SPRUCE_BOAT, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.STRUCTURE_BLOCK, VersionRange.andNewer(VersionEnum.r1_9)); - register(Items.TIPPED_ARROW, VersionRange.andNewer(VersionEnum.r1_9)); - - register(Items.ACACIA_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ACACIA_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ACACIA_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ANDESITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ARMOR_STAND, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BARRIER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BIRCH_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BIRCH_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BIRCH_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BLACK_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BLUE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.BROWN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.CHISELED_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.COARSE_DIRT, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.COOKED_MUTTON, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.COOKED_RABBIT, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.CREEPER_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.CUT_RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.CYAN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.DARK_OAK_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.DARK_OAK_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.DARK_OAK_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.DARK_PRISMARINE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.DIORITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ELDER_GUARDIAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ENDERMITE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.GRANITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.GRAY_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.GREEN_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.GUARDIAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.IRON_TRAPDOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.JUNGLE_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.JUNGLE_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.JUNGLE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.LIGHT_BLUE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.LIGHT_GRAY_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.LIME_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.MAGENTA_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.MUTTON, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ORANGE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PINK_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PLAYER_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.POLISHED_ANDESITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.POLISHED_DIORITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.POLISHED_GRANITE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PRISMARINE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PRISMARINE_BRICKS, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PRISMARINE_CRYSTALS, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PRISMARINE_SHARD, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.PURPLE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RABBIT, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RABBIT_FOOT, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RABBIT_HIDE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RABBIT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RABBIT_STEW, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RED_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RED_SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.RED_SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SEA_LANTERN, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SKELETON_SKULL, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SLIME_BLOCK, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SPONGE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SPRUCE_DOOR, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SPRUCE_FENCE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.SPRUCE_FENCE_GATE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.WET_SPONGE, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.WHITE_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.WITHER_SKELETON_SKULL, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.YELLOW_BANNER, VersionRange.andNewer(VersionEnum.r1_8)); - register(Items.ZOMBIE_HEAD, VersionRange.andNewer(VersionEnum.r1_8)); - - register(Items.ACACIA_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_LEAVES, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_LOG, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_PLANKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_SAPLING, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_SLAB, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ACACIA_STAIRS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ALLIUM, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.AZURE_BLUET, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BIRCH_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BLACK_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BLACK_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BLUE_ORCHID, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BLUE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BLUE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BROWN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.BROWN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.COMMAND_BLOCK_MINECART, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.COOKED_SALMON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.CYAN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.CYAN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_LEAVES, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_LOG, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_PLANKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_SAPLING, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_SLAB, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.DARK_OAK_STAIRS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.GRAY_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.GRAY_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.GREEN_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.GREEN_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.INFESTED_CHISELED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.INFESTED_CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.INFESTED_MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.JUNGLE_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LARGE_FERN, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIGHT_BLUE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIGHT_BLUE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIGHT_GRAY_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIGHT_GRAY_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LILAC, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIME_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.LIME_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.MAGENTA_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.MAGENTA_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ORANGE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ORANGE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ORANGE_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.OXEYE_DAISY, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PACKED_ICE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PEONY, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PINK_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PINK_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PINK_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PODZOL, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PUFFERFISH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PURPLE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.PURPLE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.RED_SAND, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.RED_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.RED_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.RED_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.ROSE_BUSH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.SALMON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.SPRUCE_BUTTON, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.SUNFLOWER, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.TALL_GRASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.TROPICAL_FISH, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.WHITE_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.WHITE_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.WHITE_TULIP, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.YELLOW_STAINED_GLASS, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - register(Items.YELLOW_STAINED_GLASS_PANE, VersionRange.andNewer(VersionEnum.r1_7_2tor1_7_5)); - - register(Items.BLACK_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.BLACK_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.BLUE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.BLUE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.BROWN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.BROWN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.COAL_BLOCK, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.CYAN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.CYAN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.DIAMOND_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.GOLDEN_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.GRAY_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.GRAY_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.GREEN_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.GREEN_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.HAY_BLOCK, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.HORSE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.IRON_HORSE_ARMOR, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LEAD, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIGHT_BLUE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIGHT_BLUE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIGHT_GRAY_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIGHT_GRAY_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIME_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.LIME_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.MAGENTA_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.MAGENTA_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.NAME_TAG, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.ORANGE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.ORANGE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.PINK_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.PINK_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.PURPLE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.PURPLE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.RED_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.RED_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.WHITE_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.WHITE_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.YELLOW_CARPET, VersionRange.andNewer(VersionEnum.r1_6_1)); - register(Items.YELLOW_TERRACOTTA, VersionRange.andNewer(VersionEnum.r1_6_1)); - - register(Items.ACTIVATOR_RAIL, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.CHISELED_QUARTZ_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.COMPARATOR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.DAYLIGHT_DETECTOR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.DROPPER, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.HEAVY_WEIGHTED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.HOPPER, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.HOPPER_MINECART, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.LIGHT_WEIGHTED_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.NETHER_BRICK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.NETHER_QUARTZ_ORE, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.QUARTZ, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.QUARTZ_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.QUARTZ_PILLAR, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.QUARTZ_SLAB, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.QUARTZ_STAIRS, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.REDSTONE_BLOCK, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.TNT_MINECART, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - register(Items.TRAPPED_CHEST, VersionRange.andNewer(VersionEnum.r1_5tor1_5_1)); - - register(Items.ANVIL, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.BAKED_POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.BAT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.BEACON, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.CARROT, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.CARROT_ON_A_STICK, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.COBBLESTONE_WALL, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.COMMAND_BLOCK, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.ENCHANTED_BOOK, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.FIREWORK_ROCKET, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.FIREWORK_STAR, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.FLOWER_POT, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.GOLDEN_CARROT, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.ITEM_FRAME, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.MAP, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.MOSSY_COBBLESTONE_WALL, VersionRange.andNewer(VersionEnum.r1_4_2)); - // "[The disc was] made available in survival" Is this the release in which it was added or made available? - register(Items.MUSIC_DISC_WAIT, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.NETHER_BRICK_SLAB, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.NETHER_STAR, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.OAK_BUTTON, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.POISONOUS_POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.POTATO, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.PUMPKIN_PIE, VersionRange.andNewer(VersionEnum.r1_4_2)); - register(Items.WITCH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_4_2)); - - register(Items.BIRCH_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.BIRCH_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.BIRCH_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.COCOA_BEANS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.EMERALD, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.EMERALD_BLOCK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.EMERALD_ORE, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.ENCHANTED_GOLDEN_APPLE, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.ENDER_CHEST, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.JUNGLE_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.JUNGLE_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.JUNGLE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.SANDSTONE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.SPRUCE_PLANKS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.SPRUCE_SLAB, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.SPRUCE_STAIRS, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.TRIPWIRE_HOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.WRITABLE_BOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - register(Items.WRITTEN_BOOK, VersionRange.andNewer(VersionEnum.r1_3_1tor1_3_2)); - - register(Items.CHISELED_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.CHISELED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.CUT_SANDSTONE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.EXPERIENCE_BOTTLE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.FIRE_CHARGE, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.JUNGLE_LEAVES, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.JUNGLE_LOG, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.JUNGLE_SAPLING, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.OCELOT_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - register(Items.REDSTONE_LAMP, VersionRange.andNewer(VersionEnum.r1_2_1tor1_2_3)); - - register(Items.BLAZE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.CAVE_SPIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.CHICKEN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.COW_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.CREEPER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.ENDERMAN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.GHAST_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.MAGMA_CUBE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.MOOSHROOM_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.PIG_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SHEEP_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SILVERFISH_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SKELETON_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SLIME_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SPIDER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.SQUID_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.VILLAGER_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.WOLF_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.ZOMBIE_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - register(Items.ZOMBIFIED_PIGLIN_SPAWN_EGG, VersionRange.andNewer(VersionEnum.r1_1)); - - register(Items.BLAZE_POWDER, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.BLAZE_ROD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.BREWING_STAND, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.CAULDRON, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.DRAGON_EGG, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.ENCHANTING_TABLE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.END_PORTAL_FRAME, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.END_STONE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.ENDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.FERMENTED_SPIDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.GHAST_TEAR, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.GLASS_BOTTLE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.GLISTERING_MELON_SLICE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.GOLD_NUGGET, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MAGMA_CREAM, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_11, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_BLOCKS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_CHIRP, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_FAR, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_MALL, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_MELLOHI, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_STAL, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_STRAD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MUSIC_DISC_WARD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.NETHER_BRICK_FENCE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.NETHER_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.NETHER_BRICKS, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.NETHER_WART, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.POTION, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.SPIDER_EYE, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.SPLASH_POTION, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - - // b1.9-pre1 - register(Items.LILY_PAD, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - register(Items.MYCELIUM, VersionRange.andNewer(VersionEnum.r1_0_0tor1_0_1)); - - register(Items.BEEF, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.BRICK_SLAB, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.BRICK_STAIRS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.BROWN_MUSHROOM_BLOCK, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.CHICKEN, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.COOKED_BEEF, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.COOKED_CHICKEN, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.ENDER_PEARL, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.GLASS_PANE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.INFESTED_COBBLESTONE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.INFESTED_CRACKED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.INFESTED_MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.INFESTED_STONE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.INFESTED_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.IRON_BARS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.MELON, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.MELON_SEEDS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.MELON_SLICE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.MOSSY_STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.MUSHROOM_STEM, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.OAK_FENCE_GATE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.PUMPKIN_SEEDS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.RED_MUSHROOM_BLOCK, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.ROTTEN_FLESH, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.STONE_BRICK_SLAB, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.STONE_BRICK_STAIRS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - register(Items.STONE_BRICKS, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.VINE, VersionRange.andNewer(VersionEnum.b1_8tob1_8_1)); - - register(Items.PISTON, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); - register(Items.SHEARS, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); - register(Items.STICKY_PISTON, VersionRange.andNewer(VersionEnum.b1_7tob1_7_3)); - - register(Items.DEAD_BUSH, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); - register(Items.FERN, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); - register(Items.GRASS, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); - register(Items.MAP, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); - register(Items.OAK_TRAPDOOR, VersionRange.andNewer(VersionEnum.b1_6tob1_6_6)); - - register(Items.BIRCH_SAPLING, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); - register(Items.COBWEB, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); - register(Items.DETECTOR_RAIL, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); - register(Items.POWERED_RAIL, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); - register(Items.SPRUCE_SAPLING, VersionRange.andNewer(VersionEnum.b1_5tob1_5_2)); - - register(Items.COOKIE, VersionRange.andNewer(VersionEnum.b1_4tob1_4_1)); - register(Items.TRAPPED_CHEST, VersionRange.andNewer(VersionEnum.b1_4tob1_4_1)); - - register(Items.COBBLESTONE_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.OAK_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); - register(Items.RED_BED, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); - register(Items.REPEATER, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); - register(Items.SANDSTONE_SLAB, VersionRange.andNewer(VersionEnum.b1_3tob1_3_1)); - - register(Items.BIRCH_LEAVES, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BIRCH_LOG, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BLACK_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BLUE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BONE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BONE_MEAL, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.BROWN_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.CAKE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.CHARCOAL, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.COCOA_BEANS, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.CYAN_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.DISPENSER, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.GRAY_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.GREEN_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.INK_SAC, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LAPIS_BLOCK, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LAPIS_LAZULI, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LAPIS_ORE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LIGHT_BLUE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LIGHT_GRAY_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.LIME_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.MAGENTA_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.NOTE_BLOCK, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.ORANGE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.PINK_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.PURPLE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.RED_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.SANDSTONE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.SPRUCE_LEAVES, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.SPRUCE_LOG, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.SUGAR, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.WHITE_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - register(Items.YELLOW_DYE, VersionRange.andNewer(VersionEnum.b1_2_0tob1_2_2)); - - register(Items.CARVED_PUMPKIN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.CLOCK, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.COD, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.COOKED_COD, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.GLOWSTONE, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.GLOWSTONE_DUST, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.JACK_O_LANTERN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.NETHERRACK, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.PUMPKIN, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - register(Items.SOUL_SAND, VersionRange.andNewer(VersionEnum.a1_2_0toa1_2_1_1)); - - register(Items.COMPASS, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); - register(Items.FISHING_ROD, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); - - // Indev with former 20100223 (it's not known) - register(Items.PAINTING, VersionRange.andNewer(VersionEnum.a1_1_0toa1_1_2_1)); - - register(Items.OAK_FENCE, VersionRange.andNewer(VersionEnum.a1_0_17toa1_0_17_4)); - - // a1.0.14 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.CHEST_MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.EGG, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.FURNACE_MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.JUKEBOX, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.MUSIC_DISC_13, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.MUSIC_DISC_CAT, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // a1.0.11 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.BOOK, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.BRICK, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CLAY, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CLAY_BALL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.PAPER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.SLIME_BALL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.SUGAR_CANE, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // a1.0.8 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.LEATHER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.MILK_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // a1.0.6 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.CACTUS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.OAK_BOAT, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // a1.0.5 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.SNOW_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.SNOWBALL, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // a1.0.4 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.ICE, VersionRange.andNewer(VersionEnum.a1_0_15).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.SNOW, VersionRange.andNewer(VersionEnum.a1_0_15).add(VersionRange.single(VersionEnum.c0_30cpe))); - - // a1.0.1 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.IRON_DOOR, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LEVER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.OAK_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.REDSTONE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.REDSTONE_ORE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.REDSTONE_TORCH, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_BUTTON, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_PRESSURE_PLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100629 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.COBBLESTONE_STAIRS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.OAK_STAIRS, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100625-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.SADDLE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.SPAWNER, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100624 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.MINECART, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.OAK_DOOR, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.RAIL, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100615 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LAVA_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WATER_BUCKET, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100607 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.LADDER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.OAK_SIGN, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100227-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.GOLDEN_APPLE, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100219 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.COOKED_PORKCHOP, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.FLINT, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.FURNACE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.PORKCHOP, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100212-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.CHAINMAIL_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CHAINMAIL_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CHAINMAIL_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CHAINMAIL_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 20100206 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.BREAD, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.FARMLAND, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WHEAT, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WHEAT_SEEDS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WOODEN_HOE, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 0.31 20100130 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.BOWL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.CRAFTING_TABLE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.FEATHER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLDEN_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GUNPOWDER, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.MUSHROOM_STEW, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STRING, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Infdev 0.31 20100129 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.STICK, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20100128 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.COAL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_ORE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.DIAMOND_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GOLD_INGOT, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_INGOT, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.STONE_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WOODEN_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WOODEN_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WOODEN_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.WOODEN_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20091231-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.APPLE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_AXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_PICKAXE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_SHOVEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.IRON_SWORD, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LEATHER_BOOTS, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LEATHER_CHESTPLATE, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LEATHER_HELMET, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.LEATHER_LEGGINGS, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20100124-1 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.CHEST, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20100122 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.ARROW, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.BOW, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20100110 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.FLINT_AND_STEEL, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Indev 0.31 20091223-2 (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.STONE_SLAB, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.TORCH, VersionRange.andNewer(VersionEnum.a1_0_15)); - - // Cave game tech test? I literally have no idea - register(Items.BEDROCK, VersionRange.andNewer(VersionEnum.a1_0_15)); - register(Items.GRASS_BLOCK, VersionRange.andNewer(VersionEnum.a1_0_15)); - - register(Items.OBSIDIAN, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.TNT, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - - // 0.26 SURVIVAL TEST (doesn't have multiplayer, so we assign it to the next multiplayer version) - register(Items.BOOKSHELF, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.BRICKS, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.COAL_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.GOLD_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.IRON_ORE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - register(Items.MOSSY_COBBLESTONE, VersionRange.andNewer(VersionEnum.c0_28toc0_30)); - - register(Items.BLACK_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.BLUE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.BROWN_MUSHROOM, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.BROWN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.CYAN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.DANDELION, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.GRAY_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.GREEN_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.LIGHT_BLUE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.LIGHT_GRAY_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.LIME_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.MAGENTA_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.ORANGE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.PINK_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27).add(VersionRange.single(VersionEnum.c0_30cpe))); - register(Items.POPPY, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.PURPLE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.RED_MUSHROOM, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.RED_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.SMOOTH_STONE_SLAB, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.WHITE_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - register(Items.YELLOW_WOOL, VersionRange.andNewer(VersionEnum.c0_0_20ac0_27)); - - register(Items.SPONGE, VersionRange.andNewer(VersionEnum.c0_0_19a_06)); - } - - private void register(final Item item, final VersionRange protocolRange) { - itemMap.put(item, protocolRange); - } - - public Map getItemMap() { - return itemMap; - } - - public List getCurrentMap() { - return currentMap; - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/mappings/PackFormatsMappings.java b/src/main/java/de/florianmichael/viafabricplus/mappings/PackFormatsMappings.java deleted file mode 100644 index 53416e25b..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/mappings/PackFormatsMappings.java +++ /dev/null @@ -1,147 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.mappings; - -import net.raphimc.vialoader.util.VersionEnum; -import com.viaversion.viaversion.api.protocol.version.ProtocolVersion; -import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import net.minecraft.GameVersion; -import net.minecraft.SaveVersion; -import net.minecraft.SharedConstants; -import net.minecraft.resource.ResourceType; - -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - -public class PackFormatsMappings { - private static final Map protocolMap = new HashMap<>(); - - public static void load() { - registerVersion(VersionEnum.r1_20_3, 22, "1.20.3-pre2"); - registerVersion(VersionEnum.r1_20_2, 18, "1.20.2"); - registerVersion(VersionEnum.r1_20tor1_20_1, 15, "1.20.1"); // 1.20 and 1.20.1 are the same, why care... - registerVersion(VersionEnum.r1_19_4, 13, "1.19.4"); - registerVersion(VersionEnum.r1_19_3, 12, "1.19.3"); - registerVersion(VersionEnum.r1_19_1tor1_19_2, 9, "1.19.2"); - registerVersion(VersionEnum.r1_19, 9, "1.19"); - registerVersion(VersionEnum.r1_18_2, 8, "1.18.2"); - registerVersion(VersionEnum.r1_18tor1_18_1, 8, "1.18"); - registerVersion(VersionEnum.r1_17_1, 7, "1.17.1"); - registerVersion(VersionEnum.r1_17, 7, "1.17"); - registerVersion(VersionEnum.r1_16_4tor1_16_5, 6, "1.16.5"); - registerVersion(VersionEnum.r1_16_3, 6, "1.16.3"); - registerVersion(VersionEnum.r1_16_2, 6, "1.16.2"); - registerVersion(VersionEnum.r1_16_1, 5, "1.16.1"); - registerVersion(VersionEnum.r1_16, 5, "1.16"); - registerVersion(VersionEnum.r1_15_2, 5, "1.15.2"); - registerVersion(VersionEnum.r1_15_1, 5, "1.15.1"); - registerVersion(VersionEnum.r1_15, 5, "1.15"); - registerVersion(VersionEnum.r1_14_4, 4, "1.14.4"); - registerVersion(VersionEnum.r1_14_3, 4, "1.14.3"); - registerVersion(VersionEnum.r1_14_2, 4, "1.14.2", "1.14.2 / f647ba8dc371474797bee24b2b312ff4"); - registerVersion(VersionEnum.r1_14_1, 4, "1.14.1", "1.14.1 / a8f78b0d43c74598a199d6d80cda413f"); - registerVersion(VersionEnum.r1_14, 4, "1.14", "1.14 / 5dac5567e13e46bdb0c1d90aa8d8b3f7"); - registerVersion(VersionEnum.r1_13_2, 4, "1.13.2"); // ids weren't sent over the http headers back then, why care... - registerVersion(VersionEnum.r1_13_1, 4, "1.13.1"); - registerVersion(VersionEnum.r1_13, 4, "1.13"); - registerVersion(VersionEnum.r1_12_2, 3, "1.12.2"); - registerVersion(VersionEnum.r1_12_1, 3, "1.12.1"); - registerVersion(VersionEnum.r1_12, 3, "1.12"); - registerVersion(VersionEnum.r1_11_1to1_11_2, 3, "1.11.2"); - registerVersion(VersionEnum.r1_11, 3, "1.11"); - registerVersion(VersionEnum.r1_10, 2, "1.10.2"); - registerVersion(VersionEnum.r1_9_3tor1_9_4, 2, "1.9.4"); - registerVersion(VersionEnum.r1_9_2, 2, "1.9.2"); - registerVersion(VersionEnum.r1_9_1, 2, "1.9.1"); - registerVersion(VersionEnum.r1_9, 2, "1.9"); - registerVersion(VersionEnum.r1_8, 1, "1.8.9"); - registerVersion(VersionEnum.r1_7_6tor1_7_10, 1, "1.7.10"); - registerVersion(VersionEnum.r1_7_2tor1_7_5, 1, "1.7.5"); - - checkOutdated(SharedConstants.getProtocolVersion()); - } - - public static void checkOutdated(final int nativeVersion) { - if (!protocolMap.containsKey(nativeVersion)) { - throw new RuntimeException("The current version has no pack format registered"); - } - - final GameVersion gameVersion = protocolMap.get(nativeVersion); - if (!gameVersion.getName().equals(SharedConstants.getGameVersion().getName()) || !gameVersion.getId().equals(SharedConstants.getGameVersion().getId()) || gameVersion.getResourceVersion(ResourceType.CLIENT_RESOURCES) != SharedConstants.getGameVersion().getResourceVersion(ResourceType.CLIENT_RESOURCES)) { - System.out.println("Vanilla: " + SharedConstants.getGameVersion().getName() + " , VFP: " + gameVersion.getName()); - System.out.println("Vanilla: " + SharedConstants.getGameVersion().getId() + " , VFP: " + gameVersion.getId()); - - throw new RuntimeException("The current version has no pack format registered"); - } - } - - public static GameVersion current() { - final int targetVersion = ProtocolHack.getTargetVersion().getOriginalVersion(); - if (!protocolMap.containsKey(targetVersion)) return SharedConstants.getGameVersion(); - return protocolMap.get(targetVersion); - } - - private static void registerVersion(final VersionEnum version, final int packFormat, final String name) { - registerVersion(version, packFormat, name, name); - } - - private static void registerVersion(final VersionEnum version, final int packFormat, final String name, final String id) { - protocolMap.put(version.getProtocol().getOriginalVersion(), new GameVersion() { - @Override - public SaveVersion getSaveVersion() { - return null; - } - - @Override - public String getId() { - return id; - } - - @Override - public String getName() { - return name; - } - - @Override - public int getProtocolVersion() { - return version.getProtocol().getOriginalVersion(); - } - - @Override - public int getResourceVersion(ResourceType type) { - if (type == ResourceType.CLIENT_RESOURCES) { - return packFormat; - } - throw new UnsupportedOperationException(); - } - - @Override - public Date getBuildTime() { - return null; - } - - @Override - public boolean isStable() { - return true; - } - }); - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java index c67c4d745..8b13d7f4e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/ProtocolHack.java @@ -28,15 +28,13 @@ import com.viaversion.viaversion.protocol.ProtocolPipelineImpl; import com.viaversion.viaversion.protocols.protocol1_16to1_15_2.storage.InventoryTracker1_16; import com.viaversion.viaversion.protocols.protocol1_20_2to1_20.storage.ConfigurationState; -import de.florianmichael.viafabricplus.ViaFabricPlus; import de.florianmichael.viafabricplus.event.ChangeProtocolVersionCallback; -import de.florianmichael.viafabricplus.event.FinishViaVersionStartupCallback; +import de.florianmichael.viafabricplus.event.PostViaVersionLoadCallback; import de.florianmichael.viafabricplus.injection.access.IClientConnection; import de.florianmichael.viafabricplus.protocolhack.command.ViaFabricPlusVLCommandHandler; import de.florianmichael.viafabricplus.protocolhack.impl.ViaFabricPlusVLInjector; import de.florianmichael.viafabricplus.protocolhack.impl.ViaFabricPlusVLLoader; import de.florianmichael.viafabricplus.protocolhack.impl.platform.ViaFabricPlusViaLegacyPlatformImpl; -import de.florianmichael.viafabricplus.protocolhack.impl.platform.ViaFabricPlusViaVersionPlatformImpl; import de.florianmichael.viafabricplus.protocolhack.netty.ViaFabricPlusVLLegacyPipeline; import io.netty.channel.Channel; import io.netty.util.AttributeKey; @@ -49,9 +47,11 @@ import net.raphimc.vialoader.impl.platform.ViaAprilFoolsPlatformImpl; import net.raphimc.vialoader.impl.platform.ViaBackwardsPlatformImpl; import net.raphimc.vialoader.impl.platform.ViaBedrockPlatformImpl; +import net.raphimc.vialoader.impl.platform.ViaVersionPlatformImpl; import net.raphimc.vialoader.util.VersionEnum; import org.cloudburstmc.netty.channel.raknet.config.RakChannelOption; +import java.io.File; import java.util.concurrent.ThreadLocalRandom; /** @@ -66,7 +66,7 @@ public class ProtocolHack { /** * This attribute stores the forced version for the current connection (if you set a specific version in the Edit Server screen) */ - public static final AttributeKey SERVER_VERSION_ATTRIBUTE_KEY = AttributeKey.newInstance("viafabricplus-serverversion"); + public static final AttributeKey TARGET_VERSION_ATTRIBUTE_KEY = AttributeKey.newInstance("viafabricplus-targetversion"); /** * The native version of the client @@ -89,7 +89,7 @@ public static void injectViaPipeline(final ClientConnection connection, final Ch if (serverVersion != ProtocolHack.NATIVE_VERSION) { channel.attr(ProtocolHack.CLIENT_CONNECTION_ATTRIBUTE_KEY).set(connection); - channel.attr(ProtocolHack.SERVER_VERSION_ATTRIBUTE_KEY).set(serverVersion); + channel.attr(ProtocolHack.TARGET_VERSION_ATTRIBUTE_KEY).set(serverVersion); if (VersionEnum.bedrockLatest.equals(serverVersion)) { channel.config().setOption(RakChannelOption.RAK_PROTOCOL_VERSION, 11); @@ -106,21 +106,6 @@ public static void injectViaPipeline(final ClientConnection connection, final Ch } } - /** - * Adding ViaVersion's command system into Fabric - */ - public static void initCommands() { - ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { - final ViaFabricPlusVLCommandHandler commandHandler = (ViaFabricPlusVLCommandHandler) Via.getManager().getCommandHandler(); - - final RequiredArgumentBuilder executor = RequiredArgumentBuilder. - argument("args", StringArgumentType.greedyString()).executes(commandHandler::execute).suggests(commandHandler::suggestion); - - dispatcher.register(LiteralArgumentBuilder.literal("viaversion").then(executor).executes(commandHandler::execute)); - dispatcher.register(LiteralArgumentBuilder.literal("viafabricplus").then(executor).executes(commandHandler::execute)); - }); - } - /** * This method is used when you need the target version after connecting to the server. * @@ -183,11 +168,29 @@ public static UserConnection getPlayNetworkUserConnection() { throw new IllegalStateException("The player is not connected to a server"); } - /** - * Starts ViaVersion - */ - public static void init() { - ViaLoader.init(new ViaFabricPlusViaVersionPlatformImpl(ViaFabricPlus.RUN_DIRECTORY), new ViaFabricPlusVLLoader(), new ViaFabricPlusVLInjector(), new ViaFabricPlusVLCommandHandler(), ViaBackwardsPlatformImpl::new, ViaFabricPlusViaLegacyPlatformImpl::new, ViaAprilFoolsPlatformImpl::new, ViaBedrockPlatformImpl::new); - FinishViaVersionStartupCallback.EVENT.invoker().onFinishViaVersionStartup(); + public static void init(final File directory) { + // Load ViaVersion and register all platforms and their components + ViaLoader.init( + new ViaVersionPlatformImpl(directory), + new ViaFabricPlusVLLoader(), + new ViaFabricPlusVLInjector(), + new ViaFabricPlusVLCommandHandler(), + ViaBackwardsPlatformImpl::new, + ViaFabricPlusViaLegacyPlatformImpl::new, + ViaAprilFoolsPlatformImpl::new, + ViaBedrockPlatformImpl::new + ); + + // Register command callback for /viaversion and /viafabricplus + ClientCommandRegistrationCallback.EVENT.register((dispatcher, registryAccess) -> { + final var commandHandler = (ViaFabricPlusVLCommandHandler) Via.getManager().getCommandHandler(); + final var executor = RequiredArgumentBuilder.argument("args", StringArgumentType.greedyString()). + executes(commandHandler::execute).suggests(commandHandler::suggestion); + + dispatcher.register(LiteralArgumentBuilder.literal("viaversion").then(executor).executes(commandHandler::execute)); + dispatcher.register(LiteralArgumentBuilder.literal("viafabricplus").then(executor).executes(commandHandler::execute)); + }); + + PostViaVersionLoadCallback.EVENT.invoker().onPostViaVersionLoad(); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/ViaFabricPlusVLViaConfig.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/ViaFabricPlusVLViaConfig.java deleted file mode 100644 index fb745ae8f..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/ViaFabricPlusVLViaConfig.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.protocolhack.impl; - -import de.florianmichael.viafabricplus.settings.impl.ExperimentalSettings; -import net.raphimc.vialoader.impl.viaversion.VLViaConfig; - -import java.io.File; - -public class ViaFabricPlusVLViaConfig extends VLViaConfig { - - public ViaFabricPlusVLViaConfig(File configFile) { - super(configFile); - } - - @Override - public boolean isLeftHandedHandling() { - return false; - } - - @Override - public boolean isShieldBlocking() { - return false; - } - - @Override - public boolean isChunkBorderFix() { - return ExperimentalSettings.INSTANCE.fixChunkBorders.getValue(); - } - - @Override - public int get1_13TabCompleteDelay() { - return 5; - } - - @Override - public boolean isSimulatePlayerTick() { - return false; - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/platform/ViaFabricPlusViaVersionPlatformImpl.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/platform/ViaFabricPlusViaVersionPlatformImpl.java deleted file mode 100644 index b7cce5ef6..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/impl/platform/ViaFabricPlusViaVersionPlatformImpl.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.protocolhack.impl.platform; - -import com.viaversion.viaversion.configuration.AbstractViaConfig; -import de.florianmichael.viafabricplus.protocolhack.impl.ViaFabricPlusVLViaConfig; -import net.raphimc.vialoader.impl.platform.ViaVersionPlatformImpl; - -import java.io.File; - -public class ViaFabricPlusViaVersionPlatformImpl extends ViaVersionPlatformImpl { - - public ViaFabricPlusViaVersionPlatformImpl(File rootFolder) { - super(rootFolder); - } - - @Override - protected AbstractViaConfig createConfig() { - final AbstractViaConfig config = new ViaFabricPlusVLViaConfig(new File(this.getDataFolder(), "viaversion.yml")); - config.reload(); - return config; - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusVLLegacyPipeline.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusVLLegacyPipeline.java index dc61baf00..3cc6acab5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusVLLegacyPipeline.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusVLLegacyPipeline.java @@ -21,7 +21,6 @@ import com.viaversion.viaversion.api.connection.UserConnection; import de.florianmichael.viafabricplus.ViaFabricPlus; -import de.florianmichael.viafabricplus.protocolhack.netty.viaversion.ViaFabricPlusViaDecoder; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import net.raphimc.vialoader.netty.CompressionReorderEvent; @@ -49,7 +48,7 @@ public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exc if (evt.getClass().getName().equals("me.steinborn.krypton.mod.shared.misc.KryptonPipelineEvent")) { if (evt.toString().equals("COMPRESSION_ENABLED")) { super.userEventTriggered(ctx, CompressionReorderEvent.INSTANCE); - ViaFabricPlus.LOGGER.info("Compression has been re-ordered after \"Krypton\""); + ViaFabricPlus.global().getLogger().info("Compression has been re-ordered after \"Krypton\""); return; } } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/viaversion/ViaFabricPlusViaDecoder.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusViaDecoder.java similarity index 89% rename from src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/viaversion/ViaFabricPlusViaDecoder.java rename to src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusViaDecoder.java index 3733d0b7d..8fccc3d00 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/viaversion/ViaFabricPlusViaDecoder.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/netty/ViaFabricPlusViaDecoder.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.protocolhack.netty.viaversion; +package de.florianmichael.viafabricplus.protocolhack.netty; import com.viaversion.viaversion.api.connection.UserConnection; import de.florianmichael.viafabricplus.ViaFabricPlus; @@ -36,13 +36,13 @@ public ViaFabricPlusViaDecoder(UserConnection user) { @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { - final var mode = GeneralSettings.INSTANCE.ignorePacketTranslationErrors.getIndex(); + final var mode = GeneralSettings.global().ignorePacketTranslationErrors.getIndex(); if (mode > 0) { try { super.channelRead(ctx, msg); } catch (Throwable t) { - ViaFabricPlus.LOGGER.error("Error occurred while decoding packet in ViaDecoder", t); + ViaFabricPlus.global().getLogger().error("Error occurred while decoding packet in ViaDecoder", t); if (mode == 1) { ChatUtil.sendPrefixedMessage(Text.literal("An error occurred while decoding a packet! See more details in the logs!").formatted(Formatting.RED)); } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusTransferProvider.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusTransferProvider.java index ac4112904..8d51ad199 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusTransferProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viabedrock/ViaFabricPlusTransferProvider.java @@ -39,7 +39,7 @@ public class ViaFabricPlusTransferProvider extends TransferProvider { public void connectToServer(UserConnection user, InetSocketAddress newAddress) { final var mc = MinecraftClient.getInstance(); mc.execute(() -> { - if (BedrockSettings.INSTANCE.confirmServerTransferInBedrockEdition.getValue()) { + if (BedrockSettings.INSTANCE.openPromptGUIToConfirmTransfer.getValue()) { mc.setScreen(new ConfirmScreen( (bl) -> { if (bl) @@ -48,7 +48,7 @@ public void connectToServer(UserConnection user, InetSocketAddress newAddress) { MinecraftClient.getInstance().setScreen(null); }, Text.of("ViaFabricPlus"), - Text.translatable("bedrockplay.viafabricplus.confirmtransfer", newAddress.getHostName() + ":" + newAddress.getPort()) + Text.translatable("bedrock.viafabricplus.confirm_transfer_server_prompt", newAddress.getHostName() + ":" + newAddress.getPort()) )); } else { connect(newAddress); diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusClassicMPPassProvider.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusClassicMPPassProvider.java index 07bf54bde..db50a17a8 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusClassicMPPassProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusClassicMPPassProvider.java @@ -49,9 +49,9 @@ public String getMpPass(UserConnection user) { try { mc.getSessionService().joinServer(mc.getSession().getUuidOrNull(), mc.getSession().getAccessToken(), serverId); } catch (AuthenticationException e) { - ViaFabricPlus.LOGGER.error("Error occurred while verifying session", e); + ViaFabricPlus.global().getLogger().error("Error occurred while verifying session", e); } - }, throwable -> ViaFabricPlus.LOGGER.error("Error occurred while requesting the MP-Pass to verify session", throwable)); + }, throwable -> ViaFabricPlus.global().getLogger().error("Error occurred while requesting the MP-Pass to verify session", throwable)); } else { return super.getMpPass(user); } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusOldAuthProvider.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusOldAuthProvider.java index fb0b10bcb..9c8818523 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusOldAuthProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/vialegacy/ViaFabricPlusOldAuthProvider.java @@ -32,18 +32,15 @@ public class ViaFabricPlusOldAuthProvider extends OldAuthProvider { @Override public void sendAuthRequest(UserConnection user, String serverId) throws Throwable { - if (!AuthenticationSettings.INSTANCE.allowViaLegacyToCallJoinServerToVerifySession.getValue()) return; + if (!AuthenticationSettings.INSTANCE.verifySessionForOnlineModeServers.getValue()) return; try { final var mc = MinecraftClient.getInstance(); mc.getSessionService().joinServer(mc.getSession().getUuidOrNull(), mc.getSession().getAccessToken(), serverId); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Error occurred while calling join server to verify session", e); - - if (AuthenticationSettings.INSTANCE.disconnectIfJoinServerCallFails.getValue()) { - user.getChannel().attr(ProtocolHack.CLIENT_CONNECTION_ATTRIBUTE_KEY).get().disconnect(ChatUtil.prefixText(Text.translatable("authentication.viafabricplus.error"))); - } + user.getChannel().attr(ProtocolHack.CLIENT_CONNECTION_ATTRIBUTE_KEY).get().disconnect(ChatUtil.prefixText(Text.translatable("authentication_settings.viafabricplus.failed_to_verify_session"))); + ViaFabricPlus.global().getLogger().error("Error occurred while calling join server to verify session", e); } } } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viaversion/ViaFabricPlusBaseVersionProvider.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viaversion/ViaFabricPlusBaseVersionProvider.java index add0edf82..aa39c9577 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viaversion/ViaFabricPlusBaseVersionProvider.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/provider/viaversion/ViaFabricPlusBaseVersionProvider.java @@ -28,7 +28,7 @@ public class ViaFabricPlusBaseVersionProvider extends BaseVersionProvider { @Override public int getClosestServerProtocol(UserConnection connection) throws Exception { if (connection.isClientSide()) { - return connection.getChannel().attr(ProtocolHack.SERVER_VERSION_ATTRIBUTE_KEY).get().getVersion(); + return connection.getChannel().attr(ProtocolHack.TARGET_VERSION_ATTRIBUTE_KEY).get().getVersion(); } return super.getClosestServerProtocol(connection); diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/BlockStateTranslator.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/BlockStateTranslator.java index 520de9610..7aab409ec 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/BlockStateTranslator.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/BlockStateTranslator.java @@ -55,7 +55,7 @@ public static int translateBlockState1_18(int oldId) { wrapper.read(Type.POSITION1_14); return wrapper.read(Type.VAR_INT); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to translate block state " + oldId + " to 1.18.2", e); + ViaFabricPlus.global().getLogger().error("Failed to translate block state " + oldId + " to 1.18.2", e); } return oldId; diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ItemTranslator.java b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ItemTranslator.java index 01bdf826d..9966d2206 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ItemTranslator.java +++ b/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ItemTranslator.java @@ -77,7 +77,7 @@ public static Item MC_TO_VIA_LATEST_TO_TARGET(final ItemStack stack, final Versi return wrapper.read(Type.ITEM1_20_2); } } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to translate item", e); + ViaFabricPlus.global().getLogger().error("Failed to translate item", e); } return null; } @@ -107,7 +107,7 @@ public static ItemStack VIA_TO_MC_B1_8_TO_LATEST(final Item item) { final var viaItem = wrapper.read(Type.ITEM1_13_2); return new ItemStack(() -> Registries.ITEM.get(viaItem.identifier()), viaItem.amount()); } catch (Exception e) { - ViaFabricPlus.LOGGER.error("Failed to translate item", e); + ViaFabricPlus.global().getLogger().error("Failed to translate item", e); return null; } } diff --git a/src/main/java/de/florianmichael/viafabricplus/util/FileSaver.java b/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java similarity index 71% rename from src/main/java/de/florianmichael/viafabricplus/util/FileSaver.java rename to src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java index def74d551..e02344603 100644 --- a/src/main/java/de/florianmichael/viafabricplus/util/FileSaver.java +++ b/src/main/java/de/florianmichael/viafabricplus/save/AbstractSave.java @@ -17,8 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.util; +package de.florianmichael.viafabricplus.save; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import com.google.gson.JsonObject; import de.florianmichael.viafabricplus.ViaFabricPlus; @@ -27,14 +29,17 @@ /** * This class can be used to save data to a file. */ -public abstract class FileSaver { +@SuppressWarnings("ResultOfMethodCallIgnored") +public abstract class AbstractSave { + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private final File file; /** * @param name The name of the file. */ - public FileSaver(final String name) { - file = new File(ViaFabricPlus.RUN_DIRECTORY, name); + public AbstractSave(final String name) { + file = new File(ViaFabricPlus.global().getDirectory(), name + ".json"); } /** @@ -46,9 +51,9 @@ public void init() { if (file.exists()) { JsonObject parentNode = null; try (final FileReader fr = new FileReader(file)) { - parentNode = ViaFabricPlus.GSON.fromJson(fr, JsonObject.class); + parentNode = GSON.fromJson(fr, JsonObject.class); } catch (Exception e) { - e.printStackTrace(); + ViaFabricPlus.global().getLogger().error("Failed to read file: " + file.getName() + "!"); } if (parentNode != null) { read(parentNode); @@ -56,19 +61,20 @@ public void init() { } Runtime.getRuntime().addShutdownHook(new Thread(() -> { - file.delete(); try { + file.delete(); file.createNewFile(); - } catch (IOException ignored) { + } catch (IOException e) { + ViaFabricPlus.global().getLogger().error("Failed to create file: " + file.getName() + "!"); } try (final FileWriter fw = new FileWriter(file)) { final JsonObject parentNode = new JsonObject(); write(parentNode); - fw.write(ViaFabricPlus.GSON.toJson(parentNode)); + fw.write(GSON.toJson(parentNode)); fw.flush(); } catch (IOException e) { - e.printStackTrace(); + ViaFabricPlus.global().getLogger().error("Failed to write file: " + file.getName() + "!"); } })); } diff --git a/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java b/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java new file mode 100644 index 000000000..4bfa4ab81 --- /dev/null +++ b/src/main/java/de/florianmichael/viafabricplus/save/SaveManager.java @@ -0,0 +1,60 @@ +/* + * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus + * Copyright (C) 2021-2023 FlorianMichael/EnZaXD + * Copyright (C) 2023 RK_01/RaphiMC and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.florianmichael.viafabricplus.save; + +import de.florianmichael.viafabricplus.save.impl.AccountsSave; +import de.florianmichael.viafabricplus.save.impl.SettingsSave; +import de.florianmichael.viafabricplus.settings.SettingsManager; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class SaveManager { + private final List saves = new ArrayList<>(); + + private final SettingsSave settingsSave; + private final AccountsSave accountsSave; + + public SaveManager(final SettingsManager settingsManager) { + add( + settingsSave = new SettingsSave(settingsManager), + accountsSave = new AccountsSave() + ); + } + + public void init() { + for (AbstractSave save : saves) { + save.init(); + } + } + + public void add(final AbstractSave... saves) { + this.saves.addAll(Arrays.asList(saves)); + } + + public SettingsSave getSettingsSave() { + return settingsSave; + } + + public AccountsSave getAccountsSave() { + return accountsSave; + } +} diff --git a/src/main/java/de/florianmichael/viafabricplus/save/impl/AccountsSave.java b/src/main/java/de/florianmichael/viafabricplus/save/impl/AccountsSave.java new file mode 100644 index 000000000..92178f279 --- /dev/null +++ b/src/main/java/de/florianmichael/viafabricplus/save/impl/AccountsSave.java @@ -0,0 +1,88 @@ +/* + * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus + * Copyright (C) 2021-2023 FlorianMichael/EnZaXD + * Copyright (C) 2023 RK_01/RaphiMC and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.florianmichael.viafabricplus.save.impl; + +import com.google.gson.JsonObject; +import de.florianmichael.classic4j.model.classicube.account.CCAccount; +import de.florianmichael.viafabricplus.ViaFabricPlus; +import de.florianmichael.viafabricplus.event.DisconnectCallback; +import de.florianmichael.viafabricplus.protocolhack.provider.vialegacy.ViaFabricPlusClassicMPPassProvider; +import de.florianmichael.viafabricplus.save.AbstractSave; +import net.raphimc.minecraftauth.MinecraftAuth; +import net.raphimc.minecraftauth.step.bedrock.session.StepFullBedrockSession; + +public class AccountsSave extends AbstractSave { + + private StepFullBedrockSession.FullBedrockSession bedrockAccount; + private CCAccount classicubeAccount; + + public AccountsSave() { + super("accounts"); + + DisconnectCallback.EVENT.register(() -> { + // Reset the MP-pass when the user disconnects + ViaFabricPlusClassicMPPassProvider.classiCubeMPPass = null; + }); + } + + @Override + public void write(JsonObject object) { + if (bedrockAccount != null) { + object.add("bedrock", MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.toJson(bedrockAccount)); + } + if (classicubeAccount != null) { + object.add("classicube", classicubeAccount.asJson()); + } + } + + @Override + public void read(JsonObject object) { + if (object.has("bedrock")) { + try { + bedrockAccount = MinecraftAuth.BEDROCK_DEVICE_CODE_LOGIN.fromJson(object.get("bedrock").getAsJsonObject()); + } catch (Exception e) { + ViaFabricPlus.global().getLogger().error("Failed to read bedrock account!"); + } + } + if (object.has("classicube")) { + try { + classicubeAccount = CCAccount.fromJson(object.get("classicube").getAsJsonObject()); + } catch (Exception e) { + ViaFabricPlus.global().getLogger().error("Failed to read classicube account!"); + } + } + } + + public StepFullBedrockSession.FullBedrockSession getBedrockAccount() { + return bedrockAccount; + } + + public void setBedrockAccount(StepFullBedrockSession.FullBedrockSession bedrockAccount) { + this.bedrockAccount = bedrockAccount; + } + + public CCAccount getClassicubeAccount() { + return classicubeAccount; + } + + public void setClassicubeAccount(CCAccount classicubeAccount) { + this.classicubeAccount = classicubeAccount; + } +} diff --git a/src/main/java/de/florianmichael/viafabricplus/save/impl/SettingsSave.java b/src/main/java/de/florianmichael/viafabricplus/save/impl/SettingsSave.java new file mode 100644 index 000000000..2122bb212 --- /dev/null +++ b/src/main/java/de/florianmichael/viafabricplus/save/impl/SettingsSave.java @@ -0,0 +1,76 @@ +/* + * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus + * Copyright (C) 2021-2023 FlorianMichael/EnZaXD + * Copyright (C) 2023 RK_01/RaphiMC and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.florianmichael.viafabricplus.save.impl; + +import com.google.gson.JsonObject; +import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; +import de.florianmichael.viafabricplus.save.AbstractSave; +import de.florianmichael.viafabricplus.settings.base.AbstractSetting; +import de.florianmichael.viafabricplus.settings.base.ButtonSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.SettingsManager; +import de.florianmichael.viafabricplus.settings.impl.GeneralSettings; +import de.florianmichael.viafabricplus.util.ChatUtil; +import net.raphimc.vialoader.util.VersionEnum; + +public class SettingsSave extends AbstractSave { + private final SettingsManager settingsManager; + + public SettingsSave(final SettingsManager settingsManager) { + super("settings"); + + this.settingsManager = settingsManager; + } + + @Override + public void write(JsonObject object) { + for (SettingGroup group : settingsManager.getGroups()) { + final JsonObject groupObject = new JsonObject(); + for (AbstractSetting setting : group.getSettings()) { + setting.write(groupObject); + } + + object.add(AbstractSetting.mapTranslationKey(ChatUtil.uncoverTranslationKey(group.getName())), groupObject); + } + + object.addProperty("selected-protocol-version", ProtocolHack.getTargetVersion().getVersion()); + } + + @Override + public void read(JsonObject object) { + for (SettingGroup group : settingsManager.getGroups()) { + final JsonObject groupObject = object.getAsJsonObject(AbstractSetting.mapTranslationKey(ChatUtil.uncoverTranslationKey(group.getName()))); + for (AbstractSetting setting : group.getSettings()) { + if (!groupObject.has(setting.getTranslationKey()) && !(setting instanceof ButtonSetting)) { + continue; + } + setting.read(groupObject); + } + } + + if (GeneralSettings.global().saveSelectedProtocolVersion.getValue() && object.has("selected-protocol-version")) { + final VersionEnum protocolVersion = VersionEnum.fromProtocolId(object.get("selected-protocol-version").getAsInt()); + + if (protocolVersion != VersionEnum.UNKNOWN) { + ProtocolHack.setTargetVersion(protocolVersion); + } + } + } +} diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/common/ProtocolSelectionScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/MainScreen.java similarity index 88% rename from src/main/java/de/florianmichael/viafabricplus/screen/common/ProtocolSelectionScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/MainScreen.java index ba39add2f..3de18581e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/common/ProtocolSelectionScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/MainScreen.java @@ -17,16 +17,16 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.common; +package de.florianmichael.viafabricplus.screen; import de.florianmichael.classic4j.BetaCraftHandler; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; +import de.florianmichael.viafabricplus.ViaFabricPlus; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import de.florianmichael.viafabricplus.screen.settings.SettingsScreen; import de.florianmichael.viafabricplus.screen.classic4j.BetaCraftScreen; -import de.florianmichael.viafabricplus.screen.classic4j.classicube.ClassiCubeLoginScreen; -import de.florianmichael.viafabricplus.screen.classic4j.classicube.ClassiCubeServerListScreen; +import de.florianmichael.viafabricplus.screen.classic4j.ClassiCubeLoginScreen; +import de.florianmichael.viafabricplus.screen.classic4j.ClassiCubeServerListScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -39,13 +39,13 @@ import java.awt.*; -public class ProtocolSelectionScreen extends VFPScreen { - public static final ProtocolSelectionScreen INSTANCE = new ProtocolSelectionScreen(); +public class MainScreen extends VFPScreen { + public static final MainScreen INSTANCE = new MainScreen(); private ButtonWidget betaCraftButton; - protected ProtocolSelectionScreen() { - super("Protocol selection", true); + protected MainScreen() { + super("ViaFabricPlus", true); this.setupDefaultSubtitle(); } @@ -53,10 +53,10 @@ protected ProtocolSelectionScreen() { protected void init() { // List and Settings this.addDrawableChild(new SlotList(this.client, width, height, 3 + 3 /* start offset */ + (textRenderer.fontHeight + 2) * 3 /* title is 2 */, height - 30, textRenderer.fontHeight + 4)); - this.addDrawableChild(ButtonWidget.builder(Text.translatable("misc.viafabricplus.settings"), button -> SettingsScreen.INSTANCE.open(this)).position(width - 98 - 5, 5).size(98, 20).build()); + this.addDrawableChild(ButtonWidget.builder(Text.translatable("base.viafabricplus.settings"), button -> SettingsScreen.INSTANCE.open(this)).position(width - 98 - 5, 5).size(98, 20).build()); // ClassiCube - final boolean loggedIn = ClassiCubeAccountHandler.INSTANCE.getAccount() != null; + final boolean loggedIn = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount() != null; ButtonWidget.Builder classiCubeBuilder = ButtonWidget.builder(Text.literal("ClassiCube"), button -> { if (!loggedIn) { @@ -79,7 +79,7 @@ protected void init() { BetaCraftScreen.SERVER_LIST = serverList; BetaCraftScreen.INSTANCE.open(this); - }, throwable -> showErrorScreen("BetaCraft", throwable)); + }, throwable -> showErrorScreen("BetaCraft", throwable, this)); } else { BetaCraftScreen.INSTANCE.open(this); diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/common/ForceVersionScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/PerServerVersionScreen.java similarity index 91% rename from src/main/java/de/florianmichael/viafabricplus/screen/common/ForceVersionScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/PerServerVersionScreen.java index dd63c46bd..03ede39a8 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/common/ForceVersionScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/PerServerVersionScreen.java @@ -17,9 +17,9 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.common; +package de.florianmichael.viafabricplus.screen; -import de.florianmichael.viafabricplus.screen.VFPScreen; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -32,16 +32,16 @@ import java.util.function.Consumer; -public class ForceVersionScreen extends VFPScreen { +public class PerServerVersionScreen extends VFPScreen { private final Consumer selectionConsumer; - public ForceVersionScreen(final Screen prevScreen, final Consumer selectionConsumer) { + public PerServerVersionScreen(final Screen prevScreen, final Consumer selectionConsumer) { super("Force version", false); this.prevScreen = prevScreen; this.selectionConsumer = selectionConsumer; - this.setupSubtitle(Text.translatable("forceversion.viafabricplus.title")); + this.setupSubtitle(Text.translatable("base.viafabricplus.force_version_title")); } @Override @@ -77,7 +77,7 @@ public class ResetProtocolSlot extends DummyProtocolSlot { @Override public Text getNarration() { - return Text.translatable("misc.viafabricplus.cancelreset"); + return Text.translatable("base.viafabricplus.cancel_and_reset"); } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/MappedSlotEntry.java b/src/main/java/de/florianmichael/viafabricplus/screen/base/VFPListEntry.java similarity index 96% rename from src/main/java/de/florianmichael/viafabricplus/screen/MappedSlotEntry.java rename to src/main/java/de/florianmichael/viafabricplus/screen/base/VFPListEntry.java index d7ec8dd34..5ac66b689 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/MappedSlotEntry.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/base/VFPListEntry.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen; +package de.florianmichael.viafabricplus.screen.base; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; @@ -30,7 +30,7 @@ * This class is a wrapper for the {@link net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget.Entry} class which provides some global * functions and features used in all screens which are added by ViaFabricPlus */ -public abstract class MappedSlotEntry extends AlwaysSelectedEntryListWidget.Entry { +public abstract class VFPListEntry extends AlwaysSelectedEntryListWidget.Entry { protected static final int SCISSORS_OFFSET = 4; public static final int SLOT_MARGIN = 3; diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/VFPScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/base/VFPScreen.java similarity index 90% rename from src/main/java/de/florianmichael/viafabricplus/screen/VFPScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/base/VFPScreen.java index 57f7fbe79..01da17634 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/VFPScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/base/VFPScreen.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen; +package de.florianmichael.viafabricplus.screen.base; import com.mojang.blaze3d.systems.RenderSystem; import de.florianmichael.viafabricplus.ViaFabricPlus; @@ -178,12 +178,16 @@ public static void playClickSound() { * @param title The title of the error screen * @param throwable The throwable which should be thrown */ - public void showErrorScreen(final String title, final Throwable throwable) { - MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new NoticeScreen(() -> - RenderSystem.recordRenderCall(() -> MinecraftClient.getInstance().setScreen(this)), Text.of(title), - Text.translatable("misc.viafabricplus.error").append("\n" + throwable.getMessage()), - Text.translatable("misc.viafabricplus.cancel"), false))); + public static void showErrorScreen(final String title, final Throwable throwable, final Screen parent) { + final MinecraftClient client = MinecraftClient.getInstance(); - ViaFabricPlus.LOGGER.error(throwable); + client.execute(() -> client.setScreen(new NoticeScreen( + () -> client.setScreen(parent), + Text.of(title), + Text.translatable("base.viafabricplus.something_went_wrong").append("\n" + throwable.getMessage()), Text.translatable("base.viafabricplus.cancel"), + false) + )); + + ViaFabricPlus.global().getLogger().error("Something went wrong!", throwable); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/BetaCraftScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/BetaCraftScreen.java index 50ca0eb16..bbb150796 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/BetaCraftScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/BetaCraftScreen.java @@ -22,9 +22,9 @@ import de.florianmichael.classic4j.model.betacraft.BCServerInfoSpec; import de.florianmichael.classic4j.model.betacraft.BCServerList; import de.florianmichael.classic4j.model.betacraft.BCVersionCategory; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.meta.TitleRenderer; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.screen.settings.TitleRenderer; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -58,7 +58,7 @@ protected BetaCraftScreen() { protected void init() { this.addDrawableChild(new SlotList(this.client, width, height, 3 + 3 /* start offset */ + (textRenderer.fontHeight + 2) * 3 /* title is 2 */, height + 5, (textRenderer.fontHeight + 2) * 3)); - this.addDrawableChild(ButtonWidget.builder(Text.translatable("misc.viafabricplus.reset"), button -> { + this.addDrawableChild(ButtonWidget.builder(Text.translatable("base.viafabricplus.reset"), button -> { SERVER_LIST = null; client.setScreen(prevScreen); }).position(width - 98 - 5, 5).size(98, 20).build()); @@ -74,7 +74,7 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { this.renderTitle(context); } - public static class SlotList extends AlwaysSelectedEntryListWidget { + public static class SlotList extends AlwaysSelectedEntryListWidget { public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) { super(minecraftClient, width, height, top, bottom, entryHeight); @@ -101,7 +101,7 @@ protected int getScrollbarPositionX() { } } - public static class ServerSlot extends MappedSlotEntry { + public static class ServerSlot extends VFPListEntry { private final BCServerInfoSpec server; public ServerSlot(BCServerInfoSpec server) { @@ -128,7 +128,7 @@ public void mappedRender(DrawContext context, int index, int y, int x, int entry context.drawCenteredTextWithShadow(textRenderer, server.name() + Formatting.DARK_GRAY + " [" + server.connectVersion() + "]", entryWidth / 2, entryHeight / 2 - textRenderer.fontHeight / 2, -1); if (server.onlineMode()) { - context.drawTextWithShadow(textRenderer, Text.translatable("misc.viafabricplus.online").formatted(Formatting.GREEN), 1, 1, -1); + context.drawTextWithShadow(textRenderer, Text.translatable("base.viafabricplus.online_mode").formatted(Formatting.GREEN), 1, 1, -1); } final String playerText = server.playerCount() + "/" + server.playerLimit(); context.drawTextWithShadow(textRenderer, playerText, entryWidth - textRenderer.getWidth(playerText) - 4 /* magic value from line 152 */ - 1, 1, -1); diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeLoginScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeLoginScreen.java similarity index 80% rename from src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeLoginScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeLoginScreen.java index 48c335b3f..41d66b6c8 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeLoginScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeLoginScreen.java @@ -17,16 +17,17 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.classic4j.classicube; +package de.florianmichael.viafabricplus.screen.classic4j; import com.mojang.blaze3d.systems.RenderSystem; import de.florianmichael.classic4j.ClassiCubeHandler; import de.florianmichael.classic4j.api.LoginProcessHandler; import de.florianmichael.classic4j.model.classicube.account.CCAccount; +import de.florianmichael.viafabricplus.ViaFabricPlus; import de.florianmichael.viafabricplus.injection.access.ITextFieldWidget; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; -import de.florianmichael.viafabricplus.screen.common.ProtocolSelectionScreen; +import de.florianmichael.viafabricplus.save.impl.AccountsSave; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.screen.MainScreen; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ConfirmLinkScreen; import net.minecraft.client.gui.screen.Screen; @@ -72,14 +73,18 @@ protected void init() { ((ITextFieldWidget) nameField).viaFabricPlus$unlockForbiddenCharacters(); ((ITextFieldWidget) passwordField).viaFabricPlus$unlockForbiddenCharacters(); - nameField.setText(ClassiCubeAccountHandler.INSTANCE.getUsername()); - passwordField.setText(ClassiCubeAccountHandler.INSTANCE.getPassword()); + final AccountsSave accountsSave = ViaFabricPlus.global().getSaveManager().getAccountsSave(); + if (accountsSave.getClassicubeAccount() != null) { + nameField.setText(accountsSave.getClassicubeAccount().username()); + passwordField.setText(accountsSave.getClassicubeAccount().username()); + } this.addDrawableChild(ButtonWidget.builder(Text.literal("Login"), button -> { - ClassiCubeAccountHandler.INSTANCE.setAccount(new CCAccount(nameField.getText(), passwordField.getText())); + accountsSave.setClassicubeAccount(new CCAccount(nameField.getText(), passwordField.getText())); this.setupSubtitle(Text.translatable("classicube.viafabricplus.loading")); - ClassiCubeHandler.requestAuthentication(ClassiCubeAccountHandler.INSTANCE.getAccount(), null, new LoginProcessHandler() { + ClassiCubeHandler.requestAuthentication(accountsSave.getClassicubeAccount(), null, new LoginProcessHandler() { + @Override public void handleMfa(CCAccount account) { ClassiCubeMFAScreen.INSTANCE.open(prevScreen); @@ -92,7 +97,7 @@ public void handleSuccessfulLogin(CCAccount account) { @Override public void handleException(Throwable throwable) { - throwable.printStackTrace(); + ViaFabricPlus.global().getLogger().error("Error while logging in to ClassiCube: " + throwable.getMessage()); setupSubtitle(Text.literal(throwable.getMessage())); } }); @@ -101,18 +106,14 @@ public void handleException(Throwable throwable) { @Override public void close() { - ClassiCubeAccountHandler.INSTANCE.setAccount(null); - ProtocolSelectionScreen.INSTANCE.open(prevScreen); + MainScreen.INSTANCE.open(prevScreen); } @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - this.renderBackground(context, mouseX, mouseY, delta); - - context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 70, 16777215); - super.render(context, mouseX, mouseY, delta); + context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 70, 16777215); this.renderSubtitle(context); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeMFAScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeMFAScreen.java similarity index 83% rename from src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeMFAScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeMFAScreen.java index 8cc122f04..e8aaa05b1 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeMFAScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeMFAScreen.java @@ -17,15 +17,15 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.classic4j.classicube; +package de.florianmichael.viafabricplus.screen.classic4j; import com.mojang.blaze3d.systems.RenderSystem; import de.florianmichael.classic4j.ClassiCubeHandler; import de.florianmichael.classic4j.api.LoginProcessHandler; import de.florianmichael.classic4j.model.classicube.account.CCAccount; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; -import de.florianmichael.viafabricplus.screen.common.ProtocolSelectionScreen; +import de.florianmichael.viafabricplus.ViaFabricPlus; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.screen.MainScreen; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.Screen; import net.minecraft.client.gui.widget.ButtonWidget; @@ -41,7 +41,7 @@ public ClassiCubeMFAScreen() { @Override public void open(Screen prevScreen) { - this.setupSubtitle(Text.translatable("classicube.viafabricplus.error.logincode")); + this.setupSubtitle(Text.translatable("classic4j_library.viafabricplus.error.logincode")); super.open(prevScreen); } @@ -57,7 +57,7 @@ protected void init() { this.addDrawableChild(ButtonWidget.builder(Text.literal("Login"), button -> { this.setupSubtitle(Text.translatable("classicube.viafabricplus.loading")); - final CCAccount account = ClassiCubeAccountHandler.INSTANCE.getAccount(); + final CCAccount account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount(); ClassiCubeHandler.requestAuthentication(account, mfaField.getText(), new LoginProcessHandler() { @Override @@ -80,17 +80,15 @@ public void handleException(Throwable throwable) { @Override public void close() { - ClassiCubeAccountHandler.INSTANCE.setAccount(null); - ProtocolSelectionScreen.INSTANCE.open(prevScreen); + ViaFabricPlus.global().getSaveManager().getAccountsSave().setClassicubeAccount(null); + MainScreen.INSTANCE.open(prevScreen); } @Override public void render(DrawContext context, int mouseX, int mouseY, float delta) { - this.renderBackground(context, mouseX, mouseY, delta); - context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 70, 16777215); + super.render(context, mouseX, mouseY, delta); + context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 70, 16777215); this.renderSubtitle(context); - - super.render(context, mouseX, mouseY, delta); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeServerListScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeServerListScreen.java similarity index 84% rename from src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeServerListScreen.java rename to src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeServerListScreen.java index c7d045544..f0ab0dd68 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/classicube/ClassiCubeServerListScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/classic4j/ClassiCubeServerListScreen.java @@ -17,18 +17,18 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.classic4j.classicube; +package de.florianmichael.viafabricplus.screen.classic4j; import com.mojang.blaze3d.systems.RenderSystem; import de.florianmichael.classic4j.ClassiCubeHandler; import de.florianmichael.classic4j.api.LoginProcessHandler; import de.florianmichael.classic4j.model.classicube.server.CCServerInfo; -import de.florianmichael.viafabricplus.fixes.account.ClassiCubeAccountHandler; +import de.florianmichael.viafabricplus.ViaFabricPlus; import de.florianmichael.viafabricplus.injection.access.IServerInfo; import de.florianmichael.viafabricplus.protocolhack.provider.vialegacy.ViaFabricPlusClassicMPPassProvider; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.screen.common.ProtocolSelectionScreen; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.screen.MainScreen; import de.florianmichael.viafabricplus.settings.impl.AuthenticationSettings; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; @@ -53,8 +53,10 @@ public class ClassiCubeServerListScreen extends VFPScreen { private static final String CLASSICUBE_SERVER_LIST_URL = "https://www.classicube.net/server/list/"; public static void open(final Screen prevScreen, final LoginProcessHandler loginProcessHandler) { - ClassiCubeHandler.requestServerList(ClassiCubeAccountHandler.INSTANCE.getAccount(), ccServerList -> { - ClassiCubeServerListScreen.SERVER_LIST.addAll(ccServerList.servers()); + final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount(); + + ClassiCubeHandler.requestServerList(account, serverList -> { + ClassiCubeServerListScreen.SERVER_LIST.addAll(serverList.servers()); RenderSystem.recordRenderCall(() -> ClassiCubeServerListScreen.INSTANCE.open(prevScreen)); }, loginProcessHandler::handleException); } @@ -62,7 +64,7 @@ public static void open(final Screen prevScreen, final LoginProcessHandler login public ClassiCubeServerListScreen() { super("ClassiCube ServerList", true); - final var account = ClassiCubeAccountHandler.INSTANCE.getAccount(); + final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount(); if (account != null) { this.setupUrlSubtitle(CLASSICUBE_SERVER_LIST_URL); } @@ -72,9 +74,9 @@ public ClassiCubeServerListScreen() { protected void init() { this.addDrawableChild(new SlotList(this.client, width, height, 3 + 3 /* start offset */ + (textRenderer.fontHeight + 2) * 3 /* title is 2 */, height + 5, (textRenderer.fontHeight + 4) * 3)); - this.addDrawableChild(ButtonWidget.builder(Text.translatable("misc.viafabricplus.logout"), button -> { + this.addDrawableChild(ButtonWidget.builder(Text.translatable("base.viafabricplus.logout"), button -> { close(); - ClassiCubeAccountHandler.INSTANCE.setAccount(null); + ViaFabricPlus.global().getSaveManager().getAccountsSave().setClassicubeAccount(null); SERVER_LIST.clear(); }).position(width - 98 - 5, 5).size(98, 20).build()); @@ -83,7 +85,7 @@ protected void init() { @Override public void close() { - ProtocolSelectionScreen.INSTANCE.open(prevScreen); + MainScreen.INSTANCE.open(prevScreen); } @Override @@ -92,14 +94,14 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { super.render(context, mouseX, mouseY, delta); this.renderTitle(context); - final var account = ClassiCubeAccountHandler.INSTANCE.getAccount(); + final var account = ViaFabricPlus.global().getSaveManager().getAccountsSave().getClassicubeAccount(); if (account != null) { context.drawTextWithShadow(textRenderer, Text.of("ClassiCube Profile:"), 32, 6, -1); context.drawTextWithShadow(textRenderer, Text.of(account.username()), 32, 16, -1); } } - public static class SlotList extends AlwaysSelectedEntryListWidget { + public static class SlotList extends AlwaysSelectedEntryListWidget { public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) { super(minecraftClient, width, height, top, bottom, entryHeight); @@ -119,7 +121,7 @@ protected int getScrollbarPositionX() { } - public static class ServerSlot extends MappedSlotEntry { + public static class ServerSlot extends VFPListEntry { private final CCServerInfo classiCubeServerInfo; public ServerSlot(CCServerInfo classiCubeServerInfo) { @@ -137,7 +139,7 @@ public void mappedMouseClicked(double mouseX, double mouseY, int button) { final ServerInfo entry = new ServerInfo(classiCubeServerInfo.name(), serverAddress.getAddress(), ServerInfo.ServerType.OTHER); ViaFabricPlusClassicMPPassProvider.classiCubeMPPass = classiCubeServerInfo.mpPass(); - if (AuthenticationSettings.INSTANCE.forceCPEIfUsingClassiCube.getValue()) { + if (AuthenticationSettings.INSTANCE.automaticallySelectCPEInClassiCubeServerList.getValue()) { ((IServerInfo) entry).viaFabricPlus$forceVersion(VersionEnum.c0_30cpe); } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/BooleanSettingRenderer.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/BooleanSettingRenderer.java similarity index 87% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/BooleanSettingRenderer.java rename to src/main/java/de/florianmichael/viafabricplus/screen/settings/BooleanSettingRenderer.java index 8c3393c28..28926df45 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/BooleanSettingRenderer.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/BooleanSettingRenderer.java @@ -17,10 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings.settingrenderer; +package de.florianmichael.viafabricplus.screen.settings; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.settings.type.BooleanSetting; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.settings.base.BooleanSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -29,7 +29,7 @@ import java.awt.*; -public class BooleanSettingRenderer extends MappedSlotEntry { +public class BooleanSettingRenderer extends VFPListEntry { private final BooleanSetting value; public BooleanSettingRenderer(BooleanSetting value) { @@ -50,7 +50,7 @@ public void mappedMouseClicked(double mouseX, double mouseY, int button) { public void mappedRender(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; - final Text text = this.value.getValue() ? Text.translatable("misc.viafabricplus.on") : Text.translatable("misc.viafabricplus.off"); + final Text text = this.value.getValue() ? Text.translatable("base.viafabricplus.on") : Text.translatable("base.viafabricplus.off"); final var offset = textRenderer.getWidth(text) + 6; renderScrollableText(context, this.value.getName().formatted(Formatting.GRAY), x, y, entryWidth, entryHeight, offset); diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ButtonSettingRenderer.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ButtonSettingRenderer.java similarity index 87% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ButtonSettingRenderer.java rename to src/main/java/de/florianmichael/viafabricplus/screen/settings/ButtonSettingRenderer.java index b929f1930..afd015fcf 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ButtonSettingRenderer.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ButtonSettingRenderer.java @@ -17,16 +17,16 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings.settingrenderer; +package de.florianmichael.viafabricplus.screen.settings; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.settings.type.ButtonSetting; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.settings.base.ButtonSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; import net.minecraft.text.Text; -public class ButtonSettingRenderer extends MappedSlotEntry { +public class ButtonSettingRenderer extends VFPListEntry { private final ButtonSetting value; public ButtonSettingRenderer(ButtonSetting value) { diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ModeSettingRenderer.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ModeSettingRenderer.java similarity index 89% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ModeSettingRenderer.java rename to src/main/java/de/florianmichael/viafabricplus/screen/settings/ModeSettingRenderer.java index d43f9a62f..1d7fb5927 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ModeSettingRenderer.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ModeSettingRenderer.java @@ -17,10 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings.settingrenderer; +package de.florianmichael.viafabricplus.screen.settings; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.settings.type.ModeSetting; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.settings.base.ModeSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -29,7 +29,7 @@ import java.util.Arrays; -public class ModeSettingRenderer extends MappedSlotEntry { +public class ModeSettingRenderer extends VFPListEntry { private final ModeSetting value; public ModeSettingRenderer(ModeSetting value) { diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ProtocolSyncBooleanSettingRenderer.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ProtocolSyncBooleanSettingRenderer.java similarity index 82% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ProtocolSyncBooleanSettingRenderer.java rename to src/main/java/de/florianmichael/viafabricplus/screen/settings/ProtocolSyncBooleanSettingRenderer.java index 614eb9060..0c29a76bb 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/ProtocolSyncBooleanSettingRenderer.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/ProtocolSyncBooleanSettingRenderer.java @@ -17,10 +17,10 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings.settingrenderer; +package de.florianmichael.viafabricplus.screen.settings; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.settings.type.ProtocolSyncBooleanSetting; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.settings.base.VersionedBooleanSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -29,10 +29,10 @@ import java.awt.*; -public class ProtocolSyncBooleanSettingRenderer extends MappedSlotEntry { - private final ProtocolSyncBooleanSetting value; +public class ProtocolSyncBooleanSettingRenderer extends VFPListEntry { + private final VersionedBooleanSetting value; - public ProtocolSyncBooleanSettingRenderer(ProtocolSyncBooleanSetting value) { + public ProtocolSyncBooleanSettingRenderer(VersionedBooleanSetting value) { this.value = value; } @@ -51,7 +51,7 @@ public void mappedMouseClicked(double mouseX, double mouseY, int button) { public void mappedRender(DrawContext context, int index, int y, int x, int entryWidth, int entryHeight, int mouseX, int mouseY, boolean hovered, float tickDelta) { final TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; - final Text text = Text.translatable("misc.viafabricplus." + (this.value.isAuto() ? "auto" : this.value.isEnabled() ? "on" : "off")); + final Text text = Text.translatable("base.viafabricplus." + (this.value.isAuto() ? "auto" : this.value.isEnabled() ? "on" : "off")); Color color = this.value.isAuto() ? Color.ORANGE : this.value.isEnabled() ? Color.GREEN : Color.RED; final var offset = textRenderer.getWidth(text) + 6; diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/SettingsScreen.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/SettingsScreen.java index 07cb4ebaa..cb7a958f6 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/SettingsScreen.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/SettingsScreen.java @@ -20,11 +20,10 @@ package de.florianmichael.viafabricplus.screen.settings; import de.florianmichael.viafabricplus.ViaFabricPlus; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.VFPScreen; -import de.florianmichael.viafabricplus.settings.AbstractSetting; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.meta.TitleRenderer; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.settings.base.AbstractSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.widget.AlwaysSelectedEntryListWidget; @@ -52,12 +51,12 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { this.renderTitle(context); } - public static class SlotList extends AlwaysSelectedEntryListWidget { + public static class SlotList extends AlwaysSelectedEntryListWidget { public SlotList(MinecraftClient minecraftClient, int width, int height, int top, int bottom, int entryHeight) { super(minecraftClient, width, height, top, bottom, entryHeight); - for (SettingGroup group : ViaFabricPlus.INSTANCE.getSettingsSystem().getGroups()) { + for (SettingGroup group : ViaFabricPlus.global().getSettingsManager().getGroups()) { this.addEntry(new TitleRenderer(group.getName())); for (AbstractSetting setting : group.getSettings()) { diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/meta/TitleRenderer.java b/src/main/java/de/florianmichael/viafabricplus/screen/settings/TitleRenderer.java similarity index 91% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/meta/TitleRenderer.java rename to src/main/java/de/florianmichael/viafabricplus/screen/settings/TitleRenderer.java index f2d626bc2..9ea78a75d 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/settingrenderer/meta/TitleRenderer.java +++ b/src/main/java/de/florianmichael/viafabricplus/screen/settings/TitleRenderer.java @@ -17,9 +17,9 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings.settingrenderer.meta; +package de.florianmichael.viafabricplus.screen.settings; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; import net.minecraft.client.MinecraftClient; import net.minecraft.client.font.TextRenderer; import net.minecraft.client.gui.DrawContext; @@ -27,7 +27,7 @@ import net.minecraft.text.Text; import net.minecraft.util.Formatting; -public class TitleRenderer extends MappedSlotEntry { +public class TitleRenderer extends VFPListEntry { private final Text name; public TitleRenderer(Text name) { diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/SettingsManager.java b/src/main/java/de/florianmichael/viafabricplus/settings/SettingsManager.java new file mode 100644 index 000000000..4a45674d8 --- /dev/null +++ b/src/main/java/de/florianmichael/viafabricplus/settings/SettingsManager.java @@ -0,0 +1,54 @@ +/* + * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus + * Copyright (C) 2021-2023 FlorianMichael/EnZaXD + * Copyright (C) 2023 RK_01/RaphiMC and contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package de.florianmichael.viafabricplus.settings; + +import de.florianmichael.viafabricplus.event.RegisterSettingsCallback; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.impl.*; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class SettingsManager { + private final List groups = new ArrayList<>(); + + public SettingsManager() { + RegisterSettingsCallback.EVENT.invoker().onInitializeSettings(RegisterSettingsCallback.State.PRE); + + addGroup( + GeneralSettings.global(), + BedrockSettings.INSTANCE, + AuthenticationSettings.INSTANCE, + VisualSettings.INSTANCE, + DebugSettings.INSTANCE + ); + + RegisterSettingsCallback.EVENT.invoker().onInitializeSettings(RegisterSettingsCallback.State.POST); + } + + public void addGroup(final SettingGroup... groups) { + Collections.addAll(this.groups, groups); + } + + public List getGroups() { + return groups; + } +} diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/SettingsSystem.java b/src/main/java/de/florianmichael/viafabricplus/settings/SettingsSystem.java deleted file mode 100644 index 1ac472968..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/settings/SettingsSystem.java +++ /dev/null @@ -1,95 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.settings; - -import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.event.InitializeSettingsCallback; -import de.florianmichael.viafabricplus.settings.impl.*; -import de.florianmichael.viafabricplus.util.FileSaver; -import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; -import net.raphimc.vialoader.util.VersionEnum; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public class SettingsSystem extends FileSaver { - private final List groups = new ArrayList<>(); - - public SettingsSystem() { - super("settings.json"); - } - - @Override - public void init() { - addGroup( - GeneralSettings.INSTANCE, - ExperimentalSettings.INSTANCE, - BedrockSettings.INSTANCE, - AuthenticationSettings.INSTANCE, - VisualSettings.INSTANCE, - DebugSettings.INSTANCE - ); - - InitializeSettingsCallback.EVENT.invoker().onInitializeSettings(); - - super.init(); - } - - @Override - public void write(JsonObject object) { - object.addProperty("protocol", ProtocolHack.getTargetVersion().getVersion()); - for (SettingGroup group : groups) { - for (AbstractSetting setting : group.getSettings()) { - setting.write(object); - } - } - } - - @Override - public void read(JsonObject object) { - if (object.has("protocol")) { - final VersionEnum protocolVersion = VersionEnum.fromProtocolId(object.get("protocol").getAsInt()); - - if (protocolVersion != null) ProtocolHack.setTargetVersion(protocolVersion); - } - for (SettingGroup group : groups) { - for (AbstractSetting setting : group.getSettings()) { - - // Temp config converter - if (setting.getName().equals(GeneralSettings.INSTANCE.removeNotAvailableItemsFromCreativeTab.getName())) { - if (object.get(setting.getTranslationKey()).getAsJsonPrimitive().isBoolean()) { - continue; - } - } - - setting.read(object); - } - } - } - - public void addGroup(final SettingGroup... groups) { - Collections.addAll(this.groups, groups); - } - - public List getGroups() { - return groups; - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/AbstractSetting.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/AbstractSetting.java similarity index 75% rename from src/main/java/de/florianmichael/viafabricplus/settings/AbstractSetting.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/AbstractSetting.java index f9fe56deb..5e61a3b45 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/AbstractSetting.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/AbstractSetting.java @@ -17,10 +17,11 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings; +package de.florianmichael.viafabricplus.settings.base; import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.util.ChatUtil; import net.minecraft.text.MutableText; import net.minecraft.text.TranslatableTextContent; @@ -47,9 +48,9 @@ public AbstractSetting(final SettingGroup parent, final MutableText name, final /** * This method is used to create a renderer for the setting. - * @return The renderer, see {@link MappedSlotEntry} for more details. + * @return The renderer, see {@link VFPListEntry} for more details. */ - public abstract MappedSlotEntry makeSettingRenderer(); + public abstract VFPListEntry makeSettingRenderer(); public abstract void write(final JsonObject object); public abstract void read(final JsonObject object); @@ -62,7 +63,17 @@ public MutableText getName() { * @return The translation key of the name. */ public String getTranslationKey() { - return ((TranslatableTextContent) name.getContent()).getKey(); + return mapTranslationKey(ChatUtil.uncoverTranslationKey(name)); + } + + /** + * Cuts the name of a translation from its key / path. + * + * @param input The translation key. + * @return The name of the translation. (E. g: "viafabricplus.settings.base" -> "base") + */ + public static String mapTranslationKey(final String input) { + return input.split("viafabricplus.")[1]; } public T getDefaultValue() { @@ -76,4 +87,5 @@ public T getValue() { public void setValue(T value) { this.value = value; } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/type/BooleanSetting.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/BooleanSetting.java similarity index 76% rename from src/main/java/de/florianmichael/viafabricplus/settings/type/BooleanSetting.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/BooleanSetting.java index b4fbf3147..867c05198 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/type/BooleanSetting.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/BooleanSetting.java @@ -17,13 +17,11 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings.type; +package de.florianmichael.viafabricplus.settings.base; import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.BooleanSettingRenderer; -import de.florianmichael.viafabricplus.settings.AbstractSetting; -import de.florianmichael.viafabricplus.settings.SettingGroup; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.settings.BooleanSettingRenderer; import net.minecraft.text.MutableText; public class BooleanSetting extends AbstractSetting { @@ -33,7 +31,7 @@ public BooleanSetting(SettingGroup parent, MutableText name, Boolean defaultValu } @Override - public MappedSlotEntry makeSettingRenderer() { + public VFPListEntry makeSettingRenderer() { return new BooleanSettingRenderer(this); } @@ -44,8 +42,7 @@ public void write(JsonObject object) { @Override public void read(JsonObject object) { - if (!object.has(getTranslationKey())) return; - setValue(object.get(getTranslationKey()).getAsBoolean()); } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/type/ButtonSetting.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/ButtonSetting.java similarity index 78% rename from src/main/java/de/florianmichael/viafabricplus/settings/type/ButtonSetting.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/ButtonSetting.java index e7b559fc4..d4517ecfe 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/type/ButtonSetting.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/ButtonSetting.java @@ -17,13 +17,11 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings.type; +package de.florianmichael.viafabricplus.settings.base; import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.ButtonSettingRenderer; -import de.florianmichael.viafabricplus.settings.AbstractSetting; -import de.florianmichael.viafabricplus.settings.SettingGroup; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.settings.ButtonSettingRenderer; import net.minecraft.text.MutableText; public class ButtonSetting extends AbstractSetting { @@ -33,7 +31,7 @@ public ButtonSetting(SettingGroup parent, MutableText name, Runnable onClick) { } @Override - public MappedSlotEntry makeSettingRenderer() { + public VFPListEntry makeSettingRenderer() { return new ButtonSettingRenderer(this); } @@ -46,4 +44,5 @@ public void write(JsonObject object) {} @Override public void read(JsonObject object) {} + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/type/ModeSetting.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/ModeSetting.java similarity index 72% rename from src/main/java/de/florianmichael/viafabricplus/settings/type/ModeSetting.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/ModeSetting.java index 45d3f4d74..de92b7984 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/type/ModeSetting.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/ModeSetting.java @@ -17,13 +17,12 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings.type; +package de.florianmichael.viafabricplus.settings.base; import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.ModeSettingRenderer; -import de.florianmichael.viafabricplus.settings.AbstractSetting; -import de.florianmichael.viafabricplus.settings.SettingGroup; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.settings.ModeSettingRenderer; +import de.florianmichael.viafabricplus.util.ChatUtil; import net.minecraft.text.MutableText; import java.util.Arrays; @@ -41,20 +40,24 @@ public ModeSetting(SettingGroup parent, MutableText name, int defaultOption, Mut } @Override - public MappedSlotEntry makeSettingRenderer() { + public VFPListEntry makeSettingRenderer() { return new ModeSettingRenderer(this); } @Override public void write(JsonObject object) { - object.addProperty(getTranslationKey(), Arrays.stream(options).toList().indexOf(getValue())); + object.addProperty(getTranslationKey(), mapTranslationKey(ChatUtil.uncoverTranslationKey(getValue()))); } @Override public void read(JsonObject object) { - if (!object.has(getTranslationKey())) return; - - setValue(object.get(getTranslationKey()).getAsInt()); + final String selected = object.get(getTranslationKey()).getAsString(); + for (MutableText option : options) { + if (mapTranslationKey(ChatUtil.uncoverTranslationKey(option)).equals(selected)) { + setValue(option); + break; + } + } } public void setValue(int index) { @@ -68,4 +71,5 @@ public int getIndex() { public MutableText[] getOptions() { return options; } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/SettingGroup.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/SettingGroup.java similarity index 93% rename from src/main/java/de/florianmichael/viafabricplus/settings/SettingGroup.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/SettingGroup.java index 4273c3e86..f7a59bcc3 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/SettingGroup.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/SettingGroup.java @@ -17,12 +17,11 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings; +package de.florianmichael.viafabricplus.settings.base; import java.util.ArrayList; import java.util.List; -import de.florianmichael.viafabricplus.settings.AbstractSetting; import net.minecraft.text.Text; /** @@ -50,4 +49,5 @@ public List> getSettings() { public Text getName() { return name; } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/type/ProtocolSyncBooleanSetting.java b/src/main/java/de/florianmichael/viafabricplus/settings/base/VersionedBooleanSetting.java similarity index 57% rename from src/main/java/de/florianmichael/viafabricplus/settings/type/ProtocolSyncBooleanSetting.java rename to src/main/java/de/florianmichael/viafabricplus/settings/base/VersionedBooleanSetting.java index 4da451be7..7c0f3e954 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/type/ProtocolSyncBooleanSetting.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/base/VersionedBooleanSetting.java @@ -17,53 +17,47 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.settings.type; +package de.florianmichael.viafabricplus.settings.base; import com.google.gson.JsonObject; -import de.florianmichael.viafabricplus.settings.AbstractSetting; -import de.florianmichael.viafabricplus.screen.MappedSlotEntry; -import de.florianmichael.viafabricplus.screen.settings.settingrenderer.ProtocolSyncBooleanSettingRenderer; -import de.florianmichael.viafabricplus.settings.SettingGroup; +import de.florianmichael.viafabricplus.screen.base.VFPListEntry; +import de.florianmichael.viafabricplus.screen.settings.ProtocolSyncBooleanSettingRenderer; import de.florianmichael.viafabricplus.protocolhack.ProtocolHack; import net.minecraft.text.MutableText; import net.raphimc.vialoader.util.VersionRange; -public class ProtocolSyncBooleanSetting extends AbstractSetting { - public static final int AUTO = 2; - public static final int ENABLED = 0; +public class VersionedBooleanSetting extends AbstractSetting { + private static final int AUTO_INDEX = 2; + private static final int DISABLED_INDEX = 1; + private static final int ENABLED_INDEX = 0; private final VersionRange protocolRange; - public ProtocolSyncBooleanSetting(SettingGroup parent, MutableText name, VersionRange protocolRange) { - super(parent, name, 2); + public VersionedBooleanSetting(SettingGroup parent, MutableText name, VersionRange protocolRange) { + super(parent, name, AUTO_INDEX); this.protocolRange = protocolRange; } @Override - public MappedSlotEntry makeSettingRenderer() { + public VFPListEntry makeSettingRenderer() { return new ProtocolSyncBooleanSettingRenderer(this); } @Override public void write(JsonObject object) { - object.addProperty(getTranslationKey(), getValue()); + object.addProperty(getTranslationKey(), getValue() == AUTO_INDEX ? "auto" : getValue() == ENABLED_INDEX ? "enabled" : "disabled"); } @Override public void read(JsonObject object) { - if (!object.has(getTranslationKey())) return; + final String selected = object.get(getTranslationKey()).getAsString(); - if (object.get(getTranslationKey()).isJsonPrimitive() && object.get(getTranslationKey()).getAsJsonPrimitive().isBoolean()) { // Migrate configs, will be removed in the future - setValue(AUTO); - return; - } - - setValue(object.get(getTranslationKey()).getAsInt()); + setValue(selected.equals("auto") ? AUTO_INDEX : selected.equals("enabled") ? ENABLED_INDEX : DISABLED_INDEX); } public boolean isAuto() { - return getValue() == AUTO; + return getValue() == AUTO_INDEX; } public boolean isEnabled() { @@ -71,10 +65,11 @@ public boolean isEnabled() { return protocolRange.contains(ProtocolHack.getTargetVersion()); } - return getValue() == ENABLED; + return getValue() == ENABLED_INDEX; } public VersionRange getProtocolRange() { return protocolRange; } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/AuthenticationSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/AuthenticationSettings.java index 418fd4ea4..aa391b572 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/AuthenticationSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/AuthenticationSettings.java @@ -19,22 +19,19 @@ package de.florianmichael.viafabricplus.settings.impl; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.BooleanSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.base.BooleanSetting; import net.minecraft.text.Text; public class AuthenticationSettings extends SettingGroup { public static final AuthenticationSettings INSTANCE = new AuthenticationSettings(); - public final BooleanSetting useBetaCraftAuthentication = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.betacraft"), true); - public final BooleanSetting allowViaLegacyToCallJoinServerToVerifySession = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.verify"), true); - public final BooleanSetting disconnectIfJoinServerCallFails = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.fail"), true); - public final BooleanSetting forceCPEIfUsingClassiCube = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.classicube"), true); - public final BooleanSetting spoofUserNameIfUsingClassiCube = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.spoof"), true); - public final BooleanSetting allowViaLegacyToLoadSkinsInLegacyVersions = new BooleanSetting(this, Text.translatable("authentication.viafabricplus.skin"), true); - + public final BooleanSetting useBetaCraftAuthentication = new BooleanSetting(this, Text.translatable("authentication_settings.viafabricplus.use_beta_craft_authentication"), true); + public final BooleanSetting verifySessionForOnlineModeServers = new BooleanSetting(this, Text.translatable("authentication_settings.viafabricplus.verify_session_for_online_mode"), true); + public final BooleanSetting automaticallySelectCPEInClassiCubeServerList = new BooleanSetting(this, Text.translatable("authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube"), true); + public final BooleanSetting setSessionNameToClassiCubeNameInServerList = new BooleanSetting(this, Text.translatable("authentication_settings.viafabricplus.set_session_name_to_classicube_name"), true); public AuthenticationSettings() { - super(Text.translatable("settings.viafabricplus.authentication")); + super(Text.translatable("setting_group_name.viafabricplus.authentication")); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java index 4a8c5c403..c8949b200 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/BedrockSettings.java @@ -20,13 +20,13 @@ package de.florianmichael.viafabricplus.settings.impl; import com.mojang.blaze3d.systems.RenderSystem; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.BooleanSetting; -import de.florianmichael.viafabricplus.settings.type.ButtonSetting; -import de.florianmichael.viafabricplus.fixes.account.BedrockAccountHandler; +import de.florianmichael.viafabricplus.ViaFabricPlus; +import de.florianmichael.viafabricplus.screen.base.VFPScreen; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.base.BooleanSetting; +import de.florianmichael.viafabricplus.settings.base.ButtonSetting; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.screen.ConfirmScreen; -import net.minecraft.client.gui.screen.NoticeScreen; import net.minecraft.text.MutableText; import net.minecraft.text.Text; import net.minecraft.util.Util; @@ -42,7 +42,25 @@ public class BedrockSettings extends SettingGroup { public static final BedrockSettings INSTANCE = new BedrockSettings(); - public final ButtonSetting BEDROCK_ACCOUNT = new ButtonSetting(this, Text.translatable("bedrock.viafabricplus.authentication"), () -> CompletableFuture.runAsync(() -> { + public final ButtonSetting _1 = new ButtonSetting(this, Text.translatable("bedrock_settings.viafabricplus.click_to_set_bedrock_account"), () -> CompletableFuture.runAsync(this::openBedrockAccountLogin)) { + + @Override + public MutableText displayValue() { + final var bedrockSession = ViaFabricPlus.global().getSaveManager().getAccountsSave().getBedrockAccount(); + if (bedrockSession == null) { + return super.displayValue(); + } + + return Text.literal("Bedrock account: " + bedrockSession.getMcChain().getDisplayName()); + } + }; + public final BooleanSetting openPromptGUIToConfirmTransfer = new BooleanSetting(this, Text.translatable("bedrock_settings.viafabricplus.confirm_transfer_server_prompt"), true); + + public BedrockSettings() { + super(Text.translatable("setting_group_name.viafabricplus.bedrock")); + } + + private void openBedrockAccountLogin() { final var prevScreen = MinecraftClient.getInstance().currentScreen; try { try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) { @@ -54,33 +72,21 @@ public class BedrockSettings extends SettingGroup { MinecraftClient.getInstance().setScreen(prevScreen); Thread.currentThread().interrupt(); } - }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrocklogin.viafabricplus.text", msaDeviceCode.getUserCode()), Text.translatable("misc.viafabricplus.copy"), Text.translatable("misc.viafabricplus.cancel")))); + }, Text.literal("Microsoft Bedrock login"), Text.translatable("bedrock.viafabricplus.login", msaDeviceCode.getUserCode()), Text.translatable("base.viafabricplus.copy_code"), Text.translatable("base.viafabricplus.cancel")))); try { Util.getOperatingSystem().open(new URI(msaDeviceCode.getVerificationUri())); } catch (URISyntaxException e) { - e.printStackTrace(); - MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new NoticeScreen(() -> Thread.currentThread().interrupt(), Text.literal("Microsoft Bedrock login"), Text.translatable("bedrocklogin.viafabricplus.error"), Text.translatable("misc.viafabricplus.cancel"), false))); + Thread.currentThread().interrupt(); + VFPScreen.showErrorScreen("Microsoft Bedrock Login", e, prevScreen); } })); - BedrockAccountHandler.INSTANCE.setBedrockSession(bedrockSession); + ViaFabricPlus.global().getSaveManager().getAccountsSave().setBedrockAccount(bedrockSession); } RenderSystem.recordRenderCall(() -> MinecraftClient.getInstance().setScreen(prevScreen)); } catch (Throwable e) { - e.printStackTrace(); - MinecraftClient.getInstance().execute(() -> MinecraftClient.getInstance().setScreen(new NoticeScreen(() -> Thread.currentThread().interrupt(), Text.literal("Microsoft Bedrock login"), Text.translatable("bedrocklogin.viafabricplus.error"), Text.translatable("misc.viafabricplus.cancel"), false))); - } - })) { - @Override - public MutableText displayValue() { - if (BedrockAccountHandler.INSTANCE.getBedrockSession() != null) { - return Text.literal("Bedrock account: " + BedrockAccountHandler.INSTANCE.getBedrockSession().getMcChain().getDisplayName()); - } - return super.displayValue(); + Thread.currentThread().interrupt(); + VFPScreen.showErrorScreen("Microsoft Bedrock Login", e, prevScreen); } - }; - public final BooleanSetting confirmServerTransferInBedrockEdition = new BooleanSetting(this, Text.translatable("bedrock.viafabricplus.confirmtransfer"), true); - - public BedrockSettings() { - super(Text.translatable("settings.viafabricplus.bedrock")); } + } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/DebugSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/DebugSettings.java index 43f7b6bea..4ea96a863 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/DebugSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/DebugSettings.java @@ -20,8 +20,8 @@ package de.florianmichael.viafabricplus.settings.impl; import net.raphimc.vialoader.util.VersionEnum; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.ProtocolSyncBooleanSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.base.VersionedBooleanSetting; import net.minecraft.text.Text; import net.raphimc.vialoader.util.VersionRange; @@ -29,31 +29,31 @@ public class DebugSettings extends SettingGroup { public static final DebugSettings INSTANCE = new DebugSettings(); // 1.19 -> 1.18.2 - public final ProtocolSyncBooleanSetting disableSequencing = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.sequence"), VersionRange.andOlder(VersionEnum.r1_18_2)); + public final VersionedBooleanSetting disableSequencing = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.disable_sequencing"), VersionRange.andOlder(VersionEnum.r1_18_2)); // 1.14 -> 1.13.2 - public final ProtocolSyncBooleanSetting smoothOutMerchantScreens = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.merchant"), VersionRange.andOlder(VersionEnum.r1_13_2)); + public final VersionedBooleanSetting smoothOutMerchantScreens = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.smooth_out_merchant_screens"), VersionRange.andOlder(VersionEnum.r1_13_2)); // 1.13 -> 1.12.2 - public final ProtocolSyncBooleanSetting executeInputsInSync = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.postfix"), VersionRange.andOlder(VersionEnum.r1_12_2)); - public final ProtocolSyncBooleanSetting sneakInstant = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.sneakinstant"), VersionRange.of(VersionEnum.r1_8, VersionEnum.r1_12_2)); + public final VersionedBooleanSetting executeInputsInSync = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.execute_inputs_in_sync"), VersionRange.andOlder(VersionEnum.r1_12_2)); + public final VersionedBooleanSetting sneakInstant = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.sneak_instant"), VersionRange.of(VersionEnum.r1_8, VersionEnum.r1_12_2)); // 1.12 -> 1.11.1-1.11.2 - public final ProtocolSyncBooleanSetting sendOpenInventoryPacket = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.inventory"), VersionRange.andOlder(VersionEnum.r1_11_1to1_11_2)); + public final VersionedBooleanSetting sendOpenInventoryPacket = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.send_open_inventory_packet"), VersionRange.andOlder(VersionEnum.r1_11_1to1_11_2)); // 1.9 -> 1.8.x - public final ProtocolSyncBooleanSetting removeCooldowns = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.cooldown"), VersionRange.andOlder(VersionEnum.r1_8)); - public final ProtocolSyncBooleanSetting sendIdlePacket = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.idle"), VersionRange.of(VersionEnum.r1_4_2, VersionEnum.r1_8).add(VersionRange.andOlder(VersionEnum.r1_2_4tor1_2_5))); - public final ProtocolSyncBooleanSetting replaceAttributeModifiers = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.attribute"), VersionRange.andOlder(VersionEnum.r1_8)); + public final VersionedBooleanSetting removeCooldowns = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.remove_cooldowns"), VersionRange.andOlder(VersionEnum.r1_8)); + public final VersionedBooleanSetting sendIdlePacket = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.send_idle_packet"), VersionRange.of(VersionEnum.r1_4_2, VersionEnum.r1_8).add(VersionRange.andOlder(VersionEnum.r1_2_4tor1_2_5))); + public final VersionedBooleanSetting replaceAttributeModifiers = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.replace_attribute_modifiers"), VersionRange.andOlder(VersionEnum.r1_8)); // 1.8.x -> 1.7.6 - public final ProtocolSyncBooleanSetting replaceSneaking = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.replacesneak"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); - public final ProtocolSyncBooleanSetting longSneaking = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.longsneak"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); + public final VersionedBooleanSetting replaceSneaking = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.replace_sneaking"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); + public final VersionedBooleanSetting longSneaking = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.long_sneaking"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); // r1_5tor1_5_1 -> r1_4_6tor1_4_7 - public final ProtocolSyncBooleanSetting legacyMiningSpeeds = new ProtocolSyncBooleanSetting(this, Text.translatable("debug.viafabricplus.legacypseeds"), VersionRange.andOlder(VersionEnum.r1_4_6tor1_4_7)); + public final VersionedBooleanSetting legacyMiningSpeeds = new VersionedBooleanSetting(this, Text.translatable("debug_settings.viafabricplus.legacy_mining_speeds"), VersionRange.andOlder(VersionEnum.r1_4_6tor1_4_7)); public DebugSettings() { - super(Text.translatable("settings.viafabricplus.debug")); + super(Text.translatable("setting_group_name.viafabricplus.debug")); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/ExperimentalSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/ExperimentalSettings.java deleted file mode 100644 index e35c0c6b7..000000000 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/ExperimentalSettings.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of ViaFabricPlus - https://github.com/FlorianMichael/ViaFabricPlus - * Copyright (C) 2021-2023 FlorianMichael/EnZaXD - * Copyright (C) 2023 RK_01/RaphiMC and contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package de.florianmichael.viafabricplus.settings.impl; - -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.BooleanSetting; -import net.minecraft.text.Text; - -public class ExperimentalSettings extends SettingGroup { - public static final ExperimentalSettings INSTANCE = new ExperimentalSettings(); - - public final BooleanSetting fixChunkBorders = new BooleanSetting(this, Text.translatable("experimental.viafabricplus.chunkborderfix"), true); - public final BooleanSetting waterMovementEdgeDetection = new BooleanSetting(this, Text.translatable("experimental.viafabricplus.watermovement"), true); - - public ExperimentalSettings() { - super(Text.translatable("settings.viafabricplus.experimental")); - } -} diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/GeneralSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/GeneralSettings.java index 7ad2d2359..af2c1aa33 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/GeneralSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/GeneralSettings.java @@ -19,45 +19,49 @@ package de.florianmichael.viafabricplus.settings.impl; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.BooleanSetting; -import de.florianmichael.viafabricplus.settings.type.ModeSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.base.BooleanSetting; +import de.florianmichael.viafabricplus.settings.base.ModeSetting; import net.minecraft.client.gui.widget.ButtonWidget; import net.minecraft.text.Text; public class GeneralSettings extends SettingGroup { - public static final GeneralSettings INSTANCE = new GeneralSettings(); + private static final GeneralSettings instance = new GeneralSettings(); - public final ModeSetting multiplayerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general.viafabricplus.multiplayerscreenbutton"), 1, - Text.translatable("misc.viafabricplus.lt"), - Text.translatable("misc.viafabricplus.rt"), - Text.translatable("misc.viafabricplus.lb"), - Text.translatable("misc.viafabricplus.rb") + public final ModeSetting multiplayerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.multiplayer_screen_button_orientation"), 1, + Text.translatable("base.viafabricplus.left_top"), + Text.translatable("base.viafabricplus.right_top"), + Text.translatable("base.viafabricplus.left_bottom"), + Text.translatable("base.viafabricplus.right_bottom") ); - public final ModeSetting addServerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general.viafabricplus.addserverscreenbutton"), 1, - Text.translatable("misc.viafabricplus.lt"), - Text.translatable("misc.viafabricplus.rt"), - Text.translatable("misc.viafabricplus.lb"), - Text.translatable("misc.viafabricplus.rb") + public final ModeSetting addServerScreenButtonOrientation = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.add_server_screen_button_orientation"), 1, + Text.translatable("base.viafabricplus.left_top"), + Text.translatable("base.viafabricplus.right_top"), + Text.translatable("base.viafabricplus.left_bottom"), + Text.translatable("base.viafabricplus.right_bottom") ); - public final ModeSetting removeNotAvailableItemsFromCreativeTab = new ModeSetting(this, Text.translatable("general.viafabricplus.creative"), - Text.translatable("misc.viafabricplus.all"), - Text.translatable("misc.viafabricplus.vanillaonly"), - Text.translatable("misc.viafabricplus.off") + public final ModeSetting removeNotAvailableItemsFromCreativeTab = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.filter_creative_tabs"), + Text.translatable("base.viafabricplus.vanilla_and_modded"), + Text.translatable("base.viafabricplus.vanilla_only"), + Text.translatable("base.viafabricplus.off") ); - public final BooleanSetting showSuperSecretSettings = new BooleanSetting(this, Text.translatable("general.viafabricplus.secret"), true); - public final BooleanSetting showExtraInformationInDebugHud = new BooleanSetting(this, Text.translatable("general.viafabricplus.extrainformation"), true); - public final BooleanSetting showClassicLoadingProgressInConnectScreen = new BooleanSetting(this, Text.translatable("general.viafabricplus.classicloading"), true); - public final BooleanSetting autoDetectVersion = new BooleanSetting(this, Text.translatable("general.viafabricplus.autodetect"), false); - public final BooleanSetting showAdvertisedServerVersion = new BooleanSetting(this, Text.translatable("general.viafabricplus.advertised"), true); - public final ModeSetting ignorePacketTranslationErrors = new ModeSetting(this, Text.translatable("general.viafabricplus.ignoreerrors"), - Text.translatable("misc.viafabricplus.kick"), - Text.translatable("misc.viafabricplus.cancelnotify"), - Text.translatable("misc.viafabricplus.cancel") + public final BooleanSetting saveSelectedProtocolVersion = new BooleanSetting(this, Text.translatable("general_settings.viafabricplus.save_selected_protocol_version"), true); + public final BooleanSetting showExtraInformationInDebugHud = new BooleanSetting(this, Text.translatable("general_settings.viafabricplus.extra_information_in_debug_hud"), true); + public final BooleanSetting showClassicLoadingProgressInConnectScreen = new BooleanSetting(this, Text.translatable("general_settings.viafabricplus.show_classic_loading_progress"), true); + public final BooleanSetting autoDetectVersion = new BooleanSetting(this, Text.translatable("general_settings.viafabricplus.auto_detect_version"), false); + public final BooleanSetting showAdvertisedServerVersion = new BooleanSetting(this, Text.translatable("general_settings.viafabricplus.show_advertised_server_version"), true); + public final ModeSetting ignorePacketTranslationErrors = new ModeSetting(this, Text.translatable("general_settings.viafabricplus.ignore_packet_translation_errors"), + Text.translatable("base.viafabricplus.kick"), + Text.translatable("base.viafabricplus.cancel_and_notify"), + Text.translatable("base.viafabricplus.cancel") ); public GeneralSettings() { - super(Text.translatable("settings.viafabricplus.general")); + super(Text.translatable("setting_group_name.viafabricplus.general")); + } + + public static GeneralSettings global() { + return instance; } public static ButtonWidget.Builder withOrientation(final ButtonWidget.Builder builder, final int orientationIndex, final int width, final int height) { diff --git a/src/main/java/de/florianmichael/viafabricplus/settings/impl/VisualSettings.java b/src/main/java/de/florianmichael/viafabricplus/settings/impl/VisualSettings.java index b25a15c7f..40ecd0429 100644 --- a/src/main/java/de/florianmichael/viafabricplus/settings/impl/VisualSettings.java +++ b/src/main/java/de/florianmichael/viafabricplus/settings/impl/VisualSettings.java @@ -20,8 +20,8 @@ package de.florianmichael.viafabricplus.settings.impl; import net.raphimc.vialoader.util.VersionEnum; -import de.florianmichael.viafabricplus.settings.SettingGroup; -import de.florianmichael.viafabricplus.settings.type.ProtocolSyncBooleanSetting; +import de.florianmichael.viafabricplus.settings.base.SettingGroup; +import de.florianmichael.viafabricplus.settings.base.VersionedBooleanSetting; import net.minecraft.text.Text; import net.raphimc.vialoader.util.VersionRange; @@ -29,37 +29,37 @@ public class VisualSettings extends SettingGroup { public static final VisualSettings INSTANCE = new VisualSettings(); // 1.19.2 -> 1.19 - public final ProtocolSyncBooleanSetting disableSecureChatWarning = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.secure"), VersionRange.andOlder(VersionEnum.r1_19)); + public final VersionedBooleanSetting disableSecureChatWarning = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.disable_secure_chat_warning"), VersionRange.andOlder(VersionEnum.r1_19)); // 1.19 -> 1.18.2 - public final ProtocolSyncBooleanSetting hideSignatureIndicator = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.indicator"), VersionRange.andOlder(VersionEnum.r1_18_2)); + public final VersionedBooleanSetting hideSignatureIndicator = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.hide_signature_indicator"), VersionRange.andOlder(VersionEnum.r1_18_2)); // 1.16 -> 1.15.2 - public final ProtocolSyncBooleanSetting removeNewerFeaturesFromJigsawScreen = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.jigsaw"), VersionRange.andOlder(VersionEnum.r1_15_2)); + public final VersionedBooleanSetting removeNewerFeaturesFromJigsawScreen = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen"), VersionRange.andOlder(VersionEnum.r1_15_2)); // 1.13 -> 1.12.2 - public final ProtocolSyncBooleanSetting replacePetrifiedOakSlab = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.stoneslab"), VersionRange.of(VersionEnum.r1_3_1tor1_3_2, VersionEnum.r1_12_2)); - public final ProtocolSyncBooleanSetting changeFontRendererBehaviour = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.fontrendererbehaviour"), VersionRange.andOlder(VersionEnum.r1_12_2)); + public final VersionedBooleanSetting replacePetrifiedOakSlab = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.replace_petrified_oak_slab"), VersionRange.of(VersionEnum.r1_3_1tor1_3_2, VersionEnum.r1_12_2)); + public final VersionedBooleanSetting changeFontRendererBehaviour = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.change_font_renderer_behaviour"), VersionRange.andOlder(VersionEnum.r1_12_2)); // 1.9 -> 1.8.x - public final ProtocolSyncBooleanSetting emulateArmorHud = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.armor"), VersionRange.andOlder(VersionEnum.r1_8)); - public final ProtocolSyncBooleanSetting removeNewerFeaturesFromCommandBlockScreen = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.command"), VersionRange.andOlder(VersionEnum.r1_8)); + public final VersionedBooleanSetting emulateArmorHud = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.emulate_armor_hud"), VersionRange.andOlder(VersionEnum.r1_8)); + public final VersionedBooleanSetting removeNewerFeaturesFromCommandBlockScreen = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.remove_newer_features_from_command_block_screen"), VersionRange.andOlder(VersionEnum.r1_8)); + public final VersionedBooleanSetting showSuperSecretSettings = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.show_super_secret_settings"), VersionRange.andOlder(VersionEnum.r1_8)); // 1.8.x -> r1_7_6tor1_7_10 - public final ProtocolSyncBooleanSetting blockHitAnimation = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.blockhitanimation"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); + public final VersionedBooleanSetting blockHitAnimation = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.enable_block_hit_animation"), VersionRange.andOlder(VersionEnum.r1_7_6tor1_7_10)); // r1_0_0tor1_0_1 -> b1_8tob1_8_1 - public final ProtocolSyncBooleanSetting replaceHurtSoundWithOOFSound = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.oof"), VersionRange.andOlder(VersionEnum.b1_8tob1_8_1)); + public final VersionedBooleanSetting replaceHurtSoundWithOOFSound = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound"), VersionRange.andOlder(VersionEnum.b1_8tob1_8_1)); // b1_8tob1_8_1 -> b1_7tob1_7_3 - public final ProtocolSyncBooleanSetting removeNewerHudElements = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.betahud"), VersionRange.andOlder(VersionEnum.b1_7tob1_7_3)); + public final VersionedBooleanSetting removeNewerHudElements = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.remove_newer_hud_elements"), VersionRange.andOlder(VersionEnum.b1_7tob1_7_3)); // a1_0_15 -> c0_28toc0_30 - public final ProtocolSyncBooleanSetting replaceCreativeInventory = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.classic"), VersionRange.andOlder(VersionEnum.c0_28toc0_30)); - public final ProtocolSyncBooleanSetting oldWalkingAnimation = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.walkanimation"), VersionRange.andOlder(VersionEnum.c0_28toc0_30)); - public final ProtocolSyncBooleanSetting fixSodiumChunkRendering = new ProtocolSyncBooleanSetting(this, Text.translatable("visual.viafabricplus.sodium"), VersionRange.andOlder(VersionEnum.c0_28toc0_30)); + public final VersionedBooleanSetting replaceCreativeInventory = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory"), VersionRange.andOlder(VersionEnum.c0_28toc0_30)); + public final VersionedBooleanSetting oldWalkingAnimation = new VersionedBooleanSetting(this, Text.translatable("visual_settings.viafabricplus.old_walking_animation"), VersionRange.andOlder(VersionEnum.c0_28toc0_30)); public VisualSettings() { - super(Text.translatable("settings.viafabricplus.visual")); + super(Text.translatable("setting_group_name.viafabricplus.visual")); } } diff --git a/src/main/java/de/florianmichael/viafabricplus/util/ChatUtil.java b/src/main/java/de/florianmichael/viafabricplus/util/ChatUtil.java index 02605f419..65f38e51e 100644 --- a/src/main/java/de/florianmichael/viafabricplus/util/ChatUtil.java +++ b/src/main/java/de/florianmichael/viafabricplus/util/ChatUtil.java @@ -20,7 +20,9 @@ package de.florianmichael.viafabricplus.util; import net.minecraft.client.MinecraftClient; +import net.minecraft.text.MutableText; import net.minecraft.text.Text; +import net.minecraft.text.TranslatableTextContent; import net.minecraft.util.Formatting; public class ChatUtil { @@ -38,4 +40,8 @@ public static Text prefixText(final Text message) { public static void sendPrefixedMessage(final Text message) { MinecraftClient.getInstance().inGameHud.getChatHud().addMessage(prefixText(message)); } + + public static String uncoverTranslationKey(final Text text) { + return ((TranslatableTextContent) text.getContent()).getKey(); + } } diff --git a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ViaJarReplacer.java b/src/main/java/de/florianmichael/viafabricplus/util/ClassLoaderPriorityUtil.java similarity index 76% rename from src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ViaJarReplacer.java rename to src/main/java/de/florianmichael/viafabricplus/util/ClassLoaderPriorityUtil.java index 0f9a5bc58..193222252 100644 --- a/src/main/java/de/florianmichael/viafabricplus/protocolhack/util/ViaJarReplacer.java +++ b/src/main/java/de/florianmichael/viafabricplus/util/ClassLoaderPriorityUtil.java @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.protocolhack.util; +package de.florianmichael.viafabricplus.util; import de.florianmichael.viafabricplus.ViaFabricPlus; import net.lenni0451.reflect.ClassLoaders; @@ -28,20 +28,20 @@ /** * Allows the user to override the Via* jar files with custom ones using the "jars" folder in the run directory */ -public class ViaJarReplacer { - - /** - * The folder where the overriding jars are located - */ - public static final File VIA_JAR_OVERRIDING_FOLDER = new File(ViaFabricPlus.RUN_DIRECTORY, "jars"); +public class ClassLoaderPriorityUtil { /** * Loads all overriding jars */ - public static void loadOverridingJars() { + public static void loadOverridingJars(final File directory) { try { - VIA_JAR_OVERRIDING_FOLDER.mkdirs(); - final File[] files = VIA_JAR_OVERRIDING_FOLDER.listFiles(); + final File jarsDirectory = new File(directory, "jars"); + if (!jarsDirectory.exists()) { + jarsDirectory.mkdir(); + return; + } + + final File[] files = jarsDirectory.listFiles(); if (files != null && files.length > 0) { final ClassLoader oldLoader = Thread.currentThread().getContextClassLoader(); try { @@ -50,7 +50,7 @@ public static void loadOverridingJars() { for (File file : files) { if (file.getName().endsWith(".jar")) { ClassLoaders.loadToFront(file.toURI().toURL()); - ViaFabricPlus.LOGGER.info("Loaded overriding jar " + file.getName()); + ViaFabricPlus.global().getLogger().info("Loaded overriding jar " + file.getName()); } } } finally { @@ -58,7 +58,7 @@ public static void loadOverridingJars() { } } } catch (Throwable e) { - ViaFabricPlus.LOGGER.error("Failed to load overriding jars", e); + ViaFabricPlus.global().getLogger().error("Failed to load overriding jars", e); } } } diff --git a/src/main/java/de/florianmichael/viafabricplus/screen/settings/ModMenuImpl.java b/src/main/java/de/florianmichael/viafabricplus/util/ModMenuScreenFactory.java similarity index 87% rename from src/main/java/de/florianmichael/viafabricplus/screen/settings/ModMenuImpl.java rename to src/main/java/de/florianmichael/viafabricplus/util/ModMenuScreenFactory.java index 0b669ac1a..ae93586f5 100644 --- a/src/main/java/de/florianmichael/viafabricplus/screen/settings/ModMenuImpl.java +++ b/src/main/java/de/florianmichael/viafabricplus/util/ModMenuScreenFactory.java @@ -17,12 +17,13 @@ * along with this program. If not, see . */ -package de.florianmichael.viafabricplus.screen.settings; +package de.florianmichael.viafabricplus.util; import com.terraformersmc.modmenu.api.ConfigScreenFactory; import com.terraformersmc.modmenu.api.ModMenuApi; +import de.florianmichael.viafabricplus.screen.settings.SettingsScreen; -public class ModMenuImpl implements ModMenuApi { +public class ModMenuScreenFactory implements ModMenuApi { @Override public ConfigScreenFactory getModConfigScreenFactory() { diff --git a/src/main/resources/assets/viafabricplus/lang/cs_cz.json b/src/main/resources/assets/viafabricplus/lang/cs_cz.json index 67ad6a9a0..bfb604da6 100644 --- a/src/main/resources/assets/viafabricplus/lang/cs_cz.json +++ b/src/main/resources/assets/viafabricplus/lang/cs_cz.json @@ -1,72 +1,72 @@ { - "misc.viafabricplus.settings": "Nastavení", - "misc.viafabricplus.on": "Ano", - "misc.viafabricplus.off": "Ne", - "misc.viafabricplus.lt": "Vlevo nahoře", - "misc.viafabricplus.rt": "Vpravo nahoře", - "misc.viafabricplus.lb": "Vlevo dole", - "misc.viafabricplus.rb": "Vpravo dole", - "misc.viafabricplus.cancel": "Zrušit", - "misc.viafabricplus.cancelreset": "Zrušit a resetovat", - "misc.viafabricplus.logout": "Odhlásit se", - "misc.viafabricplus.online": "Online Mode", - "misc.viafabricplus.reset": "Resetovat", - "misc.viafabricplus.copy": "Kopírovat kód", + "base.viafabricplus.settings": "Nastavení", + "base.viafabricplus.on": "Ano", + "base.viafabricplus.off": "Ne", + "base.viafabricplus.left_top": "Vlevo nahoře", + "base.viafabricplus.right_top": "Vpravo nahoře", + "base.viafabricplus.left_bottom": "Vlevo dole", + "base.viafabricplus.right_bottom": "Vpravo dole", + "base.viafabricplus.cancel": "Zrušit", + "base.viafabricplus.cancel_and_reset": "Zrušit a resetovat", + "base.viafabricplus.logout": "Odhlásit se", + "base.viafabricplus.online_mode": "Online Mode", + "base.viafabricplus.reset": "Resetovat", + "base.viafabricplus.copy_code": "Kopírovat kód", - "general.viafabricplus.secret": "Zobrazit \"Super Secret Settings\"", - "general.viafabricplus.extrainformation": "Zobrazit více informací v ladící obrazovce", - "general.viafabricplus.classicloading": "Zobrazit progres načítání mapy při připojování ke classic serveru", - "general.viafabricplus.main": "Umístění hlavního tlačítka", - "general.viafabricplus.creative": "Odstranit nedostupné předměty z inventáře tvořivé hry", - "general.viafabricplus.protocolsync": "Automaticky změnit nastavení podle zvolené verze", + "general_settings.viafabricplus.super_secret_settings": "Zobrazit \"Super Secret Settings\"", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Zobrazit více informací v ladící obrazovce", + "general_settings.viafabricplus.show_classic_loading_progress": "Zobrazit progres načítání mapy při připojování ke classic serveru", + "general_settings.viafabricplus.main": "Umístění hlavního tlačítka", + "general_settings.viafabricplus.filter_creative_tabs": "Odstranit nedostupné předměty z inventáře tvořivé hry", + "general_settings.viafabricplus.protocolsync": "Automaticky změnit nastavení podle zvolené verze", "experimental.viafabricplus.chunkborderfix": "Opravit okraje chunků", - "debug.viafabricplus.sequence": "Vypnout sekvencování", - "debug.viafabricplus.merchant": "Smooth out merchant screens", - "debug.viafabricplus.postfix": "Spustit vstupy v synchronizaci", - "debug.viafabricplus.sneakinstant": "Instantní plížení", - "debug.viafabricplus.inventory": "Odesílat packet otevření inventáře", - "debug.viafabricplus.cooldown": "Odstranit cooldowny", - "debug.viafabricplus.idle": "Odesílat idle packet", - "debug.viafabricplus.attribute": "Nahradit modifiery atributů", - "debug.viafabricplus.replacesneak": "Nahradit plížení", - "debug.viafabricplus.longsneak": "Dlouhé plížení", - "debug.viafabricplus.legacypseeds": "Staré rychlosti těžení", + "debug_settings.viafabricplus.disable_sequencing": "Vypnout sekvencování", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Smooth out merchant screens", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Spustit vstupy v synchronizaci", + "debug_settings.viafabricplus.sneak_instant": "Instantní plížení", + "debug_settings.viafabricplus.send_open_inventory_packet": "Odesílat packet otevření inventáře", + "debug_settings.viafabricplus.remove_cooldowns": "Odstranit cooldowny", + "debug_settings.viafabricplus.send_idle_packet": "Odesílat idle packet", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Nahradit modifiery atributů", + "debug_settings.viafabricplus.replace_sneaking": "Nahradit plížení", + "debug_settings.viafabricplus.long_sneaking": "Dlouhé plížení", + "debug_settings.viafabricplus.legacy_mining_speeds": "Staré rychlosti těžení", - "authentication.viafabricplus.betacraft": "Použít BetaCraft systém přihlašování", - "authentication.viafabricplus.verify": "Umožnit ViaLegacy zavolat joinServer() pro ověření relace", - "authentication.viafabricplus.fail": "Odpojit, pokud se zavolání joinServer() nepodaří", - "authentication.viafabricplus.classicube": "Změnit verzi na CPE při používání ClassiCube", - "authentication.viafabricplus.spoof": "Změnit uživatelské jméno na ClassiCube jméno při používání ClassiCube", - "authentication.viafabricplus.skin": "Umožnit ViaLegacy k načtení skinů ve starých verzích", - "authentication.viafabricplus.bedrock": "Kliknutím zvolíš účet pro Bedrock edici", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Použít BetaCraft systém přihlašování", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Umožnit ViaLegacy zavolat joinServer() pro ověření relace", + "authentication_settings.viafabricplus.fail": "Odpojit, pokud se zavolání joinServer() nepodaří", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Změnit verzi na CPE při používání ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Změnit uživatelské jméno na ClassiCube jméno při používání ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Umožnit ViaLegacy k načtení skinů ve starých verzích", + "authentication_settings.viafabricplus.bedrock": "Kliknutím zvolíš účet pro Bedrock edici", - "visual.viafabricplus.secure": "Vypnout varování \"zabezpečeného\" chatu", - "visual.viafabricplus.indicator": "Nezobrazovat indikátory \"zabezpečeného\" chatu", - "visual.viafabricplus.jigsaw": "Odstranit novější funkce z bloku skládačky", - "visual.viafabricplus.stoneslab": "Vyměnit \"Zkamenělý dubový půlblok\"", - "visual.viafabricplus.armor": "Emulovat hud Armoru", - "visual.viafabricplus.command": "Odstranit novější funkce z příkazového bloku", - "visual.viafabricplus.oof": "Vyměnit zvuk zranění s \"OOF\" zvukem", - "visual.viafabricplus.betahud": "Odstranit novější prvky z HUD", - "visual.viafabricplus.classic": "Vyměnit inventář tvořivé hry", - "visual.viafabricplus.walkanimation": "Stará chodící animace", - "visual.viafabricplus.sodium": "Opravit renderer chunků v Sodium módu", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Vypnout varování \"zabezpečeného\" chatu", + "visual_settings.viafabricplus.hide_signature_indicator": "Nezobrazovat indikátory \"zabezpečeného\" chatu", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Odstranit novější funkce z bloku skládačky", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Vyměnit \"Zkamenělý dubový půlblok\"", + "visual_settings.viafabricplus.emulate_armor_hud": "Emulovat hud Armoru", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Odstranit novější funkce z příkazového bloku", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Vyměnit zvuk zranění s \"OOF\" zvukem", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Odstranit novější prvky z HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Vyměnit inventář tvořivé hry", + "visual_settings.viafabricplus.old_walking_animation": "Stará chodící animace", + "visual_settings.viafabricplus.sodium": "Opravit renderer chunků v Sodium módu", - "bedrocklogin.viafabricplus.text": "Váš webový prohlížeč by se měl spustit.\nProsím zadejte tento Kód: %s\nZavření této obrazovky zruší tento proces!", + "bedrock.viafabricplus.login": "Váš webový prohlížeč by se měl spustit.\nProsím zadejte tento Kód: %s\nZavření této obrazovky zruší tento proces!", "bedrocklogin.viafabricplus.error": "Nastala chyba. Podívejte se do souboru latest.log pro více informací,\nprosím nahlašte tuto chybu zde (nejlépe v angličtině): \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "Prosím zvolte verzi s kterou se bude server pingovat/připojovat", + "base.viafabricplus.force_version_title": "Prosím zvolte verzi s kterou se bude server pingovat/připojovat", "classicube.viafabricplus.account": "Můžete si vytvořit účet zde: https://www.classicube.net/", "classicube.viafabricplus.loading": "Načítaní informace účtu a seznam serverů...", - "classicube.viafabricplus.error.token": "Neplatný token. Je vaše verze modu ViaFabricPlus zastaralá?", - "classicube.viafabricplus.error.username": "Neplatné uživatelské jméno.", - "classicube.viafabricplus.error.password": "Neplatné heslo.", - "classicube.viafabricplus.error.verification": "Uživatel si ještě neverifikoval svoji E-mailovou adresu.", - "classicube.viafabricplus.error.logincode": "Je požadováno více-fázové ověření. Prosím zkontrolujte si svůj E-mail.", + "classic4j_library.viafabricplus.error.token": "Neplatný token. Je vaše verze modu ViaFabricPlus zastaralá?", + "classic4j_library.viafabricplus.error.username": "Neplatné uživatelské jméno.", + "classic4j_library.viafabricplus.error.password": "Neplatné heslo.", + "classic4j_library.viafabricplus.error.verification": "Uživatel si ještě neverifikoval svoji E-mailovou adresu.", + "classic4j_library.viafabricplus.error.logincode": "Je požadováno více-fázové ověření. Prosím zkontrolujte si svůj E-mail.", "classicube.viafabricplus.warning": "Tato funkce pošle API requesty do ClassiCube API.", diff --git a/src/main/resources/assets/viafabricplus/lang/de_de.json b/src/main/resources/assets/viafabricplus/lang/de_de.json index d6ca5b614..faf05362f 100644 --- a/src/main/resources/assets/viafabricplus/lang/de_de.json +++ b/src/main/resources/assets/viafabricplus/lang/de_de.json @@ -1,51 +1,51 @@ { - "misc.viafabricplus.settings": "Einstellungen", - "misc.viafabricplus.on": "An", - "misc.viafabricplus.off": "Aus", - "misc.viafabricplus.lt": "Links, Oben", - "misc.viafabricplus.rt": "Rechts, Oben", - "misc.viafabricplus.lb": "Links, Unten", - "misc.viafabricplus.rb": "Rechts, Unten", - "misc.viafabricplus.cancel": "Abbrechen", - "misc.viafabricplus.cancelreset": "Abbrechen und zurücksetzen", + "base.viafabricplus.settings": "Einstellungen", + "base.viafabricplus.on": "An", + "base.viafabricplus.off": "Aus", + "base.viafabricplus.left_top": "Links, Oben", + "base.viafabricplus.right_top": "Rechts, Oben", + "base.viafabricplus.left_bottom": "Links, Unten", + "base.viafabricplus.right_bottom": "Rechts, Unten", + "base.viafabricplus.cancel": "Abbrechen", + "base.viafabricplus.cancel_and_reset": "Abbrechen und zurücksetzen", - "general.viafabricplus.secret": "Super Secret Settings", - "general.viafabricplus.extrainformation": "Zusätzliche Informationen im Debug-HUD anzeigen", - "general.viafabricplus.classicloading": "Lade-Fortschritt in der Classic anzeigen", - "general.viafabricplus.main": "Position des Haupt-Buttons", - "general.viafabricplus.creative": "Nicht verfügbare Items von Kreativ-Tab entfernen", - "general.viafabricplus.protocolsync": "Einstellungen automatisch an die aktuelle Version anpassen", + "general_settings.viafabricplus.super_secret_settings": "Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Zusätzliche Informationen im Debug-HUD anzeigen", + "general_settings.viafabricplus.show_classic_loading_progress": "Lade-Fortschritt in der Classic anzeigen", + "general_settings.viafabricplus.main": "Position des Haupt-Buttons", + "general_settings.viafabricplus.filter_creative_tabs": "Nicht verfügbare Items von Kreativ-Tab entfernen", + "general_settings.viafabricplus.protocolsync": "Einstellungen automatisch an die aktuelle Version anpassen", - "debug.viafabricplus.sequence": "Sequencing deaktivieren", - "debug.viafabricplus.merchant": "Smooth out merchant screens", - "debug.viafabricplus.postfix": "Inputs Sync ausführen", - "debug.viafabricplus.sneakinstant": "Instant Sneak", - "debug.viafabricplus.inventory": "Inventory-Open Paket senden", - "debug.viafabricplus.cooldown": "Cooldowns entfernen", - "debug.viafabricplus.idle": "IDLE-Paket senden", - "debug.viafabricplus.attribute": "Attribute-Modifier entfernen", - "debug.viafabricplus.replacesneak": "Sneaken anpassen", - "debug.viafabricplus.longsneak": "Langes Sneaken", - "debug.viafabricplus.legacypseeds": "Legacy Abbaugeschwindigkeiten", + "debug_settings.viafabricplus.disable_sequencing": "Sequencing deaktivieren", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Smooth out merchant screens", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Inputs Sync ausführen", + "debug_settings.viafabricplus.sneak_instant": "Instant Sneak", + "debug_settings.viafabricplus.send_open_inventory_packet": "Inventory-Open Paket senden", + "debug_settings.viafabricplus.remove_cooldowns": "Cooldowns entfernen", + "debug_settings.viafabricplus.send_idle_packet": "IDLE-Paket senden", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Attribute-Modifier entfernen", + "debug_settings.viafabricplus.replace_sneaking": "Sneaken anpassen", + "debug_settings.viafabricplus.long_sneaking": "Langes Sneaken", + "debug_settings.viafabricplus.legacy_mining_speeds": "Legacy Abbaugeschwindigkeiten", - "authentication.viafabricplus.betacraft": "BetaCraft-Authentisierung nutzen", - "authentication.viafabricplus.verify": "Erlaube ViaLegacy, joinServer() aufzurufen, um die Session zu verifizieren", - "authentication.viafabricplus.fail": "Verbindung trennen, wenn der joinServer()-Aufruf einen Fehler wirft", - "authentication.viafabricplus.bedrock": "Klicke, um den Bedrock-Account zu setzen", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "BetaCraft-Authentisierung nutzen", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Erlaube ViaLegacy, joinServer() aufzurufen, um die Session zu verifizieren", + "authentication_settings.viafabricplus.fail": "Verbindung trennen, wenn der joinServer()-Aufruf einen Fehler wirft", + "authentication_settings.viafabricplus.bedrock": "Klicke, um den Bedrock-Account zu setzen", - "visual.viafabricplus.secure": "Sichere-Chat-Warnung ausschalten", - "visual.viafabricplus.indicator": "Signatur-Indikator anzeigen", - "visual.viafabricplus.jigsaw": "Neuere Features vom Jigsaw-Screen entfernen", - "visual.viafabricplus.stoneslab": "Petrified oak slab entfernen", - "visual.viafabricplus.armor": "Rüstungs-HUD emulieren", - "visual.viafabricplus.command": "Neuere Features vom Command-Block-Screen entfernen", - "visual.viafabricplus.oof": "Schaden-Sound durch OOF-Sound ersetzen", - "visual.viafabricplus.betahud": "Neuere HUD-Elemente entfernen", - "visual.viafabricplus.classic": "Kreativ-Inventar ersetzen", - "visual.viafabricplus.walkanimation": "Alte Lauf-Animation", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Sichere-Chat-Warnung ausschalten", + "visual_settings.viafabricplus.hide_signature_indicator": "Signatur-Indikator anzeigen", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Neuere Features vom Jigsaw-Screen entfernen", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Petrified oak slab entfernen", + "visual_settings.viafabricplus.emulate_armor_hud": "Rüstungs-HUD emulieren", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Neuere Features vom Command-Block-Screen entfernen", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Schaden-Sound durch OOF-Sound ersetzen", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Neuere HUD-Elemente entfernen", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Kreativ-Inventar ersetzen", + "visual_settings.viafabricplus.old_walking_animation": "Alte Lauf-Animation", - "bedrocklogin.viafabricplus.text": "Dein Browser sollte sich jetzt geöffnet haben.\nBitte gib den folgenden Code ein: %s\nWenn du diesen Bildschirm schließt, wird der Prozess abgebrochen.", + "bedrock.viafabricplus.login": "Dein Browser sollte sich jetzt geöffnet haben.\nBitte gib den folgenden Code ein: %s\nWenn du diesen Bildschirm schließt, wird der Prozess abgebrochen.", "bedrocklogin.viafabricplus.error": "Ein Fehler ist aufgetreten! In der latest.log sind genauere Informationen;\bitte Melde den Fehler unter: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "Bitte wähle die Version, die beim Verbinden mit dem Server verwendet werden soll" + "base.viafabricplus.force_version_title": "Bitte wähle die Version, die beim Verbinden mit dem Server verwendet werden soll" } diff --git a/src/main/resources/assets/viafabricplus/lang/en_us.json b/src/main/resources/assets/viafabricplus/lang/en_us.json index f192f0df1..634134fd3 100644 --- a/src/main/resources/assets/viafabricplus/lang/en_us.json +++ b/src/main/resources/assets/viafabricplus/lang/en_us.json @@ -1,103 +1,92 @@ { "modmenu.descriptionTranslation.viafabricplus": "Fabric mod to connect to EVERY Minecraft server version (Release, Beta, Alpha, Classic, Snapshots, Bedrock) with QoL fixes to the gameplay", - "misc.viafabricplus.settings": "Settings", - "misc.viafabricplus.on": "On", - "misc.viafabricplus.off": "Off", - "misc.viafabricplus.lt": "Left; Top", - "misc.viafabricplus.rt": "Right; Top", - "misc.viafabricplus.lb": "Left; Bottom", - "misc.viafabricplus.rb": "Right; Bottom", - "misc.viafabricplus.cancel": "Cancel", - "misc.viafabricplus.cancelreset": "Cancel and reset", - "misc.viafabricplus.logout": "Logout", - "misc.viafabricplus.online": "Online Mode", - "misc.viafabricplus.reset": "Reset", - "misc.viafabricplus.copy": "Copy code", - "misc.viafabricplus.error": "Something went wrong! Please try again later", - "misc.viafabricplus.translate": "Via translates to: %s", - "misc.viafabricplus.serverversion": "Server version: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Set version for this server", - "misc.viafabricplus.all": "Vanilla and Modded", - "misc.viafabricplus.vanillaonly": "Vanilla only", - "misc.viafabricplus.kick": "Kick", - "misc.viafabricplus.cancelnotify": "Cancel and notify", + "base.viafabricplus.settings": "Settings", + "base.viafabricplus.on": "On", + "base.viafabricplus.off": "Off", + "base.viafabricplus.left_top": "Left; Top", + "base.viafabricplus.right_top": "Right; Top", + "base.viafabricplus.left_bottom": "Left; Bottom", + "base.viafabricplus.right_bottom": "Right; Bottom", + "base.viafabricplus.cancel": "Cancel", + "base.viafabricplus.cancel_and_reset": "Cancel and reset", + "base.viafabricplus.logout": "Logout", + "base.viafabricplus.online_mode": "Online Mode", + "base.viafabricplus.reset": "Reset", + "base.viafabricplus.copy_code": "Copy code", + "base.viafabricplus.something_went_wrong": "Something went wrong! Please try again later", + "base.viafabricplus.via_translates_to": "Via translates to: %s", + "base.viafabricplus.server_version": "Server version: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Set version for this server", + "base.viafabricplus.vanilla_and_modded": "Vanilla and Modded", + "base.viafabricplus.vanilla_only": "Vanilla only", + "base.viafabricplus.kick": "Kick", + "base.viafabricplus.cancel_and_notify": "Cancel and notify", + "base.viafabricplus.force_version_title": "Please select the version with which the server should be pinged/connected", - "settings.viafabricplus.authentication": "Authentication", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "Debug", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Authentication", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "Debug", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Show Super Secret Settings", - "general.viafabricplus.extrainformation": "Show extra information in Debug Hud", - "general.viafabricplus.classicloading": "Show classic loading progress in connect screen", - "general.viafabricplus.multiplayerscreenbutton": "Multiplayer screen button orientation", - "general.viafabricplus.addserverscreenbutton": "Add server screen button orientation", - "general.viafabricplus.creative": "Remove not available items from creative tab", - "general.viafabricplus.autodetect": "Auto detect version", - "general.viafabricplus.advertised": "Show advertised/server version in Multiplayer", - "general.viafabricplus.ignoreerrors": "Ignore packet translation errors", + "general_settings.viafabricplus.save_selected_protocol_version": "Save selected protocol version", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Show extra information in Debug Hud", + "general_settings.viafabricplus.show_classic_loading_progress": "Show classic loading progress in connect screen", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Multiplayer screen button orientation", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Add server screen button orientation", + "general_settings.viafabricplus.filter_creative_tabs": "Remove not available items from creative tab", + "general_settings.viafabricplus.auto_detect_version": "Auto detect version", + "general_settings.viafabricplus.show_advertised_server_version": "Show advertised/server version in Multiplayer", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignore packet translation errors", - "bedrock.viafabricplus.confirmtransfer": "Open prompt GUI to confirm transferring to other servers", - "bedrock.viafabricplus.authentication": "Click to set account for Bedrock edition", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Open prompt GUI to confirm transferring to other servers", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click to set account for Bedrock edition", - "experimental.viafabricplus.chunkborderfix": "Fix Chunk borders", - "experimental.viafabricplus.watermovement": "Water movement edge detection", - "experimental.viafabricplus.boatmovement": "Emulate boat movement and replace model", + "debug_settings.viafabricplus.disable_sequencing": "Disable sequencing", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Smooth out merchant screens", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Execute inputs in sync", + "debug_settings.viafabricplus.sneak_instant": "Sneak instant", + "debug_settings.viafabricplus.send_open_inventory_packet": "Send open inventory packet", + "debug_settings.viafabricplus.remove_cooldowns": "Remove cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Send idle packet", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Replace attribute modifiers", + "debug_settings.viafabricplus.replace_sneaking": "Replace sneaking", + "debug_settings.viafabricplus.long_sneaking": "Long sneaking", + "debug_settings.viafabricplus.legacy_mining_speeds": "Legacy mining speeds", - "debug.viafabricplus.sequence": "Disable sequencing", - "debug.viafabricplus.merchant": "Smooth out merchant screens", - "debug.viafabricplus.postfix": "Execute inputs in sync", - "debug.viafabricplus.sneakinstant": "Sneak instant", - "debug.viafabricplus.inventory": "Send open inventory packet", - "debug.viafabricplus.cooldown": "Remove cooldowns", - "debug.viafabricplus.idle": "Send idle packet", - "debug.viafabricplus.attribute": "Replace attribute modifiers", - "debug.viafabricplus.replacesneak": "Replace sneaking", - "debug.viafabricplus.longsneak": "Long sneaking", - "debug.viafabricplus.legacypseeds": "Legacy mining speeds", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Use BetaCraft authentication", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Verify session for online mode servers", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Automatically select CPE when using the ClassiCube server list.", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Set session name to ClassiCube name when using the ClassiCube server list.", - "authentication.viafabricplus.betacraft": "Use BetaCraft authentication", - "authentication.viafabricplus.verify": "Allow ViaLegacy to call joinServer() to verify session", - "authentication.viafabricplus.fail": "Disconnect if joinServer() call fails", - "authentication.viafabricplus.classicube": "Force CPE Version if using ClassiCube", - "authentication.viafabricplus.spoof": "Spoof Username to ClassiCube Name if using ClassiCube", - "authentication.viafabricplus.skin": "Allow ViaLegacy to load skins in legacy versions", - "authentication.viafabricplus.error": "ViaFabricPlus failed to verify your session! Please log in into an Account or disable the BetaCraft authentication in the ViaFabricPlus Settings", + "visual_settings.viafabricplus.show_super_secret_settings": "Show super secret settings", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Disable secure chat warning", + "visual_settings.viafabricplus.hide_signature_indicator": "Hide signature indicator", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Remove newer features from Jigsaw screen", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Replace petrified oak slab with unknown texture", + "visual_settings.viafabricplus.emulate_armor_hud": "Emulate Armor hud", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Remove newer features from Command block screen", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Replace hurt sound with OOF sound", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Remove newer HUD elements", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Replace creative inventory", + "visual_settings.viafabricplus.old_walking_animation": "Old walking animation", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Change Font renderer behaviour", + "visual_settings.viafabricplus.enable_block_hit_animation": "Enable 1.7 Block hit animation", - "visual.viafabricplus.secure": "Disable secure chat warning", - "visual.viafabricplus.indicator": "Hide signature indicator", - "visual.viafabricplus.jigsaw": "Remove newer features from Jigsaw screen", - "visual.viafabricplus.stoneslab": "Replace petrified oak slab", - "visual.viafabricplus.armor": "Emulate Armor hud", - "visual.viafabricplus.command": "Remove newer features from Command block screen", - "visual.viafabricplus.oof": "Replace hurt sound with OOF sound", - "visual.viafabricplus.betahud": "Remove newer HUD elements", - "visual.viafabricplus.classic": "Replace creative inventory", - "visual.viafabricplus.walkanimation": "Old walking animation", - "visual.viafabricplus.sodium": "Fix Sodium Chunk renderer", - "visual.viafabricplus.fontrendererbehaviour": "Change Font renderer behaviour", - "visual.viafabricplus.blockhitanimation": "Enable 1.7 Block hit animation", - - "bedrocklogin.viafabricplus.text": "Your browser should have opened.\nPlease enter the following Code: %s\nClosing this screen will cancel the process!", - "bedrocklogin.viafabricplus.error": "An error has occurred! See the latest.log for more information,\nplease report the bug at: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "bedrockplay.viafabricplus.confirmtransfer": "Do you want to transfer to the following server?\n%s\n\nThis will disconnect the current server and connect to the new one.", - - "forceversion.viafabricplus.title": "Please select the version with which the server should be pinged/connected", + "bedrock.viafabricplus.login": "Your browser should have opened.\nPlease enter the following Code: %s\nClosing this screen will cancel the process!", + "bedrock.viafabricplus.confirm_transfer_server_prompt": "Do you want to transfer to the following server?\n%s\n\nThis will disconnect the current server and connect to the new one.", + "authentication.viafabricplus.failed_to_verify_session": "ViaFabricPlus failed to verify your session! Please log in into an Account or disable the BetaCraft authentication in the ViaFabricPlus Settings", "classicube.viafabricplus.account": "You can create an account here: https://www.classicube.net/", "classicube.viafabricplus.loading": "Loading profile information and server list...", - - "classicube.viafabricplus.error.token": "Incorrect token. Is your ViaFabricPlus out of date?", - "classicube.viafabricplus.error.username": "Invalid username.", - "classicube.viafabricplus.error.password": "Invalid password.", - "classicube.viafabricplus.error.verification": "User hasn't verified their E-mail address yet.", - "classicube.viafabricplus.error.logincode": "Multi-factor authentication requested. Please check your E-mail.", - "classicube.viafabricplus.warning": "This feature will send API requests to the ClassiCube API.", + "betacraft.viafabricplus.warning": "Pressing this button will send API requests to \"betacraft.uk/serverlist\".", - "betacraft.viafabricplus.warning": "Pressing this button will send API requests to \"betacraft.uk/serverlist\"." + "classic4j_library.viafabricplus.error.token": "Incorrect token. Is your ViaFabricPlus out of date?", + "classic4j_library.viafabricplus.error.username": "Invalid username.", + "classic4j_library.viafabricplus.error.password": "Invalid password.", + "classic4j_library.viafabricplus.error.verification": "User hasn't verified their E-mail address yet.", + "classic4j_library.viafabricplus.error.logincode": "Multi-factor authentication requested. Please check your E-mail." } diff --git a/src/main/resources/assets/viafabricplus/lang/es_ar.json b/src/main/resources/assets/viafabricplus/lang/es_ar.json index 6d94f6e10..5f100b50e 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_ar.json +++ b/src/main/resources/assets/viafabricplus/lang/es_ar.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "configuración", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "configuración", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_cl.json b/src/main/resources/assets/viafabricplus/lang/es_cl.json index 6d94f6e10..5f100b50e 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_cl.json +++ b/src/main/resources/assets/viafabricplus/lang/es_cl.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "configuración", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "configuración", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_ec.json b/src/main/resources/assets/viafabricplus/lang/es_ec.json index 08f4d28ff..adffd4f9b 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_ec.json +++ b/src/main/resources/assets/viafabricplus/lang/es_ec.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "Ajustes", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "Ajustes", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_es.json b/src/main/resources/assets/viafabricplus/lang/es_es.json index 08f4d28ff..adffd4f9b 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_es.json +++ b/src/main/resources/assets/viafabricplus/lang/es_es.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "Ajustes", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "Ajustes", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_mx.json b/src/main/resources/assets/viafabricplus/lang/es_mx.json index 6d94f6e10..5f100b50e 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_mx.json +++ b/src/main/resources/assets/viafabricplus/lang/es_mx.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "configuración", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "configuración", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_uy.json b/src/main/resources/assets/viafabricplus/lang/es_uy.json index 6d94f6e10..5f100b50e 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_uy.json +++ b/src/main/resources/assets/viafabricplus/lang/es_uy.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "configuración", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "configuración", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/es_ve.json b/src/main/resources/assets/viafabricplus/lang/es_ve.json index 08f4d28ff..adffd4f9b 100644 --- a/src/main/resources/assets/viafabricplus/lang/es_ve.json +++ b/src/main/resources/assets/viafabricplus/lang/es_ve.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod de fabric para conectarse a CUALQUIER servidor de minecraft (Lanzamientos, Beta, Alpha, Classic, Snapshots, Bedrock) con fixes QoL en el juego", - "misc.viafabricplus.settings": "Ajustes", - "misc.viafabricplus.on": "Sí", - "misc.viafabricplus.off": "No", - "misc.viafabricplus.lt": "Izquierda; Arriba", - "misc.viafabricplus.rt": "Derecha; Arriba", - "misc.viafabricplus.lb": "Izquierda; Abajo", - "misc.viafabricplus.rb": "Derecha; Abajo", - "misc.viafabricplus.cancel": "Cancelar", - "misc.viafabricplus.cancelreset": "Cancelar y reiniciar", - "misc.viafabricplus.logout": "Cerrar sesión", - "misc.viafabricplus.online": "Modo Online", - "misc.viafabricplus.reset": "Reiniciar", - "misc.viafabricplus.copy": "Copiar codigo", - "misc.viafabricplus.error": "Algo sucedió! Por favor intentalo más tarde", - "misc.viafabricplus.translate": "Via se traduce a: %s", - "misc.viafabricplus.serverversion": "Versión del servidor: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Asignar la versión para este servidor", - "misc.viafabricplus.all": "Vanilla y Modificado", - "misc.viafabricplus.vanillaonly": "Solo Vanilla", - "misc.viafabricplus.kick": "Echar", - "misc.viafabricplus.cancelnotify": "Cancelar y notificar", + "base.viafabricplus.settings": "Ajustes", + "base.viafabricplus.on": "Sí", + "base.viafabricplus.off": "No", + "base.viafabricplus.left_top": "Izquierda; Arriba", + "base.viafabricplus.right_top": "Derecha; Arriba", + "base.viafabricplus.left_bottom": "Izquierda; Abajo", + "base.viafabricplus.right_bottom": "Derecha; Abajo", + "base.viafabricplus.cancel": "Cancelar", + "base.viafabricplus.cancel_and_reset": "Cancelar y reiniciar", + "base.viafabricplus.logout": "Cerrar sesión", + "base.viafabricplus.online_mode": "Modo Online", + "base.viafabricplus.reset": "Reiniciar", + "base.viafabricplus.copy_code": "Copiar codigo", + "base.viafabricplus.something_went_wrong": "Algo sucedió! Por favor intentalo más tarde", + "base.viafabricplus.via_translates_to": "Via se traduce a: %s", + "base.viafabricplus.server_version": "Versión del servidor: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Asignar la versión para este servidor", + "base.viafabricplus.vanilla_and_modded": "Vanilla y Modificado", + "base.viafabricplus.vanilla_only": "Solo Vanilla", + "base.viafabricplus.kick": "Echar", + "base.viafabricplus.cancel_and_notify": "Cancelar y notificar", - "settings.viafabricplus.authentication": "Autenticación", - "settings.viafabricplus.experimental": "Experimental", - "settings.viafabricplus.visual": "Visual", - "settings.viafabricplus.debug": "depuración", - "settings.viafabricplus.general": "General", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Autenticación", + "setting_group_name.viafabricplus.experimental": "Experimental", + "setting_group_name.viafabricplus.visual": "Visual", + "setting_group_name.viafabricplus.debug": "depuración", + "setting_group_name.viafabricplus.general": "General", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Mostrar los ajustes super secretos", - "general.viafabricplus.extrainformation": "Mostrar información extra en el Hud de depuración", - "general.viafabricplus.classicloading": "Mostrar el progreso de carga clásico en la pantalla de conectar", - "general.viafabricplus.multiplayerscreenbutton": "Orientación de los botones de la pantalla multijugador", - "general.viafabricplus.addserverscreenbutton": "Orientación del boton Añadir servidor", - "general.viafabricplus.creative": "eliminar items no disponibles de la pestaña del creativo", - "general.viafabricplus.autodetect": "Auto detectar versión", - "general.viafabricplus.advertised": "Mostrar version anunciada del servidor in multijugador", - "general.viafabricplus.ignoreerrors": "Ignorar error de traducciones de paquete", + "general_settings.viafabricplus.super_secret_settings": "Mostrar los ajustes super secretos", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Mostrar información extra en el Hud de depuración", + "general_settings.viafabricplus.show_classic_loading_progress": "Mostrar el progreso de carga clásico en la pantalla de conectar", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Orientación de los botones de la pantalla multijugador", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Orientación del boton Añadir servidor", + "general_settings.viafabricplus.filter_creative_tabs": "eliminar items no disponibles de la pestaña del creativo", + "general_settings.viafabricplus.auto_detect_version": "Auto detectar versión", + "general_settings.viafabricplus.show_advertised_server_version": "Mostrar version anunciada del servidor in multijugador", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ignorar error de traducciones de paquete", - "bedrock.viafabricplus.confirmtransfer": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", - "bedrock.viafabricplus.authentication": "Click para asignar cuenta de Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Abrir UI de pregunta para confirmar la transferencia a otros servidores", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Click para asignar cuenta de Bedrock", "experimental.viafabricplus.chunkborderfix": "Reparar bordes de chunk", "experimental.viafabricplus.watermovement": "Detección de bordes de movimiento de agua", "experimental.viafabricplus.boatmovement": "Emular el movimiento del bote y reemplazar modelo", - "debug.viafabricplus.sequence": "Deshabilitar secuenciado", - "debug.viafabricplus.merchant": "Sofisticar la pantalla de los comerciantes", - "debug.viafabricplus.postfix": "Ejecutar entradas en sincronizacion", - "debug.viafabricplus.sneakinstant": "Agacharse instantaneamente", - "debug.viafabricplus.inventory": "Enviar paquete de abrir inventario", - "debug.viafabricplus.cooldown": "Eliminar Cooldowns", - "debug.viafabricplus.idle": "Enviar paquete inactivo", - "debug.viafabricplus.attribute": "Reemplazar modificadores de atributos", - "debug.viafabricplus.replacesneak": "Reemplazar agacharse", - "debug.viafabricplus.longsneak": "Agachado largo", - "debug.viafabricplus.legacypseeds": "Velocidades de mineria legacy", + "debug_settings.viafabricplus.disable_sequencing": "Deshabilitar secuenciado", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Sofisticar la pantalla de los comerciantes", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Ejecutar entradas en sincronizacion", + "debug_settings.viafabricplus.sneak_instant": "Agacharse instantaneamente", + "debug_settings.viafabricplus.send_open_inventory_packet": "Enviar paquete de abrir inventario", + "debug_settings.viafabricplus.remove_cooldowns": "Eliminar Cooldowns", + "debug_settings.viafabricplus.send_idle_packet": "Enviar paquete inactivo", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Reemplazar modificadores de atributos", + "debug_settings.viafabricplus.replace_sneaking": "Reemplazar agacharse", + "debug_settings.viafabricplus.long_sneaking": "Agachado largo", + "debug_settings.viafabricplus.legacy_mining_speeds": "Velocidades de mineria legacy", - "authentication.viafabricplus.betacraft": "Utilizar la autenticación BetaCraft", - "authentication.viafabricplus.verify": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", - "authentication.viafabricplus.fail": "Desconectar si joinServer() falla", - "authentication.viafabricplus.classicube": "Forzar version CPE si se usa ClassiCube", - "authentication.viafabricplus.spoof": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", - "authentication.viafabricplus.skin": "Permitir ViaLegacy cargar skins en versiones legacy", - "authentication.viafabricplus.error": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utilizar la autenticación BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Permitir ViaLegacy llamar a joinServer() para verificar la sesión", + "authentication_settings.viafabricplus.fail": "Desconectar si joinServer() falla", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forzar version CPE si se usa ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Ocultar nombre de usuario a nombre ClassiCube si se usa ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permitir ViaLegacy cargar skins en versiones legacy", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus falló al verificar tu sesión! Por favor inicie sesion en una cuenta o desactive la autenticación de BetaCraft en la configuración de ViaFabricPlus", - "visual.viafabricplus.secure": "Desactivar la advertencia de chat seguro", - "visual.viafabricplus.indicator": "Ocultar el indicador de firmas", - "visual.viafabricplus.jigsaw": "Eliminar características nuevas de la pantalla de Jigsaw", - "visual.viafabricplus.stoneslab": "Reemplazar losa de madera petrificada", - "visual.viafabricplus.armor": "Emular HUD de armadura", - "visual.viafabricplus.command": "Eliminar nuevas características de la pantalla de los bloques de comandos", - "visual.viafabricplus.oof": "Reemplazar sonido de dolor con el sonido de OOF", - "visual.viafabricplus.betahud": "Eliminar elementos nuevos del HUD", - "visual.viafabricplus.classic": "Reemplazar inventario del creativo", - "visual.viafabricplus.walkanimation": "Animación de caminar antigua", - "visual.viafabricplus.sodium": "Reparar render de chunks de Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Cambiar el comportamiento del renderizador de fuentes", - "visual.viafabricplus.blockhitanimation": "Habilitar animación de golpe de bloque 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Desactivar la advertencia de chat seguro", + "visual_settings.viafabricplus.hide_signature_indicator": "Ocultar el indicador de firmas", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Eliminar características nuevas de la pantalla de Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Reemplazar losa de madera petrificada", + "visual_settings.viafabricplus.emulate_armor_hud": "Emular HUD de armadura", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Eliminar nuevas características de la pantalla de los bloques de comandos", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Reemplazar sonido de dolor con el sonido de OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Eliminar elementos nuevos del HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Reemplazar inventario del creativo", + "visual_settings.viafabricplus.old_walking_animation": "Animación de caminar antigua", + "visual_settings.viafabricplus.sodium": "Reparar render de chunks de Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Cambiar el comportamiento del renderizador de fuentes", + "visual_settings.viafabricplus.enable_block_hit_animation": "Habilitar animación de golpe de bloque 1.7", - "bedrocklogin.viafabricplus.text": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", + "bedrock.viafabricplus.login": "Tu navegador debería haberse abierto.\nPor favor ingrese el siguiente código: %s\nCerrar esta pantalla cancelará el proceso!", "bedrocklogin.viafabricplus.error": "Ocurrió un error! Revisa latest.log para más información,\nPor favor reporta el bug en: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Quieres transferirse al siguiente servidor?\n%s\n\nEsto te desconectará del servidor actual y te conectará al nuevo.", - "forceversion.viafabricplus.title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", + "base.viafabricplus.force_version_title": "Por favor elige la version con la cual el servidor debería de ser pinged/conectado", "classicube.viafabricplus.account": "Puedes crearte una cuenta aquí: https://www.classicube.net/", "classicube.viafabricplus.loading": "Cargando información del perfil y la lista de servidores...", - "classicube.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", - "classicube.viafabricplus.error.username": "Nombre de usuario incorrecto.", - "classicube.viafabricplus.error.password": "Contraseña incorrecta.", - "classicube.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", - "classicube.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", + "classic4j_library.viafabricplus.error.token": "Token incorrecto. Está ViaFabricPlus desactualizado?", + "classic4j_library.viafabricplus.error.username": "Nombre de usuario incorrecto.", + "classic4j_library.viafabricplus.error.password": "Contraseña incorrecta.", + "classic4j_library.viafabricplus.error.verification": "El usuario aún no ha verificado su e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Verificación en varios pasos solicitado. Por favor revise su E-mail.", "classicube.viafabricplus.warning": "esta función enviará solicitudes de API a la API de ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/fi_fi.json b/src/main/resources/assets/viafabricplus/lang/fi_fi.json index a11fcbfe4..191872ec1 100644 --- a/src/main/resources/assets/viafabricplus/lang/fi_fi.json +++ b/src/main/resources/assets/viafabricplus/lang/fi_fi.json @@ -1,76 +1,76 @@ { - "misc.viafabricplus.settings": "Asetukset", - "misc.viafabricplus.on": "Päällä", - "misc.viafabricplus.off": "Pois päältä", - "misc.viafabricplus.lt": "Vasen yläkulma", - "misc.viafabricplus.rt": "Oikea yläkulma", - "misc.viafabricplus.lb": "Vasen alakulma", - "misc.viafabricplus.rb": "Oikea alakulma", - "misc.viafabricplus.cancel": "Peruuta", - "misc.viafabricplus.cancelreset": "Peruuta ja nollaa", - "misc.viafabricplus.logout": "Kirjaudu ulos", - "misc.viafabricplus.online": "Verkko-tila", - "misc.viafabricplus.reset": "Nollaa", - "misc.viafabricplus.copy": "Kopioi koodi", - "misc.viafabricplus.error": "Jotain meni vikaan! Yritä myöhemmin uudelleen.", + "base.viafabricplus.settings": "Asetukset", + "base.viafabricplus.on": "Päällä", + "base.viafabricplus.off": "Pois päältä", + "base.viafabricplus.left_top": "Vasen yläkulma", + "base.viafabricplus.right_top": "Oikea yläkulma", + "base.viafabricplus.left_bottom": "Vasen alakulma", + "base.viafabricplus.right_bottom": "Oikea alakulma", + "base.viafabricplus.cancel": "Peruuta", + "base.viafabricplus.cancel_and_reset": "Peruuta ja nollaa", + "base.viafabricplus.logout": "Kirjaudu ulos", + "base.viafabricplus.online_mode": "Verkko-tila", + "base.viafabricplus.reset": "Nollaa", + "base.viafabricplus.copy_code": "Kopioi koodi", + "base.viafabricplus.something_went_wrong": "Jotain meni vikaan! Yritä myöhemmin uudelleen.", - "general.viafabricplus.secret": "Näytä Super Secret Settings", - "general.viafabricplus.extrainformation": "Näytä enemmän tietoa Debug-näkymässä", - "general.viafabricplus.classicloading": "Näytä klassinen latauksen tila Yhdistetään -näytössä", - "general.viafabricplus.main": "Pää-napin suunta", - "general.viafabricplus.creative": "Poista saavuttamattomat esineet Luova-välilehdestä", - "general.viafabricplus.protocolsync": "Automaattisesti vaihda asetuksia version mukaan", - "general.viafabricplus.autodetect": "Havaitse versio automaattisesti", + "general_settings.viafabricplus.super_secret_settings": "Näytä Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Näytä enemmän tietoa Debug-näkymässä", + "general_settings.viafabricplus.show_classic_loading_progress": "Näytä klassinen latauksen tila Yhdistetään -näytössä", + "general_settings.viafabricplus.main": "Pää-napin suunta", + "general_settings.viafabricplus.filter_creative_tabs": "Poista saavuttamattomat esineet Luova-välilehdestä", + "general_settings.viafabricplus.protocolsync": "Automaattisesti vaihda asetuksia version mukaan", + "general_settings.viafabricplus.auto_detect_version": "Havaitse versio automaattisesti", "experimental.viafabricplus.chunkborderfix": "Korjaa chunk-rajat", "experimental.viafabricplus.watermovement": "Vesi-liikkeen reunan havaitseminen", - "debug.viafabricplus.sequence": "Poista jaksotuksen käyttö", - "debug.viafabricplus.merchant": "Pehmennä kauppias-näyttöjä", - "debug.viafabricplus.postfix": "Suorita syöte synkronoidusti", - "debug.viafabricplus.sneakinstant": "Välitön kyykky", - "debug.viafabricplus.inventory": "Lähetä avoin-tavaraluettelo -paketti", - "debug.viafabricplus.cooldown": "Poista jäähyt", - "debug.viafabricplus.idle": "Lähetä idle -paketti", - "debug.viafabricplus.attribute": "Vaihda attribuutin muuttujat", - "debug.viafabricplus.replacesneak": "Vaihda kyykky", - "debug.viafabricplus.longsneak": "Pitkä kyykky", - "debug.viafabricplus.legacypseeds": "Perinteiset louhintanopeudet", + "debug_settings.viafabricplus.disable_sequencing": "Poista jaksotuksen käyttö", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Pehmennä kauppias-näyttöjä", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Suorita syöte synkronoidusti", + "debug_settings.viafabricplus.sneak_instant": "Välitön kyykky", + "debug_settings.viafabricplus.send_open_inventory_packet": "Lähetä avoin-tavaraluettelo -paketti", + "debug_settings.viafabricplus.remove_cooldowns": "Poista jäähyt", + "debug_settings.viafabricplus.send_idle_packet": "Lähetä idle -paketti", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Vaihda attribuutin muuttujat", + "debug_settings.viafabricplus.replace_sneaking": "Vaihda kyykky", + "debug_settings.viafabricplus.long_sneaking": "Pitkä kyykky", + "debug_settings.viafabricplus.legacy_mining_speeds": "Perinteiset louhintanopeudet", - "authentication.viafabricplus.betacraft": "Käytä BetaCraft -todennusta", - "authentication.viafabricplus.verify": "Salli ViaLegacy:n käyttää joinServer():iä todentaakseen istunnon", - "authentication.viafabricplus.fail": "Katkaise yhteys, jos joinServer() ei onnistu", - "authentication.viafabricplus.classicube": "Pakota CPE-version jos käytetään ClassiCube:a", - "authentication.viafabricplus.spoof": "Huijaa pelinimi ClassiCube-nimeksi, jos käytetään ClassiCube:a", - "authentication.viafabricplus.skin": "Salli ViaLegacy:n ladata skinejä vanhoissa versioissa", - "authentication.viafabricplus.bedrock": "Paina asettaaksesi Bedrock-käyttäjäm", - "authentication.viafabricplus.error": "ViaFabricPlus epäonnistui istuntosi todentamisessa! Kirjaudu käyttäjälle, tai poista BetaCraft -todennus käytöstä ViaFabricPlus:n asetuksissa.", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Käytä BetaCraft -todennusta", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Salli ViaLegacy:n käyttää joinServer():iä todentaakseen istunnon", + "authentication_settings.viafabricplus.fail": "Katkaise yhteys, jos joinServer() ei onnistu", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Pakota CPE-version jos käytetään ClassiCube:a", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Huijaa pelinimi ClassiCube-nimeksi, jos käytetään ClassiCube:a", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Salli ViaLegacy:n ladata skinejä vanhoissa versioissa", + "authentication_settings.viafabricplus.bedrock": "Paina asettaaksesi Bedrock-käyttäjäm", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus epäonnistui istuntosi todentamisessa! Kirjaudu käyttäjälle, tai poista BetaCraft -todennus käytöstä ViaFabricPlus:n asetuksissa.", - "visual.viafabricplus.secure": "Poista turvallinen-chat -varoitus", - "visual.viafabricplus.indicator": "Piilota signeerauksen merkki", - "visual.viafabricplus.jigsaw": "Poista uudempia ominaisuuksia Jigsaw -näytöstä", - "visual.viafabricplus.stoneslab": "Vaihda kivettynyt tammilaatta", - "visual.viafabricplus.armor": "Emuloi Armor-näkymä", - "visual.viafabricplus.command": "Poista uudemmat ominaisuudet Komentoblokki -näytöstä", - "visual.viafabricplus.oof": "Vaihda vahinko-ääni OOF-äänellä", - "visual.viafabricplus.betahud": "Poista uudemmat näkymän elementit", - "visual.viafabricplus.classic": "Vaihda luova-tavaraluettelo", - "visual.viafabricplus.walkanimation": "Vanha kävely-animaatio", - "visual.viafabricplus.sodium": "Korjaa Sodium:in chunk-renderöijä", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Poista turvallinen-chat -varoitus", + "visual_settings.viafabricplus.hide_signature_indicator": "Piilota signeerauksen merkki", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Poista uudempia ominaisuuksia Jigsaw -näytöstä", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Vaihda kivettynyt tammilaatta", + "visual_settings.viafabricplus.emulate_armor_hud": "Emuloi Armor-näkymä", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Poista uudemmat ominaisuudet Komentoblokki -näytöstä", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Vaihda vahinko-ääni OOF-äänellä", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Poista uudemmat näkymän elementit", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Vaihda luova-tavaraluettelo", + "visual_settings.viafabricplus.old_walking_animation": "Vanha kävely-animaatio", + "visual_settings.viafabricplus.sodium": "Korjaa Sodium:in chunk-renderöijä", - "bedrocklogin.viafabricplus.text": "Selaimesi taisi aueta.\nKirjoita seuraava koodi: %s\nNäytön sulkeminen aiheuttaa prosessin loppumisen!", + "bedrock.viafabricplus.login": "Selaimesi taisi aueta.\nKirjoita seuraava koodi: %s\nNäytön sulkeminen aiheuttaa prosessin loppumisen!", "bedrocklogin.viafabricplus.error": "Virhe tapahtui! Katso latest.log lisätietoja varten,\nole hyvä, ja raportoi bugi täällä: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "Ole hyvä ja valitse versio, jolla palvelimelle pitäisi liittyä", + "base.viafabricplus.force_version_title": "Ole hyvä ja valitse versio, jolla palvelimelle pitäisi liittyä", "classicube.viafabricplus.account": "Voit luoda käyttäjän täällä: https://www.classicube.net/", "classicube.viafabricplus.loading": "Ladataan profiilin tietoja ja palvelinlistaa...", - "classicube.viafabricplus.error.token": "Väärä tokeni. Onko sinun ViaFabricPlus vanhentunut?", - "classicube.viafabricplus.error.username": "Väärä käyttäjänimi.", - "classicube.viafabricplus.error.password": "Väärä salasana.", - "classicube.viafabricplus.error.verification": "Käyttäjä ei ole vielä vahvistanut sähköpostiaan.", - "classicube.viafabricplus.error.logincode": "Monivaiheinen todennus pyydetty. Katso sähköpostiisi.", + "classic4j_library.viafabricplus.error.token": "Väärä tokeni. Onko sinun ViaFabricPlus vanhentunut?", + "classic4j_library.viafabricplus.error.username": "Väärä käyttäjänimi.", + "classic4j_library.viafabricplus.error.password": "Väärä salasana.", + "classic4j_library.viafabricplus.error.verification": "Käyttäjä ei ole vielä vahvistanut sähköpostiaan.", + "classic4j_library.viafabricplus.error.logincode": "Monivaiheinen todennus pyydetty. Katso sähköpostiisi.", "classicube.viafabricplus.warning": "Tämä ominaisuus lähettää API-pyyntöjä ClassiCube API:hin.", diff --git a/src/main/resources/assets/viafabricplus/lang/fr_fr.json b/src/main/resources/assets/viafabricplus/lang/fr_fr.json index 1a6893540..014d96e4d 100644 --- a/src/main/resources/assets/viafabricplus/lang/fr_fr.json +++ b/src/main/resources/assets/viafabricplus/lang/fr_fr.json @@ -1,74 +1,74 @@ { - "misc.viafabricplus.settings": "Paramètres", - "misc.viafabricplus.on": "Activé", - "misc.viafabricplus.off": "Désactivé", - "misc.viafabricplus.lt": "Gauche; Haut", - "misc.viafabricplus.rt": "Droite; Haut", - "misc.viafabricplus.lb": "Gauche; Bas", - "misc.viafabricplus.rb": "Droite; Bas", - "misc.viafabricplus.cancel": "Annuler", - "misc.viafabricplus.cancelreset": "Annuler et Réinitialiser", - "misc.viafabricplus.logout": "Se déconnecter", - "misc.viafabricplus.online": "Mode en ligne", - "misc.viafabricplus.reset": "Réinitialiser", - "misc.viafabricplus.copy": "Copier le code", + "base.viafabricplus.settings": "Paramètres", + "base.viafabricplus.on": "Activé", + "base.viafabricplus.off": "Désactivé", + "base.viafabricplus.left_top": "Gauche; Haut", + "base.viafabricplus.right_top": "Droite; Haut", + "base.viafabricplus.left_bottom": "Gauche; Bas", + "base.viafabricplus.right_bottom": "Droite; Bas", + "base.viafabricplus.cancel": "Annuler", + "base.viafabricplus.cancel_and_reset": "Annuler et Réinitialiser", + "base.viafabricplus.logout": "Se déconnecter", + "base.viafabricplus.online_mode": "Mode en ligne", + "base.viafabricplus.reset": "Réinitialiser", + "base.viafabricplus.copy_code": "Copier le code", - "general.viafabricplus.secret": "Montrer les Super Secret Settings", - "general.viafabricplus.extrainformation": "Afficher des informations supplémentaires dans le Hud de debug", - "general.viafabricplus.classicloading": "Afficher la progression du chargement classique dans l'écran de connexion", - "general.viafabricplus.main": "Orientation du bouton principal", - "general.viafabricplus.creative": "Supprimer les éléments non disponibles de l'inventaire créatif", - "general.viafabricplus.protocolsync": "Modifier automatiquement les paramètres en fonction de la version utilisée", - "general.viafabricplus.autodetect": "Détecter automatiquement la version", + "general_settings.viafabricplus.super_secret_settings": "Montrer les Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Afficher des informations supplémentaires dans le Hud de debug", + "general_settings.viafabricplus.show_classic_loading_progress": "Afficher la progression du chargement classique dans l'écran de connexion", + "general_settings.viafabricplus.main": "Orientation du bouton principal", + "general_settings.viafabricplus.filter_creative_tabs": "Supprimer les éléments non disponibles de l'inventaire créatif", + "general_settings.viafabricplus.protocolsync": "Modifier automatiquement les paramètres en fonction de la version utilisée", + "general_settings.viafabricplus.auto_detect_version": "Détecter automatiquement la version", "experimental.viafabricplus.chunkborderfix": "Réparer les bordures de Chunk", "experimental.viafabricplus.watermovement": "Détection des bords du mouvement de l'eau", - "debug.viafabricplus.sequence": "Désactiver le séquençage", - "debug.viafabricplus.merchant": "Lisser les écrans des marchands", - "debug.viafabricplus.postfix": "Exécuter les entrées de manière synchronisée", - "debug.viafabricplus.sneakinstant": "Sneak instantané", - "debug.viafabricplus.inventory": "Envoyer le paquet d'inventaire ouvert", - "debug.viafabricplus.cooldown": "Supprimer les temps de recharge", - "debug.viafabricplus.idle": "Envoyer le paquet d'inactivité", - "debug.viafabricplus.attribute": "Remplacer les modificateurs d'attribut", - "debug.viafabricplus.replacesneak": "Remplacer le sneaking", - "debug.viafabricplus.longsneak": "Sneaking prolongé", - "debug.viafabricplus.legacypseeds": "Vitesses d'exploitation minière héritées", + "debug_settings.viafabricplus.disable_sequencing": "Désactiver le séquençage", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Lisser les écrans des marchands", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Exécuter les entrées de manière synchronisée", + "debug_settings.viafabricplus.sneak_instant": "Sneak instantané", + "debug_settings.viafabricplus.send_open_inventory_packet": "Envoyer le paquet d'inventaire ouvert", + "debug_settings.viafabricplus.remove_cooldowns": "Supprimer les temps de recharge", + "debug_settings.viafabricplus.send_idle_packet": "Envoyer le paquet d'inactivité", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Remplacer les modificateurs d'attribut", + "debug_settings.viafabricplus.replace_sneaking": "Remplacer le sneaking", + "debug_settings.viafabricplus.long_sneaking": "Sneaking prolongé", + "debug_settings.viafabricplus.legacy_mining_speeds": "Vitesses d'exploitation minière héritées", - "authentication.viafabricplus.betacraft": "Utiliser l'authentification BetaCraft", - "authentication.viafabricplus.verify": "Autoriser ViaLegacy à appeler joinServer() pour vérifier la session", - "authentication.viafabricplus.fail": "Déconnecter si l'appel joinServer() échoue", - "authentication.viafabricplus.classicube": "Forcer la version CPE si ClassiCube est utilisé", - "authentication.viafabricplus.spoof": "Fausser le nom d'utilisateur pour le nom ClassiCube si ClassiCube est utilisé", - "authentication.viafabricplus.skin": "Permettre à ViaLegacy de charger les skins dans les versions héritées", - "authentication.viafabricplus.bedrock": "Cliquer pour définir un compte pour l'édition Bedrock", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Utiliser l'authentification BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Autoriser ViaLegacy à appeler joinServer() pour vérifier la session", + "authentication_settings.viafabricplus.fail": "Déconnecter si l'appel joinServer() échoue", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Forcer la version CPE si ClassiCube est utilisé", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Fausser le nom d'utilisateur pour le nom ClassiCube si ClassiCube est utilisé", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Permettre à ViaLegacy de charger les skins dans les versions héritées", + "authentication_settings.viafabricplus.bedrock": "Cliquer pour définir un compte pour l'édition Bedrock", - "visual.viafabricplus.secure": "Désactiver l'avertissement de chat sécurisé", - "visual.viafabricplus.indicator": "Masquer l'indicateur de signature", - "visual.viafabricplus.jigsaw": "Supprimer les fonctionnalités plus récentes de l'écran Jigsaw", - "visual.viafabricplus.stoneslab": "Remplacer la dalle en chêne pétrifiée", - "visual.viafabricplus.armor": "Émuler l'HUD d'armure", - "visual.viafabricplus.command": "Supprimer les fonctionnalités plus récentes de l'écran du bloc de commande", - "visual.viafabricplus.oof": "Remplacer le son de blessure par le son OOF", - "visual.viafabricplus.betahud": "Supprimer les nouveaux éléments de l'HUD", - "visual.viafabricplus.classic": "Remplacer l'inventaire créatif", - "visual.viafabricplus.walkanimation": "Ancienne animation de marche", - "visual.viafabricplus.sodium": "Corriger le rendu de chunk de Sodium", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Désactiver l'avertissement de chat sécurisé", + "visual_settings.viafabricplus.hide_signature_indicator": "Masquer l'indicateur de signature", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Supprimer les fonctionnalités plus récentes de l'écran Jigsaw", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Remplacer la dalle en chêne pétrifiée", + "visual_settings.viafabricplus.emulate_armor_hud": "Émuler l'HUD d'armure", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Supprimer les fonctionnalités plus récentes de l'écran du bloc de commande", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Remplacer le son de blessure par le son OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Supprimer les nouveaux éléments de l'HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Remplacer l'inventaire créatif", + "visual_settings.viafabricplus.old_walking_animation": "Ancienne animation de marche", + "visual_settings.viafabricplus.sodium": "Corriger le rendu de chunk de Sodium", - "bedrocklogin.viafabricplus.text": "Votre navigateur devrait s'être ouvert. Veuillez entrer le code suivant: %s. Fermer cette fenêtre annulera le processus!", + "bedrock.viafabricplus.login": "Votre navigateur devrait s'être ouvert. Veuillez entrer le code suivant: %s. Fermer cette fenêtre annulera le processus!", "bedrocklogin.viafabricplus.error": "Une erreur s'est produite ! Veuillez consulter latest.log pour plus d'informations. Veuillez signaler le bogue à l'adresse : \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "Veuillez sélectionner la version avec laquelle le serveur doit être pingé/connecté", + "base.viafabricplus.force_version_title": "Veuillez sélectionner la version avec laquelle le serveur doit être pingé/connecté", "classicube.viafabricplus.account": "Vous pouvez créer un compte ici : https://www.classicube.net/", "classicube.viafabricplus.loading": "Chargement des informations de profil et de la liste des serveurs...", - "classicube.viafabricplus.error.token": "Jeton incorrect. ViaFabricPlus est à jour ?", - "classicube.viafabricplus.error.username": "Nom d'utilisateur invalide.", - "classicube.viafabricplus.error.password": "Mot de passe invalide.", - "classicube.viafabricplus.error.verification": "L'utilisateur n'a pas encore vérifié son adresse e-mail.", - "classicube.viafabricplus.error.logincode": "L'authentification multifacteur a été demandée. Veuillez vérifier votre courrier électronique.", + "classic4j_library.viafabricplus.error.token": "Jeton incorrect. ViaFabricPlus est à jour ?", + "classic4j_library.viafabricplus.error.username": "Nom d'utilisateur invalide.", + "classic4j_library.viafabricplus.error.password": "Mot de passe invalide.", + "classic4j_library.viafabricplus.error.verification": "L'utilisateur n'a pas encore vérifié son adresse e-mail.", + "classic4j_library.viafabricplus.error.logincode": "L'authentification multifacteur a été demandée. Veuillez vérifier votre courrier électronique.", "classicube.viafabricplus.warning": "Cette fonctionnalité enverra des requêtes API à l'API ClassiCube.", diff --git a/src/main/resources/assets/viafabricplus/lang/hu_hu.json b/src/main/resources/assets/viafabricplus/lang/hu_hu.json index 5478e6c3e..4717b2dbd 100644 --- a/src/main/resources/assets/viafabricplus/lang/hu_hu.json +++ b/src/main/resources/assets/viafabricplus/lang/hu_hu.json @@ -1,94 +1,94 @@ { "modmenu.descriptionTranslation.viafabricplus": "Fabric mod, mellyel MINDEN Minecraft szerververzióhoz (Release, Beta, Alpha, Classic, Snapshotok, Bedrock) csatlakozhatsz, életminőségi javításokkal a játékmenethez", - "misc.viafabricplus.addserverscreenbuttontitle": "Verzió beállítása erre a szerverre", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.cancel": "Mégse", - "misc.viafabricplus.cancelreset": "Mégse és visszaállítás", - "misc.viafabricplus.copy": "Kód másolása", - "misc.viafabricplus.error": "Valami elromlott! Kérlek próbáld meg később", - "misc.viafabricplus.lb": "Bal; Alul", - "misc.viafabricplus.logout": "Kijelentkezés", - "misc.viafabricplus.lt": "Bal; Felül", - "misc.viafabricplus.off": "Ki", - "misc.viafabricplus.on": "Be", - "misc.viafabricplus.online": "Online Mód", - "misc.viafabricplus.rb": "Jobb; Alul", - "misc.viafabricplus.reset": "Visszaállítás", - "misc.viafabricplus.rt": "Jobb; Felül", - "misc.viafabricplus.serverversion": "Szerververzió: %s", - "misc.viafabricplus.settings": "Beállítások", - "misc.viafabricplus.translate": "Via lefordítja erre: %s", + "base.viafabricplus.set_version_for_this_server": "Verzió beállítása erre a szerverre", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.cancel": "Mégse", + "base.viafabricplus.cancel_and_reset": "Mégse és visszaállítás", + "base.viafabricplus.copy_code": "Kód másolása", + "base.viafabricplus.something_went_wrong": "Valami elromlott! Kérlek próbáld meg később", + "base.viafabricplus.left_bottom": "Bal; Alul", + "base.viafabricplus.logout": "Kijelentkezés", + "base.viafabricplus.left_top": "Bal; Felül", + "base.viafabricplus.off": "Ki", + "base.viafabricplus.on": "Be", + "base.viafabricplus.online_mode": "Online Mód", + "base.viafabricplus.right_bottom": "Jobb; Alul", + "base.viafabricplus.reset": "Visszaállítás", + "base.viafabricplus.right_top": "Jobb; Felül", + "base.viafabricplus.server_version": "Szerververzió: %s", + "base.viafabricplus.settings": "Beállítások", + "base.viafabricplus.via_translates_to": "Via lefordítja erre: %s", - "settings.viafabricplus.authentication": "Hitelesítés", - "settings.viafabricplus.bedrock": "Bedrock", - "settings.viafabricplus.debug": "Debug", - "settings.viafabricplus.experimental": "Kísérleti", - "settings.viafabricplus.general": "Általános", - "settings.viafabricplus.visual": "Vizuális", + "setting_group_name.viafabricplus.authentication": "Hitelesítés", + "setting_group_name.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.debug": "Debug", + "setting_group_name.viafabricplus.experimental": "Kísérleti", + "setting_group_name.viafabricplus.general": "Általános", + "setting_group_name.viafabricplus.visual": "Vizuális", - "general.viafabricplus.addserverscreenbutton": "Elhelyezése a gombnak a Szerver felvétele képernyőn", - "general.viafabricplus.advertised": "Hirdetett/szerver verzió megjelenítése Többjátékos módban", - "general.viafabricplus.autodetect": "Automatikus verziófelismerés", - "general.viafabricplus.classicloading": "Klasszikus folyamatjelző mutatása a csatlakozási képernyőn", - "general.viafabricplus.creative": "Nem elérhető tárgyak eltávolítása a kreatív felszerelésből", - "general.viafabricplus.extrainformation": "Extra információ mutatása a Debug HUD-ban", - "general.viafabricplus.main": "Fő gomb elhelyezése", - "general.viafabricplus.secret": "Super Secret Settings mutatása", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Elhelyezése a gombnak a Szerver felvétele képernyőn", + "general_settings.viafabricplus.show_advertised_server_version": "Hirdetett/szerver verzió megjelenítése Többjátékos módban", + "general_settings.viafabricplus.auto_detect_version": "Automatikus verziófelismerés", + "general_settings.viafabricplus.show_classic_loading_progress": "Klasszikus folyamatjelző mutatása a csatlakozási képernyőn", + "general_settings.viafabricplus.filter_creative_tabs": "Nem elérhető tárgyak eltávolítása a kreatív felszerelésből", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Extra információ mutatása a Debug HUD-ban", + "general_settings.viafabricplus.main": "Fő gomb elhelyezése", + "general_settings.viafabricplus.super_secret_settings": "Super Secret Settings mutatása", - "bedrock.viafabricplus.authentication": "Kattints egy Bedrock Edition fiók beállításához", - "bedrock.viafabricplus.confirmtransfer": "Kérdő GUI megnyitása szerverváltás megerősítéséhez", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Kattints egy Bedrock Edition fiók beállításához", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Kérdő GUI megnyitása szerverváltás megerősítéséhez", "experimental.viafabricplus.chunkborderfix": "Chunk határok megjavítása", "experimental.viafabricplus.watermovement": "Vízalatti mozgás szél érzékelés", - "debug.viafabricplus.attribute": "Attribútum kicserélése", - "debug.viafabricplus.cooldown": "Lehűlések eltávolítása", - "debug.viafabricplus.idle": "Tétlen adatcsomagok küldése", - "debug.viafabricplus.inventory": "Felszerelést kinyitó adatcsomagok küldése", - "debug.viafabricplus.legacypseeds": "Régi bányászati sebességek", - "debug.viafabricplus.longsneak": "Hosszú lopakodás", - "debug.viafabricplus.merchant": "Kereskedelmi képernyő kisimítása", - "debug.viafabricplus.postfix": "Bemenetek szinkronizált végrehajtása", - "debug.viafabricplus.replacesneak": "Lopakodás kicserélése", - "debug.viafabricplus.sequence": "Szekvenálás kikapcsolása", - "debug.viafabricplus.sneakinstant": "Közvetlen lopakodás", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Attribútum kicserélése", + "debug_settings.viafabricplus.remove_cooldowns": "Lehűlések eltávolítása", + "debug_settings.viafabricplus.send_idle_packet": "Tétlen adatcsomagok küldése", + "debug_settings.viafabricplus.send_open_inventory_packet": "Felszerelést kinyitó adatcsomagok küldése", + "debug_settings.viafabricplus.legacy_mining_speeds": "Régi bányászati sebességek", + "debug_settings.viafabricplus.long_sneaking": "Hosszú lopakodás", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Kereskedelmi képernyő kisimítása", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Bemenetek szinkronizált végrehajtása", + "debug_settings.viafabricplus.replace_sneaking": "Lopakodás kicserélése", + "debug_settings.viafabricplus.disable_sequencing": "Szekvenálás kikapcsolása", + "debug_settings.viafabricplus.sneak_instant": "Közvetlen lopakodás", - "authentication.viafabricplus.betacraft": "BetaCraft hitelesítés használata", - "authentication.viafabricplus.classicube": "CPE verzió kényszerítése ClassiCube használata esetén", - "authentication.viafabricplus.error": "A ViaFabricPlus nem tudta ellenőrizni a munkamenetet! Kérlek jelentkezz be egy fiókba, vagy kapcsold ki a BetaCraft hitelesítést a ViaFabricPlus beállításaiban", - "authentication.viafabricplus.fail": "Kapcsolat megszakítása, ha a joinServer() hívás hibázik", - "authentication.viafabricplus.skin": "Skinek betöltése régi verziókban a ViaLegacy által", - "authentication.viafabricplus.spoof": "Felh. név hamisítása a ClassiCube névre C. Cube használata esetén", - "authentication.viafabricplus.verify": "A munkamenet a ViaLegacy joinServer() hívásával ellenőrizhető", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "BetaCraft hitelesítés használata", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "CPE verzió kényszerítése ClassiCube használata esetén", + "authentication_settings.viafabricplus.failed_to_verify_session": "A ViaFabricPlus nem tudta ellenőrizni a munkamenetet! Kérlek jelentkezz be egy fiókba, vagy kapcsold ki a BetaCraft hitelesítést a ViaFabricPlus beállításaiban", + "authentication_settings.viafabricplus.fail": "Kapcsolat megszakítása, ha a joinServer() hívás hibázik", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Skinek betöltése régi verziókban a ViaLegacy által", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Felh. név hamisítása a ClassiCube névre C. Cube használata esetén", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "A munkamenet a ViaLegacy joinServer() hívásával ellenőrizhető", - "visual.viafabricplus.armor": "Páncél HUD emulálása", - "visual.viafabricplus.betahud": "Újabb HUD elemek eltávolítása", - "visual.viafabricplus.classic": "Kreatív felszerelés kicserélése", - "visual.viafabricplus.command": "Újabb funkciók eltávolítása a Parancsblokk képernyőről", - "visual.viafabricplus.fontrendererbehaviour": "Betűkészlet renderelő viselkedésének módosítása", - "visual.viafabricplus.indicator": "Aláírásjelző elrejtése", - "visual.viafabricplus.jigsaw": "Újabb funkciók eltávolítása a Kirakósblokk képernyőről", - "visual.viafabricplus.oof": "A sebzés hangjának lecserélése az OOF hanggal", - "visual.viafabricplus.secure": "Biztonságos chat figyelmeztetés kikapcsolása", - "visual.viafabricplus.sodium": "Sodium Chunk renderelő megjavítása", - "visual.viafabricplus.stoneslab": "Megkövült tölgyfa lap kicserélése", - "visual.viafabricplus.walkanimation": "Régi séta animáció", + "visual_settings.viafabricplus.emulate_armor_hud": "Páncél HUD emulálása", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Újabb HUD elemek eltávolítása", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Kreatív felszerelés kicserélése", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Újabb funkciók eltávolítása a Parancsblokk képernyőről", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Betűkészlet renderelő viselkedésének módosítása", + "visual_settings.viafabricplus.hide_signature_indicator": "Aláírásjelző elrejtése", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Újabb funkciók eltávolítása a Kirakósblokk képernyőről", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "A sebzés hangjának lecserélése az OOF hanggal", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Biztonságos chat figyelmeztetés kikapcsolása", + "visual_settings.viafabricplus.sodium": "Sodium Chunk renderelő megjavítása", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Megkövült tölgyfa lap kicserélése", + "visual_settings.viafabricplus.old_walking_animation": "Régi séta animáció", "bedrocklogin.viafabricplus.error": "Hiba történt! További információért lásd a latest.log-ot,\nkérlek, jelentsd a bug-ot itt: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "bedrocklogin.viafabricplus.text": "A böngésződnek meg kellett volna nyílnia.\nKérlek írd be a következő kódot: %s\nEzen képernyő bezárása leállítja a folyamatot!", + "bedrock.viafabricplus.login": "A böngésződnek meg kellett volna nyílnia.\nKérlek írd be a következő kódot: %s\nEzen képernyő bezárása leállítja a folyamatot!", "bedrockplay.viafabricplus.confirmtransfer": "Szeretnél átmenni a következő szerverre?\n%s\n\nEz megszakítja a jelenlegi szerver kapcsolatát, és csatlakozik az új szerverre.", - "forceversion.viafabricplus.title": "Kérlek válaszd ki azt a verziót, amellyel a szervert pingelni/csatlakozni kell", + "base.viafabricplus.force_version_title": "Kérlek válaszd ki azt a verziót, amellyel a szervert pingelni/csatlakozni kell", "classicube.viafabricplus.account": "Fiókot itt lehet létrehozni: https://www.classicube.net/", "classicube.viafabricplus.loading": "Profilinformáció és szerverlista betöltése...", - "classicube.viafabricplus.error.logincode": "Többfaktoros hitelesítés szükséges. Kérlek ellenőrizd az E-mailed.", - "classicube.viafabricplus.error.password": "Érvénytelen jelszó.", - "classicube.viafabricplus.error.token": "Érvénytelen token. Elavult a ViaFabricPlus-od?", - "classicube.viafabricplus.error.username": "Érvénytelen felhasználónév.", - "classicube.viafabricplus.error.verification": "A felhasználó még nem erősítette meg az E-mail címét.", + "classic4j_library.viafabricplus.error.logincode": "Többfaktoros hitelesítés szükséges. Kérlek ellenőrizd az E-mailed.", + "classic4j_library.viafabricplus.error.password": "Érvénytelen jelszó.", + "classic4j_library.viafabricplus.error.token": "Érvénytelen token. Elavult a ViaFabricPlus-od?", + "classic4j_library.viafabricplus.error.username": "Érvénytelen felhasználónév.", + "classic4j_library.viafabricplus.error.verification": "A felhasználó még nem erősítette meg az E-mail címét.", "classicube.viafabricplus.warning": "Ez a funkció API-kéréseket fog küldeni a ClassiCube API-jának.", diff --git a/src/main/resources/assets/viafabricplus/lang/ja_jp.json b/src/main/resources/assets/viafabricplus/lang/ja_jp.json index b7f3f299b..ed6c32498 100644 --- a/src/main/resources/assets/viafabricplus/lang/ja_jp.json +++ b/src/main/resources/assets/viafabricplus/lang/ja_jp.json @@ -1,68 +1,68 @@ { - "misc.viafabricplus.settings": "設定", - "misc.viafabricplus.on": "オン", - "misc.viafabricplus.off": "オフ", - "misc.viafabricplus.lt": "左上", - "misc.viafabricplus.rt": "右上", - "misc.viafabricplus.lb": "左下", - "misc.viafabricplus.rb": "右下", - "misc.viafabricplus.cancel": "キャンセル", - "misc.viafabricplus.cancelreset": "リセットして閉じる", - "misc.viafabricplus.logout": "ログアウト", - "misc.viafabricplus.online": "オンラインモード", - "misc.viafabricplus.reset": "リセット", + "base.viafabricplus.settings": "設定", + "base.viafabricplus.on": "オン", + "base.viafabricplus.off": "オフ", + "base.viafabricplus.left_top": "左上", + "base.viafabricplus.right_top": "右上", + "base.viafabricplus.left_bottom": "左下", + "base.viafabricplus.right_bottom": "右下", + "base.viafabricplus.cancel": "キャンセル", + "base.viafabricplus.cancel_and_reset": "リセットして閉じる", + "base.viafabricplus.logout": "ログアウト", + "base.viafabricplus.online_mode": "オンラインモード", + "base.viafabricplus.reset": "リセット", - "general.viafabricplus.secret": "Super Secret Settingsを表示", - "general.viafabricplus.extrainformation": "デバッグ画面に追加情報を表示", - "general.viafabricplus.classicloading": "接続画面に昔の読み込み進行情報を表示", - "general.viafabricplus.main": "メインボタンの位置", - "general.viafabricplus.creative": "利用不可能なアイテムをクリエイティブタブから削除", - "general.viafabricplus.protocolsync": "選択中のバージョンに基づいて設定を自動的に変更", + "general_settings.viafabricplus.super_secret_settings": "Super Secret Settingsを表示", + "general_settings.viafabricplus.extra_information_in_debug_hud": "デバッグ画面に追加情報を表示", + "general_settings.viafabricplus.show_classic_loading_progress": "接続画面に昔の読み込み進行情報を表示", + "general_settings.viafabricplus.main": "メインボタンの位置", + "general_settings.viafabricplus.filter_creative_tabs": "利用不可能なアイテムをクリエイティブタブから削除", + "general_settings.viafabricplus.protocolsync": "選択中のバージョンに基づいて設定を自動的に変更", - "debug.viafabricplus.sequence": "優先順位付けを無効化", - "debug.viafabricplus.merchant": "取引の画面を滑らかにする", - "debug.viafabricplus.postfix": "入力を同期して実行する", - "debug.viafabricplus.sneakinstant": "スニーク瞬間", - "debug.viafabricplus.inventory": "インベントリが開いたことをパケット送信", - "debug.viafabricplus.cooldown": "クールダウンを削除", - "debug.viafabricplus.idle": "無操作パケットを送信", - "debug.viafabricplus.attribute": "属性修飾子を置換", - "debug.viafabricplus.replacesneak": "スニークの置換", - "debug.viafabricplus.longsneak": "長いスニーク", - "debug.viafabricplus.legacypseeds": "従来の採掘速度", + "debug_settings.viafabricplus.disable_sequencing": "優先順位付けを無効化", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "取引の画面を滑らかにする", + "debug_settings.viafabricplus.execute_inputs_in_sync": "入力を同期して実行する", + "debug_settings.viafabricplus.sneak_instant": "スニーク瞬間", + "debug_settings.viafabricplus.send_open_inventory_packet": "インベントリが開いたことをパケット送信", + "debug_settings.viafabricplus.remove_cooldowns": "クールダウンを削除", + "debug_settings.viafabricplus.send_idle_packet": "無操作パケットを送信", + "debug_settings.viafabricplus.replace_attribute_modifiers": "属性修飾子を置換", + "debug_settings.viafabricplus.replace_sneaking": "スニークの置換", + "debug_settings.viafabricplus.long_sneaking": "長いスニーク", + "debug_settings.viafabricplus.legacy_mining_speeds": "従来の採掘速度", - "authentication.viafabricplus.betacraft": "BetaCraft認証を使用", - "authentication.viafabricplus.verify": "ViaLegacyがjoinServer()を呼び出してセッションを検証することを許可", - "authentication.viafabricplus.fail": "joinServer() の呼び出し失敗時に切断", - "authentication.viafabricplus.classicube": "ClassiCubeを使用している場合は CPEバージョンを強制", - "authentication.viafabricplus.spoof": "ClassiCubeを使用している場合はClassiCubeのユーザー名に変更", - "authentication.viafabricplus.bedrock": "クリックしてBedrock edition用のアカウントを用意", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "BetaCraft認証を使用", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "ViaLegacyがjoinServer()を呼び出してセッションを検証することを許可", + "authentication_settings.viafabricplus.fail": "joinServer() の呼び出し失敗時に切断", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "ClassiCubeを使用している場合は CPEバージョンを強制", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "ClassiCubeを使用している場合はClassiCubeのユーザー名に変更", + "authentication_settings.viafabricplus.bedrock": "クリックしてBedrock edition用のアカウントを用意", - "visual.viafabricplus.secure": "安全なチャットの警告を無効", - "visual.viafabricplus.indicator": "チャットの非署名表示を隠す", - "visual.viafabricplus.jigsaw": "ジグソー画面から新しい機能を削除", - "visual.viafabricplus.stoneslab": "石化したオークのハーフブロックを置換", - "visual.viafabricplus.armor": "防具のHUDを仮想化", - "visual.viafabricplus.command": "コマンドブロックの画面から新しい機能を削除", - "visual.viafabricplus.oof": "ダメージ音をオゥッに変更", - "visual.viafabricplus.betahud": "新しいHUD要素を削除", - "visual.viafabricplus.classic": "クリエイティブインベントリの置換", - "visual.viafabricplus.walkanimation": "以前の歩行アニメーション", - "visual.viafabricplus.sodium": "Sodiumのチャンク描画を修正", + "visual_settings.viafabricplus.disable_secure_chat_warning": "安全なチャットの警告を無効", + "visual_settings.viafabricplus.hide_signature_indicator": "チャットの非署名表示を隠す", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "ジグソー画面から新しい機能を削除", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "石化したオークのハーフブロックを置換", + "visual_settings.viafabricplus.emulate_armor_hud": "防具のHUDを仮想化", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "コマンドブロックの画面から新しい機能を削除", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "ダメージ音をオゥッに変更", + "visual_settings.viafabricplus.remove_newer_hud_elements": "新しいHUD要素を削除", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "クリエイティブインベントリの置換", + "visual_settings.viafabricplus.old_walking_animation": "以前の歩行アニメーション", + "visual_settings.viafabricplus.sodium": "Sodiumのチャンク描画を修正", - "bedrocklogin.viafabricplus.text": "ブラウザが開きました。\nブラウザに次のコードを入力してください: %s\nこの画面を閉じるとログインが中断されます。", + "bedrock.viafabricplus.login": "ブラウザが開きました。\nブラウザに次のコードを入力してください: %s\nこの画面を閉じるとログインが中断されます。", "bedrocklogin.viafabricplus.error": "エラーが発生しました! 詳細についてはlasted.logを確認してください。\nまた、下記の場所でバグを報告してください。 \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "サーバーに接続するバージョンを選択", + "base.viafabricplus.force_version_title": "サーバーに接続するバージョンを選択", "classicube.viafabricplus.account": "ここでアカウントを作成できます: https://www.classicube.net/", "classicube.viafabricplus.loading": "プロファイル情報とサーバーリストを読み込んでいます...", - "classicube.viafabricplus.error.token": "トークンが正しくありません。ViaFabricPlusの更新を確認してください。", - "classicube.viafabricplus.error.username": "無効なユーザー名です。", - "classicube.viafabricplus.error.password": "無効なバスワードです。.", - "classicube.viafabricplus.error.verification": "このアカウントは、まだメール認証が行われていません。", - "classicube.viafabricplus.error.logincode": "多要素認証が要求されました。 メールを確認してください。", + "classic4j_library.viafabricplus.error.token": "トークンが正しくありません。ViaFabricPlusの更新を確認してください。", + "classic4j_library.viafabricplus.error.username": "無効なユーザー名です。", + "classic4j_library.viafabricplus.error.password": "無効なバスワードです。.", + "classic4j_library.viafabricplus.error.verification": "このアカウントは、まだメール認証が行われていません。", + "classic4j_library.viafabricplus.error.logincode": "多要素認証が要求されました。 メールを確認してください。", "classicube.viafabricplus.warning": "この機能は、APIリクエストを ClassiCube APIに送信します。", diff --git a/src/main/resources/assets/viafabricplus/lang/lb_lu.json b/src/main/resources/assets/viafabricplus/lang/lb_lu.json index cdd8611c9..0ff41e60a 100644 --- a/src/main/resources/assets/viafabricplus/lang/lb_lu.json +++ b/src/main/resources/assets/viafabricplus/lang/lb_lu.json @@ -1,51 +1,51 @@ { - "misc.viafabricplus.settings": "Astellungen", - "misc.viafabricplus.on": "Un", - "misc.viafabricplus.off": "Aus", - "misc.viafabricplus.lt": "Lenks, Uewen", - "misc.viafabricplus.rt": "Riets, Uewen", - "misc.viafabricplus.lb": "Lenks, Ennen", - "misc.viafabricplus.rb": "Riets, Ennen", - "misc.viafabricplus.cancel": "Ofbriechen", - "misc.viafabricplus.cancelreset": "Ofbriechen an zerecksetzen", + "base.viafabricplus.settings": "Astellungen", + "base.viafabricplus.on": "Un", + "base.viafabricplus.off": "Aus", + "base.viafabricplus.left_top": "Lenks, Uewen", + "base.viafabricplus.right_top": "Riets, Uewen", + "base.viafabricplus.left_bottom": "Lenks, Ennen", + "base.viafabricplus.right_bottom": "Riets, Ennen", + "base.viafabricplus.cancel": "Ofbriechen", + "base.viafabricplus.cancel_and_reset": "Ofbriechen an zerecksetzen", - "general.viafabricplus.secret": "Super Secret Settings", - "general.viafabricplus.extrainformation": "Zousätzlech Informatiounen am Debug-HUD Unweisen", - "general.viafabricplus.classicloading": "Lued-Fortschrett an der Classic Unweisen", - "general.viafabricplus.main": "Positioun vun den Haupt-Buttons", - "general.viafabricplus.creative": "Net verfügbar Items vum Kreativ-Tab entfernen", - "general.viafabricplus.protocolsync": "Astellungen automatisch Un die aktuell Versioun Upassen", + "general_settings.viafabricplus.super_secret_settings": "Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Zousätzlech Informatiounen am Debug-HUD Unweisen", + "general_settings.viafabricplus.show_classic_loading_progress": "Lued-Fortschrett an der Classic Unweisen", + "general_settings.viafabricplus.main": "Positioun vun den Haupt-Buttons", + "general_settings.viafabricplus.filter_creative_tabs": "Net verfügbar Items vum Kreativ-Tab entfernen", + "general_settings.viafabricplus.protocolsync": "Astellungen automatisch Un die aktuell Versioun Upassen", - "debug.viafabricplus.sequence": "Sequencing deaktiveieren", - "debug.viafabricplus.merchant": "Smooth out merchUnt screens", - "debug.viafabricplus.postfix": "Inputs Sync ausfeieren", - "debug.viafabricplus.sneakinstant": "InstUnt Sneak", - "debug.viafabricplus.inventory": "Inventory-Open Paket schecken", - "debug.viafabricplus.cooldown": "Cooldowns entfernen", - "debug.viafabricplus.idle": "IDLE-Paket schecken", - "debug.viafabricplus.attribute": "Attribute-Modifier entfernen", - "debug.viafabricplus.replacesneak": "Sneaken Unpassen", - "debug.viafabricplus.longsneak": "LUnges Sneaken", - "debug.viafabricplus.legacypseeds": "Legacy Abbaugeschwindigkeiten", + "debug_settings.viafabricplus.disable_sequencing": "Sequencing deaktiveieren", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Smooth out merchUnt screens", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Inputs Sync ausfeieren", + "debug_settings.viafabricplus.sneak_instant": "InstUnt Sneak", + "debug_settings.viafabricplus.send_open_inventory_packet": "Inventory-Open Paket schecken", + "debug_settings.viafabricplus.remove_cooldowns": "Cooldowns entfernen", + "debug_settings.viafabricplus.send_idle_packet": "IDLE-Paket schecken", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Attribute-Modifier entfernen", + "debug_settings.viafabricplus.replace_sneaking": "Sneaken Unpassen", + "debug_settings.viafabricplus.long_sneaking": "LUnges Sneaken", + "debug_settings.viafabricplus.legacy_mining_speeds": "Legacy Abbaugeschwindigkeiten", - "authentication.viafabricplus.betacraft": "BetaCraft-Authentisierung notzen", - "authentication.viafabricplus.verify": "Erlab ViaLegacy, joinServer() opzurufen, um d´Session zu verifizeieren", - "authentication.viafabricplus.fail": "Disconnecten, wann den joinServer()-Opruf en Fehler geheit", - "authentication.viafabricplus.bedrock": "Klick, um den Bedrock-Account zu setzen", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "BetaCraft-Authentisierung notzen", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Erlab ViaLegacy, joinServer() opzurufen, um d´Session zu verifizeieren", + "authentication_settings.viafabricplus.fail": "Disconnecten, wann den joinServer()-Opruf en Fehler geheit", + "authentication_settings.viafabricplus.bedrock": "Klick, um den Bedrock-Account zu setzen", - "visual.viafabricplus.secure": "Secher-Chat-Warnung ausschalten", - "visual.viafabricplus.indicator": "Signatur-Indikator Unweisen", - "visual.viafabricplus.jigsaw": "Mie Nei Features vum Jigsaw-Screen entfernen", - "visual.viafabricplus.stoneslab": "Petrified oak slab entfernen", - "visual.viafabricplus.armor": "Rüstungs-HUD emuleieren", - "visual.viafabricplus.command": "Mie nei Features vum Comman-Block-Screen entfernen", - "visual.viafabricplus.oof": "Schaden-Soan durch OOF-Soan ersetzen", - "visual.viafabricplus.betahud": "Mie nei HUD-Elemente entfernen", - "visual.viafabricplus.classic": "Kreativ-Inventar ersetzen", - "visual.viafabricplus.walkanimation": "Aal Laaf-Animatioun", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Secher-Chat-Warnung ausschalten", + "visual_settings.viafabricplus.hide_signature_indicator": "Signatur-Indikator Unweisen", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Mie Nei Features vum Jigsaw-Screen entfernen", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Petrified oak slab entfernen", + "visual_settings.viafabricplus.emulate_armor_hud": "Rüstungs-HUD emuleieren", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Mie nei Features vum Comman-Block-Screen entfernen", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Schaden-Soan durch OOF-Soan ersetzen", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Mie nei HUD-Elemente entfernen", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Kreativ-Inventar ersetzen", + "visual_settings.viafabricplus.old_walking_animation": "Aal Laaf-Animatioun", - "bedrocklogin.viafabricplus.text": "Däin Browser sollt elo opgaangen sinn.\nGeff w.e.g. den heien Code an: %s\nWann du desse Bildschirm zoumesst, gett den Prozess ofgebrach.", + "bedrock.viafabricplus.login": "Däin Browser sollt elo opgaangen sinn.\nGeff w.e.g. den heien Code an: %s\nWann du desse Bildschirm zoumesst, gett den Prozess ofgebrach.", "bedrocklogin.viafabricplus.error": "En Fehler ist opgetrieden! An der latest.log sin genauer Informatiounen;\n.e.g. Meld den Fehler enner: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "W.e.g. wähl die Versioun, die bäim Verbannen mat dem Server benotzt ginn soll" + "base.viafabricplus.force_version_title": "W.e.g. wähl die Versioun, die bäim Verbannen mat dem Server benotzt ginn soll" } diff --git a/src/main/resources/assets/viafabricplus/lang/pl_pl.json b/src/main/resources/assets/viafabricplus/lang/pl_pl.json index 86dfd17f1..3298c8ecd 100644 --- a/src/main/resources/assets/viafabricplus/lang/pl_pl.json +++ b/src/main/resources/assets/viafabricplus/lang/pl_pl.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Mod pozwalający na łączenie się do serwerów minecraft na KAŻDEJ wersji gry (Release, Snapshoty (wliczając wydania prima aprilis), Beta, Alpha, Classic oraz Bedrock) z drobnymi ulepszeniami rozgrywki.", - "misc.viafabricplus.settings": "Ustawienia", - "misc.viafabricplus.on": "Wł.", - "misc.viafabricplus.off": "Wył.", - "misc.viafabricplus.lt": "Lewy górny róg", - "misc.viafabricplus.rt": "Prawy górny róg", - "misc.viafabricplus.lb": "Lewy dolny róg", - "misc.viafabricplus.rb": "Prawy dolny róg", - "misc.viafabricplus.cancel": "Anuluj", - "misc.viafabricplus.cancelreset": "Anuluj i resetuj", - "misc.viafabricplus.logout": "Wyloguj się", - "misc.viafabricplus.online": "Tryb online", - "misc.viafabricplus.reset": "Resetuj", - "misc.viafabricplus.copy": "Kopiuj kod", - "misc.viafabricplus.error": "Coś poszło nie tak! Proszę, spróbuj ponownie później", - "misc.viafabricplus.translate": "Via tłumaczy na: %s", - "misc.viafabricplus.serverversion": "Wersja serwera: %s", - "misc.viafabricplus.auto": "Auto", - "misc.viafabricplus.addserverscreenbuttontitle": "Ustaw wersję dla tego serwera", - "misc.viafabricplus.all": "Vanilla i modyfikacje", - "misc.viafabricplus.vanillaonly": "Tylko vanilla", - "misc.viafabricplus.kick": "Wyrzuć", - "misc.viafabricplus.cancelnotify": "Anuluj i powiadom", + "base.viafabricplus.settings": "Ustawienia", + "base.viafabricplus.on": "Wł.", + "base.viafabricplus.off": "Wył.", + "base.viafabricplus.left_top": "Lewy górny róg", + "base.viafabricplus.right_top": "Prawy górny róg", + "base.viafabricplus.left_bottom": "Lewy dolny róg", + "base.viafabricplus.right_bottom": "Prawy dolny róg", + "base.viafabricplus.cancel": "Anuluj", + "base.viafabricplus.cancel_and_reset": "Anuluj i resetuj", + "base.viafabricplus.logout": "Wyloguj się", + "base.viafabricplus.online_mode": "Tryb online", + "base.viafabricplus.reset": "Resetuj", + "base.viafabricplus.copy_code": "Kopiuj kod", + "base.viafabricplus.something_went_wrong": "Coś poszło nie tak! Proszę, spróbuj ponownie później", + "base.viafabricplus.via_translates_to": "Via tłumaczy na: %s", + "base.viafabricplus.server_version": "Wersja serwera: %s", + "base.viafabricplus.auto": "Auto", + "base.viafabricplus.set_version_for_this_server": "Ustaw wersję dla tego serwera", + "base.viafabricplus.vanilla_and_modded": "Vanilla i modyfikacje", + "base.viafabricplus.vanilla_only": "Tylko vanilla", + "base.viafabricplus.kick": "Wyrzuć", + "base.viafabricplus.cancel_and_notify": "Anuluj i powiadom", - "settings.viafabricplus.authentication": "Uwierzytelnianie", - "settings.viafabricplus.experimental": "Eksperymenty", - "settings.viafabricplus.visual": "Wizualne", - "settings.viafabricplus.debug": "Debugowanie", - "settings.viafabricplus.general": "Ogólne", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Uwierzytelnianie", + "setting_group_name.viafabricplus.experimental": "Eksperymenty", + "setting_group_name.viafabricplus.visual": "Wizualne", + "setting_group_name.viafabricplus.debug": "Debugowanie", + "setting_group_name.viafabricplus.general": "Ogólne", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Pokazuj Super Secret Settings", - "general.viafabricplus.extrainformation": "Pokazuj dodatkowe informacje w interfejsie debugowania", - "general.viafabricplus.classicloading": "Pokazuj klasyczny pasek ładowania w ekranie łączenia", - "general.viafabricplus.multiplayerscreenbutton": "Lokalizacja przycisku w menu multiplayer", - "general.viafabricplus.addserverscreenbutton": "Pozycja przycisku ustawiania wersji w ekranie dodawania serwerów", - "general.viafabricplus.creative": "Usuwaj niedostępne przedmioty z ekwipunku trybu kreatywnego", - "general.viafabricplus.autodetect": "Automatycznie wykrywaj wersję gry", - "general.viafabricplus.advertised": "Pokazuj informacje dotyczące tłumaczenia pakietów po najechaniu na ikonę pingu w menu multiplayer", - "general.viafabricplus.ignoreerrors": "Sposób obsługiwania błędów tłumaczenia pakietów", + "general_settings.viafabricplus.super_secret_settings": "Pokazuj Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Pokazuj dodatkowe informacje w interfejsie debugowania", + "general_settings.viafabricplus.show_classic_loading_progress": "Pokazuj klasyczny pasek ładowania w ekranie łączenia", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Lokalizacja przycisku w menu multiplayer", + "general_settings.viafabricplus.add_server_screen_button_orientation": "Pozycja przycisku ustawiania wersji w ekranie dodawania serwerów", + "general_settings.viafabricplus.filter_creative_tabs": "Usuwaj niedostępne przedmioty z ekwipunku trybu kreatywnego", + "general_settings.viafabricplus.auto_detect_version": "Automatycznie wykrywaj wersję gry", + "general_settings.viafabricplus.show_advertised_server_version": "Pokazuj informacje dotyczące tłumaczenia pakietów po najechaniu na ikonę pingu w menu multiplayer", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Sposób obsługiwania błędów tłumaczenia pakietów", - "bedrock.viafabricplus.confirmtransfer": "Pytaj, żeby potwierdzić przełączanie do innych serwerów", - "bedrock.viafabricplus.authentication": "Naciśnij, aby ustawić konto dla minecraft bedrock edition", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Pytaj, żeby potwierdzić przełączanie do innych serwerów", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Naciśnij, aby ustawić konto dla minecraft bedrock edition", "experimental.viafabricplus.chunkborderfix": "Napraw granice chunków", "experimental.viafabricplus.watermovement": "Wykrywanie krawędzi ruchu wody", "experimental.viafabricplus.boatmovement": "Emuluj poruszanie się łódek i zamień ich model", - "debug.viafabricplus.sequence": "Wyłącz sekwencjonowanie", - "debug.viafabricplus.merchant": "Wygładź ekrany kupców", - "debug.viafabricplus.postfix": "Wykonuj dane wejściowe w synchronizacji", - "debug.viafabricplus.sneakinstant": "Kucaj natychmiastowo", - "debug.viafabricplus.inventory": "Wysyłaj pakiety otwierania ekwipunku", - "debug.viafabricplus.cooldown": "Usuń odstępy pomiędzy uderzeniami", - "debug.viafabricplus.idle": "Wysyłaj pakiety bezczynności", - "debug.viafabricplus.attribute": "Zamień modyfikatory atrybutów", - "debug.viafabricplus.replacesneak": "Zamień kucanie", - "debug.viafabricplus.longsneak": "Długie kucanie", - "debug.viafabricplus.legacypseeds": "Stare prędkości kopania", + "debug_settings.viafabricplus.disable_sequencing": "Wyłącz sekwencjonowanie", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Wygładź ekrany kupców", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Wykonuj dane wejściowe w synchronizacji", + "debug_settings.viafabricplus.sneak_instant": "Kucaj natychmiastowo", + "debug_settings.viafabricplus.send_open_inventory_packet": "Wysyłaj pakiety otwierania ekwipunku", + "debug_settings.viafabricplus.remove_cooldowns": "Usuń odstępy pomiędzy uderzeniami", + "debug_settings.viafabricplus.send_idle_packet": "Wysyłaj pakiety bezczynności", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Zamień modyfikatory atrybutów", + "debug_settings.viafabricplus.replace_sneaking": "Zamień kucanie", + "debug_settings.viafabricplus.long_sneaking": "Długie kucanie", + "debug_settings.viafabricplus.legacy_mining_speeds": "Stare prędkości kopania", - "authentication.viafabricplus.betacraft": "Używaj uwierzytelniania BetaCraft", - "authentication.viafabricplus.verify": "Zezwalaj na to, żeby ViaLegacy mogło używać joinServer(), aby weryfikować sesję", - "authentication.viafabricplus.fail": "Rozłącz się, jeżeli wywołanie joinServer() się nie powiedzie", - "authentication.viafabricplus.classicube": "Wymuszaj wersję CPE podczas korzystania z ClassiCube", - "authentication.viafabricplus.spoof": "Fałszuj nazwę użytkownika na nazwę ClassiCube podczas korzystania z ClassiCube", - "authentication.viafabricplus.skin": "Zezwalaj na to, żeby ViaLegacy ładowało skiny w starszych wersjach gry", - "authentication.viafabricplus.error": "Nie udało się zweryfikować twojej sesji! Proszę, zaloguj się na jakieś konto, albo wyłącz weryfikację BetaCraft w ustawieniach ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Używaj uwierzytelniania BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Zezwalaj na to, żeby ViaLegacy mogło używać joinServer(), aby weryfikować sesję", + "authentication_settings.viafabricplus.fail": "Rozłącz się, jeżeli wywołanie joinServer() się nie powiedzie", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Wymuszaj wersję CPE podczas korzystania z ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Fałszuj nazwę użytkownika na nazwę ClassiCube podczas korzystania z ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Zezwalaj na to, żeby ViaLegacy ładowało skiny w starszych wersjach gry", + "authentication_settings.viafabricplus.failed_to_verify_session": "Nie udało się zweryfikować twojej sesji! Proszę, zaloguj się na jakieś konto, albo wyłącz weryfikację BetaCraft w ustawieniach ViaFabricPlus", - "visual.viafabricplus.secure": "Wyłącz ostrzeżenie dotyczące bezpiecznego czatu", - "visual.viafabricplus.indicator": "Ukryj wskaźnik podpisywania wiadomości na czacie", - "visual.viafabricplus.jigsaw": "Usuń nowsze funkcje ekranu bloku konstrukcyjnego", - "visual.viafabricplus.stoneslab": "Zamień skamieniałą płytę dębową", - "visual.viafabricplus.armor": "Emuluj hud zbroi", - "visual.viafabricplus.command": "Usuń nowsze funkcje ekranu bloku komend", - "visual.viafabricplus.oof": "Zamień dźwięk otrzymywania obrażeń na \"OOF!\"", - "visual.viafabricplus.betahud": "Usuń nowsze elementy interfejsu", - "visual.viafabricplus.classic": "Zamień ekwipunek trybu kreatywnego", - "visual.viafabricplus.walkanimation": "Stara animacja chodzenia", - "visual.viafabricplus.sodium": "Napraw renderowanie chunków sodium", - "visual.viafabricplus.fontrendererbehaviour": "Zmień sposób działania renderowania czcionek", - "visual.viafabricplus.blockhitanimation": "Włącz animację uderzania bloków 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Wyłącz ostrzeżenie dotyczące bezpiecznego czatu", + "visual_settings.viafabricplus.hide_signature_indicator": "Ukryj wskaźnik podpisywania wiadomości na czacie", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Usuń nowsze funkcje ekranu bloku konstrukcyjnego", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Zamień skamieniałą płytę dębową", + "visual_settings.viafabricplus.emulate_armor_hud": "Emuluj hud zbroi", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Usuń nowsze funkcje ekranu bloku komend", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Zamień dźwięk otrzymywania obrażeń na \"OOF!\"", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Usuń nowsze elementy interfejsu", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Zamień ekwipunek trybu kreatywnego", + "visual_settings.viafabricplus.old_walking_animation": "Stara animacja chodzenia", + "visual_settings.viafabricplus.sodium": "Napraw renderowanie chunków sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Zmień sposób działania renderowania czcionek", + "visual_settings.viafabricplus.enable_block_hit_animation": "Włącz animację uderzania bloków 1.7", - "bedrocklogin.viafabricplus.text": "Powinna ci się otworzyć przeglądarka.\nProszę, wpisz ten kod: %s\nZamykanie tego ekranu będzie anulowało proces!", + "bedrock.viafabricplus.login": "Powinna ci się otworzyć przeglądarka.\nProszę, wpisz ten kod: %s\nZamykanie tego ekranu będzie anulowało proces!", "bedrocklogin.viafabricplus.error": "Wystąpił błąd! Zobacz latest.log po więcej informacji.\nProszę, zgłoś ten problem tutaj:\nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Czy chcesz przełączyć się na następujący serwer?\n%s\n\nRozłączy cię to z obecnym serwerem i połączy do nowego.", - "forceversion.viafabricplus.title": "Wybierz wersję, z którą chcesz pingować/łączyć się do serwera", + "base.viafabricplus.force_version_title": "Wybierz wersję, z którą chcesz pingować/łączyć się do serwera", "classicube.viafabricplus.account": "Możesz utworzyć swoje konto tutaj: https://www.classicube.net", "classicube.viafabricplus.loading": "Ładowanie informacji profilu i listy serwerów...", - "classicube.viafabricplus.error.token": "Niepoprawny token. Czy ViaFabricPlus nie jest przestarzałe? Spróbuj aktualizować tą modyfikację.", - "classicube.viafabricplus.error.username": "Niepoprawna nazwa użytkownika.", - "classicube.viafabricplus.error.password": "Niepoprawne hasło.", - "classicube.viafabricplus.error.verification": "Użytkownik nie zweryfikował jeszcze swojego adresu e-mail.", - "classicube.viafabricplus.error.logincode": "Wymagane jest uwierzytelnianie wieloskładnikowe. Proszę, sprawdź swój e-mail.", + "classic4j_library.viafabricplus.error.token": "Niepoprawny token. Czy ViaFabricPlus nie jest przestarzałe? Spróbuj aktualizować tą modyfikację.", + "classic4j_library.viafabricplus.error.username": "Niepoprawna nazwa użytkownika.", + "classic4j_library.viafabricplus.error.password": "Niepoprawne hasło.", + "classic4j_library.viafabricplus.error.verification": "Użytkownik nie zweryfikował jeszcze swojego adresu e-mail.", + "classic4j_library.viafabricplus.error.logincode": "Wymagane jest uwierzytelnianie wieloskładnikowe. Proszę, sprawdź swój e-mail.", "classicube.viafabricplus.warning": "Ta funkcja będzie wysyłała zapytania api do ClassiCube api.", diff --git a/src/main/resources/assets/viafabricplus/lang/ru_ru.json b/src/main/resources/assets/viafabricplus/lang/ru_ru.json index 0f891126d..4124aa722 100644 --- a/src/main/resources/assets/viafabricplus/lang/ru_ru.json +++ b/src/main/resources/assets/viafabricplus/lang/ru_ru.json @@ -2,92 +2,92 @@ "modmenu.summaryTranslation.viafabricplus": "Мод для подключения к серверам любых версий.", "modmenu.descriptionTranslation.viafabricplus": "Мод для Fabric, предназначенный для подключения к серверам §lлюбых§r версий Minecraft (Classic, Alpha, Beta, снапшотам, релизам и даже Bedrock) и содержащий приятные исправления для улучшения игрового процесса.", - "misc.viafabricplus.settings": "Настройки", - "misc.viafabricplus.on": "Вкл", - "misc.viafabricplus.off": "Выкл", - "misc.viafabricplus.lt": "Слева сверху", - "misc.viafabricplus.rt": "Справа сверху", - "misc.viafabricplus.lb": "Слева снизу", - "misc.viafabricplus.rb": "Справа снизу", - "misc.viafabricplus.cancel": "Назад", - "misc.viafabricplus.cancelreset": "Сбросить версию", - "misc.viafabricplus.logout": "Выйти", - "misc.viafabricplus.online": "Лицензионный", - "misc.viafabricplus.reset": "Сброс", - "misc.viafabricplus.copy": "Копировать код", - "misc.viafabricplus.error": "Что-то пошло не так. Повторите попытку позже.", - "misc.viafabricplus.translate": "Конвертация в формат %s", - "misc.viafabricplus.serverversion": "Версия сервера: %s", - "misc.viafabricplus.auto": "Авто", + "base.viafabricplus.settings": "Настройки", + "base.viafabricplus.on": "Вкл", + "base.viafabricplus.off": "Выкл", + "base.viafabricplus.left_top": "Слева сверху", + "base.viafabricplus.right_top": "Справа сверху", + "base.viafabricplus.left_bottom": "Слева снизу", + "base.viafabricplus.right_bottom": "Справа снизу", + "base.viafabricplus.cancel": "Назад", + "base.viafabricplus.cancel_and_reset": "Сбросить версию", + "base.viafabricplus.logout": "Выйти", + "base.viafabricplus.online_mode": "Лицензионный", + "base.viafabricplus.reset": "Сброс", + "base.viafabricplus.copy_code": "Копировать код", + "base.viafabricplus.something_went_wrong": "Что-то пошло не так. Повторите попытку позже.", + "base.viafabricplus.via_translates_to": "Конвертация в формат %s", + "base.viafabricplus.server_version": "Версия сервера: %s", + "base.viafabricplus.auto": "Авто", - "settings.viafabricplus.authentication": "Аутентификация", - "settings.viafabricplus.experimental": "Экспериментальные", - "settings.viafabricplus.visual": "Внешний вид", - "settings.viafabricplus.debug": "Отладка", - "settings.viafabricplus.general": "Основные", - "settings.viafabricplus.bedrock": "Bedrock", + "setting_group_name.viafabricplus.authentication": "Аутентификация", + "setting_group_name.viafabricplus.experimental": "Экспериментальные", + "setting_group_name.viafabricplus.visual": "Внешний вид", + "setting_group_name.viafabricplus.debug": "Отладка", + "setting_group_name.viafabricplus.general": "Основные", + "setting_group_name.viafabricplus.bedrock": "Bedrock", - "general.viafabricplus.secret": "Вернуть Super Secret Settings", - "general.viafabricplus.extrainformation": "Дополнительная информация на экране отладки", - "general.viafabricplus.classicloading": "Экран загрузки Classic при подключении", - "general.viafabricplus.main": "Позиция кнопки", - "general.viafabricplus.creative": "Удалять недоступные предметы из творческого инвентаря", - "general.viafabricplus.autodetect": "Автоматическое определение версии", - "general.viafabricplus.advertised": "Дополнительные сведения о версии сервера в сетевой игре", + "general_settings.viafabricplus.super_secret_settings": "Вернуть Super Secret Settings", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Дополнительная информация на экране отладки", + "general_settings.viafabricplus.show_classic_loading_progress": "Экран загрузки Classic при подключении", + "general_settings.viafabricplus.main": "Позиция кнопки", + "general_settings.viafabricplus.filter_creative_tabs": "Удалять недоступные предметы из творческого инвентаря", + "general_settings.viafabricplus.auto_detect_version": "Автоматическое определение версии", + "general_settings.viafabricplus.show_advertised_server_version": "Дополнительные сведения о версии сервера в сетевой игре", - "bedrock.viafabricplus.confirmtransfer": "Экран подтверждения перехода на другой сервер", - "bedrock.viafabricplus.authentication": "Нажмите для настройки учётной записи Bedrock Edition", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Экран подтверждения перехода на другой сервер", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Нажмите для настройки учётной записи Bedrock Edition", "experimental.viafabricplus.chunkborderfix": "Исправлять границы чанков", "experimental.viafabricplus.watermovement": "Проверять уровень воды для прыжка", - "debug.viafabricplus.sequence": "Отключить последовательность", - "debug.viafabricplus.merchant": "Ускорить интерфейс старых жителей", - "debug.viafabricplus.postfix": "Синхронизировать ввод", - "debug.viafabricplus.sneakinstant": "Моментальное приседание", - "debug.viafabricplus.inventory": "Отправлять пакет открытия инвентаря", - "debug.viafabricplus.cooldown": "Убрать задержку атаки", - "debug.viafabricplus.idle": "Отправлять пакет бездействия", - "debug.viafabricplus.attribute": "Заменять модификаторы атрибутов", - "debug.viafabricplus.replacesneak": "Заменять приседание", - "debug.viafabricplus.longsneak": "Долгое приседание", - "debug.viafabricplus.legacypseeds": "Старая скорость добычи блоков", + "debug_settings.viafabricplus.disable_sequencing": "Отключить последовательность", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Ускорить интерфейс старых жителей", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Синхронизировать ввод", + "debug_settings.viafabricplus.sneak_instant": "Моментальное приседание", + "debug_settings.viafabricplus.send_open_inventory_packet": "Отправлять пакет открытия инвентаря", + "debug_settings.viafabricplus.remove_cooldowns": "Убрать задержку атаки", + "debug_settings.viafabricplus.send_idle_packet": "Отправлять пакет бездействия", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Заменять модификаторы атрибутов", + "debug_settings.viafabricplus.replace_sneaking": "Заменять приседание", + "debug_settings.viafabricplus.long_sneaking": "Долгое приседание", + "debug_settings.viafabricplus.legacy_mining_speeds": "Старая скорость добычи блоков", - "authentication.viafabricplus.betacraft": "Использовать аутентификацию BetaCraft", - "authentication.viafabricplus.verify": "Разрешить ViaLegacy вызов joinServer() для проверки сессии", - "authentication.viafabricplus.fail": "Отключаться в случае сбоя вызова joinServer()", - "authentication.viafabricplus.classicube": "Устанавливать версию CPE при использовании ClassiCube", - "authentication.viafabricplus.spoof": "Имя пользователя ClassiCube при его использовании", - "authentication.viafabricplus.skin": "Разрешить ViaLegacy загружать скины в старых версиях", - "authentication.viafabricplus.error": "Не удалось проверить вашу сессию. Войдите в свою учётную запись или отключите аутентификацию BetaCraft в настройках ViaFabricPlus.", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Использовать аутентификацию BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Разрешить ViaLegacy вызов joinServer() для проверки сессии", + "authentication_settings.viafabricplus.fail": "Отключаться в случае сбоя вызова joinServer()", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Устанавливать версию CPE при использовании ClassiCube", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Имя пользователя ClassiCube при его использовании", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Разрешить ViaLegacy загружать скины в старых версиях", + "authentication_settings.viafabricplus.failed_to_verify_session": "Не удалось проверить вашу сессию. Войдите в свою учётную запись или отключите аутентификацию BetaCraft в настройках ViaFabricPlus.", - "visual.viafabricplus.secure": "Удалять уведомления о безопасности чата", - "visual.viafabricplus.indicator": "Скрывать индикатор цифровой подписи в чате", - "visual.viafabricplus.jigsaw": "Старый блок головоломки", - "visual.viafabricplus.stoneslab": "Старая окаменевшая дубовая плита", - "visual.viafabricplus.armor": "Эмулировать интерфейс брони", - "visual.viafabricplus.command": "Старый командный блок", - "visual.viafabricplus.oof": "Старый звук получения урона", - "visual.viafabricplus.betahud": "Старый интерфейс", - "visual.viafabricplus.classic": "Старый творческий инвентарь", - "visual.viafabricplus.walkanimation": "Старая анимация ходьбы", - "visual.viafabricplus.sodium": "Исправить рендеринг чанков Sodium", - "visual.viafabricplus.fontrendererbehaviour": "Старый шрифт", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Удалять уведомления о безопасности чата", + "visual_settings.viafabricplus.hide_signature_indicator": "Скрывать индикатор цифровой подписи в чате", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Старый блок головоломки", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Старая окаменевшая дубовая плита", + "visual_settings.viafabricplus.emulate_armor_hud": "Эмулировать интерфейс брони", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Старый командный блок", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Старый звук получения урона", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Старый интерфейс", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Старый творческий инвентарь", + "visual_settings.viafabricplus.old_walking_animation": "Старая анимация ходьбы", + "visual_settings.viafabricplus.sodium": "Исправить рендеринг чанков Sodium", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Старый шрифт", - "bedrocklogin.viafabricplus.text": "Сейчас должен открыться браузер.\nВведите следующий код: %s\nЗакрытие этого экрана приведёт к отмене процесса!", + "bedrock.viafabricplus.login": "Сейчас должен открыться браузер.\nВведите следующий код: %s\nЗакрытие этого экрана приведёт к отмене процесса!", "bedrocklogin.viafabricplus.error": "Произошла ошибка. Проверьте latest.log для получения дополнительных сведений.\nПожалуйста, сообщите о ней разработчику:\nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Вы действительно хотите перейти на следующий сервер?\n%s\n\nЭто приведёт к отключению от текущего сервера с последующим подключением к новому.", - "forceversion.viafabricplus.title": "Укажите версию для проверки связи с сервером и подключения к нему.", + "base.viafabricplus.force_version_title": "Укажите версию для проверки связи с сервером и подключения к нему.", "classicube.viafabricplus.account": "Создать учётную запись можно здесь: https://www.classicube.net", "classicube.viafabricplus.loading": "Загрузка профиля и списка серверов...", - "classicube.viafabricplus.error.token": "Некорректный токен. Возможно, версия ViaFabricPlus устарела.", - "classicube.viafabricplus.error.username": "Неверное имя пользователя.", - "classicube.viafabricplus.error.password": "Неверный пароль.", - "classicube.viafabricplus.error.verification": "Пользователь ещё не подтвердил свой адрес электронной почты.", - "classicube.viafabricplus.error.logincode": "Запрошена многофакторная аутентификация. Проверьте вашу электронную почту.", + "classic4j_library.viafabricplus.error.token": "Некорректный токен. Возможно, версия ViaFabricPlus устарела.", + "classic4j_library.viafabricplus.error.username": "Неверное имя пользователя.", + "classic4j_library.viafabricplus.error.password": "Неверный пароль.", + "classic4j_library.viafabricplus.error.verification": "Пользователь ещё не подтвердил свой адрес электронной почты.", + "classic4j_library.viafabricplus.error.logincode": "Запрошена многофакторная аутентификация. Проверьте вашу электронную почту.", "classicube.viafabricplus.warning": "Эта функция отправит запросы API к ClassiCube API.", diff --git a/src/main/resources/assets/viafabricplus/lang/th_th.json b/src/main/resources/assets/viafabricplus/lang/th_th.json index 3b7226547..dd56b381d 100644 --- a/src/main/resources/assets/viafabricplus/lang/th_th.json +++ b/src/main/resources/assets/viafabricplus/lang/th_th.json @@ -1,51 +1,51 @@ { - "misc.viafabricplus.settings": "การตั่งค่า", - "misc.viafabricplus.on": "เปิด", - "misc.viafabricplus.off": "ปิด", - "misc.viafabricplus.lt": "ซ้าย; บน", - "misc.viafabricplus.rt": "ขวา; บน", - "misc.viafabricplus.lb": "ซ้าย; ล่าง", - "misc.viafabricplus.rb": "ขวา; ล่าง", - "misc.viafabricplus.cancel": "ยกเลิก", - "misc.viafabricplus.cancelreset": "ยกเลิกและรีเซ็ต", + "base.viafabricplus.settings": "การตั่งค่า", + "base.viafabricplus.on": "เปิด", + "base.viafabricplus.off": "ปิด", + "base.viafabricplus.left_top": "ซ้าย; บน", + "base.viafabricplus.right_top": "ขวา; บน", + "base.viafabricplus.left_bottom": "ซ้าย; ล่าง", + "base.viafabricplus.right_bottom": "ขวา; ล่าง", + "base.viafabricplus.cancel": "ยกเลิก", + "base.viafabricplus.cancel_and_reset": "ยกเลิกและรีเซ็ต", - "general.viafabricplus.secret": "แสดงสุดยอดตั่งค่า", - "general.viafabricplus.extrainformation": "แสดงมากขึ้นใน ดีบักโหมด", - "general.viafabricplus.classicloading": "แสดงหน้าโหลดคลาสสิค", - "general.viafabricplus.main": "การวางแนวปุ่มหลัก", - "general.viafabricplus.creative": "ลบไอเท็มที่ไม่มีใน creative tab", - "general.viafabricplus.protocolsync": "เปลี่ยนการตั้งค่าโดยอัตโนมัติตามเวอร์ชันปัจจุบัน", + "general_settings.viafabricplus.super_secret_settings": "แสดงสุดยอดตั่งค่า", + "general_settings.viafabricplus.extra_information_in_debug_hud": "แสดงมากขึ้นใน ดีบักโหมด", + "general_settings.viafabricplus.show_classic_loading_progress": "แสดงหน้าโหลดคลาสสิค", + "general_settings.viafabricplus.main": "การวางแนวปุ่มหลัก", + "general_settings.viafabricplus.filter_creative_tabs": "ลบไอเท็มที่ไม่มีใน creative tab", + "general_settings.viafabricplus.protocolsync": "เปลี่ยนการตั้งค่าโดยอัตโนมัติตามเวอร์ชันปัจจุบัน", - "debug.viafabricplus.sequence": "ปิดใช้งานการจัดลำดับ", - "debug.viafabricplus.merchant": "ปรับหน้าจอร้านค้าให้เรียบ", - "debug.viafabricplus.postfix": "ดำเนินการอินพุตในการซิงค์", - "debug.viafabricplus.sneakinstant": "ย่องทันที", - "debug.viafabricplus.inventory": "ส่งแพคเกจเปิดช่องเก็บของ", - "debug.viafabricplus.cooldown": "ลบคูลดาวน์", - "debug.viafabricplus.idle": "ส่งแพคเกจ idle", - "debug.viafabricplus.attribute": "แทนที่ตัวดัดแปลงแอตทริบิวต์", - "debug.viafabricplus.replacesneak": "แทนที่การย่อง", - "debug.viafabricplus.longsneak": "ย่องยาว", - "debug.viafabricplus.legacypseeds": "ความเร็วการขุดแบบดั้งเดิม", + "debug_settings.viafabricplus.disable_sequencing": "ปิดใช้งานการจัดลำดับ", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "ปรับหน้าจอร้านค้าให้เรียบ", + "debug_settings.viafabricplus.execute_inputs_in_sync": "ดำเนินการอินพุตในการซิงค์", + "debug_settings.viafabricplus.sneak_instant": "ย่องทันที", + "debug_settings.viafabricplus.send_open_inventory_packet": "ส่งแพคเกจเปิดช่องเก็บของ", + "debug_settings.viafabricplus.remove_cooldowns": "ลบคูลดาวน์", + "debug_settings.viafabricplus.send_idle_packet": "ส่งแพคเกจ idle", + "debug_settings.viafabricplus.replace_attribute_modifiers": "แทนที่ตัวดัดแปลงแอตทริบิวต์", + "debug_settings.viafabricplus.replace_sneaking": "แทนที่การย่อง", + "debug_settings.viafabricplus.long_sneaking": "ย่องยาว", + "debug_settings.viafabricplus.legacy_mining_speeds": "ความเร็วการขุดแบบดั้งเดิม", - "authentication.viafabricplus.betacraft": "ใช้ BetaCraft ยืนยันตัวตน", - "authentication.viafabricplus.verify": "อนุญาติให้ ViaLegacy ในการเรียก joinServer() เพื่อยืนยัน", - "authentication.viafabricplus.fail": "ตัดการเชื่อมต่อหาก joinServer() ผิดพลาด", - "authentication.viafabricplus.bedrock": "คลิกเพื่อเชื่อมต่อบัญชี Bedrock Edition", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "ใช้ BetaCraft ยืนยันตัวตน", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "อนุญาติให้ ViaLegacy ในการเรียก joinServer() เพื่อยืนยัน", + "authentication_settings.viafabricplus.fail": "ตัดการเชื่อมต่อหาก joinServer() ผิดพลาด", + "authentication_settings.viafabricplus.bedrock": "คลิกเพื่อเชื่อมต่อบัญชี Bedrock Edition", - "visual.viafabricplus.secure": "ลบคำเตือนแชท", - "visual.viafabricplus.indicator": "ซ่อนตัวบ่งชี้ลายเซ็น", - "visual.viafabricplus.jigsaw": "ลบคุณสมบัติใหม่ออกจากหน้าจอจิ๊กซอว์", - "visual.viafabricplus.stoneslab": "เปลี่ยนพื้นไม้โอ๊คที่กลายเป็นหิน", - "visual.viafabricplus.armor": "เลียนแบบ Armor hud", - "visual.viafabricplus.command": "ลบคุณสมบัติที่ใหม่กว่าออกจากหน้าจอบล็อกคำสั่ง", - "visual.viafabricplus.oof": "แทนที่เสียงเจ็บด้วยเสียง OOF", - "visual.viafabricplus.betahud": "ลบองค์ประกอบ HUD ที่ใหม่กว่า", - "visual.viafabricplus.classic": "แทนที่ creative inventory", - "visual.viafabricplus.walkanimation": "ท่าทางการเดินแบบเก่า", + "visual_settings.viafabricplus.disable_secure_chat_warning": "ลบคำเตือนแชท", + "visual_settings.viafabricplus.hide_signature_indicator": "ซ่อนตัวบ่งชี้ลายเซ็น", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "ลบคุณสมบัติใหม่ออกจากหน้าจอจิ๊กซอว์", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "เปลี่ยนพื้นไม้โอ๊คที่กลายเป็นหิน", + "visual_settings.viafabricplus.emulate_armor_hud": "เลียนแบบ Armor hud", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "ลบคุณสมบัติที่ใหม่กว่าออกจากหน้าจอบล็อกคำสั่ง", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "แทนที่เสียงเจ็บด้วยเสียง OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "ลบองค์ประกอบ HUD ที่ใหม่กว่า", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "แทนที่ creative inventory", + "visual_settings.viafabricplus.old_walking_animation": "ท่าทางการเดินแบบเก่า", - "bedrocklogin.viafabricplus.text": "บราวเซอร์เปิดแล้ว \nกรุณาใส่โค้ด: %s\nหากปิดหน้าเกมการดำเนินการจะถูกยกเลิก", + "bedrock.viafabricplus.login": "บราวเซอร์เปิดแล้ว \nกรุณาใส่โค้ด: %s\nหากปิดหน้าเกมการดำเนินการจะถูกยกเลิก", "bedrocklogin.viafabricplus.error": "พบข้อผิดพลาด ดูที่ไฟล์ latest.log เพื่อดูรายละอียดเพิ่มเติม,\nกรุณาแจ้งบัคที่ \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", - "forceversion.viafabricplus.title": "โปรดเลือกเวอร์ชันที่ต้องการเชื่อมต่อ" + "base.viafabricplus.force_version_title": "โปรดเลือกเวอร์ชันที่ต้องการเชื่อมต่อ" } diff --git a/src/main/resources/assets/viafabricplus/lang/uk_ua.json b/src/main/resources/assets/viafabricplus/lang/uk_ua.json index be6048f2c..e63ec1c3e 100644 --- a/src/main/resources/assets/viafabricplus/lang/uk_ua.json +++ b/src/main/resources/assets/viafabricplus/lang/uk_ua.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "Fabric мод для підключення до будь-яского сервера на КОЖНІЙ версії(Реліз, Бета, Альфа, Классік, Снапшоти, Бедрок) з QoL фіксами геймплею", - "misc.viafabricplus.settings": "Налаштування", - "misc.viafabricplus.on": "Ввімкнено", - "misc.viafabricplus.off": "Вимкнено", - "misc.viafabricplus.lt": "Зліва; Зверху", - "misc.viafabricplus.rt": "Справа; Зверху", - "misc.viafabricplus.lb": "Зліва; Знизу", - "misc.viafabricplus.rb": "Справа; Знизу", - "misc.viafabricplus.cancel": "Відмінити", - "misc.viafabricplus.cancelreset": "Відмінити і відновити", - "misc.viafabricplus.logout": "Вийти", - "misc.viafabricplus.online": "Онлайн режим", - "misc.viafabricplus.reset": "Зкинути", - "misc.viafabricplus.copy": "Зкопіювати код", - "misc.viafabricplus.error": "Щось пішло не так! Спробуйте будь ласка пізніше", - "misc.viafabricplus.translate": "Via переклади до: %s", - "misc.viafabricplus.serverversion": "Версія серверу: %s", - "misc.viafabricplus.auto": "Автоматично", - "misc.viafabricplus.addserverscreenbuttontitle": "Встановити версію для цього серверу", - "misc.viafabricplus.all": "Ванілла та з Модами", - "misc.viafabricplus.vanillaonly": "Тільки Ванілла", - "misc.viafabricplus.kick": "Викинути", - "misc.viafabricplus.cancelnotify": "Відмінити й сповістити", + "base.viafabricplus.settings": "Налаштування", + "base.viafabricplus.on": "Ввімкнено", + "base.viafabricplus.off": "Вимкнено", + "base.viafabricplus.left_top": "Зліва; Зверху", + "base.viafabricplus.right_top": "Справа; Зверху", + "base.viafabricplus.left_bottom": "Зліва; Знизу", + "base.viafabricplus.right_bottom": "Справа; Знизу", + "base.viafabricplus.cancel": "Відмінити", + "base.viafabricplus.cancel_and_reset": "Відмінити і відновити", + "base.viafabricplus.logout": "Вийти", + "base.viafabricplus.online_mode": "Онлайн режим", + "base.viafabricplus.reset": "Зкинути", + "base.viafabricplus.copy_code": "Зкопіювати код", + "base.viafabricplus.something_went_wrong": "Щось пішло не так! Спробуйте будь ласка пізніше", + "base.viafabricplus.via_translates_to": "Via переклади до: %s", + "base.viafabricplus.server_version": "Версія серверу: %s", + "base.viafabricplus.auto": "Автоматично", + "base.viafabricplus.set_version_for_this_server": "Встановити версію для цього серверу", + "base.viafabricplus.vanilla_and_modded": "Ванілла та з Модами", + "base.viafabricplus.vanilla_only": "Тільки Ванілла", + "base.viafabricplus.kick": "Викинути", + "base.viafabricplus.cancel_and_notify": "Відмінити й сповістити", - "settings.viafabricplus.authentication": "Авторизація", - "settings.viafabricplus.experimental": "Експериментальне", - "settings.viafabricplus.visual": "Візуальне", - "settings.viafabricplus.debug": "Дебаг", - "settings.viafabricplus.general": "Загальне", - "settings.viafabricplus.bedrock": "Бедрок", + "setting_group_name.viafabricplus.authentication": "Авторизація", + "setting_group_name.viafabricplus.experimental": "Експериментальне", + "setting_group_name.viafabricplus.visual": "Візуальне", + "setting_group_name.viafabricplus.debug": "Дебаг", + "setting_group_name.viafabricplus.general": "Загальне", + "setting_group_name.viafabricplus.bedrock": "Бедрок", - "general.viafabricplus.secret": "Показувати Супер Секретні Налаштування", - "general.viafabricplus.extrainformation": "Показувати додаткову інформацію на екрані відладки", - "general.viafabricplus.classicloading": "Показувати класичний прогрес завантаження на екрані підключення", - "general.viafabricplus.multiplayerscreenbutton": "Орієнтація кнопки мультиплеєру", - "general.viafabricplus.creative": "Видалити недоступні предмети з меню креативу", - "general.viafabricplus.protocolsync": "Автоматично змінювати налаштування для вибраної версії", - "general.viafabricplus.autodetect": "Автоматично відсліджувати версію", - "general.viafabricplus.advertised": "Показувати рекламовану/серверну версію в багатокористувацькій грі", - "general.viafabricplus.ignoreerrors": "Ігнорувати помилки перекладу пакетів", + "general_settings.viafabricplus.super_secret_settings": "Показувати Супер Секретні Налаштування", + "general_settings.viafabricplus.extra_information_in_debug_hud": "Показувати додаткову інформацію на екрані відладки", + "general_settings.viafabricplus.show_classic_loading_progress": "Показувати класичний прогрес завантаження на екрані підключення", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "Орієнтація кнопки мультиплеєру", + "general_settings.viafabricplus.filter_creative_tabs": "Видалити недоступні предмети з меню креативу", + "general_settings.viafabricplus.protocolsync": "Автоматично змінювати налаштування для вибраної версії", + "general_settings.viafabricplus.auto_detect_version": "Автоматично відсліджувати версію", + "general_settings.viafabricplus.show_advertised_server_version": "Показувати рекламовану/серверну версію в багатокористувацькій грі", + "general_settings.viafabricplus.ignore_packet_translation_errors": "Ігнорувати помилки перекладу пакетів", - "bedrock.viafabricplus.confirmtransfer": "Відкрити GUI підказку для підтвердження переміщення до іншого серверу", - "bedrock.viafabricplus.authentication": "Нажміть, щоб встановити аккаунт для Bedrock", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "Відкрити GUI підказку для підтвердження переміщення до іншого серверу", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "Нажміть, щоб встановити аккаунт для Bedrock", "experimental.viafabricplus.chunkborderfix": "Полагодити границі чанків", "experimental.viafabricplus.watermovement": "Виявлення краю руху води", "experimental.viafabricplus.boatmovement": "Земулювати рух човна і замініти модель", - "debug.viafabricplus.sequence": "Вимкнути послідовності", - "debug.viafabricplus.merchant": "Згладити екрани крамарів", - "debug.viafabricplus.postfix": "Виконувати введення синхронно", - "debug.viafabricplus.sneakinstant": "Миттєво крастися", - "debug.viafabricplus.inventory": "Відправляти пакет відкривання інвентарю", - "debug.viafabricplus.cooldown": "Прибрати кулдауни", - "debug.viafabricplus.idle": "Надіслави пакет неактивності", - "debug.viafabricplus.attribute": "Замінити атрибути модифікаторів", - "debug.viafabricplus.replacesneak": "Замінювати підкрадання", - "debug.viafabricplus.longsneak": "Довге підкрадання", - "debug.viafabricplus.legacypseeds": "Стара швидкість копання", + "debug_settings.viafabricplus.disable_sequencing": "Вимкнути послідовності", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Згладити екрани крамарів", + "debug_settings.viafabricplus.execute_inputs_in_sync": "Виконувати введення синхронно", + "debug_settings.viafabricplus.sneak_instant": "Миттєво крастися", + "debug_settings.viafabricplus.send_open_inventory_packet": "Відправляти пакет відкривання інвентарю", + "debug_settings.viafabricplus.remove_cooldowns": "Прибрати кулдауни", + "debug_settings.viafabricplus.send_idle_packet": "Надіслави пакет неактивності", + "debug_settings.viafabricplus.replace_attribute_modifiers": "Замінити атрибути модифікаторів", + "debug_settings.viafabricplus.replace_sneaking": "Замінювати підкрадання", + "debug_settings.viafabricplus.long_sneaking": "Довге підкрадання", + "debug_settings.viafabricplus.legacy_mining_speeds": "Стара швидкість копання", - "authentication.viafabricplus.betacraft": "Використовувати аутентикацію BetaCraft", - "authentication.viafabricplus.verify": "Дозвольте ViaLegacy викликати joinServer() для перевірки сеансу", - "authentication.viafabricplus.fail": "Від’єднатися, якщо виклик joinServer() не вдається", - "authentication.viafabricplus.classicube": "Примусово встановити версію CPE, якщо використовується ClassiCube MP Pass", - "authentication.viafabricplus.spoof": "Підмінити ім'я користувача на ім'я ClassiCube, якщо використовується ClassiCube", - "authentication.viafabricplus.skin": "Дозволити ViaLegacy завантажувати скіни в старих версіх", - "authentication.viafabricplus.error": "ViaFabricPlus не змогла підтвердити вашу сесію! Будь ласка ввійдіть у ваш аккаунт або вимкніть авторизацію BetaCraft у налаштуваннях ViaFabricPlus", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "Використовувати аутентикацію BetaCraft", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "Дозвольте ViaLegacy викликати joinServer() для перевірки сеансу", + "authentication_settings.viafabricplus.fail": "Від’єднатися, якщо виклик joinServer() не вдається", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "Примусово встановити версію CPE, якщо використовується ClassiCube MP Pass", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "Підмінити ім'я користувача на ім'я ClassiCube, якщо використовується ClassiCube", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "Дозволити ViaLegacy завантажувати скіни в старих версіх", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus не змогла підтвердити вашу сесію! Будь ласка ввійдіть у ваш аккаунт або вимкніть авторизацію BetaCraft у налаштуваннях ViaFabricPlus", - "visual.viafabricplus.secure": "Прибрати застереження чату", - "visual.viafabricplus.indicator": "Сховати ідикатор підпису", - "visual.viafabricplus.jigsaw": "Видаліть нові функції з екрана блоку пазлу", - "visual.viafabricplus.stoneslab": "Замінити окам'янілу дубову плиту", - "visual.viafabricplus.armor": "Емулювати екран обладунків", - "visual.viafabricplus.command": "Видалити новіші функції з екрана командного блоку", - "visual.viafabricplus.oof": "Замініть звук болю на звук OOF", - "visual.viafabricplus.betahud": "Видаліть новіші елементи HUD", - "visual.viafabricplus.classic": "Замінити інвентар креативу", - "visual.viafabricplus.walkanimation": "Стара анімація ходьби", - "visual.viafabricplus.sodium": "Полагодити рендер чанків Содіуму", - "visual.viafabricplus.fontrendererbehaviour": "Змінити поведінку рендерингу шрифта", - "visual.viafabricplus.blockhitanimation": "Ввімкнути анімацію удару блоку 1.7", + "visual_settings.viafabricplus.disable_secure_chat_warning": "Прибрати застереження чату", + "visual_settings.viafabricplus.hide_signature_indicator": "Сховати ідикатор підпису", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "Видаліть нові функції з екрана блоку пазлу", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "Замінити окам'янілу дубову плиту", + "visual_settings.viafabricplus.emulate_armor_hud": "Емулювати екран обладунків", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "Видалити новіші функції з екрана командного блоку", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "Замініть звук болю на звук OOF", + "visual_settings.viafabricplus.remove_newer_hud_elements": "Видаліть новіші елементи HUD", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "Замінити інвентар креативу", + "visual_settings.viafabricplus.old_walking_animation": "Стара анімація ходьби", + "visual_settings.viafabricplus.sodium": "Полагодити рендер чанків Содіуму", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "Змінити поведінку рендерингу шрифта", + "visual_settings.viafabricplus.enable_block_hit_animation": "Ввімкнути анімацію удару блоку 1.7", - "bedrocklogin.viafabricplus.text": "Ваш браузер мав відкритися.\nБудь ласка, введіть наступний код: %s\nЯкщо закрити цей екран, процес буде скасовано!", + "bedrock.viafabricplus.login": "Ваш браузер мав відкритися.\nБудь ласка, введіть наступний код: %s\nЯкщо закрити цей екран, процес буде скасовано!", "bedrocklogin.viafabricplus.error": "Сталася помилка! Дивіться latest.log для отримання додаткової інформації,\nбудь ласка, повідомте про помилку за адресою: \nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "Чи ви хочете переміститися на інший сервер?\n%s\n\nЦя дія відключить вас від цього і підключитьдо іншого.", - "forceversion.viafabricplus.title": "Будь ласка, виберіть версію, з якою сервер має пінгуватися/підключатися", + "base.viafabricplus.force_version_title": "Будь ласка, виберіть версію, з якою сервер має пінгуватися/підключатися", "classicube.viafabricplus.account": "Ви можете створити аккаунт тут: https://www.classicube.net/", "classicube.viafabricplus.loading": "Завантажуємо інформацію профілю та список серверів...", - "classicube.viafabricplus.error.token": "Неправильний токен. Чи ваша версія ViaFabricPlus найновіша?", - "classicube.viafabricplus.error.username": "Неправильний нікнейм.", - "classicube.viafabricplus.error.password": "Неправильний пароль.", - "classicube.viafabricplus.error.verification": "Користувач ще не підтвердив емейл.", - "classicube.viafabricplus.error.logincode": "Потрібна багатофакторна автентифікація. Будь ласка, перевірте свою електронну пошту.", + "classic4j_library.viafabricplus.error.token": "Неправильний токен. Чи ваша версія ViaFabricPlus найновіша?", + "classic4j_library.viafabricplus.error.username": "Неправильний нікнейм.", + "classic4j_library.viafabricplus.error.password": "Неправильний пароль.", + "classic4j_library.viafabricplus.error.verification": "Користувач ще не підтвердив емейл.", + "classic4j_library.viafabricplus.error.logincode": "Потрібна багатофакторна автентифікація. Будь ласка, перевірте свою електронну пошту.", "classicube.viafabricplus.warning": "Ця фішка надішле API запит до ClassiCube API.", diff --git a/src/main/resources/assets/viafabricplus/lang/zh_cn.json b/src/main/resources/assets/viafabricplus/lang/zh_cn.json index 65df36ddb..4088fb2a8 100644 --- a/src/main/resources/assets/viafabricplus/lang/zh_cn.json +++ b/src/main/resources/assets/viafabricplus/lang/zh_cn.json @@ -1,102 +1,102 @@ { "modmenu.descriptionTranslation.viafabricplus": "一个Fabric模组,可连接到任何版本的Minecraft服务器(正式版,Beta版,Alpha版,Classic版,快照版,基岩版)并对游戏玩法进行了QoL修正", - "misc.viafabricplus.settings": "设置", - "misc.viafabricplus.on": "开", - "misc.viafabricplus.off": "关", - "misc.viafabricplus.lt": "左上", - "misc.viafabricplus.rt": "右上", - "misc.viafabricplus.lb": "左下", - "misc.viafabricplus.rb": "右下", - "misc.viafabricplus.cancel": "取消", - "misc.viafabricplus.cancelreset": "返回并重置", - "misc.viafabricplus.logout": "登出", - "misc.viafabricplus.online": "在线模式", - "misc.viafabricplus.reset": "重置", - "misc.viafabricplus.copy": "复制代码", - "misc.viafabricplus.error": "出错了!请稍后再试", - "misc.viafabricplus.translate": "连接所用版本:%s", - "misc.viafabricplus.serverversion": "服务器版本:%s", - "misc.viafabricplus.auto": "自动", - "misc.viafabricplus.addserverscreenbuttontitle": "更改当前服务器版本", - "misc.viafabricplus.all": "原版和模组", - "misc.viafabricplus.vanillaonly": "仅原版", - "misc.viafabricplus.kick": "踢出", - "misc.viafabricplus.cancelnotify": "取消和通知", + "base.viafabricplus.settings": "设置", + "base.viafabricplus.on": "开", + "base.viafabricplus.off": "关", + "base.viafabricplus.left_top": "左上", + "base.viafabricplus.right_top": "右上", + "base.viafabricplus.left_bottom": "左下", + "base.viafabricplus.right_bottom": "右下", + "base.viafabricplus.cancel": "取消", + "base.viafabricplus.cancel_and_reset": "返回并重置", + "base.viafabricplus.logout": "登出", + "base.viafabricplus.online_mode": "在线模式", + "base.viafabricplus.reset": "重置", + "base.viafabricplus.copy_code": "复制代码", + "base.viafabricplus.something_went_wrong": "出错了!请稍后再试", + "base.viafabricplus.via_translates_to": "连接所用版本:%s", + "base.viafabricplus.server_version": "服务器版本:%s", + "base.viafabricplus.auto": "自动", + "base.viafabricplus.set_version_for_this_server": "更改当前服务器版本", + "base.viafabricplus.vanilla_and_modded": "原版和模组", + "base.viafabricplus.vanilla_only": "仅原版", + "base.viafabricplus.kick": "踢出", + "base.viafabricplus.cancel_and_notify": "取消和通知", - "settings.viafabricplus.authentication": "身份与认证", - "settings.viafabricplus.experimental": "实验性功能", - "settings.viafabricplus.visual": "特性模拟", - "settings.viafabricplus.debug": "特殊", - "settings.viafabricplus.general": "全局", - "settings.viafabricplus.bedrock": "基岩版", + "setting_group_name.viafabricplus.authentication": "身份与认证", + "setting_group_name.viafabricplus.experimental": "实验性功能", + "setting_group_name.viafabricplus.visual": "特性模拟", + "setting_group_name.viafabricplus.debug": "特殊", + "setting_group_name.viafabricplus.general": "全局", + "setting_group_name.viafabricplus.bedrock": "基岩版", - "general.viafabricplus.secret": "显示“Super Secret Settings”(超级秘密设置)", - "general.viafabricplus.extrainformation": "在§6[调试]§r中显示额外信息", - "general.viafabricplus.classicloading": "在连接服务器时使用旧版加载进度条", - "general.viafabricplus.main": "模组按钮位置", - "general.viafabricplus.addserverscreenbutton": "编辑服务器页面按钮位置", - "general.viafabricplus.creative": "从创造模式选项卡中移除不可用的物品", - "general.viafabricplus.autodetect": "自动检测版本", - "general.viafabricplus.advertised": "在服务器列表-延迟中显示连接所用版本/服务器版本", - "general.viafabricplus.multiplayerscreenbutton": "多人游戏界面的按钮位置", - "general.viafabricplus.ignoreerrors": "忽略数据包转换错误", + "general_settings.viafabricplus.super_secret_settings": "显示“Super Secret Settings”(超级秘密设置)", + "general_settings.viafabricplus.extra_information_in_debug_hud": "在§6[调试]§r中显示额外信息", + "general_settings.viafabricplus.show_classic_loading_progress": "在连接服务器时使用旧版加载进度条", + "general_settings.viafabricplus.main": "模组按钮位置", + "general_settings.viafabricplus.add_server_screen_button_orientation": "编辑服务器页面按钮位置", + "general_settings.viafabricplus.filter_creative_tabs": "从创造模式选项卡中移除不可用的物品", + "general_settings.viafabricplus.auto_detect_version": "自动检测版本", + "general_settings.viafabricplus.show_advertised_server_version": "在服务器列表-延迟中显示连接所用版本/服务器版本", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "多人游戏界面的按钮位置", + "general_settings.viafabricplus.ignore_packet_translation_errors": "忽略数据包转换错误", - "bedrock.viafabricplus.confirmtransfer": "显示“确认转移到其他服务器”提示", - "bedrock.viafabricplus.authentication": "点此连接到基岩版账户", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "显示“确认转移到其他服务器”提示", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "点此连接到基岩版账户", "experimental.viafabricplus.chunkborderfix": "修复区块边界", "experimental.viafabricplus.watermovement": "水中移动边缘检测", "experimental.viafabricplus.boatmovement": "模拟 1.8 的船移动并替换模型", - "debug.viafabricplus.sequence": "禁用排序", - "debug.viafabricplus.merchant": "平滑商人屏幕", - "debug.viafabricplus.postfix": "同步执行输入", - "debug.viafabricplus.sneakinstant": "瞬间潜行", - "debug.viafabricplus.inventory": "发送“打开物品栏”数据包", - "debug.viafabricplus.cooldown": "移除攻击冷却", - "debug.viafabricplus.idle": "发送“空闲”数据包", - "debug.viafabricplus.attribute": "替换属性修饰符样式", - "debug.viafabricplus.replacesneak": "替换潜行样式", - "debug.viafabricplus.longsneak": "长时间潜行", - "debug.viafabricplus.legacypseeds": "远古版本挖掘速度", + "debug_settings.viafabricplus.disable_sequencing": "禁用排序", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "平滑商人屏幕", + "debug_settings.viafabricplus.execute_inputs_in_sync": "同步执行输入", + "debug_settings.viafabricplus.sneak_instant": "瞬间潜行", + "debug_settings.viafabricplus.send_open_inventory_packet": "发送“打开物品栏”数据包", + "debug_settings.viafabricplus.remove_cooldowns": "移除攻击冷却", + "debug_settings.viafabricplus.send_idle_packet": "发送“空闲”数据包", + "debug_settings.viafabricplus.replace_attribute_modifiers": "替换属性修饰符样式", + "debug_settings.viafabricplus.replace_sneaking": "替换潜行样式", + "debug_settings.viafabricplus.long_sneaking": "长时间潜行", + "debug_settings.viafabricplus.legacy_mining_speeds": "远古版本挖掘速度", - "authentication.viafabricplus.betacraft": "使用BetaCraft进行身份验证", - "authentication.viafabricplus.verify": "允许ViaLegacy调用joinServer()来验证会话", - "authentication.viafabricplus.fail": "调用joinServer()失败时断开连接", - "authentication.viafabricplus.classicube": "如果使用ClassicCube MP Pass,则强制CPE版本", - "authentication.viafabricplus.spoof": "如果使用ClassiCube,则将用户名显示为ClassiCube名称", - "authentication.viafabricplus.skin": "允许ViaLegacy加载旧版本皮肤", - "authentication.viafabricplus.error": "ViaFabricPlus验证你的会话失败!请登录一个账户或在设置中关闭“使用BetaCraft进行身份验证”", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "使用BetaCraft进行身份验证", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "允许ViaLegacy调用joinServer()来验证会话", + "authentication_settings.viafabricplus.fail": "调用joinServer()失败时断开连接", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "如果使用ClassicCube MP Pass,则强制CPE版本", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "如果使用ClassiCube,则将用户名显示为ClassiCube名称", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "允许ViaLegacy加载旧版本皮肤", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus验证你的会话失败!请登录一个账户或在设置中关闭“使用BetaCraft进行身份验证”", - "visual.viafabricplus.secure": "禁用安全聊天警告", - "visual.viafabricplus.indicator": "隐藏聊天签名提示", - "visual.viafabricplus.jigsaw": "从§o拼图方块§r界面中移除新版本特性", - "visual.viafabricplus.stoneslab": "替换§o石化橡木台阶", - "visual.viafabricplus.armor": "模拟护甲值", - "visual.viafabricplus.command": "从§o命令方块§r编辑界面中移除新版本特性", - "visual.viafabricplus.oof": "将受伤音效替换为旧版本的“噢!”", - "visual.viafabricplus.betahud": "移除较新的HUD元素", - "visual.viafabricplus.classic": "将创造模式物品栏替换为旧版本样式", - "visual.viafabricplus.walkanimation": "旧版行走动画", - "visual.viafabricplus.sodium": "修复钠(Sodium)渲染器", - "visual.viafabricplus.fontrendererbehaviour": "更改字体渲染器行为", - "visual.viafabricplus.blockhitanimation": "启用 1.7 的 Block hit 动画", + "visual_settings.viafabricplus.disable_secure_chat_warning": "禁用安全聊天警告", + "visual_settings.viafabricplus.hide_signature_indicator": "隐藏聊天签名提示", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "从§o拼图方块§r界面中移除新版本特性", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "替换§o石化橡木台阶", + "visual_settings.viafabricplus.emulate_armor_hud": "模拟护甲值", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "从§o命令方块§r编辑界面中移除新版本特性", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "将受伤音效替换为旧版本的“噢!”", + "visual_settings.viafabricplus.remove_newer_hud_elements": "移除较新的HUD元素", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "将创造模式物品栏替换为旧版本样式", + "visual_settings.viafabricplus.old_walking_animation": "旧版行走动画", + "visual_settings.viafabricplus.sodium": "修复钠(Sodium)渲染器", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "更改字体渲染器行为", + "visual_settings.viafabricplus.enable_block_hit_animation": "启用 1.7 的 Block hit 动画", - "bedrocklogin.viafabricplus.text": "你的浏览器现在应该打开了。\n请输入这个代码:%s\n关闭这个屏幕等于取消操作!", + "bedrock.viafabricplus.login": "你的浏览器现在应该打开了。\n请输入这个代码:%s\n关闭这个屏幕等于取消操作!", "bedrocklogin.viafabricplus.error": "发生错误!详情请查看latest.log\n请到下面的链接反馈错误:\nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "你想要转移到以下服务器吗?\n%s\n\n这将断开与当前服务器的连接并连接到新的服务器。", - "forceversion.viafabricplus.title": "请选择连接这个服务器要使用的版本", + "base.viafabricplus.force_version_title": "请选择连接这个服务器要使用的版本", "classicube.viafabricplus.account": "你可以这里创建一个账户:https://www.classicube.net", "classicube.viafabricplus.loading": "正在加载个人信息和服务器列表……", - "classicube.viafabricplus.error.token": "Token不正确。你的ViaFabricPlus是否为最新版?", - "classicube.viafabricplus.error.username": "无效用户名", - "classicube.viafabricplus.error.password": "无效密码", - "classicube.viafabricplus.error.verification": "用户尚未验证电子邮箱地址!", - "classicube.viafabricplus.error.logincode": "已请求身份验证。请查看你的电子邮箱!", + "classic4j_library.viafabricplus.error.token": "Token不正确。你的ViaFabricPlus是否为最新版?", + "classic4j_library.viafabricplus.error.username": "无效用户名", + "classic4j_library.viafabricplus.error.password": "无效密码", + "classic4j_library.viafabricplus.error.verification": "用户尚未验证电子邮箱地址!", + "classic4j_library.viafabricplus.error.logincode": "已请求身份验证。请查看你的电子邮箱!", "classicube.viafabricplus.warning": "该功能会向ClassiCube API发送API请求", diff --git a/src/main/resources/assets/viafabricplus/lang/zh_hk.json b/src/main/resources/assets/viafabricplus/lang/zh_hk.json index 1501316de..21c2d2bb9 100644 --- a/src/main/resources/assets/viafabricplus/lang/zh_hk.json +++ b/src/main/resources/assets/viafabricplus/lang/zh_hk.json @@ -1,102 +1,102 @@ { - "misc.viafabricplus.settings": "設定", - "misc.viafabricplus.on": "開啟", - "misc.viafabricplus.off": "關閉", - "misc.viafabricplus.lt": "左上", - "misc.viafabricplus.rt": "右上", - "misc.viafabricplus.lb": "左下", - "misc.viafabricplus.rb": "右下", - "misc.viafabricplus.cancel": "取消", - "misc.viafabricplus.cancelreset": "返回並重置", - "misc.viafabricplus.logout": "登出", - "misc.viafabricplus.online": "線上模式", - "misc.viafabricplus.reset": "重置", - "misc.viafabricplus.copy": "複製程式碼", - "misc.viafabricplus.error": "出了些問題!請稍後再試", - "misc.viafabricplus.translate": "轉換為:%s", - "misc.viafabricplus.serverversion": "伺服器版本:%s", - "misc.viafabricplus.auto": "自動", - "misc.viafabricplus.addserverscreenbuttontitle": "設置此伺服器嘅版本", - "misc.viafabricplus.all": "原版和模組嘅", - "misc.viafabricplus.vanillaonly": "僅原版", - "misc.viafabricplus.kick": "踢出", - "misc.viafabricplus.cancelnotify": "取消和通知", + "base.viafabricplus.settings": "設定", + "base.viafabricplus.on": "開啟", + "base.viafabricplus.off": "關閉", + "base.viafabricplus.left_top": "左上", + "base.viafabricplus.right_top": "右上", + "base.viafabricplus.left_bottom": "左下", + "base.viafabricplus.right_bottom": "右下", + "base.viafabricplus.cancel": "取消", + "base.viafabricplus.cancel_and_reset": "返回並重置", + "base.viafabricplus.logout": "登出", + "base.viafabricplus.online_mode": "線上模式", + "base.viafabricplus.reset": "重置", + "base.viafabricplus.copy_code": "複製程式碼", + "base.viafabricplus.something_went_wrong": "出了些問題!請稍後再試", + "base.viafabricplus.via_translates_to": "轉換為:%s", + "base.viafabricplus.server_version": "伺服器版本:%s", + "base.viafabricplus.auto": "自動", + "base.viafabricplus.set_version_for_this_server": "設置此伺服器嘅版本", + "base.viafabricplus.vanilla_and_modded": "原版和模組嘅", + "base.viafabricplus.vanilla_only": "僅原版", + "base.viafabricplus.kick": "踢出", + "base.viafabricplus.cancel_and_notify": "取消和通知", - "settings.viafabricplus.authentication": "驗證", - "settings.viafabricplus.experimental": "實驗性", - "settings.viafabricplus.visual": "視覺", - "settings.viafabricplus.debug": "調試", - "settings.viafabricplus.general": "常規", - "settings.viafabricplus.bedrock": "基岩版", + "setting_group_name.viafabricplus.authentication": "驗證", + "setting_group_name.viafabricplus.experimental": "實驗性", + "setting_group_name.viafabricplus.visual": "視覺", + "setting_group_name.viafabricplus.debug": "調試", + "setting_group_name.viafabricplus.general": "常規", + "setting_group_name.viafabricplus.bedrock": "基岩版", - "general.viafabricplus.secret": "顯示 “Super Secret Settings”(超級秘密設定)", - "general.viafabricplus.extrainformation": "在 \u00a76[調試]\u00a7r中顯示額外資訊", - "general.viafabricplus.classicloading": "在連接伺服器時使用舊版進度顯示", - "general.viafabricplus.main": "模組按鈕位置", - "general.viafabricplus.creative": "從創造模式物品欄內移除唔可用嘅物品", - "general.viafabricplus.protocolsync": "自動根據所選版本調整設定", - "general.viafabricplus.autodetect": "自動偵測版本", - "general.viafabricplus.advertised": "在多人遊戲介面顯示伺服器所需版本和實際版本", - "general.viafabricplus.multiplayerscreenbutton": "多人游戲界面嘅按鈕位置", - "general.viafabricplus.addserverscreenbutton": "伺服器界面按鈕位置", - "general.viafabricplus.ignoreerrors": "忽略數據包錯誤", + "general_settings.viafabricplus.super_secret_settings": "顯示 “Super Secret Settings”(超級秘密設定)", + "general_settings.viafabricplus.extra_information_in_debug_hud": "在 \u00a76[調試]\u00a7r中顯示額外資訊", + "general_settings.viafabricplus.show_classic_loading_progress": "在連接伺服器時使用舊版進度顯示", + "general_settings.viafabricplus.main": "模組按鈕位置", + "general_settings.viafabricplus.filter_creative_tabs": "從創造模式物品欄內移除唔可用嘅物品", + "general_settings.viafabricplus.protocolsync": "自動根據所選版本調整設定", + "general_settings.viafabricplus.auto_detect_version": "自動偵測版本", + "general_settings.viafabricplus.show_advertised_server_version": "在多人遊戲介面顯示伺服器所需版本和實際版本", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "多人游戲界面嘅按鈕位置", + "general_settings.viafabricplus.add_server_screen_button_orientation": "伺服器界面按鈕位置", + "general_settings.viafabricplus.ignore_packet_translation_errors": "忽略數據包錯誤", "experimental.viafabricplus.chunkborderfix": "修復區塊邊界", "experimental.viafabricplus.watermovement": "Water movement edge detection/\u00a78水中移動邊緣偵測\u00a7r", "experimental.viafabricplus.boatmovement": "模擬 1.8 嘅船移動並替換模型", - "debug.viafabricplus.sequence": "Disable sequencing/\u00a78禁用排序\u00a7r", - "debug.viafabricplus.merchant": "Smooth out merchant screens/\u00a78平滑螢幕\u00a7r", - "debug.viafabricplus.postfix": "同步執行輸入", - "debug.viafabricplus.sneakinstant": "瞬間潛行", - "debug.viafabricplus.inventory": "發送 “打開物品欄” 數據包", - "debug.viafabricplus.cooldown": "移除攻擊冷卻", - "debug.viafabricplus.idle": "發送 “空閒” 數據包", - "debug.viafabricplus.attribute": "替換屬性修飾符為舊版本樣式", - "debug.viafabricplus.replacesneak": "替換潛行樣式", - "debug.viafabricplus.longsneak": "Long sneaking/\u00a78保持潛行\u00a7r", - "debug.viafabricplus.legacypseeds": "老舊版本挖掘速度", + "debug_settings.viafabricplus.disable_sequencing": "Disable sequencing/\u00a78禁用排序\u00a7r", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "Smooth out merchant screens/\u00a78平滑螢幕\u00a7r", + "debug_settings.viafabricplus.execute_inputs_in_sync": "同步執行輸入", + "debug_settings.viafabricplus.sneak_instant": "瞬間潛行", + "debug_settings.viafabricplus.send_open_inventory_packet": "發送 “打開物品欄” 數據包", + "debug_settings.viafabricplus.remove_cooldowns": "移除攻擊冷卻", + "debug_settings.viafabricplus.send_idle_packet": "發送 “空閒” 數據包", + "debug_settings.viafabricplus.replace_attribute_modifiers": "替換屬性修飾符為舊版本樣式", + "debug_settings.viafabricplus.replace_sneaking": "替換潛行樣式", + "debug_settings.viafabricplus.long_sneaking": "Long sneaking/\u00a78保持潛行\u00a7r", + "debug_settings.viafabricplus.legacy_mining_speeds": "老舊版本挖掘速度", - "authentication.viafabricplus.betacraft": "使用 BetaCraft 身份驗證", - "authentication.viafabricplus.verify": "允許 ViaLegacy 調用 joinServer() 來驗證會話", - "authentication.viafabricplus.fail": "joinServer() 調用失敗時斷開連接", - "authentication.viafabricplus.classicube": "如果使用 ClassicCube MP Pass,則強制 CPE 版本", - "authentication.viafabricplus.spoof": "如果使用 ClassiCube ,則顯示為 ClassiCube 名稱", - "authentication.viafabricplus.skin": "允許 ViaLegacy 載入舊版本外觀", - "authentication.viafabricplus.bedrock": "點擊以設定基岩版帳戶", - "authentication.viafabricplus.error": "ViaFabricPlus 無法驗證你嘅會話!請登錄帳戶或在 ViaFabricPlus 設置中禁用 BetaCraft 身份驗證", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "使用 BetaCraft 身份驗證", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "允許 ViaLegacy 調用 joinServer() 來驗證會話", + "authentication_settings.viafabricplus.fail": "joinServer() 調用失敗時斷開連接", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "如果使用 ClassicCube MP Pass,則強制 CPE 版本", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "如果使用 ClassiCube ,則顯示為 ClassiCube 名稱", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "允許 ViaLegacy 載入舊版本外觀", + "authentication_settings.viafabricplus.bedrock": "點擊以設定基岩版帳戶", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus 無法驗證你嘅會話!請登錄帳戶或在 ViaFabricPlus 設置中禁用 BetaCraft 身份驗證", - "visual.viafabricplus.secure": "禁用安全聊天警告", - "visual.viafabricplus.indicator": "隱藏聊天簽名提示", - "visual.viafabricplus.jigsaw": "從\u00a7o拼圖方塊\u00a7r介面中移除新版本特性", - "visual.viafabricplus.stoneslab": "替換\u00a7o石化橡木半磚\u00a7r", - "visual.viafabricplus.armor": "模擬護甲值(護甲值唔顯示時開啟此選項)", - "visual.viafabricplus.command": "從\u00a7o指令方塊\u00a7r編輯介面中移除新版本特性", - "visual.viafabricplus.oof": "將受傷音效替換為舊版本嘅 “oof/噢!”", - "visual.viafabricplus.betahud": "移除新嘅 HUD 要素(包括饑餓值、護甲值)", - "visual.viafabricplus.classic": "將創造模式物品欄替換為舊版本樣式", - "visual.viafabricplus.walkanimation": "舊版行走動畫", - "visual.viafabricplus.sodium": "修復鈉(Sodium)渲染器", - "visual.viafabricplus.fontrendererbehaviour": "改變字體渲染嘅行爲", - "visual.viafabricplus.blockhitanimation": "啓用 1.7 Block hit 動畫", + "visual_settings.viafabricplus.disable_secure_chat_warning": "禁用安全聊天警告", + "visual_settings.viafabricplus.hide_signature_indicator": "隱藏聊天簽名提示", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "從\u00a7o拼圖方塊\u00a7r介面中移除新版本特性", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "替換\u00a7o石化橡木半磚\u00a7r", + "visual_settings.viafabricplus.emulate_armor_hud": "模擬護甲值(護甲值唔顯示時開啟此選項)", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "從\u00a7o指令方塊\u00a7r編輯介面中移除新版本特性", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "將受傷音效替換為舊版本嘅 “oof/噢!”", + "visual_settings.viafabricplus.remove_newer_hud_elements": "移除新嘅 HUD 要素(包括饑餓值、護甲值)", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "將創造模式物品欄替換為舊版本樣式", + "visual_settings.viafabricplus.old_walking_animation": "舊版行走動畫", + "visual_settings.viafabricplus.sodium": "修復鈉(Sodium)渲染器", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "改變字體渲染嘅行爲", + "visual_settings.viafabricplus.enable_block_hit_animation": "啓用 1.7 Block hit 動畫", - "bedrock.viafabricplus.confirmtransfer": "打開 GUI 以確認切換到其它伺服器", - "bedrock.viafabricplus.authentication": "點擊以設定基岩版帳戶", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "打開 GUI 以確認切換到其它伺服器", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "點擊以設定基岩版帳戶", - "bedrocklogin.viafabricplus.text": "你嘅瀏覽器現在應該打開了。\n請輸入這個程式碼:%s\n關閉這個螢幕等於取消操作!", + "bedrock.viafabricplus.login": "你嘅瀏覽器現在應該打開了。\n請輸入這個程式碼:%s\n關閉這個螢幕等於取消操作!", "bedrocklogin.viafabricplus.error": "發生錯誤!詳情請查看 latest.log\n請在這個連結回饋 BUG:\nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "你確認轉移至下個伺服器嗎?\n%s\n\n這將斷開與當前伺服器嘅連接並連接到新伺服器。.", - "forceversion.viafabricplus.title": "請選擇連接這個伺服器要使用嘅版本", + "base.viafabricplus.force_version_title": "請選擇連接這個伺服器要使用嘅版本", "classicube.viafabricplus.account": "你可以在這裡創建一個帳戶: https://www.classicube.net", "classicube.viafabricplus.loading": "正在載入個人資訊和伺服器清單…", - "classicube.viafabricplus.error.token": "Token 唔正確。你嘅 ViaFabricPlus 是否已經過時?", - "classicube.viafabricplus.error.username": "無效嘅用戶名", - "classicube.viafabricplus.error.password": "無效嘅密碼", - "classicube.viafabricplus.error.verification": "用戶尚未驗證電子郵箱位址", - "classicube.viafabricplus.error.logincode": "已請求身份驗證。請查看你嘅電子郵箱!", + "classic4j_library.viafabricplus.error.token": "Token 唔正確。你嘅 ViaFabricPlus 是否已經過時?", + "classic4j_library.viafabricplus.error.username": "無效嘅用戶名", + "classic4j_library.viafabricplus.error.password": "無效嘅密碼", + "classic4j_library.viafabricplus.error.verification": "用戶尚未驗證電子郵箱位址", + "classic4j_library.viafabricplus.error.logincode": "已請求身份驗證。請查看你嘅電子郵箱!", "classicube.viafabricplus.warning": "該功能會向 ClassiCube API 發送請求", diff --git a/src/main/resources/assets/viafabricplus/lang/zh_tw.json b/src/main/resources/assets/viafabricplus/lang/zh_tw.json index 158ba4ed0..3a8d39f66 100644 --- a/src/main/resources/assets/viafabricplus/lang/zh_tw.json +++ b/src/main/resources/assets/viafabricplus/lang/zh_tw.json @@ -1,101 +1,101 @@ { "modmenu.descriptionTranslation.viafabricplus": "可連線到所有 Minecraft 伺服器版本(正式版、Beta 版、Alpha 版、Classic 版、快照版、Bedrock 版)的 Fabric 模組,同時提供多項遊戲體驗改善。", - "misc.viafabricplus.settings": "設定", - "misc.viafabricplus.on": "開啟", - "misc.viafabricplus.off": "關閉", - "misc.viafabricplus.lt": "左上", - "misc.viafabricplus.rt": "右上", - "misc.viafabricplus.lb": "左下", - "misc.viafabricplus.rb": "右下", - "misc.viafabricplus.cancel": "取消", - "misc.viafabricplus.cancelreset": "取消並重設", - "misc.viafabricplus.logout": "登出", - "misc.viafabricplus.online": "線上模式", - "misc.viafabricplus.reset": "重設", - "misc.viafabricplus.copy": "複製程式碼", - "misc.viafabricplus.error": "發生錯誤!請稍後再試", - "misc.viafabricplus.translate": "轉換為:%s", - "misc.viafabricplus.serverversion": "伺服器版本:%s", - "misc.viafabricplus.auto": "自動", - "misc.viafabricplus.addserverscreenbuttontitle": "設定這個伺服器的版本", - "misc.viafabricplus.all": "原版和模組", - "misc.viafabricplus.vanillaonly": "僅原版", - "misc.viafabricplus.kick": "踢出", - "misc.viafabricplus.cancelnotify": "取消並通知", + "base.viafabricplus.settings": "設定", + "base.viafabricplus.on": "開啟", + "base.viafabricplus.off": "關閉", + "base.viafabricplus.left_top": "左上", + "base.viafabricplus.right_top": "右上", + "base.viafabricplus.left_bottom": "左下", + "base.viafabricplus.right_bottom": "右下", + "base.viafabricplus.cancel": "取消", + "base.viafabricplus.cancel_and_reset": "取消並重設", + "base.viafabricplus.logout": "登出", + "base.viafabricplus.online_mode": "線上模式", + "base.viafabricplus.reset": "重設", + "base.viafabricplus.copy_code": "複製程式碼", + "base.viafabricplus.something_went_wrong": "發生錯誤!請稍後再試", + "base.viafabricplus.via_translates_to": "轉換為:%s", + "base.viafabricplus.server_version": "伺服器版本:%s", + "base.viafabricplus.auto": "自動", + "base.viafabricplus.set_version_for_this_server": "設定這個伺服器的版本", + "base.viafabricplus.vanilla_and_modded": "原版和模組", + "base.viafabricplus.vanilla_only": "僅原版", + "base.viafabricplus.kick": "踢出", + "base.viafabricplus.cancel_and_notify": "取消並通知", - "settings.viafabricplus.authentication": "驗證", - "settings.viafabricplus.experimental": "實驗性", - "settings.viafabricplus.visual": "視覺", - "settings.viafabricplus.debug": "除錯", - "settings.viafabricplus.general": "一般", - "settings.viafabricplus.bedrock": "Bedrock 版", + "setting_group_name.viafabricplus.authentication": "驗證", + "setting_group_name.viafabricplus.experimental": "實驗性", + "setting_group_name.viafabricplus.visual": "視覺", + "setting_group_name.viafabricplus.debug": "除錯", + "setting_group_name.viafabricplus.general": "一般", + "setting_group_name.viafabricplus.bedrock": "Bedrock 版", - "general.viafabricplus.secret": "顯示超級祕密設定(Super Secret Settings)", - "general.viafabricplus.extrainformation": "在除錯畫面中顯示更多資訊", - "general.viafabricplus.classicloading": "在連線畫面時顯示舊版進度", - "general.viafabricplus.multiplayerscreenbutton": "多人遊戲畫面按鈕方向", - "general.viafabricplus.addserverscreenbutton": "新增伺服器畫面按鈕方向", - "general.viafabricplus.creative": "從創造模式物品欄移除不可用的物品", - "general.viafabricplus.autodetect": "自動偵測版本", - "general.viafabricplus.advertised": "在多人遊戲介面顯示伺服器所需版本和實際版本", - "general.viafabricplus.ignoreerrors": "忽略封包轉換錯誤", + "general_settings.viafabricplus.super_secret_settings": "顯示超級祕密設定(Super Secret Settings)", + "general_settings.viafabricplus.extra_information_in_debug_hud": "在除錯畫面中顯示更多資訊", + "general_settings.viafabricplus.show_classic_loading_progress": "在連線畫面時顯示舊版進度", + "general_settings.viafabricplus.multiplayer_screen_button_orientation": "多人遊戲畫面按鈕方向", + "general_settings.viafabricplus.add_server_screen_button_orientation": "新增伺服器畫面按鈕方向", + "general_settings.viafabricplus.filter_creative_tabs": "從創造模式物品欄移除不可用的物品", + "general_settings.viafabricplus.auto_detect_version": "自動偵測版本", + "general_settings.viafabricplus.show_advertised_server_version": "在多人遊戲介面顯示伺服器所需版本和實際版本", + "general_settings.viafabricplus.ignore_packet_translation_errors": "忽略封包轉換錯誤", - "bedrock.viafabricplus.confirmtransfer": "開啟提示視窗以確認轉換到其他伺服器", - "bedrock.viafabricplus.authentication": "點擊以設定 Bedrock 版帳號", + "bedrock_settings.viafabricplus.confirm_transfer_server_prompt": "開啟提示視窗以確認轉換到其他伺服器", + "bedrock_settings.viafabricplus.click_to_set_bedrock_account": "點擊以設定 Bedrock 版帳號", "experimental.viafabricplus.chunkborderfix": "修復區塊邊界", "experimental.viafabricplus.watermovement": "水中移動邊緣偵測", "experimental.viafabricplus.boatmovement": "模擬船移動並替換模型", - "debug.viafabricplus.sequence": "停用排序", - "debug.viafabricplus.merchant": "平滑商人畫面", - "debug.viafabricplus.postfix": "同步執行輸入", - "debug.viafabricplus.sneakinstant": "立即潛行", - "debug.viafabricplus.inventory": "發送開啟物品欄封包", - "debug.viafabricplus.cooldown": "移除冷卻時間", - "debug.viafabricplus.idle": "發送閒置封包", - "debug.viafabricplus.attribute": "替換屬性修飾符", - "debug.viafabricplus.replacesneak": "替換潛行", - "debug.viafabricplus.longsneak": "長時間潛行", - "debug.viafabricplus.legacypseeds": "舊版挖礦速度", + "debug_settings.viafabricplus.disable_sequencing": "停用排序", + "debug_settings.viafabricplus.smooth_out_merchant_screens": "平滑商人畫面", + "debug_settings.viafabricplus.execute_inputs_in_sync": "同步執行輸入", + "debug_settings.viafabricplus.sneak_instant": "立即潛行", + "debug_settings.viafabricplus.send_open_inventory_packet": "發送開啟物品欄封包", + "debug_settings.viafabricplus.remove_cooldowns": "移除冷卻時間", + "debug_settings.viafabricplus.send_idle_packet": "發送閒置封包", + "debug_settings.viafabricplus.replace_attribute_modifiers": "替換屬性修飾符", + "debug_settings.viafabricplus.replace_sneaking": "替換潛行", + "debug_settings.viafabricplus.long_sneaking": "長時間潛行", + "debug_settings.viafabricplus.legacy_mining_speeds": "舊版挖礦速度", - "authentication.viafabricplus.betacraft": "使用 BetaCraft 驗證", - "authentication.viafabricplus.verify": "允許 ViaLegacy 調用 joinServer() 來驗證 session", - "authentication.viafabricplus.fail": "如果 joinServer() 調用失敗,則中斷連線", - "authentication.viafabricplus.classicube": "如果使用 ClassiCube,強制使用 CPE 版本", - "authentication.viafabricplus.spoof": "如果使用 ClassiCube,偽造使用者名稱為 ClassiCube 名稱", - "authentication.viafabricplus.skin": "允許 ViaLegacy 在舊版中載入外觀", - "authentication.viafabricplus.error": "ViaFabricPlus session 驗證失敗!請登入帳號或在 ViaFabricPlus 設定中停用 BetaCraft 認證", + "authentication_settings.viafabricplus.use_beta_craft_authentication": "使用 BetaCraft 驗證", + "authentication_settings.viafabricplus.verify_session_for_online_mode": "允許 ViaLegacy 調用 joinServer() 來驗證 session", + "authentication_settings.viafabricplus.fail": "如果 joinServer() 調用失敗,則中斷連線", + "authentication_settings.viafabricplus.automatically_select_cpe_when_using_classicube": "如果使用 ClassiCube,強制使用 CPE 版本", + "authentication_settings.viafabricplus.set_session_name_to_classicube_name": "如果使用 ClassiCube,偽造使用者名稱為 ClassiCube 名稱", + "authentication_settings.viafabricplus.load_skins_in_legacy_versions": "允許 ViaLegacy 在舊版中載入外觀", + "authentication_settings.viafabricplus.failed_to_verify_session": "ViaFabricPlus session 驗證失敗!請登入帳號或在 ViaFabricPlus 設定中停用 BetaCraft 認證", - "visual.viafabricplus.secure": "停用受保護的聊天內容警告", - "visual.viafabricplus.indicator": "隱藏簽章指示器", - "visual.viafabricplus.jigsaw": "從拼圖方塊畫面中移除較新的功能", - "visual.viafabricplus.stoneslab": "替換石化橡木半磚", - "visual.viafabricplus.armor": "模擬盔甲 HUD", - "visual.viafabricplus.command": "從指令方塊畫面中移除較新的功能", - "visual.viafabricplus.oof": "將受傷聲音替換為 OOF 音效", - "visual.viafabricplus.betahud": "移除較新的 HUD 元素", - "visual.viafabricplus.classic": "替換創造模式物品欄", - "visual.viafabricplus.walkanimation": "舊的行走動畫", - "visual.viafabricplus.sodium": "修復 Sodium 方塊渲染器", - "visual.viafabricplus.fontrendererbehaviour": "變更字型渲染器行為", - "visual.viafabricplus.blockhitanimation": "啟用 1.7 方塊擊中動畫", + "visual_settings.viafabricplus.disable_secure_chat_warning": "停用受保護的聊天內容警告", + "visual_settings.viafabricplus.hide_signature_indicator": "隱藏簽章指示器", + "visual_settings.viafabricplus.remove_newer_features_from_jigsaw_screen": "從拼圖方塊畫面中移除較新的功能", + "visual_settings.viafabricplus.replace_petrified_oak_slab": "替換石化橡木半磚", + "visual_settings.viafabricplus.emulate_armor_hud": "模擬盔甲 HUD", + "visual_settings.viafabricplus.remove_newer_features_from_command_block_screen": "從指令方塊畫面中移除較新的功能", + "visual_settings.viafabricplus.replace_hurt_sound_with_oof_sound": "將受傷聲音替換為 OOF 音效", + "visual_settings.viafabricplus.remove_newer_hud_elements": "移除較新的 HUD 元素", + "visual_settings.viafabricplus.replace_creative_inventory_with_classic_inventory": "替換創造模式物品欄", + "visual_settings.viafabricplus.old_walking_animation": "舊的行走動畫", + "visual_settings.viafabricplus.sodium": "修復 Sodium 方塊渲染器", + "visual_settings.viafabricplus.change_font_renderer_behaviour": "變更字型渲染器行為", + "visual_settings.viafabricplus.enable_block_hit_animation": "啟用 1.7 方塊擊中動畫", - "bedrocklogin.viafabricplus.text": "你的瀏覽器應該已經開啟。\n請輸入以下代碼:%s\n關閉此畫面將取消流程!", + "bedrock.viafabricplus.login": "你的瀏覽器應該已經開啟。\n請輸入以下代碼:%s\n關閉此畫面將取消流程!", "bedrocklogin.viafabricplus.error": "發生錯誤!請查看 latest.log 以獲得更多資訊,\n請在以下連結回報錯誤:\nhttps://github.com/ViaVersion/ViaFabricPlus/issues", "bedrockplay.viafabricplus.confirmtransfer": "你確定要轉移到以下伺服器?\n%s\n\n這將中斷目前伺服器的連線並連線到新的伺服器。", - "forceversion.viafabricplus.title": "請選擇用於 Ping/連線伺服器的版本", + "base.viafabricplus.force_version_title": "請選擇用於 Ping/連線伺服器的版本", "classicube.viafabricplus.account": "你可以在這裡建立帳號:https://www.classicube.net/", "classicube.viafabricplus.loading": "正在載入個人檔案資訊和伺服器清單...", - "classicube.viafabricplus.error.token": "權杖不正確。你的 ViaFabricPlus 是否版本太舊?", - "classicube.viafabricplus.error.username": "無效的使用者名稱。", - "classicube.viafabricplus.error.password": "無效的密碼。", - "classicube.viafabricplus.error.verification": "使用者尚未驗證電子郵件地址。", - "classicube.viafabricplus.error.logincode": "要求多重要素驗證。請檢查你的電子郵件。", + "classic4j_library.viafabricplus.error.token": "權杖不正確。你的 ViaFabricPlus 是否版本太舊?", + "classic4j_library.viafabricplus.error.username": "無效的使用者名稱。", + "classic4j_library.viafabricplus.error.password": "無效的密碼。", + "classic4j_library.viafabricplus.error.verification": "使用者尚未驗證電子郵件地址。", + "classic4j_library.viafabricplus.error.logincode": "要求多重要素驗證。請檢查你的電子郵件。", "classicube.viafabricplus.warning": "這個功能將向 ClassiCube API 發送 API 請求。", diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 50beba01e..4465f56fa 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -40,7 +40,7 @@ "environment": "client", "entrypoints": { "modmenu": [ - "de.florianmichael.viafabricplus.screen.settings.ModMenuImpl" + "de.florianmichael.viafabricplus.util.ModMenuScreenFactory" ] }, "mixins": [ diff --git a/src/main/resources/viafabricplus.mixins.json b/src/main/resources/viafabricplus.mixins.json index 918fcbf2e..f605d535a 100644 --- a/src/main/resources/viafabricplus.mixins.json +++ b/src/main/resources/viafabricplus.mixins.json @@ -3,7 +3,7 @@ "minVersion": "0.8", "package": "de.florianmichael.viafabricplus.injection.mixin", "compatibilityLevel": "JAVA_17", - "plugin": "de.florianmichael.viafabricplus.injection.VFPMixinPlugin", + "plugin": "de.florianmichael.viafabricplus.injection.ViaFabricPlusMixinPlugin", "client": [ "base.MixinMain", "base.connect.MixinClientConnection", @@ -141,7 +141,6 @@ "fixes.vialegacy.MixinExtensionProtocolMetadataStorage", "fixes.vialegacy.MixinProtocol1_8to1_7_6_10", "fixes.vialegacy.MixinProtocolc0_30toc0_30cpe", - "fixes.vialegacy.MixinViaLegacyConfig", "fixes.viaversion.MixinChatItemRewriter", "fixes.viaversion.MixinChunkType1_8", "fixes.viaversion.MixinCommandBlockProvider",