From 790e0bfe551397db1ba166732dc71ce29b61b0af Mon Sep 17 00:00:00 2001 From: Anon Date: Tue, 30 Jan 2024 12:51:47 +0100 Subject: [PATCH 01/15] Implemented 1.20.3 --- MinecraftClient/ChatBots/WebSocketBot.cs | 8 +- .../Mapping/EntityMetadataPalette.cs | 2 +- MinecraftClient/McClient.cs | 27 +- .../Handlers/ConfigurationPacketTypesIn.cs | 1 + .../Protocol/Handlers/DataTypes.cs | 90 +++--- .../PacketPalettes/PacketPalette1204.cs | 215 ++++++++++++ .../Protocol/Handlers/PacketType18Handler.cs | 7 +- .../Protocol/Handlers/PacketTypesIn.cs | 6 +- .../Protocol/Handlers/PacketTypesOut.cs | 1 + .../Protocol/Handlers/Protocol18.cs | 225 ++++++++----- .../Protocol/IMinecraftComHandler.cs | 19 +- MinecraftClient/Protocol/ProtocolHandler.cs | 305 ++++++++++++------ MinecraftClient/Scripting/ChatBot.cs | 15 +- 13 files changed, 650 insertions(+), 271 deletions(-) create mode 100644 MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1204.cs diff --git a/MinecraftClient/ChatBots/WebSocketBot.cs b/MinecraftClient/ChatBots/WebSocketBot.cs index 1aa6caa9f0..c57f860596 100644 --- a/MinecraftClient/ChatBots/WebSocketBot.cs +++ b/MinecraftClient/ChatBots/WebSocketBot.cs @@ -1221,16 +1221,16 @@ public override void OnEntityEffect(Entity entity, Effects effect, int amplifier } public override void OnScoreboardObjective(string objectiveName, byte mode, string objectiveValue, int type, - string json_) + string json_, int numberFormat) { SendEvent("OnScoreboardObjective", - new { objectiveName, mode, objectiveValue, type, rawJson = json_ }); + new { objectiveName, mode, objectiveValue, type, rawJson = json_, numberFormat }); } - public override void OnUpdateScore(string entityName, int action, string objectiveName, int value) + public override void OnUpdateScore(string entityName, int action, string objectiveName, string objectiveDisplayName, int value, int numberFormat) { SendEvent("OnUpdateScore", - new { entityName, action, objectiveName, type = value }); + new { entityName, action, objectiveName, objectiveDisplayName, type = value, numberFormat }); } public override void OnInventoryUpdate(int inventoryId) diff --git a/MinecraftClient/Mapping/EntityMetadataPalette.cs b/MinecraftClient/Mapping/EntityMetadataPalette.cs index 56e2d76f6c..1596323145 100644 --- a/MinecraftClient/Mapping/EntityMetadataPalette.cs +++ b/MinecraftClient/Mapping/EntityMetadataPalette.cs @@ -22,7 +22,7 @@ public static EntityMetadataPalette GetPalette(int protocolVersion) <= Protocol18Handler.MC_1_12_2_Version => new EntityMetadataPalette1122(), // 1.9 - 1.12.2 <= Protocol18Handler.MC_1_19_2_Version => new EntityMetadataPalette1191(), // 1.13 - 1.19.2 <= Protocol18Handler.MC_1_19_3_Version => new EntityMetadataPalette1193(), // 1.19.3 - <= Protocol18Handler.MC_1_20_2_Version => new EntityMetadataPalette1194(), // 1.19.4 - 1.20.2 + + <= Protocol18Handler.MC_1_20_4_Version => new EntityMetadataPalette1194(), // 1.19.4 - 1.20.4 + _ => throw new NotImplementedException() }; } diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index c7296d52a3..294c3a9711 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -3414,29 +3414,32 @@ public void OnTitle(int action, string titletext, string subtitletext, string ac } /// - /// Called when coreboardObjective + /// Called when Soreboard Objective /// - /// objective name + /// objective name /// 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text. - /// Only if mode is 0 or 2. The text to be displayed for the score + /// Only if mode is 0 or 2. The text to be displayed for the score /// Only if mode is 0 or 2. 0 = "integer", 1 = "hearts". - public void OnScoreboardObjective(string objectivename, byte mode, string objectivevalue, int type) + /// Number format: 0 - blank, 1 - styled, 2 - fixed + public void OnScoreboardObjective(string objectiveName, byte mode, string objectiveValue, int type, int numberFormat) { - string json = objectivevalue; - objectivevalue = ChatParser.ParseText(objectivevalue); - DispatchBotEvent(bot => bot.OnScoreboardObjective(objectivename, mode, objectivevalue, type, json)); + var json = objectiveValue; + objectiveValue = ChatParser.ParseText(objectiveValue); + DispatchBotEvent(bot => bot.OnScoreboardObjective(objectiveName, mode, objectiveValue, type, json, numberFormat)); } /// /// Called when DisplayScoreboard /// - /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. + /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. /// 0 to create/update an item. 1 to remove an item. - /// The name of the objective the score belongs to - /// he score to be displayed next to the entry. Only sent when Action does not equal 1. - public void OnUpdateScore(string entityname, int action, string objectivename, int value) + /// The name of the objective the score belongs to + /// The name of the objective the score belongs to, but with chat formatting + /// The score to be displayed next to the entry. Only sent when Action does not equal 1. + /// Number format: 0 - blank, 1 - styled, 2 - fixed + public void OnUpdateScore(string entityName, int action, string objectiveName, string objectiveDisplayName, int objectiveValue, int numberFormat) { - DispatchBotEvent(bot => bot.OnUpdateScore(entityname, action, objectivename, value)); + DispatchBotEvent(bot => bot.OnUpdateScore(entityName, action, objectiveName, objectiveDisplayName, objectiveValue, numberFormat)); } /// diff --git a/MinecraftClient/Protocol/Handlers/ConfigurationPacketTypesIn.cs b/MinecraftClient/Protocol/Handlers/ConfigurationPacketTypesIn.cs index f30ce07393..c9ca6e5956 100644 --- a/MinecraftClient/Protocol/Handlers/ConfigurationPacketTypesIn.cs +++ b/MinecraftClient/Protocol/Handlers/ConfigurationPacketTypesIn.cs @@ -9,6 +9,7 @@ public enum ConfigurationPacketTypesIn Ping, RegistryData, ResourcePack, + RemoveResourcePack, FeatureFlags, UpdateTags, diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index f5ad9566bf..d60e27a189 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -844,21 +844,21 @@ private object ReadNbtField(Queue cache, int fieldType) /// /// /// - protected void ReadParticleData(Queue cache, ItemPalette itemPalette) + public void ReadParticleData(Queue cache, ItemPalette itemPalette) { if (protocolversion < Protocol18Handler.MC_1_13_Version) return; - int ParticleID = ReadNextVarInt(cache); + var particleId = ReadNextVarInt(cache); - // Refernece: - // 1.19.3 - https://wiki.vg/index.php?title=Data_types&oldid=17986 + // Documentation: + // 1.19.3+ - https://wiki.vg/index.php?title=Data_types&oldid=17986 // 1.18 - https://wiki.vg/index.php?title=Data_types&oldid=17180 // 1.17 - https://wiki.vg/index.php?title=Data_types&oldid=16740 // 1.15 - https://wiki.vg/index.php?title=Data_types&oldid=15338 // 1.13 - https://wiki.vg/index.php?title=Data_types&oldid=14271 - switch (ParticleID) + switch (particleId) { case 2: // 1.18 + @@ -866,14 +866,12 @@ protected void ReadParticleData(Queue cache, ItemPalette itemPalette) ReadNextVarInt(cache); // Block state (minecraft:block) break; case 3: - if (protocolversion < Protocol18Handler.MC_1_17_Version - || protocolversion > Protocol18Handler.MC_1_17_1_Version) + if (protocolversion is < Protocol18Handler.MC_1_17_Version or > Protocol18Handler.MC_1_17_1_Version) ReadNextVarInt( cache); // Block State (minecraft:block before 1.18, minecraft:block_marker after 1.18) break; case 4: - if (protocolversion == Protocol18Handler.MC_1_17_Version - || protocolversion == Protocol18Handler.MC_1_17_1_Version) + if (protocolversion is Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version) ReadNextVarInt(cache); // Block State (minecraft:block) break; case 11: @@ -883,44 +881,38 @@ protected void ReadParticleData(Queue cache, ItemPalette itemPalette) break; case 14: // 1.15 - 1.16.5 and 1.18 - 1.19.4 - if ((protocolversion >= Protocol18Handler.MC_1_15_Version && - protocolversion < Protocol18Handler.MC_1_17_Version) - || protocolversion > Protocol18Handler.MC_1_17_1_Version) + if (protocolversion is >= Protocol18Handler.MC_1_15_Version and < Protocol18Handler.MC_1_17_Version or > Protocol18Handler.MC_1_17_1_Version) ReadDustParticle(cache); break; case 15: - if (protocolversion == Protocol18Handler.MC_1_17_Version || - protocolversion == Protocol18Handler.MC_1_17_1_Version) - ReadDustParticle(cache); - else + switch (protocolversion) { - if (protocolversion > Protocol18Handler.MC_1_17_1_Version) + case Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version: + ReadDustParticle(cache); + break; + case > Protocol18Handler.MC_1_17_1_Version: ReadDustParticleColorTransition(cache); + break; } break; case 16: - if (protocolversion == Protocol18Handler.MC_1_17_Version || - protocolversion == Protocol18Handler.MC_1_17_1_Version) + if (protocolversion is Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version) ReadDustParticleColorTransition(cache); break; case 23: // 1.15 - 1.16.5 - if (protocolversion >= Protocol18Handler.MC_1_15_Version && - protocolversion < Protocol18Handler.MC_1_17_Version) + if (protocolversion is >= Protocol18Handler.MC_1_15_Version and < Protocol18Handler.MC_1_17_Version) ReadNextVarInt(cache); // Block State (minecraft:falling_dust) break; case 24: // 1.18 - 1.19.2 onwards - if (protocolversion > Protocol18Handler.MC_1_17_1_Version && - protocolversion < Protocol18Handler.MC_1_19_3_Version) + if (protocolversion is > Protocol18Handler.MC_1_17_1_Version and < Protocol18Handler.MC_1_19_3_Version) ReadNextVarInt(cache); // Block State (minecraft:falling_dust) break; case 25: // 1.17 - 1.17.1 and 1.19.3 onwards - if (protocolversion == Protocol18Handler.MC_1_17_Version - || protocolversion == Protocol18Handler.MC_1_17_1_Version - || protocolversion >= Protocol18Handler.MC_1_19_3_Version) + if (protocolversion is Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version or >= Protocol18Handler.MC_1_19_3_Version) ReadNextVarInt(cache); // Block State (minecraft:falling_dust) break; case 27: @@ -934,31 +926,28 @@ protected void ReadParticleData(Queue cache, ItemPalette itemPalette) break; case 32: // 1.15 - 1.16.5 - if (protocolversion >= Protocol18Handler.MC_1_15_Version && - protocolversion < Protocol18Handler.MC_1_17_Version) + if (protocolversion is >= Protocol18Handler.MC_1_15_Version and < Protocol18Handler.MC_1_17_Version) ReadNextItemSlot(cache, itemPalette); // Item (minecraft:item) break; case 36: - // 1.17 - 1.17.1 - if (protocolversion == Protocol18Handler.MC_1_17_Version || - protocolversion == Protocol18Handler.MC_1_17_1_Version) - { - ReadNextItemSlot(cache, itemPalette); // Item (minecraft:item) - } - else if (protocolversion > Protocol18Handler.MC_1_17_1_Version && - protocolversion < Protocol18Handler.MC_1_19_3_Version) + switch (protocolversion) { - // minecraft:vibration - ReadNextLocation(cache); // Origin (Starting Position) - ReadNextLocation(cache); // Desitination (Ending Position) - ReadNextVarInt(cache); // Ticks + // 1.17 - 1.17.1 + case Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version: + ReadNextItemSlot(cache, itemPalette); // Item (minecraft:item) + break; + case > Protocol18Handler.MC_1_17_1_Version and < Protocol18Handler.MC_1_19_3_Version: + // minecraft:vibration + ReadNextLocation(cache); // Origin (Starting Position) + ReadNextLocation(cache); // Destination (Ending Position) + ReadNextVarInt(cache); // Ticks + break; } break; case 37: // minecraft:vibration - if (protocolversion == Protocol18Handler.MC_1_17_Version - || protocolversion == Protocol18Handler.MC_1_17_1_Version) + if (protocolversion is Protocol18Handler.MC_1_17_Version or Protocol18Handler.MC_1_17_1_Version) { ReadNextDouble(cache); // Origin X ReadNextDouble(cache); // Origin Y @@ -977,15 +966,16 @@ protected void ReadParticleData(Queue cache, ItemPalette itemPalette) case 40: if (protocolversion >= Protocol18Handler.MC_1_19_3_Version) { - string positionSourceType = ReadNextString(cache); - if (positionSourceType == "minecraft:block") - { - ReadNextLocation(cache); - } - else if (positionSourceType == "minecraft:entity") + var positionSourceType = ReadNextString(cache); + switch (positionSourceType) { - ReadNextVarInt(cache); - ReadNextFloat(cache); + case "minecraft:block": + ReadNextLocation(cache); + break; + case "minecraft:entity": + ReadNextVarInt(cache); + ReadNextFloat(cache); + break; } ReadNextVarInt(cache); diff --git a/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1204.cs b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1204.cs new file mode 100644 index 0000000000..0f7bcd044c --- /dev/null +++ b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1204.cs @@ -0,0 +1,215 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Protocol.Handlers.PacketPalettes; + +public class PacketPalette1204 : PacketTypePalette + { + private readonly Dictionary typeIn = new() + { + { 0x00, PacketTypesIn.Bundle }, // Added in 1.19.4 + { 0x01, PacketTypesIn.SpawnEntity }, // Changed in 1.19 (Wiki name: Spawn Entity) + { 0x02, PacketTypesIn.SpawnExperienceOrb }, // (Wiki name: Spawn Exeprience Orb) + { 0x03, PacketTypesIn.EntityAnimation }, // (Wiki name: Entity Animation (clientbound)) + { 0x04, PacketTypesIn.Statistics }, // (Wiki name: Award Statistics) + { 0x05, PacketTypesIn.BlockChangedAck }, // Added 1.19 (Wiki name: Acknowledge Block Change) + { 0x06, PacketTypesIn.BlockBreakAnimation }, // (Wiki name: Set Block Destroy Stage) + { 0x07, PacketTypesIn.BlockEntityData }, // + { 0x08, PacketTypesIn.BlockAction }, // + { 0x09, PacketTypesIn.BlockChange }, // (Wiki name: Block Update) + { 0x0A, PacketTypesIn.BossBar }, // + { 0x0B, PacketTypesIn.ServerDifficulty }, // (Wiki name: Change Difficulty) + { 0x0C, PacketTypesIn.ChunkBatchFinished }, // Added in 1.20.2 + { 0x0D, PacketTypesIn.ChunkBatchStarted }, // Added in 1.20.2 + { 0x0E, PacketTypesIn.ChunksBiomes }, // Added in 1.19.4 + { 0x0F, PacketTypesIn.ClearTiles }, // + { 0x10, PacketTypesIn.TabComplete }, // (Wiki name: Command Suggestions Response) + { 0x11, PacketTypesIn.DeclareCommands }, // (Wiki name: Commands) + { 0x12, PacketTypesIn.CloseWindow }, // (Wiki name: Close Container (clientbound)) + { 0x13, PacketTypesIn.WindowItems }, // (Wiki name: Set Container Content) + { 0x14, PacketTypesIn.WindowProperty }, // (Wiki name: Set Container Property) + { 0x15, PacketTypesIn.SetSlot }, // (Wiki name: Set Container Slot) + { 0x16, PacketTypesIn.SetCooldown }, // + { 0x17, PacketTypesIn.ChatSuggestions }, // Added in 1.19.1 + { 0x18, PacketTypesIn.PluginMessage }, // (Wiki name: Plugin Message (clientbound)) + { 0x19, PacketTypesIn.DamageEvent }, // Added in 1.19.4 + { 0x1A, PacketTypesIn.HideMessage }, // Added in 1.19.1 + { 0x1B, PacketTypesIn.Disconnect }, // + { 0x1C, PacketTypesIn.ProfilelessChatMessage }, // Added in 1.19.3 (Wiki name: Disguised Chat Message) + { 0x1D, PacketTypesIn.EntityStatus }, // (Wiki name: Entity Event) + { 0x1E, PacketTypesIn.Explosion }, // Changed in 1.19 (Location fields are now Double instead of Float) (Wiki name: Explosion) + { 0x1F, PacketTypesIn.UnloadChunk }, // (Wiki name: Forget Chunk) + { 0x20, PacketTypesIn.ChangeGameState }, // (Wiki name: Game Event) + { 0x21, PacketTypesIn.OpenHorseWindow }, // (Wiki name: Horse Screen Open) + { 0x22, PacketTypesIn.HurtAnimation }, // Added in 1.19.4 + { 0x23, PacketTypesIn.InitializeWorldBorder }, // + { 0x24, PacketTypesIn.KeepAlive }, // + { 0x25, PacketTypesIn.ChunkData }, // + { 0x26, PacketTypesIn.Effect }, // (Wiki name: World Event) + { 0x27, PacketTypesIn.Particle }, // Changed in 1.19 (Wiki name: Level Particle) (No need to be implemented) + { 0x28, PacketTypesIn.UpdateLight }, // (Wiki name: Light Update) + { 0x29, PacketTypesIn.JoinGame }, // Changed in 1.20.2 (Wiki name: Login (play)) + { 0x2A, PacketTypesIn.MapData }, // (Wiki name: Map Item Data) + { 0x2B, PacketTypesIn.TradeList }, // (Wiki name: Merchant Offers) + { 0x2C, PacketTypesIn.EntityPosition }, // (Wiki name: Move Entity Position) + { 0x2D, PacketTypesIn.EntityPositionAndRotation }, // (Wiki name: Move Entity Position and Rotation) + { 0x2E, PacketTypesIn.EntityRotation }, // (Wiki name: Move Entity Rotation) + { 0x2F, PacketTypesIn.VehicleMove }, // (Wiki name: Move Vehicle) + { 0x30, PacketTypesIn.OpenBook }, // + { 0x31, PacketTypesIn.OpenWindow }, // (Wiki name: Open Screen) + { 0x32, PacketTypesIn.OpenSignEditor }, // + { 0x33, PacketTypesIn.Ping }, // (Wiki name: Ping (play)) + { 0x34, PacketTypesIn.PingResponse }, // Added in 1.20.2 + { 0x35, PacketTypesIn.CraftRecipeResponse }, // (Wiki name: Place Ghost Recipe) + { 0x36, PacketTypesIn.PlayerAbilities }, // + { 0x37, PacketTypesIn.ChatMessage }, // Changed in 1.19 (Completely changed) (Wiki name: Player Chat Message) + { 0x38, PacketTypesIn.EndCombatEvent }, // (Wiki name: End Combat) + { 0x39, PacketTypesIn.EnterCombatEvent }, // (Wiki name: Enter Combat) + { 0x3A, PacketTypesIn.DeathCombatEvent }, // (Wiki name: Combat Death) + { 0x3B, PacketTypesIn.PlayerRemove }, // Added in 1.19.3 (Not used) + { 0x3C, PacketTypesIn.PlayerInfo }, // Changed in 1.19 (Heavy changes) + { 0x3D, PacketTypesIn.FacePlayer }, // (Wiki name: Player Look At) + { 0x3E, PacketTypesIn.PlayerPositionAndLook }, // (Wiki name: Synchronize Player Position) + { 0x3F, PacketTypesIn.UnlockRecipes }, // (Wiki name: Update Recipe Book) + { 0x40, PacketTypesIn.DestroyEntities }, // (Wiki name: Remove Entites) + { 0x41, PacketTypesIn.RemoveEntityEffect }, // + { 0x42, PacketTypesIn.ResetScore }, // Added in 1.20.3 + { 0x43, PacketTypesIn.RemoveResourcePack }, // Added in 1.20.3 + { 0x44, PacketTypesIn.ResourcePackSend }, // (Wiki name: Add Resource pack (play)) + { 0x45, PacketTypesIn.Respawn }, // Changed in 1.20.2 + { 0x46, PacketTypesIn.EntityHeadLook }, // (Wiki name: Set Head Rotation) + { 0x47, PacketTypesIn.MultiBlockChange }, // (Wiki name: Update Section Blocks) + { 0x48, PacketTypesIn.SelectAdvancementTab }, // + { 0x49, PacketTypesIn.ServerData }, // Added in 1.19 + { 0x4A, PacketTypesIn.ActionBar }, // (Wiki name: Set Action Bar Text) + { 0x4B, PacketTypesIn.WorldBorderCenter }, // (Wiki name: Set Border Center) + { 0x4C, PacketTypesIn.WorldBorderLerpSize }, // + { 0x4D, PacketTypesIn.WorldBorderSize }, // (Wiki name: Set World Border Size) + { 0x4E, PacketTypesIn.WorldBorderWarningDelay }, // (Wiki name: Set World Border Warning Delay) + { 0x4F, PacketTypesIn.WorldBorderWarningReach }, // (Wiki name: Set Border Warning Distance) + { 0x50, PacketTypesIn.Camera }, // (Wiki name: Set Camera) + { 0x51, PacketTypesIn.HeldItemChange }, // (Wiki name: Set Held Item) + { 0x52, PacketTypesIn.UpdateViewPosition }, // (Wiki name: Set Center Chunk) + { 0x53, PacketTypesIn.UpdateViewDistance }, // (Wiki name: Set Render Distance) + { 0x54, PacketTypesIn.SpawnPosition }, // (Wiki name: Set Default Spawn Position) + { 0x55, PacketTypesIn.DisplayScoreboard }, // (Wiki name: Set Display Objective) + { 0x56, PacketTypesIn.EntityMetadata }, // (Wiki name: Set Entity Metadata) + { 0x57, PacketTypesIn.AttachEntity }, // (Wiki name: Link Entities) + { 0x58, PacketTypesIn.EntityVelocity }, // (Wiki name: Set Entity Velocity) + { 0x59, PacketTypesIn.EntityEquipment }, // (Wiki name: Set Equipment) + { 0x5A, PacketTypesIn.SetExperience }, // Changed in 1.20.2 + { 0x5B, PacketTypesIn.UpdateHealth }, // (Wiki name: Set Health) + { 0x5C, PacketTypesIn.ScoreboardObjective }, // (Wiki name: Update Objectives) - Changed in 1.20.3 + { 0x5D, PacketTypesIn.SetPassengers }, // + { 0x5E, PacketTypesIn.Teams }, // (Wiki name: Update Teams) + { 0x5F, PacketTypesIn.UpdateScore }, // (Wiki name: Update Score) + { 0x60, PacketTypesIn.UpdateSimulationDistance }, // (Wiki name: Set Simulation Distance) + { 0x61, PacketTypesIn.SetTitleSubTitle }, // (Wiki name: Set Subtitle Test) + { 0x62, PacketTypesIn.TimeUpdate }, // (Wiki name: Set Time) + { 0x63, PacketTypesIn.SetTitleText }, // (Wiki name: Set Title) + { 0x64, PacketTypesIn.SetTitleTime }, // (Wiki name: Set Title Animation Times) + { 0x65, PacketTypesIn.EntitySoundEffect }, // (Wiki name: Sound Entity) + { 0x66, PacketTypesIn.SoundEffect }, // Changed in 1.19 (Added "Seed" field) (Wiki name: Sound Effect) (No need to be implemented) + { 0x67, PacketTypesIn.StartConfiguration }, // Added in 1.20.2 + { 0x68, PacketTypesIn.StopSound }, // + { 0x69, PacketTypesIn.SystemChat }, // Added in 1.19 (Wiki name: System Chat Message) + { 0x6A, PacketTypesIn.PlayerListHeaderAndFooter }, // (Wiki name: Set Tab List Header And Footer) + { 0x6B, PacketTypesIn.NBTQueryResponse }, // (Wiki name: Tag Query Response) + { 0x6C, PacketTypesIn.CollectItem }, // (Wiki name: Pickup Item) + { 0x6D, PacketTypesIn.EntityTeleport }, // (Wiki name: Teleport Entity) + { 0x6E, PacketTypesIn.SetTickingState }, // Added in 1.20.3 + { 0x6F, PacketTypesIn.StepTick }, // Added in 1.20.3 + { 0x70, PacketTypesIn.Advancements }, // (Wiki name: Update Advancements) (Unused) + { 0x71, PacketTypesIn.EntityProperties }, // (Wiki name: Update Attributes) + { 0x72, PacketTypesIn.EntityEffect }, // Changed in 1.19 (Added "Has Factor Data" and "Factor Codec" fields) (Wiki name: Entity Effect) + { 0x73, PacketTypesIn.DeclareRecipes }, // (Wiki name: Update Recipes) (Unused) + { 0x74, PacketTypesIn.Tags }, // (Wiki name: Update Tags) + }; + + private readonly Dictionary typeOut = new() + { + { 0x00, PacketTypesOut.TeleportConfirm }, // (Wiki name: Confirm Teleportation) + { 0x01, PacketTypesOut.QueryBlockNBT }, // (Wiki name: Query Block Entity Tag) + { 0x02, PacketTypesOut.SetDifficulty }, // (Wiki name: Change Difficulty) + { 0x03, PacketTypesOut.MessageAcknowledgment }, // Added in 1.19.1 + { 0x04, PacketTypesOut.ChatCommand }, // Added in 1.19 + { 0x05, PacketTypesOut.ChatMessage }, // Changed in 1.19 (Completely changed) (Wiki name: Chat) + { 0x06, PacketTypesOut.PlayerSession }, // Added in 1.19.3 + { 0x07, PacketTypesOut.ChunkBatchReceived }, // Added in 1.20.2 + { 0x08, PacketTypesOut.ClientStatus }, // (Wiki name: Client Command) + { 0x09, PacketTypesOut.ClientSettings }, // (Wiki name: Client Information) + { 0x0A, PacketTypesOut.TabComplete }, // (Wiki name: Command Suggestions Request) + { 0x0B, PacketTypesOut.AcknowledgeConfiguration }, // Added in 1.20.2 + { 0x0C, PacketTypesOut.ClickWindowButton }, // (Wiki name: Click Container Button) + { 0x0D, PacketTypesOut.ClickWindow }, // (Wiki name: Click Container) + { 0x0E, PacketTypesOut.CloseWindow }, // (Wiki name: Close Container (serverbound)) + { 0x0F, PacketTypesOut.ChangeContainerSlotState }, // Added in 1.20.3 + { 0x10, PacketTypesOut.PluginMessage }, // (Wiki name: Serverbound Plugin Message) + { 0x11, PacketTypesOut.EditBook }, // + { 0x12, PacketTypesOut.EntityNBTRequest }, // (Wiki name: Query Entity Tag) + { 0x13, PacketTypesOut.InteractEntity }, // (Wiki name: Interact) + { 0x14, PacketTypesOut.GenerateStructure }, // (Wiki name: Jigsaw Generate) + { 0x15, PacketTypesOut.KeepAlive }, // (Wiki name: Serverbound Keep Alive (play)) + { 0x16, PacketTypesOut.LockDifficulty }, // + { 0x17, PacketTypesOut.PlayerPosition }, // (Wiki name: Move Player Position) + { 0x18, PacketTypesOut.PlayerPositionAndRotation }, // (Wiki name: Set Player Position and Rotation) + { 0x19, PacketTypesOut.PlayerRotation }, // (Wiki name: Set Player Rotation) + { 0x1A, PacketTypesOut.PlayerMovement }, // (Wiki name: Set Player On Ground) + { 0x1B, PacketTypesOut.VehicleMove }, // (Wiki name: Move Vehicle (serverbound)) + { 0x1C, PacketTypesOut.SteerBoat }, // (Wiki name: Paddle Boat) + { 0x1D, PacketTypesOut.PickItem }, // + { 0x1E, PacketTypesOut.PingRequest }, // Added in 1.20.2 + { 0x1F, PacketTypesOut.CraftRecipeRequest }, // (Wiki name: Place recipe) + { 0x20, PacketTypesOut.PlayerAbilities }, // + { 0x21, PacketTypesOut.PlayerDigging }, // Changed in 1.19 (Added a "Sequence" field) (Wiki name: Player Action) + { 0x22, PacketTypesOut.EntityAction }, // (Wiki name: Player Command) + { 0x23, PacketTypesOut.SteerVehicle }, // (Wiki name: Player Input) + { 0x24, PacketTypesOut.Pong }, // (Wiki name: Pong (play)) + { 0x25, PacketTypesOut.SetDisplayedRecipe }, // (Wiki name: Recipe Book Change Settings) + { 0x26, PacketTypesOut.SetRecipeBookState }, // (Wiki name: Recipe Book Seen Recipe) + { 0x27, PacketTypesOut.NameItem }, // (Wiki name: Rename Item) + { 0x28, PacketTypesOut.ResourcePackStatus }, // (Wiki name: Resource Pack (serverbound)) + { 0x29, PacketTypesOut.AdvancementTab }, // (Wiki name: Seen Advancements) + { 0x2A, PacketTypesOut.SelectTrade }, // + { 0x2B, PacketTypesOut.SetBeaconEffect }, // Changed in 1.19 (No need to be implemented yet) + { 0x2C, PacketTypesOut.HeldItemChange }, // (Wiki name: Set Carried Item (serverbound)) + { 0x2D, PacketTypesOut.UpdateCommandBlock }, // (Wiki name: Program Command Block) + { 0x2E, PacketTypesOut.UpdateCommandBlockMinecart }, // (Wiki name: Program Command Block Minecart) + { 0x2F, PacketTypesOut.CreativeInventoryAction }, // (Wiki name: Set Creative Mode Slot) + { 0x30, PacketTypesOut.UpdateJigsawBlock }, // (Wiki name: Program Jigsaw Block) + { 0x31, PacketTypesOut.UpdateStructureBlock }, // (Wiki name: Program Structure Block) + { 0x32, PacketTypesOut.UpdateSign }, // (Wiki name: Update Sign) + { 0x33, PacketTypesOut.Animation }, // (Wiki name: Swing Arm) + { 0x34, PacketTypesOut.Spectate }, // (Wiki name: Teleport To Entity) + { 0x35, PacketTypesOut.PlayerBlockPlacement }, // Changed in 1.19 (Added a "Sequence" field) (Wiki name: Use Item On) + { 0x36, PacketTypesOut.UseItem }, // Changed in 1.19 (Added a "Sequence" field) (Wiki name: Use Item) + }; + + private readonly Dictionary configurationTypesIn = new() + { + { 0x00, ConfigurationPacketTypesIn.PluginMessage }, + { 0x01, ConfigurationPacketTypesIn.Disconnect }, + { 0x02, ConfigurationPacketTypesIn.FinishConfiguration }, + { 0x03, ConfigurationPacketTypesIn.KeepAlive }, + { 0x04, ConfigurationPacketTypesIn.Ping }, + { 0x05, ConfigurationPacketTypesIn.RegistryData }, + { 0x06, ConfigurationPacketTypesIn.RemoveResourcePack }, + { 0x07, ConfigurationPacketTypesIn.ResourcePack }, + { 0x08, ConfigurationPacketTypesIn.FeatureFlags }, + { 0x09, ConfigurationPacketTypesIn.UpdateTags }, + }; + + private readonly Dictionary configurationTypesOut = new() + { + { 0x00, ConfigurationPacketTypesOut.ClientInformation }, + { 0x01, ConfigurationPacketTypesOut.PluginMessage }, + { 0x02, ConfigurationPacketTypesOut.FinishConfiguration }, + { 0x03, ConfigurationPacketTypesOut.KeepAlive }, + { 0x04, ConfigurationPacketTypesOut.Pong }, + { 0x05, ConfigurationPacketTypesOut.ResourcePackResponse } + }; + + protected override Dictionary GetListIn() => typeIn; + protected override Dictionary GetListOut() => typeOut; + protected override Dictionary GetConfigurationListIn() => configurationTypesIn!; + protected override Dictionary GetConfigurationListOut() => configurationTypesOut!; + } \ No newline at end of file diff --git a/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs b/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs index 006c94ae71..f213996fcf 100644 --- a/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs +++ b/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs @@ -48,7 +48,7 @@ public PacketTypePalette GetTypeHandler(int protocol) { PacketTypePalette p = protocol switch { - > Protocol18Handler.MC_1_20_2_Version => throw new NotImplementedException(Translations + > Protocol18Handler.MC_1_20_4_Version => throw new NotImplementedException(Translations .exception_palette_packet), <= Protocol18Handler.MC_1_8_Version => new PacketPalette17(), <= Protocol18Handler.MC_1_11_2_Version => new PacketPalette110(), @@ -64,8 +64,9 @@ public PacketTypePalette GetTypeHandler(int protocol) <= Protocol18Handler.MC_1_19_Version => new PacketPalette119(), <= Protocol18Handler.MC_1_19_2_Version => new PacketPalette1192(), <= Protocol18Handler.MC_1_19_3_Version => new PacketPalette1193(), - < Protocol18Handler.MC_1_20_2_Version => new PacketPalette1194(), - _ => new PacketPalette1202() + <= Protocol18Handler.MC_1_19_4_Version => new PacketPalette1194(), + <= Protocol18Handler.MC_1_20_2_Version => new PacketPalette1202(), + _ => new PacketPalette1204() }; p.SetForgeEnabled(forgeEnabled); diff --git a/MinecraftClient/Protocol/Handlers/PacketTypesIn.cs b/MinecraftClient/Protocol/Handlers/PacketTypesIn.cs index 61f7e811ae..b4b8debc88 100644 --- a/MinecraftClient/Protocol/Handlers/PacketTypesIn.cs +++ b/MinecraftClient/Protocol/Handlers/PacketTypesIn.cs @@ -1,7 +1,7 @@ namespace MinecraftClient.Protocol.Handlers { /// - /// Incomming packet types + /// Incoming packet types /// public enum PacketTypesIn { @@ -84,6 +84,8 @@ public enum PacketTypesIn PluginMessage, // ProfilelessChatMessage, // Added in 1.19.3 RemoveEntityEffect, // + RemoveResourcePack, // Added in 1.20.3 + ResetScore, // Added in 1.20.3 ResourcePackSend, // Respawn, // ScoreboardObjective, // @@ -96,6 +98,8 @@ public enum PacketTypesIn SetExperience, // SetPassengers, // SetSlot, // + SetTickingState, // Added in 1.20.3 + StepTick, // Added in 1.20.3 SetTitleSubTitle, // SetTitleText, // SetTitleTime, // diff --git a/MinecraftClient/Protocol/Handlers/PacketTypesOut.cs b/MinecraftClient/Protocol/Handlers/PacketTypesOut.cs index 01a70f79e6..61221968d6 100644 --- a/MinecraftClient/Protocol/Handlers/PacketTypesOut.cs +++ b/MinecraftClient/Protocol/Handlers/PacketTypesOut.cs @@ -8,6 +8,7 @@ public enum PacketTypesOut AcknowledgeConfiguration, // Added in 1.20.2 AdvancementTab, // Animation, // + ChangeContainerSlotState, // Added in 1.20.3 ChatCommand, // Added in 1.19 ChatMessage, // ChatPreview, // Added in 1.19 diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index fc7b428f5a..ca0fe63b92 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -69,6 +69,7 @@ class Protocol18Handler : IMinecraftCom internal const int MC_1_19_4_Version = 762; internal const int MC_1_20_Version = 763; internal const int MC_1_20_2_Version = 764; + internal const int MC_1_20_4_Version = 765; private int compression_treshold = 0; private int autocomplete_transaction_id = 0; @@ -120,21 +121,21 @@ class Protocol18Handler : IMinecraftCom lastSeenMessagesCollector = protocolVersion >= MC_1_19_3_Version ? new(20) : new(5); chunkBatchStartTime = GetNanos(); - if (handler.GetTerrainEnabled() && protocolVersion > MC_1_20_2_Version) + if (handler.GetTerrainEnabled() && protocolVersion > MC_1_20_4_Version) { log.Error($"§c{Translations.extra_terrainandmovement_disabled}"); handler.SetTerrainEnabled(false); } if (handler.GetInventoryEnabled() && - protocolVersion is < MC_1_9_Version or > MC_1_20_2_Version) + protocolVersion is < MC_1_9_Version or > MC_1_20_4_Version) { log.Error($"§c{Translations.extra_inventory_disabled}"); handler.SetInventoryEnabled(false); } if (handler.GetEntityHandlingEnabled() && - protocolVersion is < MC_1_8_Version or > MC_1_20_2_Version) + protocolVersion is < MC_1_8_Version or > MC_1_20_4_Version) { log.Error($"§c{Translations.extra_entity_disabled}"); handler.SetEntityHandlingEnabled(false); @@ -143,7 +144,7 @@ class Protocol18Handler : IMinecraftCom Block.Palette = protocolVersion switch { // Block palette - > MC_1_20_2_Version when handler.GetTerrainEnabled() => + > MC_1_20_4_Version when handler.GetTerrainEnabled() => throw new NotImplementedException(Translations.exception_palette_block), >= MC_1_20_Version => new Palette120(), MC_1_19_4_Version => new Palette1194(), @@ -160,7 +161,7 @@ class Protocol18Handler : IMinecraftCom entityPalette = protocolVersion switch { // Entity palette - > MC_1_20_2_Version when handler.GetEntityHandlingEnabled() => + > MC_1_20_4_Version when handler.GetEntityHandlingEnabled() => throw new NotImplementedException(Translations.exception_palette_entity), >= MC_1_20_Version => new EntityPalette120(), MC_1_19_4_Version => new EntityPalette1194(), @@ -181,7 +182,7 @@ class Protocol18Handler : IMinecraftCom itemPalette = protocolVersion switch { // Item palette - > MC_1_20_2_Version when handler.GetInventoryEnabled() => + > MC_1_20_4_Version when handler.GetInventoryEnabled() => throw new NotImplementedException(Translations.exception_palette_item), >= MC_1_20_Version => new ItemPalette120(), MC_1_19_4_Version => new ItemPalette1194(), @@ -422,28 +423,13 @@ internal bool HandlePacket(int packetId, Queue packetData) break; + case ConfigurationPacketTypesIn.RemoveResourcePack: + if (dataTypes.ReadNextBool(packetData)) // Has UUID + dataTypes.ReadNextUUID(packetData); // UUID + break; + case ConfigurationPacketTypesIn.ResourcePack: - var url = dataTypes.ReadNextString(packetData); - var hash = dataTypes.ReadNextString(packetData); - dataTypes.ReadNextBool(packetData); // Forced - var hasPromptMessage = - dataTypes.ReadNextBool(packetData); - - if (hasPromptMessage) - dataTypes.SkipNextString(packetData); - - // Some server plugins may send invalid resource packs to probe the client and we need to ignore them (issue #1056) - if (!url.StartsWith("http") && - hash.Length != 40) // Some server may have null hash value - break; - - //Send back "accepted" and "successfully loaded" responses for plugins or server config making use of resource pack mandatory - var responseHeader = Array.Empty(); - SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, - dataTypes.ConcatBytes(responseHeader, DataTypes.GetVarInt(3))); // Accepted pack - SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, - dataTypes.ConcatBytes(responseHeader, - DataTypes.GetVarInt(0))); // Successfully loaded + HandleResourcePackPacket(packetData); break; // Ignore other packets at this stage @@ -480,6 +466,52 @@ internal bool HandlePacket(int packetId, Queue packetData) return true; } + public void HandleResourcePackPacket(Queue packetData) + { + var uuid = Guid.Empty; + + if (protocolVersion >= MC_1_20_4_Version) + uuid = dataTypes.ReadNextUUID(packetData); + + var url = dataTypes.ReadNextString(packetData); + var hash = dataTypes.ReadNextString(packetData); + + if (protocolVersion >= MC_1_17_Version) + { + dataTypes.ReadNextBool(packetData); // Forced + if (dataTypes.ReadNextBool(packetData)) // Has Prompt Message + dataTypes.SkipNextString(packetData); // Prompt Message + } + + // Some server plugins may send invalid resource packs to probe the client and we need to ignore them (issue #1056) + if (!url.StartsWith("http") && + hash.Length != 40) // Some server may have null hash value + return; + + //Send back "accepted" and "successfully loaded" responses for plugins or server config making use of resource pack mandatory + var responseHeader = protocolVersion < MC_1_10_Version // After 1.10, the MC does not include resource pack hash in responses + ? dataTypes.ConcatBytes(DataTypes.GetVarInt(hash.Length), Encoding.UTF8.GetBytes(hash)) + : Array.Empty(); + + var basePacketData = protocolVersion >= MC_1_20_4_Version && uuid != Guid.Empty + ? dataTypes.ConcatBytes(responseHeader, DataTypes.GetUUID(uuid)) + : responseHeader; + + var acceptedResourcePackData = dataTypes.ConcatBytes(basePacketData, DataTypes.GetVarInt(3)); + var loadedResourcePackData = dataTypes.ConcatBytes(basePacketData, DataTypes.GetVarInt(0)); + + if (currentState == CurrentState.Configuration) + { + SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, acceptedResourcePackData); // Accepted + SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, loadedResourcePackData); // Successfully loaded + } + else + { + SendPacket(PacketTypesOut.ResourcePackStatus, acceptedResourcePackData); // Accepted + SendPacket(PacketTypesOut.ResourcePackStatus, loadedResourcePackData); // Successfully loaded + } + } + private bool HandlePlayPackets(int packetId, Queue packetData) { switch (packetPalette.GetIncomingTypeById(packetId)) @@ -1648,7 +1680,15 @@ private bool HandlePlayPackets(int packetId, Queue packetData) var iconBase64 = "-"; var hasIcon = dataTypes.ReadNextBool(packetData); if (hasIcon) - iconBase64 = dataTypes.ReadNextString(packetData); + { + if(protocolVersion < MC_1_20_2_Version) + iconBase64 = dataTypes.ReadNextString(packetData); + else + { + var pngData = dataTypes.ReadNextByteArray(packetData); + iconBase64 = Convert.ToBase64String(pngData); + } + } var previewsChat = false; if (protocolVersion < MC_1_19_3_Version) @@ -2119,34 +2159,18 @@ private bool HandlePlayPackets(int packetId, Queue packetData) } break; + case PacketTypesIn.RemoveResourcePack: + if (dataTypes.ReadNextBool(packetData)) // Has UUID + dataTypes.ReadNextUUID(packetData); // UUID + break; case PacketTypesIn.ResourcePackSend: - var url = dataTypes.ReadNextString(packetData); - var hash = dataTypes.ReadNextString(packetData); - var forced = true; // Assume forced for MC 1.16 and below - if (protocolVersion >= MC_1_17_Version) - { - forced = dataTypes.ReadNextBool(packetData); - var hasPromptMessage = - dataTypes.ReadNextBool(packetData); // Has Prompt Message (Boolean) - 1.17 and above - if (hasPromptMessage) - dataTypes.SkipNextString( - packetData); // Prompt Message (Optional Chat) - 1.17 and above - } - - // Some server plugins may send invalid resource packs to probe the client and we need to ignore them (issue #1056) - if (!url.StartsWith("http") && hash.Length != 40) // Some server may have null hash value - break; - - //Send back "accepted" and "successfully loaded" responses for plugins or server config making use of resource pack mandatory - var responseHeader = Array.Empty(); - if (protocolVersion < - MC_1_10_Version) //MC 1.10 does not include resource pack hash in responses - responseHeader = dataTypes.ConcatBytes(DataTypes.GetVarInt(hash.Length), - Encoding.UTF8.GetBytes(hash)); - SendPacket(PacketTypesOut.ResourcePackStatus, - dataTypes.ConcatBytes(responseHeader, DataTypes.GetVarInt(3))); // Accepted pack - SendPacket(PacketTypesOut.ResourcePackStatus, - dataTypes.ConcatBytes(responseHeader, DataTypes.GetVarInt(0))); // Successfully loaded + HandleResourcePackPacket(packetData); + break; + case PacketTypesIn.ResetScore: + dataTypes.ReadNextString(packetData); // Entity Name + if(dataTypes.ReadNextBool(packetData)) // Has Objective Name + dataTypes.ReadNextString(packetData); // Objective Name + break; case PacketTypesIn.SpawnEntity: if (handler.GetEntityHandlingEnabled()) @@ -2395,7 +2419,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // Also make a palette for field? Will be a lot of work var healthField = protocolVersion switch { - > MC_1_20_2_Version => throw new NotImplementedException(Translations + > MC_1_20_4_Version => throw new NotImplementedException(Translations .exception_palette_healthfield), // 1.17 and above >= MC_1_17_Version => 9, @@ -2481,15 +2505,29 @@ private bool HandlePlayPackets(int packetId, Queue packetData) var explosionStrength = dataTypes.ReadNextFloat(packetData); var explosionBlockCount = protocolVersion >= MC_1_17_Version ? dataTypes.ReadNextVarInt(packetData) - : dataTypes.ReadNextInt(packetData); + : dataTypes.ReadNextInt(packetData); // Record count + // Records for (var i = 0; i < explosionBlockCount; i++) dataTypes.ReadData(3, packetData); // Maybe use in the future when the physics are implemented - var playerVelocityX = dataTypes.ReadNextFloat(packetData); - var playerVelocityY = dataTypes.ReadNextFloat(packetData); - var playerVelocityZ = dataTypes.ReadNextFloat(packetData); + dataTypes.ReadNextFloat(packetData); // Player Motion X + dataTypes.ReadNextFloat(packetData); // Player Motion Y + dataTypes.ReadNextFloat(packetData); // Player Motion Z + + if (protocolVersion >= MC_1_20_4_Version) + { + dataTypes.ReadNextVarInt(packetData); // Block Interaction + dataTypes.ReadParticleData(packetData, itemPalette); // Small Explosion Particles + dataTypes.ReadParticleData(packetData, itemPalette); // Large Explosion Particles + + // Explosion Sound + dataTypes.ReadNextString(packetData); // Sound Name + var hasFixedRange = dataTypes.ReadNextBool(packetData); + if (hasFixedRange) + dataTypes.ReadNextFloat(packetData); // Range + } handler.OnExplosion(explosionLocation, explosionStrength, explosionBlockCount); break; @@ -2497,30 +2535,61 @@ private bool HandlePlayPackets(int packetId, Queue packetData) handler.OnHeldItemChange(dataTypes.ReadNextByte(packetData)); // Slot break; case PacketTypesIn.ScoreboardObjective: - var objectiveName2 = dataTypes.ReadNextString(packetData); + var objectiveName = dataTypes.ReadNextString(packetData); var mode = dataTypes.ReadNextByte(packetData); + var objectiveValue = string.Empty; - var type2 = -1; + var objectiveType = -1; + var numberFormat = 0; + if (mode is 0 or 2) { objectiveValue = dataTypes.ReadNextString(packetData); - type2 = dataTypes.ReadNextVarInt(packetData); + objectiveType = dataTypes.ReadNextVarInt(packetData); + + if (protocolVersion >= MC_1_20_4_Version) + { + if (dataTypes.ReadNextBool(packetData)) // Has Number Format + numberFormat = dataTypes.ReadNextVarInt(packetData); // Number Format + } } - handler.OnScoreboardObjective(objectiveName2, mode, objectiveValue, type2); + handler.OnScoreboardObjective(objectiveName, mode, objectiveValue, objectiveType, numberFormat); break; case PacketTypesIn.UpdateScore: var entityName = dataTypes.ReadNextString(packetData); - var action3 = protocolVersion >= MC_1_18_2_Version - ? dataTypes.ReadNextVarInt(packetData) - : dataTypes.ReadNextByte(packetData); + + var action3 = 0; var objectiveName3 = string.Empty; - var value = -1; - if (action3 != 1 || protocolVersion >= MC_1_8_Version) - objectiveName3 = dataTypes.ReadNextString(packetData); - if (action3 != 1) - value = dataTypes.ReadNextVarInt(packetData); - handler.OnUpdateScore(entityName, action3, objectiveName3, value); + var objectiveValue2 = -1; + var objectiveDisplayName3 = string.Empty; + var numberFormat2 = 0; + + if (protocolVersion >= MC_1_20_4_Version) + { + objectiveName3 = dataTypes.ReadNextString(packetData); // Objective Name + objectiveValue2 = dataTypes.ReadNextVarInt(packetData); // Value + + if (dataTypes.ReadNextBool(packetData)) // Has Display Name + objectiveDisplayName3 = ChatParser.ParseText(dataTypes.ReadNextString(packetData)); // Has Display Name + + if (dataTypes.ReadNextBool(packetData)) // Has Number Format + numberFormat2 = dataTypes.ReadNextVarInt(packetData); // Number Format + } + else + { + action3 = protocolVersion >= MC_1_18_2_Version + ? dataTypes.ReadNextVarInt(packetData) + : dataTypes.ReadNextByte(packetData); + + if (action3 != 1 || protocolVersion >= MC_1_8_Version) + objectiveName3 = dataTypes.ReadNextString(packetData); + + if (action3 != 1) + objectiveValue2 = dataTypes.ReadNextVarInt(packetData); + } + + handler.OnUpdateScore(entityName, action3, objectiveName3, objectiveDisplayName3, objectiveValue2, numberFormat2); break; case PacketTypesIn.BlockChangedAck: handler.OnBlockChangeAck(dataTypes.ReadNextVarInt(packetData)); @@ -4175,7 +4244,7 @@ public bool ClickContainerButton(int windowId, int buttonId) } } - public bool SendAnimation(int animation, int playerid) + public bool SendAnimation(int animation, int playerId) { try { @@ -4186,7 +4255,7 @@ public bool SendAnimation(int animation, int playerid) switch (protocolVersion) { case < MC_1_8_Version: - packet.AddRange(DataTypes.GetInt(playerid)); + packet.AddRange(DataTypes.GetInt(playerId)); packet.Add(1); // Swing arm break; case < MC_1_9_Version: @@ -4423,10 +4492,8 @@ public bool SendPlayerSession(PlayerKeyPair? playerKeyPair) return false; } } - else - { - return false; - } + + return false; } public bool SendRenameItem(string itemName) diff --git a/MinecraftClient/Protocol/IMinecraftComHandler.cs b/MinecraftClient/Protocol/IMinecraftComHandler.cs index dcc991a523..138913ecaa 100644 --- a/MinecraftClient/Protocol/IMinecraftComHandler.cs +++ b/MinecraftClient/Protocol/IMinecraftComHandler.cs @@ -430,22 +430,25 @@ public interface IMinecraftComHandler void OnEntityEffect(int entityid, Effects effect, int amplifier, int duration, byte flags, bool hasFactorData, Dictionary? factorCodec); /// - /// Called when coreboardObjective + /// Called when Soreboard Objective /// - /// objective name + /// objective name /// 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text. - /// Only if mode is 0 or 2. The text to be displayed for the score + /// Only if mode is 0 or 2. The text to be displayed for the score /// Only if mode is 0 or 2. 0 = "integer", 1 = "hearts". - void OnScoreboardObjective(string objectivename, byte mode, string objectivevalue, int type); + /// Number format: 0 - blank, 1 - styled, 2 - fixed + void OnScoreboardObjective(string objectiveName, byte mode, string objectiveValue, int type, int numberFormat); /// /// Called when DisplayScoreboard /// - /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. + /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. /// 0 to create/update an item. 1 to remove an item. - /// The name of the objective the score belongs to - /// he score to be displayed next to the entry. Only sent when Action does not equal 1. - void OnUpdateScore(string entityname, int action, string objectivename, int value); + /// The name of the objective the score belongs to + /// The name of the objective the score belongs to, but with chat formatting + /// The score to be displayed next to the entry. Only sent when Action does not equal 1. + /// Number format: 0 - blank, 1 - styled, 2 - fixed + void OnUpdateScore(string entityName, int action, string objectiveName, string objectiveDisplayName, int objectiveValue, int numberFormat); /// /// Called when the client received the Tab Header and Footer diff --git a/MinecraftClient/Protocol/ProtocolHandler.cs b/MinecraftClient/Protocol/ProtocolHandler.cs index ee47347210..0e90e94fe5 100644 --- a/MinecraftClient/Protocol/ProtocolHandler.cs +++ b/MinecraftClient/Protocol/ProtocolHandler.cs @@ -12,7 +12,6 @@ using MinecraftClient.Protocol.Handlers.Forge; using MinecraftClient.Protocol.Session; using MinecraftClient.Proxy; -using static MinecraftClient.Protocol.Microsoft; using static MinecraftClient.Settings; using static MinecraftClient.Settings.MainConfigHealper.MainConfig.GeneralConfig; @@ -43,32 +42,39 @@ public static bool MinecraftServiceLookup(ref string domain, ref ushort port) if (!String.IsNullOrEmpty(domain) && domain.Any(c => char.IsLetter(c))) { AutoTimeout.Perform(() => - { - try { - ConsoleIO.WriteLine(string.Format(Translations.mcc_resolve, domainVal)); - var lookupClient = new LookupClient(); - var response = lookupClient.Query(new DnsQuestion($"_minecraft._tcp.{domainVal}", QueryType.SRV)); - if (response.HasError != true && response.Answers.SrvRecords().Any()) + try { - //Order SRV records by priority and weight, then randomly - var result = response.Answers.SrvRecords() - .OrderBy(record => record.Priority) - .ThenByDescending(record => record.Weight) - .ThenBy(record => Guid.NewGuid()) - .First(); - string target = result.Target.Value.Trim('.'); - ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_found, target, result.Port, domainVal)); - domainVal = target; - portVal = result.Port; - foundService = true; + ConsoleIO.WriteLine(string.Format(Translations.mcc_resolve, domainVal)); + var lookupClient = new LookupClient(); + var response = + lookupClient.Query(new DnsQuestion($"_minecraft._tcp.{domainVal}", QueryType.SRV)); + if (response.HasError != true && response.Answers.SrvRecords().Any()) + { + //Order SRV records by priority and weight, then randomly + var result = response.Answers.SrvRecords() + .OrderBy(record => record.Priority) + .ThenByDescending(record => record.Weight) + .ThenBy(record => Guid.NewGuid()) + .First(); + string target = result.Target.Value.Trim('.'); + ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_found, target, + result.Port, domainVal)); + domainVal = target; + portVal = result.Port; + foundService = true; + } } - } - catch (Exception e) - { - ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_not_found, domainVal, e.GetType().FullName, e.Message)); - } - }, TimeSpan.FromSeconds(Config.Main.Advanced.ResolveSrvRecords == MainConfigHealper.MainConfig.AdvancedConfig.ResolveSrvRecordType.fast ? 10 : 30)); + catch (Exception e) + { + ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.mcc_not_found, domainVal, + e.GetType().FullName, e.Message)); + } + }, + TimeSpan.FromSeconds(Config.Main.Advanced.ResolveSrvRecords == + MainConfigHealper.MainConfig.AdvancedConfig.ResolveSrvRecordType.fast + ? 10 + : 30)); } domain = domainVal; @@ -83,28 +89,34 @@ public static bool MinecraftServiceLookup(ref string domain, ref ushort port) /// Server Port to ping /// Will contain protocol version, if ping successful /// TRUE if ping was successful - public static bool GetServerInfo(string serverIP, ushort serverPort, ref int protocolversion, ref ForgeInfo? forgeInfo) + public static bool GetServerInfo(string serverIP, ushort serverPort, ref int protocolversion, + ref ForgeInfo? forgeInfo) { bool success = false; int protocolversionTmp = 0; ForgeInfo? forgeInfoTmp = null; if (AutoTimeout.Perform(() => - { - try - { - if (Protocol18Handler.DoPing(serverIP, serverPort, ref protocolversionTmp, ref forgeInfoTmp) - || Protocol16Handler.DoPing(serverIP, serverPort, ref protocolversionTmp)) { - success = true; - } - else - ConsoleIO.WriteLineFormatted("§8" + Translations.error_unexpect_response, acceptnewlines: true); - } - catch (Exception e) - { - ConsoleIO.WriteLineFormatted(String.Format("§8{0}: {1}", e.GetType().FullName, e.Message)); - } - }, TimeSpan.FromSeconds(Config.Main.Advanced.ResolveSrvRecords == MainConfigHealper.MainConfig.AdvancedConfig.ResolveSrvRecordType.fast ? 10 : 30))) + try + { + if (Protocol18Handler.DoPing(serverIP, serverPort, ref protocolversionTmp, ref forgeInfoTmp) + || Protocol16Handler.DoPing(serverIP, serverPort, ref protocolversionTmp)) + { + success = true; + } + else + ConsoleIO.WriteLineFormatted("§8" + Translations.error_unexpect_response, + acceptnewlines: true); + } + catch (Exception e) + { + ConsoleIO.WriteLineFormatted(string.Format("§8{0}: {1}", e.GetType().FullName, e.Message)); + } + }, + TimeSpan.FromSeconds(Config.Main.Advanced.ResolveSrvRecords == + MainConfigHealper.MainConfig.AdvancedConfig.ResolveSrvRecordType.fast + ? 10 + : 30))) { if (protocolversion != 0 && protocolversion != protocolversionTmp) ConsoleIO.WriteLineFormatted("§8" + Translations.error_version_different, acceptnewlines: true); @@ -125,23 +137,29 @@ public static bool GetServerInfo(string serverIP, ushort serverPort, ref int pro /// /// Get a protocol handler for the specified Minecraft version /// - /// Tcp Client connected to the server - /// Protocol version to handle - /// Handler with the appropriate callbacks + /// Tcp Client connected to the server + /// Protocol version to handle + /// Forge info + /// Handler with the appropriate callbacks /// - public static IMinecraftCom GetProtocolHandler(TcpClient Client, int ProtocolVersion, ForgeInfo? forgeInfo, IMinecraftComHandler Handler) + public static IMinecraftCom GetProtocolHandler(TcpClient client, int protocolVersion, ForgeInfo? forgeInfo, + IMinecraftComHandler handler) { - int[] supportedVersions_Protocol16 = { 51, 60, 61, 72, 73, 74, 78 }; + int[] suppoertedVersionsProtocol16 = { 51, 60, 61, 72, 73, 74, 78 }; - if (Array.IndexOf(supportedVersions_Protocol16, ProtocolVersion) > -1) - return new Protocol16Handler(Client, ProtocolVersion, Handler); + if (Array.IndexOf(suppoertedVersionsProtocol16, protocolVersion) > -1) + return new Protocol16Handler(client, protocolVersion, handler); - int[] supportedVersions_Protocol18 = { 4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573, 575, 578, 735, 736, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764}; + int[] suppoertedVersionsProtocol18 = + { + 4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573, + 575, 578, 735, 736, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 765 + }; - if (Array.IndexOf(supportedVersions_Protocol18, ProtocolVersion) > -1) - return new Protocol18Handler(Client, ProtocolVersion, Handler, forgeInfo); + if (Array.IndexOf(suppoertedVersionsProtocol18, protocolVersion) > -1) + return new Protocol18Handler(client, protocolVersion, handler, forgeInfo); - throw new NotSupportedException(string.Format(Translations.exception_version_unsupport, ProtocolVersion)); + throw new NotSupportedException(string.Format(Translations.exception_version_unsupport, protocolVersion)); } /// @@ -149,11 +167,11 @@ public static IMinecraftCom GetProtocolHandler(TcpClient Client, int ProtocolVer /// /// The Minecraft version number /// The protocol version number or 0 if could not determine protocol version: error, unknown, not supported - public static int MCVer2ProtocolVersion(string MCVersion) + public static int MCVer2ProtocolVersion(string mcVersion) { - if (MCVersion.Contains('.')) + if (mcVersion.Contains('.')) { - switch (MCVersion.Split(' ')[0].Trim()) + switch (mcVersion.Split(' ')[0].Trim()) { case "1.0": case "1.0.0": @@ -324,20 +342,21 @@ public static int MCVer2ProtocolVersion(string MCVersion) return 763; case "1.20.2": return 764; + case "1.20.3": + case "1.20.4": + return 765; default: return 0; } } - else + + try { - try - { - return int.Parse(MCVersion, NumberStyles.Any, CultureInfo.CurrentCulture); - } - catch - { - return 0; - } + return int.Parse(mcVersion, NumberStyles.Any, CultureInfo.CurrentCulture); + } + catch + { + return 0; } } @@ -404,6 +423,7 @@ public static string ProtocolVersion2MCVer(int protocol) 762 => "1.19.4", 763 => "1.20", 764 => "1.20.2", + 765 => "1.20.4", _ => "0.0" }; } @@ -411,7 +431,7 @@ public static string ProtocolVersion2MCVer(int protocol) /// /// Check if we can force-enable Forge support for a Minecraft version without using server Ping /// - /// Minecraft protocol version + /// Minecraft protocol version /// TRUE if we can force-enable Forge support without using server Ping public static bool ProtocolMayForceForge(int protocol) { @@ -421,15 +441,35 @@ public static bool ProtocolMayForceForge(int protocol) /// /// Server Info: Consider Forge to be enabled regardless of server Ping /// - /// Minecraft protocol version + /// Minecraft protocol version /// ForgeInfo item stating that Forge is enabled public static ForgeInfo ProtocolForceForge(int protocol) { return Protocol18Forge.ServerForceForge(protocol); } - public enum LoginResult { OtherError, ServiceUnavailable, SSLError, Success, WrongPassword, AccountMigrated, NotPremium, LoginRequired, InvalidToken, InvalidResponse, NullError, UserCancel, WrongSelection }; - public enum AccountType { Mojang, Microsoft }; + public enum LoginResult + { + OtherError, + ServiceUnavailable, + SSLError, + Success, + WrongPassword, + AccountMigrated, + NotPremium, + LoginRequired, + InvalidToken, + InvalidResponse, + NullError, + UserCancel, + WrongSelection + }; + + public enum AccountType + { + Mojang, + Microsoft + }; /// /// Allows to login to a premium Minecraft account using the Yggdrasil authentication scheme. @@ -455,7 +495,9 @@ public static LoginResult GetLogin(string user, string pass, LoginType type, out { return YggdrasiLogin(user, pass, out session); } - else throw new InvalidOperationException("Account type must be Mojang or Microsoft or valid authlib 3rd Servers!"); + else + throw new InvalidOperationException( + "Account type must be Mojang or Microsoft or valid authlib 3rd Servers!"); } /// @@ -472,8 +514,10 @@ private static LoginResult MojangLogin(string user, string pass, out SessionToke try { string result = ""; - string json_request = "{\"agent\": { \"name\": \"Minecraft\", \"version\": 1 }, \"username\": \"" + JsonEncode(user) + "\", \"password\": \"" + JsonEncode(pass) + "\", \"clientToken\": \"" + JsonEncode(session.ClientID) + "\" }"; - int code = DoHTTPSPost("authserver.mojang.com",443, "/authenticate", json_request, ref result); + string json_request = "{\"agent\": { \"name\": \"Minecraft\", \"version\": 1 }, \"username\": \"" + + JsonEncode(user) + "\", \"password\": \"" + JsonEncode(pass) + + "\", \"clientToken\": \"" + JsonEncode(session.ClientID) + "\" }"; + int code = DoHTTPSPost("authserver.mojang.com", 443, "/authenticate", json_request, ref result); if (code == 200) { if (result.Contains("availableProfiles\":[]}")) @@ -490,7 +534,8 @@ private static LoginResult MojangLogin(string user, string pass, out SessionToke { session.ID = loginResponse.Properties["accessToken"].StringValue; session.PlayerID = loginResponse.Properties["selectedProfile"].Properties["id"].StringValue; - session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"].StringValue; + session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"] + .StringValue; return LoginResult.Success; } else return LoginResult.InvalidResponse; @@ -520,6 +565,7 @@ private static LoginResult MojangLogin(string user, string pass, out SessionToke { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + return LoginResult.SSLError; } catch (System.IO.IOException e) @@ -528,6 +574,7 @@ private static LoginResult MojangLogin(string user, string pass, out SessionToke { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + if (e.Message.Contains("authentication")) { return LoginResult.SSLError; @@ -540,18 +587,23 @@ private static LoginResult MojangLogin(string user, string pass, out SessionToke { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + return LoginResult.OtherError; } } - private static LoginResult YggdrasiLogin(string user, string pass, out SessionToken session) + + private static LoginResult YggdrasiLogin(string user, string pass, out SessionToken session) { session = new SessionToken() { ClientID = Guid.NewGuid().ToString().Replace("-", "") }; try { string result = ""; - string json_request = "{\"agent\": { \"name\": \"Minecraft\", \"version\": 1 }, \"username\": \"" + JsonEncode(user) + "\", \"password\": \"" + JsonEncode(pass) + "\", \"clientToken\": \"" + JsonEncode(session.ClientID) + "\" }"; - int code = DoHTTPSPost(Config.Main.General.AuthServer.Host,Config.Main.General.AuthServer.Port, "/api/yggdrasil/authserver/authenticate", json_request, ref result); + string json_request = "{\"agent\": { \"name\": \"Minecraft\", \"version\": 1 }, \"username\": \"" + + JsonEncode(user) + "\", \"password\": \"" + JsonEncode(pass) + + "\", \"clientToken\": \"" + JsonEncode(session.ClientID) + "\" }"; + int code = DoHTTPSPost(Config.Main.General.AuthServer.Host, Config.Main.General.AuthServer.Port, + "/api/yggdrasil/authserver/authenticate", json_request, ref result); if (code == 200) { if (result.Contains("availableProfiles\":[]}")) @@ -568,36 +620,43 @@ private static LoginResult YggdrasiLogin(string user, string pass, out SessionTo && loginResponse.Properties["selectedProfile"].Properties.ContainsKey("id") && loginResponse.Properties["selectedProfile"].Properties.ContainsKey("name")) { - session.PlayerID = loginResponse.Properties["selectedProfile"].Properties["id"].StringValue; - session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"].StringValue; + session.PlayerID = loginResponse.Properties["selectedProfile"].Properties["id"] + .StringValue; + session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"] + .StringValue; return LoginResult.Success; } else { string availableProfiles = ""; - foreach (Json.JSONData profile in loginResponse.Properties["availableProfiles"].DataArray) + foreach (Json.JSONData profile in loginResponse.Properties["availableProfiles"] + .DataArray) { availableProfiles += " " + profile.Properties["name"].StringValue; - } + } + ConsoleIO.WriteLine(Translations.mcc_avaliable_profiles + availableProfiles); ConsoleIO.WriteLine(Translations.mcc_select_profile); string selectedProfileName = ConsoleIO.ReadLine(); ConsoleIO.WriteLine(Translations.mcc_selected_profile + " " + selectedProfileName); Json.JSONData? selectedProfile = null; - foreach (Json.JSONData profile in loginResponse.Properties["availableProfiles"].DataArray) + foreach (Json.JSONData profile in loginResponse.Properties["availableProfiles"] + .DataArray) { - selectedProfile = profile.Properties["name"].StringValue == selectedProfileName ? profile : selectedProfile; + selectedProfile = profile.Properties["name"].StringValue == selectedProfileName + ? profile + : selectedProfile; } - if (selectedProfile != null) + if (selectedProfile != null) { session.PlayerID = selectedProfile.Properties["id"].StringValue; session.PlayerName = selectedProfile.Properties["name"].StringValue; SessionToken currentsession = session; return GetNewYggdrasilToken(currentsession, out session); } - else + else { return LoginResult.WrongSelection; } @@ -630,6 +689,7 @@ private static LoginResult YggdrasiLogin(string user, string pass, out SessionTo { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + return LoginResult.SSLError; } catch (System.IO.IOException e) @@ -638,6 +698,7 @@ private static LoginResult YggdrasiLogin(string user, string pass, out SessionTo { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + if (e.Message.Contains("authentication")) { return LoginResult.SSLError; @@ -650,9 +711,11 @@ private static LoginResult YggdrasiLogin(string user, string pass, out SessionTo { ConsoleIO.WriteLineFormatted("§8" + e.ToString()); } + return LoginResult.OtherError; } } + /// /// Sign-in to Microsoft Account without using browser. Only works if 2FA is disabled. /// Might not work well in some rare cases. @@ -678,6 +741,7 @@ private static LoginResult MicrosoftMCCLogin(string email, string password, out { ConsoleIO.WriteLineFormatted("§c" + e.StackTrace); } + return LoginResult.WrongPassword; // Might not always be wrong password } } @@ -748,6 +812,7 @@ private static LoginResult MicrosoftLogin(Microsoft.LoginResponse msaResponse, o { ConsoleIO.WriteLineFormatted("§c" + e.StackTrace); } + return LoginResult.WrongPassword; // Might not always be wrong password } } @@ -761,13 +826,15 @@ public static LoginResult GetTokenValidation(SessionToken session) { var payload = JwtPayloadDecode.GetPayload(session.ID); var json = Json.ParseJson(payload); - var expTimestamp = long.Parse(json.Properties["exp"].StringValue, NumberStyles.Any, CultureInfo.CurrentCulture); + var expTimestamp = long.Parse(json.Properties["exp"].StringValue, NumberStyles.Any, + CultureInfo.CurrentCulture); var now = DateTime.Now; var tokenExp = UnixTimeStampToDateTime(expTimestamp); if (Settings.Config.Logging.DebugMessages) { ConsoleIO.WriteLine("Access token expiration time is " + tokenExp.ToString()); } + if (now < tokenExp) { // Still valid @@ -792,8 +859,11 @@ public static LoginResult GetNewToken(SessionToken currentsession, out SessionTo try { string result = ""; - string json_request = "{ \"accessToken\": \"" + JsonEncode(currentsession.ID) + "\", \"clientToken\": \"" + JsonEncode(currentsession.ClientID) + "\", \"selectedProfile\": { \"id\": \"" + JsonEncode(currentsession.PlayerID) + "\", \"name\": \"" + JsonEncode(currentsession.PlayerName) + "\" } }"; - int code = DoHTTPSPost("authserver.mojang.com",443, "/refresh", json_request, ref result); + string json_request = "{ \"accessToken\": \"" + JsonEncode(currentsession.ID) + + "\", \"clientToken\": \"" + JsonEncode(currentsession.ClientID) + + "\", \"selectedProfile\": { \"id\": \"" + JsonEncode(currentsession.PlayerID) + + "\", \"name\": \"" + JsonEncode(currentsession.PlayerName) + "\" } }"; + int code = DoHTTPSPost("authserver.mojang.com", 443, "/refresh", json_request, ref result); if (code == 200) { if (result == null) @@ -810,7 +880,8 @@ public static LoginResult GetNewToken(SessionToken currentsession, out SessionTo { session.ID = loginResponse.Properties["accessToken"].StringValue; session.PlayerID = loginResponse.Properties["selectedProfile"].Properties["id"].StringValue; - session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"].StringValue; + session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"] + .StringValue; return LoginResult.Success; } else return LoginResult.InvalidResponse; @@ -838,8 +909,12 @@ public static LoginResult GetNewYggdrasilToken(SessionToken currentsession, out try { string result = ""; - string json_request = "{ \"accessToken\": \"" + JsonEncode(currentsession.ID) + "\", \"clientToken\": \"" + JsonEncode(currentsession.ClientID) + "\", \"selectedProfile\": { \"id\": \"" + JsonEncode(currentsession.PlayerID) + "\", \"name\": \"" + JsonEncode(currentsession.PlayerName) + "\" } }"; - int code = DoHTTPSPost(Config.Main.General.AuthServer.Host, Config.Main.General.AuthServer.Port, "/api/yggdrasil/authserver/refresh", json_request, ref result); + string json_request = "{ \"accessToken\": \"" + JsonEncode(currentsession.ID) + + "\", \"clientToken\": \"" + JsonEncode(currentsession.ClientID) + + "\", \"selectedProfile\": { \"id\": \"" + JsonEncode(currentsession.PlayerID) + + "\", \"name\": \"" + JsonEncode(currentsession.PlayerName) + "\" } }"; + int code = DoHTTPSPost(Config.Main.General.AuthServer.Host, Config.Main.General.AuthServer.Port, + "/api/yggdrasil/authserver/refresh", json_request, ref result); if (code == 200) { if (result == null) @@ -856,7 +931,8 @@ public static LoginResult GetNewYggdrasilToken(SessionToken currentsession, out { session.ID = loginResponse.Properties["accessToken"].StringValue; session.PlayerID = loginResponse.Properties["selectedProfile"].Properties["id"].StringValue; - session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"].StringValue; + session.PlayerName = loginResponse.Properties["selectedProfile"].Properties["name"] + .StringValue; return LoginResult.Success; } else return LoginResult.InvalidResponse; @@ -891,15 +967,23 @@ public static bool SessionCheck(string uuid, string accesstoken, string serverha try { string result = ""; - string json_request = "{\"accessToken\":\"" + accesstoken + "\",\"selectedProfile\":\"" + uuid + "\",\"serverId\":\"" + serverhash + "\"}"; - string host = type == LoginType.yggdrasil ? Config.Main.General.AuthServer.Host : "sessionserver.mojang.com"; + string json_request = "{\"accessToken\":\"" + accesstoken + "\",\"selectedProfile\":\"" + uuid + + "\",\"serverId\":\"" + serverhash + "\"}"; + string host = type == LoginType.yggdrasil + ? Config.Main.General.AuthServer.Host + : "sessionserver.mojang.com"; int port = type == LoginType.yggdrasil ? Config.Main.General.AuthServer.Port : 443; - string endpoint = type == LoginType.yggdrasil ? "/api/yggdrasil/sessionserver/session/minecraft/join" : "/session/minecraft/join"; + string endpoint = type == LoginType.yggdrasil + ? "/api/yggdrasil/sessionserver/session/minecraft/join" + : "/session/minecraft/join"; int code = DoHTTPSPost(host, port, endpoint, json_request, ref result); return (code >= 200 && code < 300); } - catch { return false; } + catch + { + return false; + } } /// @@ -915,8 +999,9 @@ public static List RealmsListWorlds(string username, string uuid, string try { string result = ""; - string cookies = String.Format("sid=token:{0}:{1};user={2};version={3}", accesstoken, uuid, username, Program.MCHighestVersion); - DoHTTPSGet("pc.realms.minecraft.net", 443,"/worlds", cookies, ref result); + string cookies = String.Format("sid=token:{0}:{1};user={2};version={3}", accesstoken, uuid, username, + Program.MCHighestVersion); + DoHTTPSGet("pc.realms.minecraft.net", 443, "/worlds", cookies, ref result); Json.JSONData realmsWorlds = Json.ParseJson(result); if (realmsWorlds.Properties.ContainsKey("servers") && realmsWorlds.Properties["servers"].Type == Json.JSONData.DataType.Array @@ -942,6 +1027,7 @@ public static List RealmsListWorlds(string username, string uuid, string } } } + if (availableWorlds.Count > 0) { ConsoleIO.WriteLine(Translations.mcc_realms_available); @@ -950,7 +1036,6 @@ public static List RealmsListWorlds(string username, string uuid, string ConsoleIO.WriteLine(Translations.mcc_realms_join); } } - } catch (Exception e) { @@ -960,6 +1045,7 @@ public static List RealmsListWorlds(string username, string uuid, string ConsoleIO.WriteLineFormatted("§8" + e.StackTrace); } } + return realmsWorldsResult; } @@ -971,13 +1057,16 @@ public static List RealmsListWorlds(string username, string uuid, string /// Player UUID /// Access token /// Server address (host:port) or empty string if failure - public static string GetRealmsWorldServerAddress(string worldId, string username, string uuid, string accesstoken) + public static string GetRealmsWorldServerAddress(string worldId, string username, string uuid, + string accesstoken) { try { string result = ""; - string cookies = String.Format("sid=token:{0}:{1};user={2};version={3}", accesstoken, uuid, username, Program.MCHighestVersion); - int statusCode = DoHTTPSGet("pc.realms.minecraft.net",443, "/worlds/v1/" + worldId + "/join/pc", cookies, ref result); + string cookies = String.Format("sid=token:{0}:{1};user={2};version={3}", accesstoken, uuid, username, + Program.MCHighestVersion); + int statusCode = DoHTTPSGet("pc.realms.minecraft.net", 443, "/worlds/v1/" + worldId + "/join/pc", + cookies, ref result); if (statusCode == 200) { Json.JSONData serverAddress = Json.ParseJson(result); @@ -1002,6 +1091,7 @@ public static string GetRealmsWorldServerAddress(string worldId, string username { ConsoleIO.WriteLineFormatted("§8" + e.StackTrace); } + return ""; } } @@ -1014,7 +1104,7 @@ public static string GetRealmsWorldServerAddress(string worldId, string username /// Cookies for making the request /// Request result /// HTTP Status code - private static int DoHTTPSGet(string host,int port, string endpoint, string cookies, ref string result) + private static int DoHTTPSGet(string host, int port, string endpoint, string cookies, ref string result) { List http_request = new() { @@ -1029,7 +1119,7 @@ private static int DoHTTPSGet(string host,int port, string endpoint, string cook "", "" }; - return DoHTTPSRequest(http_request, host,port, ref result); + return DoHTTPSRequest(http_request, host, port, ref result); } /// @@ -1053,7 +1143,7 @@ private static int DoHTTPSPost(string host, int port, string endpoint, string re "", request }; - return DoHTTPSRequest(http_request, host,port, ref result); + return DoHTTPSRequest(http_request, host, port, ref result); } /// @@ -1064,7 +1154,7 @@ private static int DoHTTPSPost(string host, int port, string endpoint, string re /// Host to connect to /// Request result /// HTTP Status code - private static int DoHTTPSRequest(List headers, string host,int port, ref string result) + private static int DoHTTPSRequest(List headers, string host, int port, ref string result) { string? postResult = null; int statusCode = 520; @@ -1078,7 +1168,8 @@ private static int DoHTTPSRequest(List headers, string host,int port, re TcpClient client = ProxyHandler.NewTcpClient(host, port, true); SslStream stream = new(client.GetStream()); - stream.AuthenticateAsClient(host, null, SslProtocols.Tls12, true); // Enable TLS 1.2. Hotfix for #1780 + stream.AuthenticateAsClient(host, null, SslProtocols.Tls12, + true); // Enable TLS 1.2. Hotfix for #1780 if (Settings.Config.Logging.DebugMessages) foreach (string line in headers) @@ -1098,12 +1189,12 @@ private static int DoHTTPSRequest(List headers, string host,int port, re if (raw_result.StartsWith("HTTP/1.1")) { statusCode = int.Parse(raw_result.Split(' ')[1], NumberStyles.Any, CultureInfo.CurrentCulture); - if (statusCode != 204) + if (statusCode != 204) { var splited = raw_result[(raw_result.IndexOf("\r\n\r\n") + 4)..].Split("\r\n"); postResult = splited[1] + splited[3]; } - else + else { postResult = "No Content"; } @@ -1165,4 +1256,4 @@ public static DateTime UnixTimeStampToDateTime(long unixTimeStamp) return dateTime; } } -} +} \ No newline at end of file diff --git a/MinecraftClient/Scripting/ChatBot.cs b/MinecraftClient/Scripting/ChatBot.cs index 36c365bee4..14ac29d10e 100644 --- a/MinecraftClient/Scripting/ChatBot.cs +++ b/MinecraftClient/Scripting/ChatBot.cs @@ -332,20 +332,23 @@ public void UpdateInternal() /// /// Called when a scoreboard objective updated /// - /// objective name + /// objective name /// 0 to create the scoreboard. 1 to remove the scoreboard. 2 to update the display text. - /// Only if mode is 0 or 2. The text to be displayed for the score + /// Only if mode is 0 or 2. The text to be displayed for the score /// Only if mode is 0 or 2. 0 = "integer", 1 = "hearts". - public virtual void OnScoreboardObjective(string objectivename, byte mode, string objectivevalue, int type, string json) { } + /// Number format: 0 - blank, 1 - styled, 2 - fixed + public virtual void OnScoreboardObjective(string objectiveName, byte mode, string objectiveValue, int type, string json, int numberFormat) { } /// /// Called when a scoreboard updated /// - /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. + /// The entity whose score this is. For players, this is their username; for other entities, it is their UUID. /// 0 to create/update an item. 1 to remove an item. - /// The name of the objective the score belongs to + /// The name of the objective the score belongs to + /// The name of the objective the score belongs to, but with chat formatting /// The score to be displayed next to the entry. Only sent when Action does not equal 1. - public virtual void OnUpdateScore(string entityname, int action, string objectivename, int value) { } + /// Number format: 0 - blank, 1 - styled, 2 - fixed + public virtual void OnUpdateScore(string entityName, int action, string objectiveName, string objectiveDisplayName, int value, int numberFormat) { } /// /// Called when the client received the Tab Header and Footer From 975aab88e3083f5c2adfe543e59de7fd1c382dd8 Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 31 Jan 2024 13:53:09 +0100 Subject: [PATCH 02/15] NBT Changes, needs fixing --- .../Protocol/Handlers/DataTypes.cs | 35 ++++++++++++++++--- .../Protocol/Handlers/Protocol18.cs | 7 +++- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index d60e27a189..f18a8f79fd 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -560,19 +560,44 @@ public Entity ReadNextEntity(Queue cache, EntityPalette entityPalette, boo cache.Dequeue(); return nbtData; } - - if (cache.Peek() != 10) // TAG_Compound - throw new System.IO.InvalidDataException("Failed to decode NBT: Does not start with TAG_Compound"); - ReadNextByte(cache); // Tag type (TAG_Compound) - + + var nextId = cache.Peek(); if (protocolversion < Protocol18Handler.MC_1_20_2_Version) { + if (nextId is 10) // TAG_Compound + throw new System.IO.InvalidDataException("Failed to decode NBT: Does not start with TAG_Compound"); + + // Read TAG_Compound + ReadNextByte(cache); + // NBT root name var rootName = Encoding.ASCII.GetString(ReadData(ReadNextUShort(cache), cache)); if (!string.IsNullOrEmpty(rootName)) nbtData[""] = rootName; } + // In 1.20.2 The root TAG_Compound doesn't have a name + // In 1.20.3+ The root can be TAG_Compound or TAG_String + else + { + if (nextId is not (10 or 8)) // TAG_Compound or TAG_String + throw new System.IO.InvalidDataException("Failed to decode NBT: Does not start with TAG_Compound or TAG_String"); + + // Read TAG_String + if(nextId is 8) + { + var byteArrayLength = ReadNextUShort(cache); + var result = Encoding.UTF8.GetString(ReadData(byteArrayLength, cache)); + + return new Dictionary() + { + { "", result } + }; + } + + // Read TAG_Compound + ReadNextByte(cache); + } } while (true) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index ca0fe63b92..fb2e1fd242 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -1674,7 +1674,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) else { hasMotd = true; - motd = ChatParser.ParseText(dataTypes.ReadNextString(packetData)); + motd = (string)dataTypes.ReadNextNbt(packetData)[""]; } var iconBase64 = "-"; @@ -2635,6 +2635,11 @@ private bool HandlePlayPackets(int packetId, Queue packetData) break;*/ + case PacketTypesIn.SetTickingState: + dataTypes.ReadNextFloat(packetData); + dataTypes.ReadNextBool(packetData); + break; + default: return false; //Ignored packet } From a9f1ad4433f959dceaa7df6cf1946e97eabdad27 Mon Sep 17 00:00:00 2001 From: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com> Date: Sun, 4 Feb 2024 18:14:09 +0800 Subject: [PATCH 03/15] 1.20.3: Update chat parser to parse new NBT format --- .../Protocol/Handlers/DataTypes.cs | 22 ++++- .../Handlers/Packet/s2c/DeclareCommands.cs | 32 +++++- .../Protocol/Handlers/Protocol18.cs | 98 +++++++++---------- .../Protocol/Message/ChatParser.cs | 64 ++++++++++++ 4 files changed, 158 insertions(+), 58 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index f18a8f79fd..6f8961ff76 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -6,6 +6,7 @@ using MinecraftClient.Inventory.ItemPalettes; using MinecraftClient.Mapping; using MinecraftClient.Mapping.EntityPalettes; +using MinecraftClient.Protocol.Message; namespace MinecraftClient.Protocol.Handlers { @@ -561,7 +562,7 @@ public Entity ReadNextEntity(Queue cache, EntityPalette entityPalette, boo return nbtData; } - var nextId = cache.Peek(); + var nextId = cache.Dequeue(); if (protocolversion < Protocol18Handler.MC_1_20_2_Version) { if (nextId is 10) // TAG_Compound @@ -596,7 +597,7 @@ public Entity ReadNextEntity(Queue cache, EntityPalette entityPalette, boo } // Read TAG_Compound - ReadNextByte(cache); + //ReadNextByte(cache); } } @@ -1059,6 +1060,23 @@ public VillagerTrade ReadNextTrade(Queue cache, ItemPalette itemPalette) maximumNumberOfTradeUses, xp, specialPrice, priceMultiplier, demand); } + public string ReadNextChat(Queue cache) + { + if (protocolversion >= Protocol18Handler.MC_1_20_4_Version) + { + // Read as NBT + var r = ReadNextNbt(cache); + var msg = ChatParser.ParseText(r); + return msg; + } + else + { + // Read as String + var json = ReadNextString(cache); + return ChatParser.ParseText(json); + } + } + /// /// Build an uncompressed Named Binary Tag blob for sending over the network /// diff --git a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs index 0311c9f7f6..3885eb3a56 100644 --- a/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs +++ b/MinecraftClient/Protocol/Handlers/Packet/s2c/DeclareCommands.cs @@ -71,7 +71,7 @@ public static void Read(DataTypes dataTypes, Queue packetData, int protoco 44 => new ParserResource(dataTypes, packetData), _ => new ParserEmpty(dataTypes, packetData), }; - else // 1.19.4+ + else if (protocolVersion <= Protocol18Handler.MC_1_20_2_Version)// 1.19.4 - 1.20.2 parser = parserId switch { 1 => new ParserFloat(dataTypes, packetData), @@ -94,11 +94,34 @@ public static void Read(DataTypes dataTypes, Queue packetData, int protoco 44 => new ParserResource(dataTypes, packetData), _ => new ParserEmpty(dataTypes, packetData), }; + else // 1.20.3+ + parser = parserId switch + { + 1 => new ParserFloat(dataTypes, packetData), + 2 => new ParserDouble(dataTypes, packetData), + 3 => new ParserInteger(dataTypes, packetData), + 4 => new ParserLong(dataTypes, packetData), + 5 => new ParserString(dataTypes, packetData), + 6 => new ParserEntity(dataTypes, packetData), + 8 => new ParserBlockPos(dataTypes, packetData), + 9 => new ParserColumnPos(dataTypes, packetData), + 10 => new ParserVec3(dataTypes, packetData), + 11 => new ParserVec2(dataTypes, packetData), + 18 => new ParserMessage(dataTypes, packetData), + 27 => new ParserRotation(dataTypes, packetData), + 30 => new ParserScoreHolder(dataTypes, packetData), + 41 => new ParserTime(dataTypes, packetData), + 42 => new ParserResourceOrTag(dataTypes, packetData), + 43 => new ParserResourceOrTag(dataTypes, packetData), + 44 => new ParserResource(dataTypes, packetData), + 45 => new ParserResource(dataTypes, packetData), + _ => new ParserEmpty(dataTypes, packetData), + }; } string? suggestionsType = ((flags & 0x10) == 0x10) ? dataTypes.ReadNextString(packetData) : null; - Nodes[i] = new(flags, childs, redirectNode, name, parser, suggestionsType); + Nodes[i] = new(flags, childs, redirectNode, name, parser, suggestionsType, parserId); } RootIdx = dataTypes.ReadNextVarInt(packetData); @@ -174,6 +197,7 @@ internal class CommandNode public string? Name; public Parser? Paser; public string? SuggestionsType; + public int ParserId; // Added for easy debug public CommandNode(byte Flags, @@ -181,7 +205,8 @@ internal class CommandNode int RedirectNode = -1, string? Name = null, Parser? Paser = null, - string? SuggestionsType = null) + string? SuggestionsType = null, + int parserId = -1) { this.Flags = Flags; this.Clildren = Clildren; @@ -189,6 +214,7 @@ internal class CommandNode this.Name = Name; this.Paser = Paser; this.SuggestionsType = SuggestionsType; + ParserId = parserId; } } diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index fb2e1fd242..59b975dd2c 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -362,8 +362,8 @@ internal void PacketReader(object? o) /// TRUE if the packet was processed, FALSE if ignored or unknown internal bool HandlePacket(int packetId, Queue packetData) { - try - { + //try + //{ switch (currentState) { // https://wiki.vg/Protocol#Login @@ -398,7 +398,7 @@ internal bool HandlePacket(int packetId, Queue packetData) { case ConfigurationPacketTypesIn.Disconnect: handler.OnConnectionLost(ChatBot.DisconnectReason.InGameKick, - ChatParser.ParseText(dataTypes.ReadNextString(packetData))); + dataTypes.ReadNextChat(packetData)); return false; case ConfigurationPacketTypesIn.FinishConfiguration: @@ -446,22 +446,23 @@ internal bool HandlePacket(int packetId, Queue packetData) default: return true; } - } - catch (Exception innerException) - { - if (innerException is ThreadAbortException || innerException is SocketException || - innerException.InnerException is SocketException) - throw; //Thread abort or Connection lost rather than invalid data - - throw new System.IO.InvalidDataException( - string.Format(Translations.exception_packet_process, - packetPalette.GetIncomingTypeById(packetId), - packetId, - protocolVersion, - currentState == CurrentState.Login, - innerException.GetType()), - innerException); - } + //} + //catch (Exception innerException) + //{ + // //throw; + // if (innerException is ThreadAbortException || innerException is SocketException || + // innerException.InnerException is SocketException) + // throw; //Thread abort or Connection lost rather than invalid data + + // throw new System.IO.InvalidDataException( + // string.Format(Translations.exception_packet_process, + // packetPalette.GetIncomingTypeById(packetId), + // packetId, + // protocolVersion, + // currentState == CurrentState.Login, + // innerException.GetType()), + // innerException); + //} return true; } @@ -480,7 +481,7 @@ public void HandleResourcePackPacket(Queue packetData) { dataTypes.ReadNextBool(packetData); // Forced if (dataTypes.ReadNextBool(packetData)) // Has Prompt Message - dataTypes.SkipNextString(packetData); // Prompt Message + dataTypes.ReadNextChat(packetData); // Prompt Message } // Some server plugins may send invalid resource packs to probe the client and we need to ignore them (issue #1056) @@ -918,7 +919,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // Other var unsignedChatContent = dataTypes.ReadNextBool(packetData) - ? dataTypes.ReadNextString(packetData) + ? dataTypes.ReadNextChat(packetData) : null; var filterType = (MessageFilterType)dataTypes.ReadNextVarInt(packetData); @@ -929,26 +930,17 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // Network Target // net.minecraft.network.message.MessageType.Serialized#write var chatTypeId = dataTypes.ReadNextVarInt(packetData); - var chatName = dataTypes.ReadNextString(packetData); + var chatName = dataTypes.ReadNextChat(packetData); var targetName = dataTypes.ReadNextBool(packetData) - ? dataTypes.ReadNextString(packetData) + ? dataTypes.ReadNextChat(packetData) : null; var messageTypeEnum = ChatParser.ChatId2Type!.GetValueOrDefault(chatTypeId, ChatParser.MessageType.CHAT); - var chatInfo = - Json.ParseJson(targetName ?? chatName).Properties; - var senderDisplayName = chatInfo != null && chatInfo.Count > 0 - ? (chatInfo.ContainsKey("insertion") ? chatInfo["insertion"] : chatInfo["text"]) - .StringValue - : ""; - string? senderTeamName = null; - if (targetName != null && - messageTypeEnum is ChatParser.MessageType.TEAM_MSG_COMMAND_INCOMING - or ChatParser.MessageType.TEAM_MSG_COMMAND_OUTGOING) - senderTeamName = Json.ParseJson(targetName).Properties["with"].DataArray[0] - .Properties["text"].StringValue; + //var chatInfo = Json.ParseJson(targetName ?? chatName).Properties; + var senderDisplayName = chatName; + string? senderTeamName = targetName; if (string.IsNullOrWhiteSpace(senderDisplayName)) { @@ -956,7 +948,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) if (player != null && (player.DisplayName != null || player.Name != null) && string.IsNullOrWhiteSpace(senderDisplayName)) { - senderDisplayName = ChatParser.ParseText(player.DisplayName ?? player.Name); + senderDisplayName = player.DisplayName ?? player.Name; if (string.IsNullOrWhiteSpace(senderDisplayName)) senderDisplayName = player.DisplayName ?? player.Name; else @@ -1020,7 +1012,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) $"HideMessage was not processed! (SigLen={hideMessageSignature.Length})"); break; case PacketTypesIn.SystemChat: - var systemMessage = dataTypes.ReadNextString(packetData); + var systemMessage = dataTypes.ReadNextChat(packetData); if (protocolVersion >= MC_1_19_3_Version) { @@ -1036,7 +1028,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) break; } - handler.OnTextReceived(new(systemMessage, null, true, -1, Guid.Empty, true)); + handler.OnTextReceived(new(systemMessage, null, false, -1, Guid.Empty, true)); } else { @@ -1048,15 +1040,15 @@ private bool HandlePlayPackets(int packetId, Queue packetData) break; case PacketTypesIn.ProfilelessChatMessage: - var message_ = dataTypes.ReadNextString(packetData); + var message_ = dataTypes.ReadNextChat(packetData); var messageType_ = dataTypes.ReadNextVarInt(packetData); - var messageName = dataTypes.ReadNextString(packetData); + var messageName = dataTypes.ReadNextChat(packetData); var targetName_ = dataTypes.ReadNextBool(packetData) - ? dataTypes.ReadNextString(packetData) + ? dataTypes.ReadNextChat(packetData) : null; - ChatMessage profilelessChat = new(message_, targetName_ ?? messageName, true, messageType_, + ChatMessage profilelessChat = new(message_, targetName_ ?? messageName, false, messageType_, Guid.Empty, true); - profilelessChat.isSenderJson = true; + profilelessChat.isSenderJson = false; handler.OnTextReceived(profilelessChat); break; case PacketTypesIn.CombatEvent: @@ -1082,7 +1074,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) handler.OnPlayerKilled( protocolVersion >= MC_1_20_Version ? -1 : dataTypes.ReadNextInt(packetData), - ChatParser.ParseText(dataTypes.ReadNextString(packetData)) + ChatParser.ParseText(dataTypes.ReadNextChat(packetData)) ); break; @@ -1481,7 +1473,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) if (dataTypes.ReadNextBool(packetData)) // Has Display Name? mapIcon.DisplayName = - ChatParser.ParseText(dataTypes.ReadNextString(packetData)); + ChatParser.ParseText(dataTypes.ReadNextChat(packetData)); } icons.Add(mapIcon); @@ -1669,12 +1661,12 @@ private bool HandlePlayPackets(int packetId, Queue packetData) hasMotd = dataTypes.ReadNextBool(packetData); if (hasMotd) - motd = ChatParser.ParseText(dataTypes.ReadNextString(packetData)); + motd = ChatParser.ParseText(dataTypes.ReadNextChat(packetData)); } else { hasMotd = true; - motd = (string)dataTypes.ReadNextNbt(packetData)[""]; + motd = ChatParser.ParseText(dataTypes.ReadNextChat(packetData)); } var iconBase64 = "-"; @@ -1888,7 +1880,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // Actions bit 5: update display name if ((actionBitset & 1 << 5) <= 0) continue; player.DisplayName = dataTypes.ReadNextBool(packetData) - ? dataTypes.ReadNextString(packetData) + ? dataTypes.ReadNextChat(packetData) : null; } } @@ -2034,7 +2026,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // Skip optional tooltip for each tab-complete resul`t if (dataTypes.ReadNextBool(packetData)) - dataTypes.SkipNextString(packetData); + dataTypes.ReadNextChat(packetData); } handler.OnAutoCompleteDone(oldTransactionId, autocompleteResult); @@ -2048,7 +2040,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) return pForge.HandlePluginMessage(channel, packetData, ref currentDimension); case PacketTypesIn.Disconnect: handler.OnConnectionLost(ChatBot.DisconnectReason.InGameKick, - ChatParser.ParseText(dataTypes.ReadNextString(packetData))); + ChatParser.ParseText(dataTypes.ReadNextChat(packetData))); return false; case PacketTypesIn.SetCompression: if (protocolVersion is >= MC_1_8_Version and < MC_1_9_Version) @@ -2065,7 +2057,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) .ToUpper(); var inventoryType = (ContainerTypeOld)Enum.Parse(typeof(ContainerTypeOld), type); - var title = dataTypes.ReadNextString(packetData); + var title = dataTypes.ReadNextChat(packetData); var slots = dataTypes.ReadNextByte(packetData); Container inventory = new(windowId, inventoryType, ChatParser.ParseText(title)); handler.OnInventoryOpen(windowId, inventory); @@ -2075,7 +2067,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) // MC 1.14 or greater var windowId = dataTypes.ReadNextVarInt(packetData); var windowType = dataTypes.ReadNextVarInt(packetData); - var title = dataTypes.ReadNextString(packetData); + var title = dataTypes.ReadNextChat(packetData); Container inventory = new(windowId, windowType, ChatParser.ParseText(title)); handler.OnInventoryOpen(windowId, inventory); } @@ -2544,7 +2536,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) if (mode is 0 or 2) { - objectiveValue = dataTypes.ReadNextString(packetData); + objectiveValue = dataTypes.ReadNextChat(packetData); objectiveType = dataTypes.ReadNextVarInt(packetData); if (protocolVersion >= MC_1_20_4_Version) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index fb1a28fceb..2c613f5be4 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -66,6 +66,11 @@ public static string ParseText(string json, List? links = null) return JSONData2String(Json.ParseJson(json), "", links); } + public static string ParseText(Dictionary nbt) + { + return NbtToString(nbt); + } + /// /// The main function to convert text from MC 1.9+ JSON to MC 1.5.2 formatted text /// @@ -418,5 +423,64 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List return ""; } + + private static string NbtToString(Dictionary nbt) + { + if (nbt.Count == 1 && nbt.TryGetValue("", out object rootMessage)) + { + // Nameless root tag + return (string)rootMessage; + } + + string message = string.Empty; + StringBuilder extraBuilder = new StringBuilder(); + foreach (var kvp in nbt) + { + string key = kvp.Key; + object value = kvp.Value; + + switch (key) + { + case "text": + { + message = (string)value; + } + break; + case "extra": + { + object[] extras = (object[])value; + for (int i = 0; i < extras.Length; i++) + { + var extraDict = (Dictionary)extras[i]; + if (extraDict.TryGetValue("text", out object extraText)) + { + extraBuilder.Append(extraText); + } + } + } + break; + case "with": + { + if (nbt.TryGetValue("translate", out object translate)) + { + var translateKey = (string)translate; + List translateString = new(); + var withs = (object[])value; + for (int i = 0; i < withs.Length; i++) + { + var withDict = (Dictionary)withs[i]; + if (withDict.TryGetValue("text", out object withText)) + { + translateString.Add((string)withText); + } + } + message = TranslateString(translateKey, translateString); + } + } + break; + } + } + return message + extraBuilder.ToString(); + } } } From 4546e6946e51ed8c942b230babcd8bd57c19ba12 Mon Sep 17 00:00:00 2001 From: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:13:48 +0800 Subject: [PATCH 04/15] 1.20.4: Update entity, item and block palette --- .../Inventory/ItemPalettes/ItemPalette1204.cs | 1330 +++++++++++++ MinecraftClient/Inventory/ItemType.cs | 60 +- .../Mapping/BlockPalettes/Palette1204.cs | 1762 +++++++++++++++++ .../EntityPalettes/EntityPalette1204.cs | 144 ++ .../EntityPalettes/EntityPaletteGenerator.cs | 5 +- MinecraftClient/Mapping/EntityType.cs | 2 + MinecraftClient/Mapping/Material.cs | 58 +- .../Protocol/Handlers/Protocol18.cs | 3 + 8 files changed, 3361 insertions(+), 3 deletions(-) create mode 100644 MinecraftClient/Inventory/ItemPalettes/ItemPalette1204.cs create mode 100644 MinecraftClient/Mapping/BlockPalettes/Palette1204.cs create mode 100644 MinecraftClient/Mapping/EntityPalettes/EntityPalette1204.cs diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette1204.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1204.cs new file mode 100644 index 0000000000..13f7676e22 --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1204.cs @@ -0,0 +1,1330 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + public class ItemPalette1204 : ItemPalette + { + private static readonly Dictionary mappings = new(); + + static ItemPalette1204() + { + mappings[781] = ItemType.AcaciaBoat; + mappings[687] = ItemType.AcaciaButton; + mappings[782] = ItemType.AcaciaChestBoat; + mappings[714] = ItemType.AcaciaDoor; + mappings[314] = ItemType.AcaciaFence; + mappings[753] = ItemType.AcaciaFenceGate; + mappings[898] = ItemType.AcaciaHangingSign; + mappings[179] = ItemType.AcaciaLeaves; + mappings[135] = ItemType.AcaciaLog; + mappings[40] = ItemType.AcaciaPlanks; + mappings[702] = ItemType.AcaciaPressurePlate; + mappings[52] = ItemType.AcaciaSapling; + mappings[887] = ItemType.AcaciaSign; + mappings[255] = ItemType.AcaciaSlab; + mappings[386] = ItemType.AcaciaStairs; + mappings[734] = ItemType.AcaciaTrapdoor; + mappings[169] = ItemType.AcaciaWood; + mappings[763] = ItemType.ActivatorRail; + mappings[0] = ItemType.Air; + mappings[1005] = ItemType.AllaySpawnEgg; + mappings[220] = ItemType.Allium; + mappings[85] = ItemType.AmethystBlock; + mappings[1249] = ItemType.AmethystCluster; + mappings[805] = ItemType.AmethystShard; + mappings[80] = ItemType.AncientDebris; + mappings[6] = ItemType.Andesite; + mappings[647] = ItemType.AndesiteSlab; + mappings[630] = ItemType.AndesiteStairs; + mappings[406] = ItemType.AndesiteWall; + mappings[1274] = ItemType.AnglerPotterySherd; + mappings[418] = ItemType.Anvil; + mappings[796] = ItemType.Apple; + mappings[1275] = ItemType.ArcherPotterySherd; + mappings[1116] = ItemType.ArmorStand; + mappings[1276] = ItemType.ArmsUpPotterySherd; + mappings[798] = ItemType.Arrow; + mappings[916] = ItemType.AxolotlBucket; + mappings[1006] = ItemType.AxolotlSpawnEgg; + mappings[196] = ItemType.Azalea; + mappings[183] = ItemType.AzaleaLeaves; + mappings[221] = ItemType.AzureBluet; + mappings[1092] = ItemType.BakedPotato; + mappings[250] = ItemType.Bamboo; + mappings[143] = ItemType.BambooBlock; + mappings[691] = ItemType.BambooButton; + mappings[790] = ItemType.BambooChestRaft; + mappings[718] = ItemType.BambooDoor; + mappings[318] = ItemType.BambooFence; + mappings[757] = ItemType.BambooFenceGate; + mappings[902] = ItemType.BambooHangingSign; + mappings[47] = ItemType.BambooMosaic; + mappings[260] = ItemType.BambooMosaicSlab; + mappings[391] = ItemType.BambooMosaicStairs; + mappings[44] = ItemType.BambooPlanks; + mappings[706] = ItemType.BambooPressurePlate; + mappings[789] = ItemType.BambooRaft; + mappings[891] = ItemType.BambooSign; + mappings[259] = ItemType.BambooSlab; + mappings[390] = ItemType.BambooStairs; + mappings[738] = ItemType.BambooTrapdoor; + mappings[1193] = ItemType.Barrel; + mappings[442] = ItemType.Barrier; + mappings[327] = ItemType.Basalt; + mappings[1007] = ItemType.BatSpawnEgg; + mappings[395] = ItemType.Beacon; + mappings[56] = ItemType.Bedrock; + mappings[1210] = ItemType.BeeNest; + mappings[1008] = ItemType.BeeSpawnEgg; + mappings[985] = ItemType.Beef; + mappings[1211] = ItemType.Beehive; + mappings[1147] = ItemType.Beetroot; + mappings[1148] = ItemType.BeetrootSeeds; + mappings[1149] = ItemType.BeetrootSoup; + mappings[1201] = ItemType.Bell; + mappings[248] = ItemType.BigDripleaf; + mappings[777] = ItemType.BirchBoat; + mappings[685] = ItemType.BirchButton; + mappings[778] = ItemType.BirchChestBoat; + mappings[712] = ItemType.BirchDoor; + mappings[312] = ItemType.BirchFence; + mappings[751] = ItemType.BirchFenceGate; + mappings[896] = ItemType.BirchHangingSign; + mappings[177] = ItemType.BirchLeaves; + mappings[133] = ItemType.BirchLog; + mappings[38] = ItemType.BirchPlanks; + mappings[700] = ItemType.BirchPressurePlate; + mappings[50] = ItemType.BirchSapling; + mappings[885] = ItemType.BirchSign; + mappings[253] = ItemType.BirchSlab; + mappings[384] = ItemType.BirchStairs; + mappings[732] = ItemType.BirchTrapdoor; + mappings[167] = ItemType.BirchWood; + mappings[1141] = ItemType.BlackBanner; + mappings[976] = ItemType.BlackBed; + mappings[1245] = ItemType.BlackCandle; + mappings[460] = ItemType.BlackCarpet; + mappings[569] = ItemType.BlackConcrete; + mappings[585] = ItemType.BlackConcretePowder; + mappings[956] = ItemType.BlackDye; + mappings[553] = ItemType.BlackGlazedTerracotta; + mappings[537] = ItemType.BlackShulkerBox; + mappings[485] = ItemType.BlackStainedGlass; + mappings[501] = ItemType.BlackStainedGlassPane; + mappings[441] = ItemType.BlackTerracotta; + mappings[216] = ItemType.BlackWool; + mappings[1216] = ItemType.Blackstone; + mappings[1217] = ItemType.BlackstoneSlab; + mappings[1218] = ItemType.BlackstoneStairs; + mappings[411] = ItemType.BlackstoneWall; + mappings[1277] = ItemType.BladePotterySherd; + mappings[1195] = ItemType.BlastFurnace; + mappings[999] = ItemType.BlazePowder; + mappings[991] = ItemType.BlazeRod; + mappings[1009] = ItemType.BlazeSpawnEgg; + mappings[1137] = ItemType.BlueBanner; + mappings[972] = ItemType.BlueBed; + mappings[1241] = ItemType.BlueCandle; + mappings[456] = ItemType.BlueCarpet; + mappings[565] = ItemType.BlueConcrete; + mappings[581] = ItemType.BlueConcretePowder; + mappings[952] = ItemType.BlueDye; + mappings[549] = ItemType.BlueGlazedTerracotta; + mappings[618] = ItemType.BlueIce; + mappings[219] = ItemType.BlueOrchid; + mappings[533] = ItemType.BlueShulkerBox; + mappings[481] = ItemType.BlueStainedGlass; + mappings[497] = ItemType.BlueStainedGlassPane; + mappings[437] = ItemType.BlueTerracotta; + mappings[212] = ItemType.BlueWool; + mappings[958] = ItemType.Bone; + mappings[519] = ItemType.BoneBlock; + mappings[957] = ItemType.BoneMeal; + mappings[922] = ItemType.Book; + mappings[285] = ItemType.Bookshelf; + mappings[797] = ItemType.Bow; + mappings[845] = ItemType.Bowl; + mappings[599] = ItemType.BrainCoral; + mappings[594] = ItemType.BrainCoralBlock; + mappings[609] = ItemType.BrainCoralFan; + mappings[852] = ItemType.Bread; + mappings[1010] = ItemType.BreezeSpawnEgg; + mappings[1278] = ItemType.BrewerPotterySherd; + mappings[1001] = ItemType.BrewingStand; + mappings[918] = ItemType.Brick; + mappings[269] = ItemType.BrickSlab; + mappings[360] = ItemType.BrickStairs; + mappings[398] = ItemType.BrickWall; + mappings[284] = ItemType.Bricks; + mappings[1138] = ItemType.BrownBanner; + mappings[973] = ItemType.BrownBed; + mappings[1242] = ItemType.BrownCandle; + mappings[457] = ItemType.BrownCarpet; + mappings[566] = ItemType.BrownConcrete; + mappings[582] = ItemType.BrownConcretePowder; + mappings[953] = ItemType.BrownDye; + mappings[550] = ItemType.BrownGlazedTerracotta; + mappings[233] = ItemType.BrownMushroom; + mappings[351] = ItemType.BrownMushroomBlock; + mappings[534] = ItemType.BrownShulkerBox; + mappings[482] = ItemType.BrownStainedGlass; + mappings[498] = ItemType.BrownStainedGlassPane; + mappings[438] = ItemType.BrownTerracotta; + mappings[213] = ItemType.BrownWool; + mappings[1256] = ItemType.Brush; + mappings[600] = ItemType.BubbleCoral; + mappings[595] = ItemType.BubbleCoralBlock; + mappings[610] = ItemType.BubbleCoralFan; + mappings[905] = ItemType.Bucket; + mappings[86] = ItemType.BuddingAmethyst; + mappings[927] = ItemType.Bundle; + mappings[1279] = ItemType.BurnPotterySherd; + mappings[307] = ItemType.Cactus; + mappings[960] = ItemType.Cake; + mappings[11] = ItemType.Calcite; + mappings[675] = ItemType.CalibratedSculkSensor; + mappings[1012] = ItemType.CamelSpawnEgg; + mappings[1206] = ItemType.Campfire; + mappings[1229] = ItemType.Candle; + mappings[1090] = ItemType.Carrot; + mappings[770] = ItemType.CarrotOnAStick; + mappings[1196] = ItemType.CartographyTable; + mappings[322] = ItemType.CarvedPumpkin; + mappings[1011] = ItemType.CatSpawnEgg; + mappings[1002] = ItemType.Cauldron; + mappings[1013] = ItemType.CaveSpiderSpawnEgg; + mappings[355] = ItemType.Chain; + mappings[514] = ItemType.ChainCommandBlock; + mappings[860] = ItemType.ChainmailBoots; + mappings[858] = ItemType.ChainmailChestplate; + mappings[857] = ItemType.ChainmailHelmet; + mappings[859] = ItemType.ChainmailLeggings; + mappings[800] = ItemType.Charcoal; + mappings[783] = ItemType.CherryBoat; + mappings[688] = ItemType.CherryButton; + mappings[784] = ItemType.CherryChestBoat; + mappings[715] = ItemType.CherryDoor; + mappings[315] = ItemType.CherryFence; + mappings[754] = ItemType.CherryFenceGate; + mappings[899] = ItemType.CherryHangingSign; + mappings[180] = ItemType.CherryLeaves; + mappings[136] = ItemType.CherryLog; + mappings[41] = ItemType.CherryPlanks; + mappings[703] = ItemType.CherryPressurePlate; + mappings[53] = ItemType.CherrySapling; + mappings[888] = ItemType.CherrySign; + mappings[256] = ItemType.CherrySlab; + mappings[387] = ItemType.CherryStairs; + mappings[735] = ItemType.CherryTrapdoor; + mappings[170] = ItemType.CherryWood; + mappings[298] = ItemType.Chest; + mappings[766] = ItemType.ChestMinecart; + mappings[987] = ItemType.Chicken; + mappings[1014] = ItemType.ChickenSpawnEgg; + mappings[419] = ItemType.ChippedAnvil; + mappings[286] = ItemType.ChiseledBookshelf; + mappings[95] = ItemType.ChiseledCopper; + mappings[349] = ItemType.ChiseledDeepslate; + mappings[367] = ItemType.ChiseledNetherBricks; + mappings[1223] = ItemType.ChiseledPolishedBlackstone; + mappings[421] = ItemType.ChiseledQuartzBlock; + mappings[510] = ItemType.ChiseledRedSandstone; + mappings[191] = ItemType.ChiseledSandstone; + mappings[342] = ItemType.ChiseledStoneBricks; + mappings[16] = ItemType.ChiseledTuff; + mappings[25] = ItemType.ChiseledTuffBricks; + mappings[293] = ItemType.ChorusFlower; + mappings[1143] = ItemType.ChorusFruit; + mappings[292] = ItemType.ChorusPlant; + mappings[308] = ItemType.Clay; + mappings[919] = ItemType.ClayBall; + mappings[929] = ItemType.Clock; + mappings[799] = ItemType.Coal; + mappings[81] = ItemType.CoalBlock; + mappings[62] = ItemType.CoalOre; + mappings[29] = ItemType.CoarseDirt; + mappings[1260] = ItemType.CoastArmorTrimSmithingTemplate; + mappings[9] = ItemType.CobbledDeepslate; + mappings[651] = ItemType.CobbledDeepslateSlab; + mappings[634] = ItemType.CobbledDeepslateStairs; + mappings[414] = ItemType.CobbledDeepslateWall; + mappings[35] = ItemType.Cobblestone; + mappings[268] = ItemType.CobblestoneSlab; + mappings[303] = ItemType.CobblestoneStairs; + mappings[396] = ItemType.CobblestoneWall; + mappings[193] = ItemType.Cobweb; + mappings[940] = ItemType.CocoaBeans; + mappings[932] = ItemType.Cod; + mappings[914] = ItemType.CodBucket; + mappings[1015] = ItemType.CodSpawnEgg; + mappings[394] = ItemType.CommandBlock; + mappings[1123] = ItemType.CommandBlockMinecart; + mappings[660] = ItemType.Comparator; + mappings[925] = ItemType.Compass; + mappings[1192] = ItemType.Composter; + mappings[619] = ItemType.Conduit; + mappings[986] = ItemType.CookedBeef; + mappings[988] = ItemType.CookedChicken; + mappings[936] = ItemType.CookedCod; + mappings[1125] = ItemType.CookedMutton; + mappings[879] = ItemType.CookedPorkchop; + mappings[1112] = ItemType.CookedRabbit; + mappings[937] = ItemType.CookedSalmon; + mappings[977] = ItemType.Cookie; + mappings[88] = ItemType.CopperBlock; + mappings[1302] = ItemType.CopperBulb; + mappings[721] = ItemType.CopperDoor; + mappings[1294] = ItemType.CopperGrate; + mappings[809] = ItemType.CopperIngot; + mappings[66] = ItemType.CopperOre; + mappings[741] = ItemType.CopperTrapdoor; + mappings[227] = ItemType.Cornflower; + mappings[1016] = ItemType.CowSpawnEgg; + mappings[346] = ItemType.CrackedDeepslateBricks; + mappings[348] = ItemType.CrackedDeepslateTiles; + mappings[366] = ItemType.CrackedNetherBricks; + mappings[1227] = ItemType.CrackedPolishedBlackstoneBricks; + mappings[341] = ItemType.CrackedStoneBricks; + mappings[978] = ItemType.Crafter; + mappings[299] = ItemType.CraftingTable; + mappings[1186] = ItemType.CreeperBannerPattern; + mappings[1100] = ItemType.CreeperHead; + mappings[1017] = ItemType.CreeperSpawnEgg; + mappings[692] = ItemType.CrimsonButton; + mappings[719] = ItemType.CrimsonDoor; + mappings[319] = ItemType.CrimsonFence; + mappings[758] = ItemType.CrimsonFenceGate; + mappings[235] = ItemType.CrimsonFungus; + mappings[903] = ItemType.CrimsonHangingSign; + mappings[173] = ItemType.CrimsonHyphae; + mappings[33] = ItemType.CrimsonNylium; + mappings[45] = ItemType.CrimsonPlanks; + mappings[707] = ItemType.CrimsonPressurePlate; + mappings[237] = ItemType.CrimsonRoots; + mappings[892] = ItemType.CrimsonSign; + mappings[261] = ItemType.CrimsonSlab; + mappings[392] = ItemType.CrimsonStairs; + mappings[141] = ItemType.CrimsonStem; + mappings[739] = ItemType.CrimsonTrapdoor; + mappings[1182] = ItemType.Crossbow; + mappings[1215] = ItemType.CryingObsidian; + mappings[99] = ItemType.CutCopper; + mappings[107] = ItemType.CutCopperSlab; + mappings[103] = ItemType.CutCopperStairs; + mappings[511] = ItemType.CutRedSandstone; + mappings[275] = ItemType.CutRedSandstoneSlab; + mappings[192] = ItemType.CutSandstone; + mappings[266] = ItemType.CutSandstoneSlab; + mappings[1135] = ItemType.CyanBanner; + mappings[970] = ItemType.CyanBed; + mappings[1239] = ItemType.CyanCandle; + mappings[454] = ItemType.CyanCarpet; + mappings[563] = ItemType.CyanConcrete; + mappings[579] = ItemType.CyanConcretePowder; + mappings[950] = ItemType.CyanDye; + mappings[547] = ItemType.CyanGlazedTerracotta; + mappings[531] = ItemType.CyanShulkerBox; + mappings[479] = ItemType.CyanStainedGlass; + mappings[495] = ItemType.CyanStainedGlassPane; + mappings[435] = ItemType.CyanTerracotta; + mappings[210] = ItemType.CyanWool; + mappings[420] = ItemType.DamagedAnvil; + mappings[217] = ItemType.Dandelion; + mappings[1280] = ItemType.DangerPotterySherd; + mappings[785] = ItemType.DarkOakBoat; + mappings[689] = ItemType.DarkOakButton; + mappings[786] = ItemType.DarkOakChestBoat; + mappings[716] = ItemType.DarkOakDoor; + mappings[316] = ItemType.DarkOakFence; + mappings[755] = ItemType.DarkOakFenceGate; + mappings[900] = ItemType.DarkOakHangingSign; + mappings[181] = ItemType.DarkOakLeaves; + mappings[137] = ItemType.DarkOakLog; + mappings[42] = ItemType.DarkOakPlanks; + mappings[704] = ItemType.DarkOakPressurePlate; + mappings[54] = ItemType.DarkOakSapling; + mappings[889] = ItemType.DarkOakSign; + mappings[257] = ItemType.DarkOakSlab; + mappings[388] = ItemType.DarkOakStairs; + mappings[736] = ItemType.DarkOakTrapdoor; + mappings[171] = ItemType.DarkOakWood; + mappings[504] = ItemType.DarkPrismarine; + mappings[279] = ItemType.DarkPrismarineSlab; + mappings[507] = ItemType.DarkPrismarineStairs; + mappings[673] = ItemType.DaylightDetector; + mappings[603] = ItemType.DeadBrainCoral; + mappings[589] = ItemType.DeadBrainCoralBlock; + mappings[614] = ItemType.DeadBrainCoralFan; + mappings[604] = ItemType.DeadBubbleCoral; + mappings[590] = ItemType.DeadBubbleCoralBlock; + mappings[615] = ItemType.DeadBubbleCoralFan; + mappings[198] = ItemType.DeadBush; + mappings[605] = ItemType.DeadFireCoral; + mappings[591] = ItemType.DeadFireCoralBlock; + mappings[616] = ItemType.DeadFireCoralFan; + mappings[606] = ItemType.DeadHornCoral; + mappings[592] = ItemType.DeadHornCoralBlock; + mappings[617] = ItemType.DeadHornCoralFan; + mappings[607] = ItemType.DeadTubeCoral; + mappings[588] = ItemType.DeadTubeCoralBlock; + mappings[613] = ItemType.DeadTubeCoralFan; + mappings[1160] = ItemType.DebugStick; + mappings[287] = ItemType.DecoratedPot; + mappings[8] = ItemType.Deepslate; + mappings[653] = ItemType.DeepslateBrickSlab; + mappings[636] = ItemType.DeepslateBrickStairs; + mappings[416] = ItemType.DeepslateBrickWall; + mappings[345] = ItemType.DeepslateBricks; + mappings[63] = ItemType.DeepslateCoalOre; + mappings[67] = ItemType.DeepslateCopperOre; + mappings[77] = ItemType.DeepslateDiamondOre; + mappings[73] = ItemType.DeepslateEmeraldOre; + mappings[69] = ItemType.DeepslateGoldOre; + mappings[65] = ItemType.DeepslateIronOre; + mappings[75] = ItemType.DeepslateLapisOre; + mappings[71] = ItemType.DeepslateRedstoneOre; + mappings[654] = ItemType.DeepslateTileSlab; + mappings[637] = ItemType.DeepslateTileStairs; + mappings[417] = ItemType.DeepslateTileWall; + mappings[347] = ItemType.DeepslateTiles; + mappings[761] = ItemType.DetectorRail; + mappings[801] = ItemType.Diamond; + mappings[837] = ItemType.DiamondAxe; + mappings[90] = ItemType.DiamondBlock; + mappings[868] = ItemType.DiamondBoots; + mappings[866] = ItemType.DiamondChestplate; + mappings[865] = ItemType.DiamondHelmet; + mappings[838] = ItemType.DiamondHoe; + mappings[1119] = ItemType.DiamondHorseArmor; + mappings[867] = ItemType.DiamondLeggings; + mappings[76] = ItemType.DiamondOre; + mappings[836] = ItemType.DiamondPickaxe; + mappings[835] = ItemType.DiamondShovel; + mappings[834] = ItemType.DiamondSword; + mappings[4] = ItemType.Diorite; + mappings[650] = ItemType.DioriteSlab; + mappings[633] = ItemType.DioriteStairs; + mappings[410] = ItemType.DioriteWall; + mappings[28] = ItemType.Dirt; + mappings[463] = ItemType.DirtPath; + mappings[1177] = ItemType.DiscFragment5; + mappings[667] = ItemType.Dispenser; + mappings[1018] = ItemType.DolphinSpawnEgg; + mappings[1019] = ItemType.DonkeySpawnEgg; + mappings[1150] = ItemType.DragonBreath; + mappings[378] = ItemType.DragonEgg; + mappings[1101] = ItemType.DragonHead; + mappings[982] = ItemType.DriedKelp; + mappings[920] = ItemType.DriedKelpBlock; + mappings[26] = ItemType.DripstoneBlock; + mappings[668] = ItemType.Dropper; + mappings[1020] = ItemType.DrownedSpawnEgg; + mappings[1259] = ItemType.DuneArmorTrimSmithingTemplate; + mappings[1255] = ItemType.EchoShard; + mappings[924] = ItemType.Egg; + mappings[1021] = ItemType.ElderGuardianSpawnEgg; + mappings[772] = ItemType.Elytra; + mappings[802] = ItemType.Emerald; + mappings[381] = ItemType.EmeraldBlock; + mappings[72] = ItemType.EmeraldOre; + mappings[1107] = ItemType.EnchantedBook; + mappings[882] = ItemType.EnchantedGoldenApple; + mappings[374] = ItemType.EnchantingTable; + mappings[1142] = ItemType.EndCrystal; + mappings[375] = ItemType.EndPortalFrame; + mappings[291] = ItemType.EndRod; + mappings[376] = ItemType.EndStone; + mappings[643] = ItemType.EndStoneBrickSlab; + mappings[625] = ItemType.EndStoneBrickStairs; + mappings[409] = ItemType.EndStoneBrickWall; + mappings[377] = ItemType.EndStoneBricks; + mappings[380] = ItemType.EnderChest; + mappings[1022] = ItemType.EnderDragonSpawnEgg; + mappings[1003] = ItemType.EnderEye; + mappings[990] = ItemType.EnderPearl; + mappings[1023] = ItemType.EndermanSpawnEgg; + mappings[1024] = ItemType.EndermiteSpawnEgg; + mappings[1025] = ItemType.EvokerSpawnEgg; + mappings[1083] = ItemType.ExperienceBottle; + mappings[1281] = ItemType.ExplorerPotterySherd; + mappings[96] = ItemType.ExposedChiseledCopper; + mappings[92] = ItemType.ExposedCopper; + mappings[1303] = ItemType.ExposedCopperBulb; + mappings[722] = ItemType.ExposedCopperDoor; + mappings[1295] = ItemType.ExposedCopperGrate; + mappings[742] = ItemType.ExposedCopperTrapdoor; + mappings[100] = ItemType.ExposedCutCopper; + mappings[108] = ItemType.ExposedCutCopperSlab; + mappings[104] = ItemType.ExposedCutCopperStairs; + mappings[1263] = ItemType.EyeArmorTrimSmithingTemplate; + mappings[300] = ItemType.Farmland; + mappings[848] = ItemType.Feather; + mappings[998] = ItemType.FermentedSpiderEye; + mappings[195] = ItemType.Fern; + mappings[979] = ItemType.FilledMap; + mappings[1084] = ItemType.FireCharge; + mappings[601] = ItemType.FireCoral; + mappings[596] = ItemType.FireCoralBlock; + mappings[611] = ItemType.FireCoralFan; + mappings[1105] = ItemType.FireworkRocket; + mappings[1106] = ItemType.FireworkStar; + mappings[928] = ItemType.FishingRod; + mappings[1197] = ItemType.FletchingTable; + mappings[877] = ItemType.Flint; + mappings[795] = ItemType.FlintAndSteel; + mappings[1185] = ItemType.FlowerBannerPattern; + mappings[1089] = ItemType.FlowerPot; + mappings[197] = ItemType.FloweringAzalea; + mappings[184] = ItemType.FloweringAzaleaLeaves; + mappings[1026] = ItemType.FoxSpawnEgg; + mappings[1282] = ItemType.FriendPotterySherd; + mappings[1027] = ItemType.FrogSpawnEgg; + mappings[1254] = ItemType.Frogspawn; + mappings[301] = ItemType.Furnace; + mappings[767] = ItemType.FurnaceMinecart; + mappings[1028] = ItemType.GhastSpawnEgg; + mappings[992] = ItemType.GhastTear; + mappings[1219] = ItemType.GildedBlackstone; + mappings[187] = ItemType.Glass; + mappings[996] = ItemType.GlassBottle; + mappings[356] = ItemType.GlassPane; + mappings[1004] = ItemType.GlisteringMelonSlice; + mappings[1189] = ItemType.GlobeBannerPattern; + mappings[1205] = ItemType.GlowBerries; + mappings[939] = ItemType.GlowInkSac; + mappings[1088] = ItemType.GlowItemFrame; + mappings[359] = ItemType.GlowLichen; + mappings[1029] = ItemType.GlowSquidSpawnEgg; + mappings[331] = ItemType.Glowstone; + mappings[931] = ItemType.GlowstoneDust; + mappings[1191] = ItemType.GoatHorn; + mappings[1030] = ItemType.GoatSpawnEgg; + mappings[89] = ItemType.GoldBlock; + mappings[811] = ItemType.GoldIngot; + mappings[993] = ItemType.GoldNugget; + mappings[68] = ItemType.GoldOre; + mappings[881] = ItemType.GoldenApple; + mappings[827] = ItemType.GoldenAxe; + mappings[872] = ItemType.GoldenBoots; + mappings[1095] = ItemType.GoldenCarrot; + mappings[870] = ItemType.GoldenChestplate; + mappings[869] = ItemType.GoldenHelmet; + mappings[828] = ItemType.GoldenHoe; + mappings[1118] = ItemType.GoldenHorseArmor; + mappings[871] = ItemType.GoldenLeggings; + mappings[826] = ItemType.GoldenPickaxe; + mappings[825] = ItemType.GoldenShovel; + mappings[824] = ItemType.GoldenSword; + mappings[2] = ItemType.Granite; + mappings[646] = ItemType.GraniteSlab; + mappings[629] = ItemType.GraniteStairs; + mappings[402] = ItemType.GraniteWall; + mappings[27] = ItemType.GrassBlock; + mappings[61] = ItemType.Gravel; + mappings[1133] = ItemType.GrayBanner; + mappings[968] = ItemType.GrayBed; + mappings[1237] = ItemType.GrayCandle; + mappings[452] = ItemType.GrayCarpet; + mappings[561] = ItemType.GrayConcrete; + mappings[577] = ItemType.GrayConcretePowder; + mappings[948] = ItemType.GrayDye; + mappings[545] = ItemType.GrayGlazedTerracotta; + mappings[529] = ItemType.GrayShulkerBox; + mappings[477] = ItemType.GrayStainedGlass; + mappings[493] = ItemType.GrayStainedGlassPane; + mappings[433] = ItemType.GrayTerracotta; + mappings[208] = ItemType.GrayWool; + mappings[1139] = ItemType.GreenBanner; + mappings[974] = ItemType.GreenBed; + mappings[1243] = ItemType.GreenCandle; + mappings[458] = ItemType.GreenCarpet; + mappings[567] = ItemType.GreenConcrete; + mappings[583] = ItemType.GreenConcretePowder; + mappings[954] = ItemType.GreenDye; + mappings[551] = ItemType.GreenGlazedTerracotta; + mappings[535] = ItemType.GreenShulkerBox; + mappings[483] = ItemType.GreenStainedGlass; + mappings[499] = ItemType.GreenStainedGlassPane; + mappings[439] = ItemType.GreenTerracotta; + mappings[214] = ItemType.GreenWool; + mappings[1198] = ItemType.Grindstone; + mappings[1031] = ItemType.GuardianSpawnEgg; + mappings[849] = ItemType.Gunpowder; + mappings[247] = ItemType.HangingRoots; + mappings[444] = ItemType.HayBlock; + mappings[1181] = ItemType.HeartOfTheSea; + mappings[1283] = ItemType.HeartPotterySherd; + mappings[1284] = ItemType.HeartbreakPotterySherd; + mappings[697] = ItemType.HeavyWeightedPressurePlate; + mappings[1032] = ItemType.HoglinSpawnEgg; + mappings[664] = ItemType.HoneyBlock; + mappings[1212] = ItemType.HoneyBottle; + mappings[1209] = ItemType.Honeycomb; + mappings[1213] = ItemType.HoneycombBlock; + mappings[666] = ItemType.Hopper; + mappings[769] = ItemType.HopperMinecart; + mappings[602] = ItemType.HornCoral; + mappings[597] = ItemType.HornCoralBlock; + mappings[612] = ItemType.HornCoralFan; + mappings[1033] = ItemType.HorseSpawnEgg; + mappings[1273] = ItemType.HostArmorTrimSmithingTemplate; + mappings[1285] = ItemType.HowlPotterySherd; + mappings[1034] = ItemType.HuskSpawnEgg; + mappings[305] = ItemType.Ice; + mappings[337] = ItemType.InfestedChiseledStoneBricks; + mappings[333] = ItemType.InfestedCobblestone; + mappings[336] = ItemType.InfestedCrackedStoneBricks; + mappings[338] = ItemType.InfestedDeepslate; + mappings[335] = ItemType.InfestedMossyStoneBricks; + mappings[332] = ItemType.InfestedStone; + mappings[334] = ItemType.InfestedStoneBricks; + mappings[938] = ItemType.InkSac; + mappings[832] = ItemType.IronAxe; + mappings[354] = ItemType.IronBars; + mappings[87] = ItemType.IronBlock; + mappings[864] = ItemType.IronBoots; + mappings[862] = ItemType.IronChestplate; + mappings[709] = ItemType.IronDoor; + mappings[1035] = ItemType.IronGolemSpawnEgg; + mappings[861] = ItemType.IronHelmet; + mappings[833] = ItemType.IronHoe; + mappings[1117] = ItemType.IronHorseArmor; + mappings[807] = ItemType.IronIngot; + mappings[863] = ItemType.IronLeggings; + mappings[1158] = ItemType.IronNugget; + mappings[64] = ItemType.IronOre; + mappings[831] = ItemType.IronPickaxe; + mappings[830] = ItemType.IronShovel; + mappings[829] = ItemType.IronSword; + mappings[729] = ItemType.IronTrapdoor; + mappings[1087] = ItemType.ItemFrame; + mappings[323] = ItemType.JackOLantern; + mappings[792] = ItemType.Jigsaw; + mappings[309] = ItemType.Jukebox; + mappings[779] = ItemType.JungleBoat; + mappings[686] = ItemType.JungleButton; + mappings[780] = ItemType.JungleChestBoat; + mappings[713] = ItemType.JungleDoor; + mappings[313] = ItemType.JungleFence; + mappings[752] = ItemType.JungleFenceGate; + mappings[897] = ItemType.JungleHangingSign; + mappings[178] = ItemType.JungleLeaves; + mappings[134] = ItemType.JungleLog; + mappings[39] = ItemType.JunglePlanks; + mappings[701] = ItemType.JunglePressurePlate; + mappings[51] = ItemType.JungleSapling; + mappings[886] = ItemType.JungleSign; + mappings[254] = ItemType.JungleSlab; + mappings[385] = ItemType.JungleStairs; + mappings[733] = ItemType.JungleTrapdoor; + mappings[168] = ItemType.JungleWood; + mappings[243] = ItemType.Kelp; + mappings[1159] = ItemType.KnowledgeBook; + mappings[302] = ItemType.Ladder; + mappings[1202] = ItemType.Lantern; + mappings[189] = ItemType.LapisBlock; + mappings[803] = ItemType.LapisLazuli; + mappings[74] = ItemType.LapisOre; + mappings[1248] = ItemType.LargeAmethystBud; + mappings[469] = ItemType.LargeFern; + mappings[907] = ItemType.LavaBucket; + mappings[1121] = ItemType.Lead; + mappings[910] = ItemType.Leather; + mappings[856] = ItemType.LeatherBoots; + mappings[854] = ItemType.LeatherChestplate; + mappings[853] = ItemType.LeatherHelmet; + mappings[1120] = ItemType.LeatherHorseArmor; + mappings[855] = ItemType.LeatherLeggings; + mappings[669] = ItemType.Lectern; + mappings[671] = ItemType.Lever; + mappings[443] = ItemType.Light; + mappings[1129] = ItemType.LightBlueBanner; + mappings[964] = ItemType.LightBlueBed; + mappings[1233] = ItemType.LightBlueCandle; + mappings[448] = ItemType.LightBlueCarpet; + mappings[557] = ItemType.LightBlueConcrete; + mappings[573] = ItemType.LightBlueConcretePowder; + mappings[944] = ItemType.LightBlueDye; + mappings[541] = ItemType.LightBlueGlazedTerracotta; + mappings[525] = ItemType.LightBlueShulkerBox; + mappings[473] = ItemType.LightBlueStainedGlass; + mappings[489] = ItemType.LightBlueStainedGlassPane; + mappings[429] = ItemType.LightBlueTerracotta; + mappings[204] = ItemType.LightBlueWool; + mappings[1134] = ItemType.LightGrayBanner; + mappings[969] = ItemType.LightGrayBed; + mappings[1238] = ItemType.LightGrayCandle; + mappings[453] = ItemType.LightGrayCarpet; + mappings[562] = ItemType.LightGrayConcrete; + mappings[578] = ItemType.LightGrayConcretePowder; + mappings[949] = ItemType.LightGrayDye; + mappings[546] = ItemType.LightGrayGlazedTerracotta; + mappings[530] = ItemType.LightGrayShulkerBox; + mappings[478] = ItemType.LightGrayStainedGlass; + mappings[494] = ItemType.LightGrayStainedGlassPane; + mappings[434] = ItemType.LightGrayTerracotta; + mappings[209] = ItemType.LightGrayWool; + mappings[696] = ItemType.LightWeightedPressurePlate; + mappings[672] = ItemType.LightningRod; + mappings[465] = ItemType.Lilac; + mappings[228] = ItemType.LilyOfTheValley; + mappings[364] = ItemType.LilyPad; + mappings[1131] = ItemType.LimeBanner; + mappings[966] = ItemType.LimeBed; + mappings[1235] = ItemType.LimeCandle; + mappings[450] = ItemType.LimeCarpet; + mappings[559] = ItemType.LimeConcrete; + mappings[575] = ItemType.LimeConcretePowder; + mappings[946] = ItemType.LimeDye; + mappings[543] = ItemType.LimeGlazedTerracotta; + mappings[527] = ItemType.LimeShulkerBox; + mappings[475] = ItemType.LimeStainedGlass; + mappings[491] = ItemType.LimeStainedGlassPane; + mappings[431] = ItemType.LimeTerracotta; + mappings[206] = ItemType.LimeWool; + mappings[1154] = ItemType.LingeringPotion; + mappings[1036] = ItemType.LlamaSpawnEgg; + mappings[1214] = ItemType.Lodestone; + mappings[1184] = ItemType.Loom; + mappings[1128] = ItemType.MagentaBanner; + mappings[963] = ItemType.MagentaBed; + mappings[1232] = ItemType.MagentaCandle; + mappings[447] = ItemType.MagentaCarpet; + mappings[556] = ItemType.MagentaConcrete; + mappings[572] = ItemType.MagentaConcretePowder; + mappings[943] = ItemType.MagentaDye; + mappings[540] = ItemType.MagentaGlazedTerracotta; + mappings[524] = ItemType.MagentaShulkerBox; + mappings[472] = ItemType.MagentaStainedGlass; + mappings[488] = ItemType.MagentaStainedGlassPane; + mappings[428] = ItemType.MagentaTerracotta; + mappings[203] = ItemType.MagentaWool; + mappings[515] = ItemType.MagmaBlock; + mappings[1000] = ItemType.MagmaCream; + mappings[1037] = ItemType.MagmaCubeSpawnEgg; + mappings[787] = ItemType.MangroveBoat; + mappings[690] = ItemType.MangroveButton; + mappings[788] = ItemType.MangroveChestBoat; + mappings[717] = ItemType.MangroveDoor; + mappings[317] = ItemType.MangroveFence; + mappings[756] = ItemType.MangroveFenceGate; + mappings[901] = ItemType.MangroveHangingSign; + mappings[182] = ItemType.MangroveLeaves; + mappings[138] = ItemType.MangroveLog; + mappings[43] = ItemType.MangrovePlanks; + mappings[705] = ItemType.MangrovePressurePlate; + mappings[55] = ItemType.MangrovePropagule; + mappings[139] = ItemType.MangroveRoots; + mappings[890] = ItemType.MangroveSign; + mappings[258] = ItemType.MangroveSlab; + mappings[389] = ItemType.MangroveStairs; + mappings[737] = ItemType.MangroveTrapdoor; + mappings[172] = ItemType.MangroveWood; + mappings[1094] = ItemType.Map; + mappings[1247] = ItemType.MediumAmethystBud; + mappings[357] = ItemType.Melon; + mappings[984] = ItemType.MelonSeeds; + mappings[981] = ItemType.MelonSlice; + mappings[911] = ItemType.MilkBucket; + mappings[765] = ItemType.Minecart; + mappings[1286] = ItemType.MinerPotterySherd; + mappings[1188] = ItemType.MojangBannerPattern; + mappings[1038] = ItemType.MooshroomSpawnEgg; + mappings[246] = ItemType.MossBlock; + mappings[244] = ItemType.MossCarpet; + mappings[288] = ItemType.MossyCobblestone; + mappings[642] = ItemType.MossyCobblestoneSlab; + mappings[624] = ItemType.MossyCobblestoneStairs; + mappings[397] = ItemType.MossyCobblestoneWall; + mappings[640] = ItemType.MossyStoneBrickSlab; + mappings[622] = ItemType.MossyStoneBrickStairs; + mappings[401] = ItemType.MossyStoneBrickWall; + mappings[340] = ItemType.MossyStoneBricks; + mappings[1287] = ItemType.MournerPotterySherd; + mappings[32] = ItemType.Mud; + mappings[271] = ItemType.MudBrickSlab; + mappings[362] = ItemType.MudBrickStairs; + mappings[404] = ItemType.MudBrickWall; + mappings[344] = ItemType.MudBricks; + mappings[140] = ItemType.MuddyMangroveRoots; + mappings[1039] = ItemType.MuleSpawnEgg; + mappings[353] = ItemType.MushroomStem; + mappings[846] = ItemType.MushroomStew; + mappings[1171] = ItemType.MusicDisc11; + mappings[1161] = ItemType.MusicDisc13; + mappings[1175] = ItemType.MusicDisc5; + mappings[1163] = ItemType.MusicDiscBlocks; + mappings[1162] = ItemType.MusicDiscCat; + mappings[1164] = ItemType.MusicDiscChirp; + mappings[1165] = ItemType.MusicDiscFar; + mappings[1166] = ItemType.MusicDiscMall; + mappings[1167] = ItemType.MusicDiscMellohi; + mappings[1173] = ItemType.MusicDiscOtherside; + mappings[1176] = ItemType.MusicDiscPigstep; + mappings[1174] = ItemType.MusicDiscRelic; + mappings[1168] = ItemType.MusicDiscStal; + mappings[1169] = ItemType.MusicDiscStrad; + mappings[1172] = ItemType.MusicDiscWait; + mappings[1170] = ItemType.MusicDiscWard; + mappings[1124] = ItemType.Mutton; + mappings[363] = ItemType.Mycelium; + mappings[1122] = ItemType.NameTag; + mappings[1180] = ItemType.NautilusShell; + mappings[1108] = ItemType.NetherBrick; + mappings[368] = ItemType.NetherBrickFence; + mappings[272] = ItemType.NetherBrickSlab; + mappings[369] = ItemType.NetherBrickStairs; + mappings[405] = ItemType.NetherBrickWall; + mappings[365] = ItemType.NetherBricks; + mappings[78] = ItemType.NetherGoldOre; + mappings[79] = ItemType.NetherQuartzOre; + mappings[239] = ItemType.NetherSprouts; + mappings[1103] = ItemType.NetherStar; + mappings[994] = ItemType.NetherWart; + mappings[516] = ItemType.NetherWartBlock; + mappings[842] = ItemType.NetheriteAxe; + mappings[91] = ItemType.NetheriteBlock; + mappings[876] = ItemType.NetheriteBoots; + mappings[874] = ItemType.NetheriteChestplate; + mappings[873] = ItemType.NetheriteHelmet; + mappings[843] = ItemType.NetheriteHoe; + mappings[812] = ItemType.NetheriteIngot; + mappings[875] = ItemType.NetheriteLeggings; + mappings[841] = ItemType.NetheritePickaxe; + mappings[813] = ItemType.NetheriteScrap; + mappings[840] = ItemType.NetheriteShovel; + mappings[839] = ItemType.NetheriteSword; + mappings[1257] = ItemType.NetheriteUpgradeSmithingTemplate; + mappings[324] = ItemType.Netherrack; + mappings[680] = ItemType.NoteBlock; + mappings[773] = ItemType.OakBoat; + mappings[683] = ItemType.OakButton; + mappings[774] = ItemType.OakChestBoat; + mappings[710] = ItemType.OakDoor; + mappings[310] = ItemType.OakFence; + mappings[749] = ItemType.OakFenceGate; + mappings[894] = ItemType.OakHangingSign; + mappings[175] = ItemType.OakLeaves; + mappings[131] = ItemType.OakLog; + mappings[36] = ItemType.OakPlanks; + mappings[698] = ItemType.OakPressurePlate; + mappings[48] = ItemType.OakSapling; + mappings[883] = ItemType.OakSign; + mappings[251] = ItemType.OakSlab; + mappings[382] = ItemType.OakStairs; + mappings[730] = ItemType.OakTrapdoor; + mappings[165] = ItemType.OakWood; + mappings[665] = ItemType.Observer; + mappings[289] = ItemType.Obsidian; + mappings[1040] = ItemType.OcelotSpawnEgg; + mappings[1251] = ItemType.OchreFroglight; + mappings[1127] = ItemType.OrangeBanner; + mappings[962] = ItemType.OrangeBed; + mappings[1231] = ItemType.OrangeCandle; + mappings[446] = ItemType.OrangeCarpet; + mappings[555] = ItemType.OrangeConcrete; + mappings[571] = ItemType.OrangeConcretePowder; + mappings[942] = ItemType.OrangeDye; + mappings[539] = ItemType.OrangeGlazedTerracotta; + mappings[523] = ItemType.OrangeShulkerBox; + mappings[471] = ItemType.OrangeStainedGlass; + mappings[487] = ItemType.OrangeStainedGlassPane; + mappings[427] = ItemType.OrangeTerracotta; + mappings[223] = ItemType.OrangeTulip; + mappings[202] = ItemType.OrangeWool; + mappings[226] = ItemType.OxeyeDaisy; + mappings[98] = ItemType.OxidizedChiseledCopper; + mappings[94] = ItemType.OxidizedCopper; + mappings[1305] = ItemType.OxidizedCopperBulb; + mappings[724] = ItemType.OxidizedCopperDoor; + mappings[1297] = ItemType.OxidizedCopperGrate; + mappings[744] = ItemType.OxidizedCopperTrapdoor; + mappings[102] = ItemType.OxidizedCutCopper; + mappings[110] = ItemType.OxidizedCutCopperSlab; + mappings[106] = ItemType.OxidizedCutCopperStairs; + mappings[462] = ItemType.PackedIce; + mappings[343] = ItemType.PackedMud; + mappings[880] = ItemType.Painting; + mappings[1041] = ItemType.PandaSpawnEgg; + mappings[921] = ItemType.Paper; + mappings[1042] = ItemType.ParrotSpawnEgg; + mappings[1253] = ItemType.PearlescentFroglight; + mappings[467] = ItemType.Peony; + mappings[267] = ItemType.PetrifiedOakSlab; + mappings[1179] = ItemType.PhantomMembrane; + mappings[1043] = ItemType.PhantomSpawnEgg; + mappings[1044] = ItemType.PigSpawnEgg; + mappings[1190] = ItemType.PiglinBannerPattern; + mappings[1046] = ItemType.PiglinBruteSpawnEgg; + mappings[1102] = ItemType.PiglinHead; + mappings[1045] = ItemType.PiglinSpawnEgg; + mappings[1047] = ItemType.PillagerSpawnEgg; + mappings[1132] = ItemType.PinkBanner; + mappings[967] = ItemType.PinkBed; + mappings[1236] = ItemType.PinkCandle; + mappings[451] = ItemType.PinkCarpet; + mappings[560] = ItemType.PinkConcrete; + mappings[576] = ItemType.PinkConcretePowder; + mappings[947] = ItemType.PinkDye; + mappings[544] = ItemType.PinkGlazedTerracotta; + mappings[245] = ItemType.PinkPetals; + mappings[528] = ItemType.PinkShulkerBox; + mappings[476] = ItemType.PinkStainedGlass; + mappings[492] = ItemType.PinkStainedGlassPane; + mappings[432] = ItemType.PinkTerracotta; + mappings[225] = ItemType.PinkTulip; + mappings[207] = ItemType.PinkWool; + mappings[661] = ItemType.Piston; + mappings[231] = ItemType.PitcherPlant; + mappings[1146] = ItemType.PitcherPod; + mappings[1098] = ItemType.PlayerHead; + mappings[1288] = ItemType.PlentyPotterySherd; + mappings[30] = ItemType.Podzol; + mappings[1250] = ItemType.PointedDripstone; + mappings[1093] = ItemType.PoisonousPotato; + mappings[1048] = ItemType.PolarBearSpawnEgg; + mappings[7] = ItemType.PolishedAndesite; + mappings[649] = ItemType.PolishedAndesiteSlab; + mappings[632] = ItemType.PolishedAndesiteStairs; + mappings[328] = ItemType.PolishedBasalt; + mappings[1220] = ItemType.PolishedBlackstone; + mappings[1225] = ItemType.PolishedBlackstoneBrickSlab; + mappings[1226] = ItemType.PolishedBlackstoneBrickStairs; + mappings[413] = ItemType.PolishedBlackstoneBrickWall; + mappings[1224] = ItemType.PolishedBlackstoneBricks; + mappings[682] = ItemType.PolishedBlackstoneButton; + mappings[695] = ItemType.PolishedBlackstonePressurePlate; + mappings[1221] = ItemType.PolishedBlackstoneSlab; + mappings[1222] = ItemType.PolishedBlackstoneStairs; + mappings[412] = ItemType.PolishedBlackstoneWall; + mappings[10] = ItemType.PolishedDeepslate; + mappings[652] = ItemType.PolishedDeepslateSlab; + mappings[635] = ItemType.PolishedDeepslateStairs; + mappings[415] = ItemType.PolishedDeepslateWall; + mappings[5] = ItemType.PolishedDiorite; + mappings[641] = ItemType.PolishedDioriteSlab; + mappings[623] = ItemType.PolishedDioriteStairs; + mappings[3] = ItemType.PolishedGranite; + mappings[638] = ItemType.PolishedGraniteSlab; + mappings[620] = ItemType.PolishedGraniteStairs; + mappings[17] = ItemType.PolishedTuff; + mappings[18] = ItemType.PolishedTuffSlab; + mappings[19] = ItemType.PolishedTuffStairs; + mappings[20] = ItemType.PolishedTuffWall; + mappings[1144] = ItemType.PoppedChorusFruit; + mappings[218] = ItemType.Poppy; + mappings[878] = ItemType.Porkchop; + mappings[1091] = ItemType.Potato; + mappings[995] = ItemType.Potion; + mappings[908] = ItemType.PowderSnowBucket; + mappings[760] = ItemType.PoweredRail; + mappings[502] = ItemType.Prismarine; + mappings[278] = ItemType.PrismarineBrickSlab; + mappings[506] = ItemType.PrismarineBrickStairs; + mappings[503] = ItemType.PrismarineBricks; + mappings[1110] = ItemType.PrismarineCrystals; + mappings[1109] = ItemType.PrismarineShard; + mappings[277] = ItemType.PrismarineSlab; + mappings[505] = ItemType.PrismarineStairs; + mappings[399] = ItemType.PrismarineWall; + mappings[1289] = ItemType.PrizePotterySherd; + mappings[935] = ItemType.Pufferfish; + mappings[912] = ItemType.PufferfishBucket; + mappings[1049] = ItemType.PufferfishSpawnEgg; + mappings[321] = ItemType.Pumpkin; + mappings[1104] = ItemType.PumpkinPie; + mappings[983] = ItemType.PumpkinSeeds; + mappings[1136] = ItemType.PurpleBanner; + mappings[971] = ItemType.PurpleBed; + mappings[1240] = ItemType.PurpleCandle; + mappings[455] = ItemType.PurpleCarpet; + mappings[564] = ItemType.PurpleConcrete; + mappings[580] = ItemType.PurpleConcretePowder; + mappings[951] = ItemType.PurpleDye; + mappings[548] = ItemType.PurpleGlazedTerracotta; + mappings[532] = ItemType.PurpleShulkerBox; + mappings[480] = ItemType.PurpleStainedGlass; + mappings[496] = ItemType.PurpleStainedGlassPane; + mappings[436] = ItemType.PurpleTerracotta; + mappings[211] = ItemType.PurpleWool; + mappings[294] = ItemType.PurpurBlock; + mappings[295] = ItemType.PurpurPillar; + mappings[276] = ItemType.PurpurSlab; + mappings[296] = ItemType.PurpurStairs; + mappings[804] = ItemType.Quartz; + mappings[422] = ItemType.QuartzBlock; + mappings[423] = ItemType.QuartzBricks; + mappings[424] = ItemType.QuartzPillar; + mappings[273] = ItemType.QuartzSlab; + mappings[425] = ItemType.QuartzStairs; + mappings[1111] = ItemType.Rabbit; + mappings[1114] = ItemType.RabbitFoot; + mappings[1115] = ItemType.RabbitHide; + mappings[1050] = ItemType.RabbitSpawnEgg; + mappings[1113] = ItemType.RabbitStew; + mappings[762] = ItemType.Rail; + mappings[1272] = ItemType.RaiserArmorTrimSmithingTemplate; + mappings[1051] = ItemType.RavagerSpawnEgg; + mappings[808] = ItemType.RawCopper; + mappings[83] = ItemType.RawCopperBlock; + mappings[810] = ItemType.RawGold; + mappings[84] = ItemType.RawGoldBlock; + mappings[806] = ItemType.RawIron; + mappings[82] = ItemType.RawIronBlock; + mappings[926] = ItemType.RecoveryCompass; + mappings[1140] = ItemType.RedBanner; + mappings[975] = ItemType.RedBed; + mappings[1244] = ItemType.RedCandle; + mappings[459] = ItemType.RedCarpet; + mappings[568] = ItemType.RedConcrete; + mappings[584] = ItemType.RedConcretePowder; + mappings[955] = ItemType.RedDye; + mappings[552] = ItemType.RedGlazedTerracotta; + mappings[234] = ItemType.RedMushroom; + mappings[352] = ItemType.RedMushroomBlock; + mappings[648] = ItemType.RedNetherBrickSlab; + mappings[631] = ItemType.RedNetherBrickStairs; + mappings[407] = ItemType.RedNetherBrickWall; + mappings[518] = ItemType.RedNetherBricks; + mappings[60] = ItemType.RedSand; + mappings[509] = ItemType.RedSandstone; + mappings[274] = ItemType.RedSandstoneSlab; + mappings[512] = ItemType.RedSandstoneStairs; + mappings[400] = ItemType.RedSandstoneWall; + mappings[536] = ItemType.RedShulkerBox; + mappings[484] = ItemType.RedStainedGlass; + mappings[500] = ItemType.RedStainedGlassPane; + mappings[440] = ItemType.RedTerracotta; + mappings[222] = ItemType.RedTulip; + mappings[215] = ItemType.RedWool; + mappings[656] = ItemType.Redstone; + mappings[658] = ItemType.RedstoneBlock; + mappings[679] = ItemType.RedstoneLamp; + mappings[70] = ItemType.RedstoneOre; + mappings[657] = ItemType.RedstoneTorch; + mappings[350] = ItemType.ReinforcedDeepslate; + mappings[659] = ItemType.Repeater; + mappings[513] = ItemType.RepeatingCommandBlock; + mappings[1228] = ItemType.RespawnAnchor; + mappings[1267] = ItemType.RibArmorTrimSmithingTemplate; + mappings[31] = ItemType.RootedDirt; + mappings[466] = ItemType.RoseBush; + mappings[989] = ItemType.RottenFlesh; + mappings[764] = ItemType.Saddle; + mappings[933] = ItemType.Salmon; + mappings[913] = ItemType.SalmonBucket; + mappings[1052] = ItemType.SalmonSpawnEgg; + mappings[57] = ItemType.Sand; + mappings[190] = ItemType.Sandstone; + mappings[265] = ItemType.SandstoneSlab; + mappings[379] = ItemType.SandstoneStairs; + mappings[408] = ItemType.SandstoneWall; + mappings[655] = ItemType.Scaffolding; + mappings[370] = ItemType.Sculk; + mappings[372] = ItemType.SculkCatalyst; + mappings[674] = ItemType.SculkSensor; + mappings[373] = ItemType.SculkShrieker; + mappings[371] = ItemType.SculkVein; + mappings[794] = ItemType.Scute; + mappings[508] = ItemType.SeaLantern; + mappings[200] = ItemType.SeaPickle; + mappings[199] = ItemType.Seagrass; + mappings[1258] = ItemType.SentryArmorTrimSmithingTemplate; + mappings[1270] = ItemType.ShaperArmorTrimSmithingTemplate; + mappings[1290] = ItemType.SheafPotterySherd; + mappings[980] = ItemType.Shears; + mappings[1053] = ItemType.SheepSpawnEgg; + mappings[1291] = ItemType.ShelterPotterySherd; + mappings[1155] = ItemType.Shield; + mappings[194] = ItemType.ShortGrass; + mappings[1208] = ItemType.Shroomlight; + mappings[521] = ItemType.ShulkerBox; + mappings[1157] = ItemType.ShulkerShell; + mappings[1054] = ItemType.ShulkerSpawnEgg; + mappings[1271] = ItemType.SilenceArmorTrimSmithingTemplate; + mappings[1055] = ItemType.SilverfishSpawnEgg; + mappings[1057] = ItemType.SkeletonHorseSpawnEgg; + mappings[1096] = ItemType.SkeletonSkull; + mappings[1056] = ItemType.SkeletonSpawnEgg; + mappings[1187] = ItemType.SkullBannerPattern; + mappings[1292] = ItemType.SkullPotterySherd; + mappings[923] = ItemType.SlimeBall; + mappings[663] = ItemType.SlimeBlock; + mappings[1058] = ItemType.SlimeSpawnEgg; + mappings[1246] = ItemType.SmallAmethystBud; + mappings[249] = ItemType.SmallDripleaf; + mappings[1199] = ItemType.SmithingTable; + mappings[1194] = ItemType.Smoker; + mappings[329] = ItemType.SmoothBasalt; + mappings[280] = ItemType.SmoothQuartz; + mappings[645] = ItemType.SmoothQuartzSlab; + mappings[628] = ItemType.SmoothQuartzStairs; + mappings[281] = ItemType.SmoothRedSandstone; + mappings[639] = ItemType.SmoothRedSandstoneSlab; + mappings[621] = ItemType.SmoothRedSandstoneStairs; + mappings[282] = ItemType.SmoothSandstone; + mappings[644] = ItemType.SmoothSandstoneSlab; + mappings[627] = ItemType.SmoothSandstoneStairs; + mappings[283] = ItemType.SmoothStone; + mappings[264] = ItemType.SmoothStoneSlab; + mappings[587] = ItemType.SnifferEgg; + mappings[1059] = ItemType.SnifferSpawnEgg; + mappings[1293] = ItemType.SnortPotterySherd; + mappings[1266] = ItemType.SnoutArmorTrimSmithingTemplate; + mappings[304] = ItemType.Snow; + mappings[306] = ItemType.SnowBlock; + mappings[1060] = ItemType.SnowGolemSpawnEgg; + mappings[909] = ItemType.Snowball; + mappings[1207] = ItemType.SoulCampfire; + mappings[1203] = ItemType.SoulLantern; + mappings[325] = ItemType.SoulSand; + mappings[326] = ItemType.SoulSoil; + mappings[330] = ItemType.SoulTorch; + mappings[297] = ItemType.Spawner; + mappings[1152] = ItemType.SpectralArrow; + mappings[997] = ItemType.SpiderEye; + mappings[1061] = ItemType.SpiderSpawnEgg; + mappings[1268] = ItemType.SpireArmorTrimSmithingTemplate; + mappings[1151] = ItemType.SplashPotion; + mappings[185] = ItemType.Sponge; + mappings[232] = ItemType.SporeBlossom; + mappings[775] = ItemType.SpruceBoat; + mappings[684] = ItemType.SpruceButton; + mappings[776] = ItemType.SpruceChestBoat; + mappings[711] = ItemType.SpruceDoor; + mappings[311] = ItemType.SpruceFence; + mappings[750] = ItemType.SpruceFenceGate; + mappings[895] = ItemType.SpruceHangingSign; + mappings[176] = ItemType.SpruceLeaves; + mappings[132] = ItemType.SpruceLog; + mappings[37] = ItemType.SprucePlanks; + mappings[699] = ItemType.SprucePressurePlate; + mappings[49] = ItemType.SpruceSapling; + mappings[884] = ItemType.SpruceSign; + mappings[252] = ItemType.SpruceSlab; + mappings[383] = ItemType.SpruceStairs; + mappings[731] = ItemType.SpruceTrapdoor; + mappings[166] = ItemType.SpruceWood; + mappings[930] = ItemType.Spyglass; + mappings[1062] = ItemType.SquidSpawnEgg; + mappings[844] = ItemType.Stick; + mappings[662] = ItemType.StickyPiston; + mappings[1] = ItemType.Stone; + mappings[822] = ItemType.StoneAxe; + mappings[270] = ItemType.StoneBrickSlab; + mappings[361] = ItemType.StoneBrickStairs; + mappings[403] = ItemType.StoneBrickWall; + mappings[339] = ItemType.StoneBricks; + mappings[681] = ItemType.StoneButton; + mappings[823] = ItemType.StoneHoe; + mappings[821] = ItemType.StonePickaxe; + mappings[694] = ItemType.StonePressurePlate; + mappings[820] = ItemType.StoneShovel; + mappings[263] = ItemType.StoneSlab; + mappings[626] = ItemType.StoneStairs; + mappings[819] = ItemType.StoneSword; + mappings[1200] = ItemType.Stonecutter; + mappings[1063] = ItemType.StraySpawnEgg; + mappings[1064] = ItemType.StriderSpawnEgg; + mappings[847] = ItemType.String; + mappings[148] = ItemType.StrippedAcaciaLog; + mappings[158] = ItemType.StrippedAcaciaWood; + mappings[164] = ItemType.StrippedBambooBlock; + mappings[146] = ItemType.StrippedBirchLog; + mappings[156] = ItemType.StrippedBirchWood; + mappings[149] = ItemType.StrippedCherryLog; + mappings[159] = ItemType.StrippedCherryWood; + mappings[162] = ItemType.StrippedCrimsonHyphae; + mappings[152] = ItemType.StrippedCrimsonStem; + mappings[150] = ItemType.StrippedDarkOakLog; + mappings[160] = ItemType.StrippedDarkOakWood; + mappings[147] = ItemType.StrippedJungleLog; + mappings[157] = ItemType.StrippedJungleWood; + mappings[151] = ItemType.StrippedMangroveLog; + mappings[161] = ItemType.StrippedMangroveWood; + mappings[144] = ItemType.StrippedOakLog; + mappings[154] = ItemType.StrippedOakWood; + mappings[145] = ItemType.StrippedSpruceLog; + mappings[155] = ItemType.StrippedSpruceWood; + mappings[163] = ItemType.StrippedWarpedHyphae; + mappings[153] = ItemType.StrippedWarpedStem; + mappings[791] = ItemType.StructureBlock; + mappings[520] = ItemType.StructureVoid; + mappings[959] = ItemType.Sugar; + mappings[242] = ItemType.SugarCane; + mappings[464] = ItemType.Sunflower; + mappings[59] = ItemType.SuspiciousGravel; + mappings[58] = ItemType.SuspiciousSand; + mappings[1183] = ItemType.SuspiciousStew; + mappings[1204] = ItemType.SweetBerries; + mappings[917] = ItemType.TadpoleBucket; + mappings[1065] = ItemType.TadpoleSpawnEgg; + mappings[468] = ItemType.TallGrass; + mappings[670] = ItemType.Target; + mappings[461] = ItemType.Terracotta; + mappings[1265] = ItemType.TideArmorTrimSmithingTemplate; + mappings[188] = ItemType.TintedGlass; + mappings[1153] = ItemType.TippedArrow; + mappings[678] = ItemType.Tnt; + mappings[768] = ItemType.TntMinecart; + mappings[290] = ItemType.Torch; + mappings[230] = ItemType.Torchflower; + mappings[1145] = ItemType.TorchflowerSeeds; + mappings[1156] = ItemType.TotemOfUndying; + mappings[1066] = ItemType.TraderLlamaSpawnEgg; + mappings[677] = ItemType.TrappedChest; + mappings[1311] = ItemType.TrialKey; + mappings[1310] = ItemType.TrialSpawner; + mappings[1178] = ItemType.Trident; + mappings[676] = ItemType.TripwireHook; + mappings[934] = ItemType.TropicalFish; + mappings[915] = ItemType.TropicalFishBucket; + mappings[1067] = ItemType.TropicalFishSpawnEgg; + mappings[598] = ItemType.TubeCoral; + mappings[593] = ItemType.TubeCoralBlock; + mappings[608] = ItemType.TubeCoralFan; + mappings[12] = ItemType.Tuff; + mappings[22] = ItemType.TuffBrickSlab; + mappings[23] = ItemType.TuffBrickStairs; + mappings[24] = ItemType.TuffBrickWall; + mappings[21] = ItemType.TuffBricks; + mappings[13] = ItemType.TuffSlab; + mappings[14] = ItemType.TuffStairs; + mappings[15] = ItemType.TuffWall; + mappings[586] = ItemType.TurtleEgg; + mappings[793] = ItemType.TurtleHelmet; + mappings[1068] = ItemType.TurtleSpawnEgg; + mappings[241] = ItemType.TwistingVines; + mappings[1252] = ItemType.VerdantFroglight; + mappings[1264] = ItemType.VexArmorTrimSmithingTemplate; + mappings[1069] = ItemType.VexSpawnEgg; + mappings[1070] = ItemType.VillagerSpawnEgg; + mappings[1071] = ItemType.VindicatorSpawnEgg; + mappings[358] = ItemType.Vine; + mappings[1072] = ItemType.WanderingTraderSpawnEgg; + mappings[1262] = ItemType.WardArmorTrimSmithingTemplate; + mappings[1073] = ItemType.WardenSpawnEgg; + mappings[693] = ItemType.WarpedButton; + mappings[720] = ItemType.WarpedDoor; + mappings[320] = ItemType.WarpedFence; + mappings[759] = ItemType.WarpedFenceGate; + mappings[236] = ItemType.WarpedFungus; + mappings[771] = ItemType.WarpedFungusOnAStick; + mappings[904] = ItemType.WarpedHangingSign; + mappings[174] = ItemType.WarpedHyphae; + mappings[34] = ItemType.WarpedNylium; + mappings[46] = ItemType.WarpedPlanks; + mappings[708] = ItemType.WarpedPressurePlate; + mappings[238] = ItemType.WarpedRoots; + mappings[893] = ItemType.WarpedSign; + mappings[262] = ItemType.WarpedSlab; + mappings[393] = ItemType.WarpedStairs; + mappings[142] = ItemType.WarpedStem; + mappings[740] = ItemType.WarpedTrapdoor; + mappings[517] = ItemType.WarpedWartBlock; + mappings[906] = ItemType.WaterBucket; + mappings[115] = ItemType.WaxedChiseledCopper; + mappings[111] = ItemType.WaxedCopperBlock; + mappings[1306] = ItemType.WaxedCopperBulb; + mappings[725] = ItemType.WaxedCopperDoor; + mappings[1298] = ItemType.WaxedCopperGrate; + mappings[745] = ItemType.WaxedCopperTrapdoor; + mappings[119] = ItemType.WaxedCutCopper; + mappings[127] = ItemType.WaxedCutCopperSlab; + mappings[123] = ItemType.WaxedCutCopperStairs; + mappings[116] = ItemType.WaxedExposedChiseledCopper; + mappings[112] = ItemType.WaxedExposedCopper; + mappings[1307] = ItemType.WaxedExposedCopperBulb; + mappings[726] = ItemType.WaxedExposedCopperDoor; + mappings[1299] = ItemType.WaxedExposedCopperGrate; + mappings[746] = ItemType.WaxedExposedCopperTrapdoor; + mappings[120] = ItemType.WaxedExposedCutCopper; + mappings[128] = ItemType.WaxedExposedCutCopperSlab; + mappings[124] = ItemType.WaxedExposedCutCopperStairs; + mappings[118] = ItemType.WaxedOxidizedChiseledCopper; + mappings[114] = ItemType.WaxedOxidizedCopper; + mappings[1309] = ItemType.WaxedOxidizedCopperBulb; + mappings[728] = ItemType.WaxedOxidizedCopperDoor; + mappings[1301] = ItemType.WaxedOxidizedCopperGrate; + mappings[748] = ItemType.WaxedOxidizedCopperTrapdoor; + mappings[122] = ItemType.WaxedOxidizedCutCopper; + mappings[130] = ItemType.WaxedOxidizedCutCopperSlab; + mappings[126] = ItemType.WaxedOxidizedCutCopperStairs; + mappings[117] = ItemType.WaxedWeatheredChiseledCopper; + mappings[113] = ItemType.WaxedWeatheredCopper; + mappings[1308] = ItemType.WaxedWeatheredCopperBulb; + mappings[727] = ItemType.WaxedWeatheredCopperDoor; + mappings[1300] = ItemType.WaxedWeatheredCopperGrate; + mappings[747] = ItemType.WaxedWeatheredCopperTrapdoor; + mappings[121] = ItemType.WaxedWeatheredCutCopper; + mappings[129] = ItemType.WaxedWeatheredCutCopperSlab; + mappings[125] = ItemType.WaxedWeatheredCutCopperStairs; + mappings[1269] = ItemType.WayfinderArmorTrimSmithingTemplate; + mappings[97] = ItemType.WeatheredChiseledCopper; + mappings[93] = ItemType.WeatheredCopper; + mappings[1304] = ItemType.WeatheredCopperBulb; + mappings[723] = ItemType.WeatheredCopperDoor; + mappings[1296] = ItemType.WeatheredCopperGrate; + mappings[743] = ItemType.WeatheredCopperTrapdoor; + mappings[101] = ItemType.WeatheredCutCopper; + mappings[109] = ItemType.WeatheredCutCopperSlab; + mappings[105] = ItemType.WeatheredCutCopperStairs; + mappings[240] = ItemType.WeepingVines; + mappings[186] = ItemType.WetSponge; + mappings[851] = ItemType.Wheat; + mappings[850] = ItemType.WheatSeeds; + mappings[1126] = ItemType.WhiteBanner; + mappings[961] = ItemType.WhiteBed; + mappings[1230] = ItemType.WhiteCandle; + mappings[445] = ItemType.WhiteCarpet; + mappings[554] = ItemType.WhiteConcrete; + mappings[570] = ItemType.WhiteConcretePowder; + mappings[941] = ItemType.WhiteDye; + mappings[538] = ItemType.WhiteGlazedTerracotta; + mappings[522] = ItemType.WhiteShulkerBox; + mappings[470] = ItemType.WhiteStainedGlass; + mappings[486] = ItemType.WhiteStainedGlassPane; + mappings[426] = ItemType.WhiteTerracotta; + mappings[224] = ItemType.WhiteTulip; + mappings[201] = ItemType.WhiteWool; + mappings[1261] = ItemType.WildArmorTrimSmithingTemplate; + mappings[1074] = ItemType.WitchSpawnEgg; + mappings[229] = ItemType.WitherRose; + mappings[1097] = ItemType.WitherSkeletonSkull; + mappings[1076] = ItemType.WitherSkeletonSpawnEgg; + mappings[1075] = ItemType.WitherSpawnEgg; + mappings[1077] = ItemType.WolfSpawnEgg; + mappings[817] = ItemType.WoodenAxe; + mappings[818] = ItemType.WoodenHoe; + mappings[816] = ItemType.WoodenPickaxe; + mappings[815] = ItemType.WoodenShovel; + mappings[814] = ItemType.WoodenSword; + mappings[1085] = ItemType.WritableBook; + mappings[1086] = ItemType.WrittenBook; + mappings[1130] = ItemType.YellowBanner; + mappings[965] = ItemType.YellowBed; + mappings[1234] = ItemType.YellowCandle; + mappings[449] = ItemType.YellowCarpet; + mappings[558] = ItemType.YellowConcrete; + mappings[574] = ItemType.YellowConcretePowder; + mappings[945] = ItemType.YellowDye; + mappings[542] = ItemType.YellowGlazedTerracotta; + mappings[526] = ItemType.YellowShulkerBox; + mappings[474] = ItemType.YellowStainedGlass; + mappings[490] = ItemType.YellowStainedGlassPane; + mappings[430] = ItemType.YellowTerracotta; + mappings[205] = ItemType.YellowWool; + mappings[1078] = ItemType.ZoglinSpawnEgg; + mappings[1099] = ItemType.ZombieHead; + mappings[1080] = ItemType.ZombieHorseSpawnEgg; + mappings[1079] = ItemType.ZombieSpawnEgg; + mappings[1081] = ItemType.ZombieVillagerSpawnEgg; + mappings[1082] = ItemType.ZombifiedPiglinSpawnEgg; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Inventory/ItemType.cs b/MinecraftClient/Inventory/ItemType.cs index d11f5320ed..175ebcefff 100644 --- a/MinecraftClient/Inventory/ItemType.cs +++ b/MinecraftClient/Inventory/ItemType.cs @@ -154,6 +154,7 @@ public enum ItemType BrainCoralBlock, BrainCoralFan, Bread, + BreezeSpawnEgg, BrewerPotterySherd, BrewingStand, Brick, @@ -228,6 +229,7 @@ public enum ItemType ChickenSpawnEgg, ChippedAnvil, ChiseledBookshelf, + ChiseledCopper, ChiseledDeepslate, ChiseledNetherBricks, ChiseledPolishedBlackstone, @@ -235,6 +237,8 @@ public enum ItemType ChiseledRedSandstone, ChiseledSandstone, ChiseledStoneBricks, + ChiseledTuff, + ChiseledTuffBricks, ChorusFlower, ChorusFruit, ChorusPlant, @@ -274,8 +278,12 @@ public enum ItemType CookedSalmon, Cookie, CopperBlock, + CopperBulb, + CopperDoor, + CopperGrate, CopperIngot, CopperOre, + CopperTrapdoor, Cornflower, CowSpawnEgg, CrackedDeepslateBricks, @@ -283,6 +291,7 @@ public enum ItemType CrackedNetherBricks, CrackedPolishedBlackstoneBricks, CrackedStoneBricks, + Crafter, CraftingTable, CreeperBannerPattern, CreeperHead, @@ -444,7 +453,12 @@ public enum ItemType EvokerSpawnEgg, ExperienceBottle, ExplorerPotterySherd, + ExposedChiseledCopper, ExposedCopper, + ExposedCopperBulb, + ExposedCopperDoor, + ExposedCopperGrate, + ExposedCopperTrapdoor, ExposedCutCopper, ExposedCutCopperSlab, ExposedCutCopperStairs, @@ -511,7 +525,7 @@ public enum ItemType GraniteSlab, GraniteStairs, GraniteWall, - Grass, + Grass, // 1.20.3+ renamed to ShortGrass GrassBlock, Gravel, GrayBanner, @@ -826,7 +840,12 @@ public enum ItemType OrangeTulip, OrangeWool, OxeyeDaisy, + OxidizedChiseledCopper, OxidizedCopper, + OxidizedCopperBulb, + OxidizedCopperDoor, + OxidizedCopperGrate, + OxidizedCopperTrapdoor, OxidizedCutCopper, OxidizedCutCopperSlab, OxidizedCutCopperStairs, @@ -895,6 +914,10 @@ public enum ItemType PolishedGranite, PolishedGraniteSlab, PolishedGraniteStairs, + PolishedTuff, + PolishedTuffSlab, + PolishedTuffStairs, + PolishedTuffWall, PoppedChorusFruit, Poppy, Porkchop, @@ -1020,6 +1043,7 @@ public enum ItemType SheepSpawnEgg, ShelterPotterySherd, Shield, + ShortGrass, Shroomlight, ShulkerBox, ShulkerShell, @@ -1156,6 +1180,8 @@ public enum ItemType TotemOfUndying, TraderLlamaSpawnEgg, TrappedChest, + TrialKey, + TrialSpawner, Trident, TripwireHook, TropicalFish, @@ -1165,6 +1191,13 @@ public enum ItemType TubeCoralBlock, TubeCoralFan, Tuff, + TuffBrickSlab, + TuffBrickStairs, + TuffBrickWall, + TuffBricks, + TuffSlab, + TuffStairs, + TuffWall, TurtleEgg, TurtleHelmet, TurtleSpawnEgg, @@ -1197,24 +1230,49 @@ public enum ItemType WarpedTrapdoor, WarpedWartBlock, WaterBucket, + WaxedChiseledCopper, WaxedCopperBlock, + WaxedCopperBulb, + WaxedCopperDoor, + WaxedCopperGrate, + WaxedCopperTrapdoor, WaxedCutCopper, WaxedCutCopperSlab, WaxedCutCopperStairs, + WaxedExposedChiseledCopper, WaxedExposedCopper, + WaxedExposedCopperBulb, + WaxedExposedCopperDoor, + WaxedExposedCopperGrate, + WaxedExposedCopperTrapdoor, WaxedExposedCutCopper, WaxedExposedCutCopperSlab, WaxedExposedCutCopperStairs, + WaxedOxidizedChiseledCopper, WaxedOxidizedCopper, + WaxedOxidizedCopperBulb, + WaxedOxidizedCopperDoor, + WaxedOxidizedCopperGrate, + WaxedOxidizedCopperTrapdoor, WaxedOxidizedCutCopper, WaxedOxidizedCutCopperSlab, WaxedOxidizedCutCopperStairs, + WaxedWeatheredChiseledCopper, WaxedWeatheredCopper, + WaxedWeatheredCopperBulb, + WaxedWeatheredCopperDoor, + WaxedWeatheredCopperGrate, + WaxedWeatheredCopperTrapdoor, WaxedWeatheredCutCopper, WaxedWeatheredCutCopperSlab, WaxedWeatheredCutCopperStairs, WayfinderArmorTrimSmithingTemplate, + WeatheredChiseledCopper, WeatheredCopper, + WeatheredCopperBulb, + WeatheredCopperDoor, + WeatheredCopperGrate, + WeatheredCopperTrapdoor, WeatheredCutCopper, WeatheredCutCopperSlab, WeatheredCutCopperStairs, diff --git a/MinecraftClient/Mapping/BlockPalettes/Palette1204.cs b/MinecraftClient/Mapping/BlockPalettes/Palette1204.cs new file mode 100644 index 0000000000..1043ad7fce --- /dev/null +++ b/MinecraftClient/Mapping/BlockPalettes/Palette1204.cs @@ -0,0 +1,1762 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Mapping.BlockPalettes +{ + public class Palette1204 : BlockPalette + { + private static readonly Dictionary materials = new(); + + static Palette1204() + { + for (int i = 8707; i <= 8730; i++) + materials[i] = Material.AcaciaButton; + for (int i = 12014; i <= 12077; i++) + materials[i] = Material.AcaciaDoor; + for (int i = 11662; i <= 11693; i++) + materials[i] = Material.AcaciaFence; + for (int i = 11406; i <= 11437; i++) + materials[i] = Material.AcaciaFenceGate; + for (int i = 5026; i <= 5089; i++) + materials[i] = Material.AcaciaHangingSign; + for (int i = 349; i <= 376; i++) + materials[i] = Material.AcaciaLeaves; + for (int i = 142; i <= 144; i++) + materials[i] = Material.AcaciaLog; + materials[19] = Material.AcaciaPlanks; + for (int i = 5724; i <= 5725; i++) + materials[i] = Material.AcaciaPressurePlate; + for (int i = 33; i <= 34; i++) + materials[i] = Material.AcaciaSapling; + for (int i = 4398; i <= 4429; i++) + materials[i] = Material.AcaciaSign; + for (int i = 11186; i <= 11191; i++) + materials[i] = Material.AcaciaSlab; + for (int i = 9884; i <= 9963; i++) + materials[i] = Material.AcaciaStairs; + for (int i = 6217; i <= 6280; i++) + materials[i] = Material.AcaciaTrapdoor; + for (int i = 5562; i <= 5569; i++) + materials[i] = Material.AcaciaWallHangingSign; + for (int i = 4786; i <= 4793; i++) + materials[i] = Material.AcaciaWallSign; + for (int i = 201; i <= 203; i++) + materials[i] = Material.AcaciaWood; + for (int i = 9320; i <= 9343; i++) + materials[i] = Material.ActivatorRail; + materials[0] = Material.Air; + materials[2079] = Material.Allium; + materials[21031] = Material.AmethystBlock; + for (int i = 21033; i <= 21044; i++) + materials[i] = Material.AmethystCluster; + materials[19448] = Material.AncientDebris; + materials[6] = Material.Andesite; + for (int i = 14136; i <= 14141; i++) + materials[i] = Material.AndesiteSlab; + for (int i = 13762; i <= 13841; i++) + materials[i] = Material.AndesiteStairs; + for (int i = 16752; i <= 17075; i++) + materials[i] = Material.AndesiteWall; + for (int i = 9107; i <= 9110; i++) + materials[i] = Material.Anvil; + for (int i = 6817; i <= 6820; i++) + materials[i] = Material.AttachedMelonStem; + for (int i = 6813; i <= 6816; i++) + materials[i] = Material.AttachedPumpkinStem; + materials[24824] = Material.Azalea; + for (int i = 461; i <= 488; i++) + materials[i] = Material.AzaleaLeaves; + materials[2080] = Material.AzureBluet; + for (int i = 12945; i <= 12956; i++) + materials[i] = Material.Bamboo; + for (int i = 159; i <= 161; i++) + materials[i] = Material.BambooBlock; + for (int i = 8803; i <= 8826; i++) + materials[i] = Material.BambooButton; + for (int i = 12270; i <= 12333; i++) + materials[i] = Material.BambooDoor; + for (int i = 11790; i <= 11821; i++) + materials[i] = Material.BambooFence; + for (int i = 11534; i <= 11565; i++) + materials[i] = Material.BambooFenceGate; + for (int i = 5474; i <= 5537; i++) + materials[i] = Material.BambooHangingSign; + materials[24] = Material.BambooMosaic; + for (int i = 11216; i <= 11221; i++) + materials[i] = Material.BambooMosaicSlab; + for (int i = 10284; i <= 10363; i++) + materials[i] = Material.BambooMosaicStairs; + materials[23] = Material.BambooPlanks; + for (int i = 5732; i <= 5733; i++) + materials[i] = Material.BambooPressurePlate; + materials[12944] = Material.BambooSapling; + for (int i = 4558; i <= 4589; i++) + materials[i] = Material.BambooSign; + for (int i = 11210; i <= 11215; i++) + materials[i] = Material.BambooSlab; + for (int i = 10204; i <= 10283; i++) + materials[i] = Material.BambooStairs; + for (int i = 6473; i <= 6536; i++) + materials[i] = Material.BambooTrapdoor; + for (int i = 5618; i <= 5625; i++) + materials[i] = Material.BambooWallHangingSign; + for (int i = 4826; i <= 4833; i++) + materials[i] = Material.BambooWallSign; + for (int i = 18408; i <= 18419; i++) + materials[i] = Material.Barrel; + for (int i = 10365; i <= 10366; i++) + materials[i] = Material.Barrier; + for (int i = 5852; i <= 5854; i++) + materials[i] = Material.Basalt; + materials[7918] = Material.Beacon; + materials[79] = Material.Bedrock; + for (int i = 19397; i <= 19420; i++) + materials[i] = Material.BeeNest; + for (int i = 19421; i <= 19444; i++) + materials[i] = Material.Beehive; + for (int i = 12509; i <= 12512; i++) + materials[i] = Material.Beetroots; + for (int i = 18471; i <= 18502; i++) + materials[i] = Material.Bell; + for (int i = 24844; i <= 24875; i++) + materials[i] = Material.BigDripleaf; + for (int i = 24876; i <= 24883; i++) + materials[i] = Material.BigDripleafStem; + for (int i = 8659; i <= 8682; i++) + materials[i] = Material.BirchButton; + for (int i = 11886; i <= 11949; i++) + materials[i] = Material.BirchDoor; + for (int i = 11598; i <= 11629; i++) + materials[i] = Material.BirchFence; + for (int i = 11342; i <= 11373; i++) + materials[i] = Material.BirchFenceGate; + for (int i = 4962; i <= 5025; i++) + materials[i] = Material.BirchHangingSign; + for (int i = 293; i <= 320; i++) + materials[i] = Material.BirchLeaves; + for (int i = 136; i <= 138; i++) + materials[i] = Material.BirchLog; + materials[17] = Material.BirchPlanks; + for (int i = 5720; i <= 5721; i++) + materials[i] = Material.BirchPressurePlate; + for (int i = 29; i <= 30; i++) + materials[i] = Material.BirchSapling; + for (int i = 4366; i <= 4397; i++) + materials[i] = Material.BirchSign; + for (int i = 11174; i <= 11179; i++) + materials[i] = Material.BirchSlab; + for (int i = 7746; i <= 7825; i++) + materials[i] = Material.BirchStairs; + for (int i = 6089; i <= 6152; i++) + materials[i] = Material.BirchTrapdoor; + for (int i = 5554; i <= 5561; i++) + materials[i] = Material.BirchWallHangingSign; + for (int i = 4778; i <= 4785; i++) + materials[i] = Material.BirchWallSign; + for (int i = 195; i <= 197; i++) + materials[i] = Material.BirchWood; + for (int i = 10999; i <= 11014; i++) + materials[i] = Material.BlackBanner; + for (int i = 1928; i <= 1943; i++) + materials[i] = Material.BlackBed; + for (int i = 20981; i <= 20996; i++) + materials[i] = Material.BlackCandle; + for (int i = 21029; i <= 21030; i++) + materials[i] = Material.BlackCandleCake; + materials[10743] = Material.BlackCarpet; + materials[12743] = Material.BlackConcrete; + materials[12759] = Material.BlackConcretePowder; + for (int i = 12724; i <= 12727; i++) + materials[i] = Material.BlackGlazedTerracotta; + for (int i = 12658; i <= 12663; i++) + materials[i] = Material.BlackShulkerBox; + materials[5960] = Material.BlackStainedGlass; + for (int i = 9852; i <= 9883; i++) + materials[i] = Material.BlackStainedGlassPane; + materials[9371] = Material.BlackTerracotta; + for (int i = 11075; i <= 11078; i++) + materials[i] = Material.BlackWallBanner; + materials[2062] = Material.BlackWool; + materials[19460] = Material.Blackstone; + for (int i = 19865; i <= 19870; i++) + materials[i] = Material.BlackstoneSlab; + for (int i = 19461; i <= 19540; i++) + materials[i] = Material.BlackstoneStairs; + for (int i = 19541; i <= 19864; i++) + materials[i] = Material.BlackstoneWall; + for (int i = 18428; i <= 18435; i++) + materials[i] = Material.BlastFurnace; + for (int i = 10935; i <= 10950; i++) + materials[i] = Material.BlueBanner; + for (int i = 1864; i <= 1879; i++) + materials[i] = Material.BlueBed; + for (int i = 20917; i <= 20932; i++) + materials[i] = Material.BlueCandle; + for (int i = 21021; i <= 21022; i++) + materials[i] = Material.BlueCandleCake; + materials[10739] = Material.BlueCarpet; + materials[12739] = Material.BlueConcrete; + materials[12755] = Material.BlueConcretePowder; + for (int i = 12708; i <= 12711; i++) + materials[i] = Material.BlueGlazedTerracotta; + materials[12941] = Material.BlueIce; + materials[2078] = Material.BlueOrchid; + for (int i = 12634; i <= 12639; i++) + materials[i] = Material.BlueShulkerBox; + materials[5956] = Material.BlueStainedGlass; + for (int i = 9724; i <= 9755; i++) + materials[i] = Material.BlueStainedGlassPane; + materials[9367] = Material.BlueTerracotta; + for (int i = 11059; i <= 11062; i++) + materials[i] = Material.BlueWallBanner; + materials[2058] = Material.BlueWool; + for (int i = 12546; i <= 12548; i++) + materials[i] = Material.BoneBlock; + materials[2096] = Material.Bookshelf; + for (int i = 12825; i <= 12826; i++) + materials[i] = Material.BrainCoral; + materials[12809] = Material.BrainCoralBlock; + for (int i = 12845; i <= 12846; i++) + materials[i] = Material.BrainCoralFan; + for (int i = 12901; i <= 12908; i++) + materials[i] = Material.BrainCoralWallFan; + for (int i = 7390; i <= 7397; i++) + materials[i] = Material.BrewingStand; + for (int i = 11258; i <= 11263; i++) + materials[i] = Material.BrickSlab; + for (int i = 7029; i <= 7108; i++) + materials[i] = Material.BrickStairs; + for (int i = 14160; i <= 14483; i++) + materials[i] = Material.BrickWall; + materials[2093] = Material.Bricks; + for (int i = 10951; i <= 10966; i++) + materials[i] = Material.BrownBanner; + for (int i = 1880; i <= 1895; i++) + materials[i] = Material.BrownBed; + for (int i = 20933; i <= 20948; i++) + materials[i] = Material.BrownCandle; + for (int i = 21023; i <= 21024; i++) + materials[i] = Material.BrownCandleCake; + materials[10740] = Material.BrownCarpet; + materials[12740] = Material.BrownConcrete; + materials[12756] = Material.BrownConcretePowder; + for (int i = 12712; i <= 12715; i++) + materials[i] = Material.BrownGlazedTerracotta; + materials[2089] = Material.BrownMushroom; + for (int i = 6549; i <= 6612; i++) + materials[i] = Material.BrownMushroomBlock; + for (int i = 12640; i <= 12645; i++) + materials[i] = Material.BrownShulkerBox; + materials[5957] = Material.BrownStainedGlass; + for (int i = 9756; i <= 9787; i++) + materials[i] = Material.BrownStainedGlassPane; + materials[9368] = Material.BrownTerracotta; + for (int i = 11063; i <= 11066; i++) + materials[i] = Material.BrownWallBanner; + materials[2059] = Material.BrownWool; + for (int i = 12960; i <= 12961; i++) + materials[i] = Material.BubbleColumn; + for (int i = 12827; i <= 12828; i++) + materials[i] = Material.BubbleCoral; + materials[12810] = Material.BubbleCoralBlock; + for (int i = 12847; i <= 12848; i++) + materials[i] = Material.BubbleCoralFan; + for (int i = 12909; i <= 12916; i++) + materials[i] = Material.BubbleCoralWallFan; + materials[21032] = Material.BuddingAmethyst; + for (int i = 5782; i <= 5797; i++) + materials[i] = Material.Cactus; + for (int i = 5874; i <= 5880; i++) + materials[i] = Material.Cake; + materials[22316] = Material.Calcite; + for (int i = 22415; i <= 22798; i++) + materials[i] = Material.CalibratedSculkSensor; + for (int i = 18511; i <= 18542; i++) + materials[i] = Material.Campfire; + for (int i = 20725; i <= 20740; i++) + materials[i] = Material.Candle; + for (int i = 20997; i <= 20998; i++) + materials[i] = Material.CandleCake; + for (int i = 8595; i <= 8602; i++) + materials[i] = Material.Carrots; + materials[18436] = Material.CartographyTable; + for (int i = 5866; i <= 5869; i++) + materials[i] = Material.CarvedPumpkin; + materials[7398] = Material.Cauldron; + materials[12959] = Material.CaveAir; + for (int i = 24769; i <= 24820; i++) + materials[i] = Material.CaveVines; + for (int i = 24821; i <= 24822; i++) + materials[i] = Material.CaveVinesPlant; + for (int i = 6773; i <= 6778; i++) + materials[i] = Material.Chain; + for (int i = 12527; i <= 12538; i++) + materials[i] = Material.ChainCommandBlock; + for (int i = 8731; i <= 8754; i++) + materials[i] = Material.CherryButton; + for (int i = 12078; i <= 12141; i++) + materials[i] = Material.CherryDoor; + for (int i = 11694; i <= 11725; i++) + materials[i] = Material.CherryFence; + for (int i = 11438; i <= 11469; i++) + materials[i] = Material.CherryFenceGate; + for (int i = 5090; i <= 5153; i++) + materials[i] = Material.CherryHangingSign; + for (int i = 377; i <= 404; i++) + materials[i] = Material.CherryLeaves; + for (int i = 145; i <= 147; i++) + materials[i] = Material.CherryLog; + materials[20] = Material.CherryPlanks; + for (int i = 5726; i <= 5727; i++) + materials[i] = Material.CherryPressurePlate; + for (int i = 35; i <= 36; i++) + materials[i] = Material.CherrySapling; + for (int i = 4430; i <= 4461; i++) + materials[i] = Material.CherrySign; + for (int i = 11192; i <= 11197; i++) + materials[i] = Material.CherrySlab; + for (int i = 9964; i <= 10043; i++) + materials[i] = Material.CherryStairs; + for (int i = 6281; i <= 6344; i++) + materials[i] = Material.CherryTrapdoor; + for (int i = 5570; i <= 5577; i++) + materials[i] = Material.CherryWallHangingSign; + for (int i = 4794; i <= 4801; i++) + materials[i] = Material.CherryWallSign; + for (int i = 204; i <= 206; i++) + materials[i] = Material.CherryWood; + for (int i = 2954; i <= 2977; i++) + materials[i] = Material.Chest; + for (int i = 9111; i <= 9114; i++) + materials[i] = Material.ChippedAnvil; + for (int i = 2097; i <= 2352; i++) + materials[i] = Material.ChiseledBookshelf; + materials[22951] = Material.ChiseledCopper; + materials[26551] = Material.ChiseledDeepslate; + materials[20722] = Material.ChiseledNetherBricks; + materials[19874] = Material.ChiseledPolishedBlackstone; + materials[9236] = Material.ChiseledQuartzBlock; + materials[11080] = Material.ChiseledRedSandstone; + materials[536] = Material.ChiseledSandstone; + materials[6540] = Material.ChiseledStoneBricks; + materials[21903] = Material.ChiseledTuff; + materials[22315] = Material.ChiseledTuffBricks; + for (int i = 12404; i <= 12409; i++) + materials[i] = Material.ChorusFlower; + for (int i = 12340; i <= 12403; i++) + materials[i] = Material.ChorusPlant; + materials[5798] = Material.Clay; + materials[10745] = Material.CoalBlock; + materials[127] = Material.CoalOre; + materials[11] = Material.CoarseDirt; + materials[24907] = Material.CobbledDeepslate; + for (int i = 24988; i <= 24993; i++) + materials[i] = Material.CobbledDeepslateSlab; + for (int i = 24908; i <= 24987; i++) + materials[i] = Material.CobbledDeepslateStairs; + for (int i = 24994; i <= 25317; i++) + materials[i] = Material.CobbledDeepslateWall; + materials[14] = Material.Cobblestone; + for (int i = 11252; i <= 11257; i++) + materials[i] = Material.CobblestoneSlab; + for (int i = 4682; i <= 4761; i++) + materials[i] = Material.CobblestoneStairs; + for (int i = 7919; i <= 8242; i++) + materials[i] = Material.CobblestoneWall; + materials[2004] = Material.Cobweb; + for (int i = 7419; i <= 7430; i++) + materials[i] = Material.Cocoa; + for (int i = 7906; i <= 7917; i++) + materials[i] = Material.CommandBlock; + for (int i = 9175; i <= 9190; i++) + materials[i] = Material.Comparator; + for (int i = 19372; i <= 19380; i++) + materials[i] = Material.Composter; + for (int i = 12942; i <= 12943; i++) + materials[i] = Material.Conduit; + materials[22938] = Material.CopperBlock; + for (int i = 24692; i <= 24695; i++) + materials[i] = Material.CopperBulb; + for (int i = 23652; i <= 23715; i++) + materials[i] = Material.CopperDoor; + for (int i = 24676; i <= 24677; i++) + materials[i] = Material.CopperGrate; + materials[22942] = Material.CopperOre; + for (int i = 24164; i <= 24227; i++) + materials[i] = Material.CopperTrapdoor; + materials[2086] = Material.Cornflower; + materials[26552] = Material.CrackedDeepslateBricks; + materials[26553] = Material.CrackedDeepslateTiles; + materials[20723] = Material.CrackedNetherBricks; + materials[19873] = Material.CrackedPolishedBlackstoneBricks; + materials[6539] = Material.CrackedStoneBricks; + for (int i = 26590; i <= 26637; i++) + materials[i] = Material.Crafter; + materials[4277] = Material.CraftingTable; + for (int i = 8987; i <= 9018; i++) + materials[i] = Material.CreeperHead; + for (int i = 9019; i <= 9026; i++) + materials[i] = Material.CreeperWallHead; + for (int i = 19100; i <= 19123; i++) + materials[i] = Material.CrimsonButton; + for (int i = 19148; i <= 19211; i++) + materials[i] = Material.CrimsonDoor; + for (int i = 18684; i <= 18715; i++) + materials[i] = Material.CrimsonFence; + for (int i = 18876; i <= 18907; i++) + materials[i] = Material.CrimsonFenceGate; + materials[18609] = Material.CrimsonFungus; + for (int i = 5282; i <= 5345; i++) + materials[i] = Material.CrimsonHangingSign; + for (int i = 18602; i <= 18604; i++) + materials[i] = Material.CrimsonHyphae; + materials[18608] = Material.CrimsonNylium; + materials[18666] = Material.CrimsonPlanks; + for (int i = 18680; i <= 18681; i++) + materials[i] = Material.CrimsonPressurePlate; + materials[18665] = Material.CrimsonRoots; + for (int i = 19276; i <= 19307; i++) + materials[i] = Material.CrimsonSign; + for (int i = 18668; i <= 18673; i++) + materials[i] = Material.CrimsonSlab; + for (int i = 18940; i <= 19019; i++) + materials[i] = Material.CrimsonStairs; + for (int i = 18596; i <= 18598; i++) + materials[i] = Material.CrimsonStem; + for (int i = 18748; i <= 18811; i++) + materials[i] = Material.CrimsonTrapdoor; + for (int i = 5602; i <= 5609; i++) + materials[i] = Material.CrimsonWallHangingSign; + for (int i = 19340; i <= 19347; i++) + materials[i] = Material.CrimsonWallSign; + materials[19449] = Material.CryingObsidian; + materials[22947] = Material.CutCopper; + for (int i = 23294; i <= 23299; i++) + materials[i] = Material.CutCopperSlab; + for (int i = 23196; i <= 23275; i++) + materials[i] = Material.CutCopperStairs; + materials[11081] = Material.CutRedSandstone; + for (int i = 11294; i <= 11299; i++) + materials[i] = Material.CutRedSandstoneSlab; + materials[537] = Material.CutSandstone; + for (int i = 11240; i <= 11245; i++) + materials[i] = Material.CutSandstoneSlab; + for (int i = 10903; i <= 10918; i++) + materials[i] = Material.CyanBanner; + for (int i = 1832; i <= 1847; i++) + materials[i] = Material.CyanBed; + for (int i = 20885; i <= 20900; i++) + materials[i] = Material.CyanCandle; + for (int i = 21017; i <= 21018; i++) + materials[i] = Material.CyanCandleCake; + materials[10737] = Material.CyanCarpet; + materials[12737] = Material.CyanConcrete; + materials[12753] = Material.CyanConcretePowder; + for (int i = 12700; i <= 12703; i++) + materials[i] = Material.CyanGlazedTerracotta; + for (int i = 12622; i <= 12627; i++) + materials[i] = Material.CyanShulkerBox; + materials[5954] = Material.CyanStainedGlass; + for (int i = 9660; i <= 9691; i++) + materials[i] = Material.CyanStainedGlassPane; + materials[9365] = Material.CyanTerracotta; + for (int i = 11051; i <= 11054; i++) + materials[i] = Material.CyanWallBanner; + materials[2056] = Material.CyanWool; + for (int i = 9115; i <= 9118; i++) + materials[i] = Material.DamagedAnvil; + materials[2075] = Material.Dandelion; + for (int i = 8755; i <= 8778; i++) + materials[i] = Material.DarkOakButton; + for (int i = 12142; i <= 12205; i++) + materials[i] = Material.DarkOakDoor; + for (int i = 11726; i <= 11757; i++) + materials[i] = Material.DarkOakFence; + for (int i = 11470; i <= 11501; i++) + materials[i] = Material.DarkOakFenceGate; + for (int i = 5218; i <= 5281; i++) + materials[i] = Material.DarkOakHangingSign; + for (int i = 405; i <= 432; i++) + materials[i] = Material.DarkOakLeaves; + for (int i = 148; i <= 150; i++) + materials[i] = Material.DarkOakLog; + materials[21] = Material.DarkOakPlanks; + for (int i = 5728; i <= 5729; i++) + materials[i] = Material.DarkOakPressurePlate; + for (int i = 37; i <= 38; i++) + materials[i] = Material.DarkOakSapling; + for (int i = 4494; i <= 4525; i++) + materials[i] = Material.DarkOakSign; + for (int i = 11198; i <= 11203; i++) + materials[i] = Material.DarkOakSlab; + for (int i = 10044; i <= 10123; i++) + materials[i] = Material.DarkOakStairs; + for (int i = 6345; i <= 6408; i++) + materials[i] = Material.DarkOakTrapdoor; + for (int i = 5586; i <= 5593; i++) + materials[i] = Material.DarkOakWallHangingSign; + for (int i = 4810; i <= 4817; i++) + materials[i] = Material.DarkOakWallSign; + for (int i = 207; i <= 209; i++) + materials[i] = Material.DarkOakWood; + materials[10465] = Material.DarkPrismarine; + for (int i = 10718; i <= 10723; i++) + materials[i] = Material.DarkPrismarineSlab; + for (int i = 10626; i <= 10705; i++) + materials[i] = Material.DarkPrismarineStairs; + for (int i = 9191; i <= 9222; i++) + materials[i] = Material.DaylightDetector; + for (int i = 12815; i <= 12816; i++) + materials[i] = Material.DeadBrainCoral; + materials[12804] = Material.DeadBrainCoralBlock; + for (int i = 12835; i <= 12836; i++) + materials[i] = Material.DeadBrainCoralFan; + for (int i = 12861; i <= 12868; i++) + materials[i] = Material.DeadBrainCoralWallFan; + for (int i = 12817; i <= 12818; i++) + materials[i] = Material.DeadBubbleCoral; + materials[12805] = Material.DeadBubbleCoralBlock; + for (int i = 12837; i <= 12838; i++) + materials[i] = Material.DeadBubbleCoralFan; + for (int i = 12869; i <= 12876; i++) + materials[i] = Material.DeadBubbleCoralWallFan; + materials[2007] = Material.DeadBush; + for (int i = 12819; i <= 12820; i++) + materials[i] = Material.DeadFireCoral; + materials[12806] = Material.DeadFireCoralBlock; + for (int i = 12839; i <= 12840; i++) + materials[i] = Material.DeadFireCoralFan; + for (int i = 12877; i <= 12884; i++) + materials[i] = Material.DeadFireCoralWallFan; + for (int i = 12821; i <= 12822; i++) + materials[i] = Material.DeadHornCoral; + materials[12807] = Material.DeadHornCoralBlock; + for (int i = 12841; i <= 12842; i++) + materials[i] = Material.DeadHornCoralFan; + for (int i = 12885; i <= 12892; i++) + materials[i] = Material.DeadHornCoralWallFan; + for (int i = 12813; i <= 12814; i++) + materials[i] = Material.DeadTubeCoral; + materials[12803] = Material.DeadTubeCoralBlock; + for (int i = 12833; i <= 12834; i++) + materials[i] = Material.DeadTubeCoralFan; + for (int i = 12853; i <= 12860; i++) + materials[i] = Material.DeadTubeCoralWallFan; + for (int i = 26574; i <= 26589; i++) + materials[i] = Material.DecoratedPot; + for (int i = 24904; i <= 24906; i++) + materials[i] = Material.Deepslate; + for (int i = 26221; i <= 26226; i++) + materials[i] = Material.DeepslateBrickSlab; + for (int i = 26141; i <= 26220; i++) + materials[i] = Material.DeepslateBrickStairs; + for (int i = 26227; i <= 26550; i++) + materials[i] = Material.DeepslateBrickWall; + materials[26140] = Material.DeepslateBricks; + materials[128] = Material.DeepslateCoalOre; + materials[22943] = Material.DeepslateCopperOre; + materials[4275] = Material.DeepslateDiamondOre; + materials[7512] = Material.DeepslateEmeraldOre; + materials[124] = Material.DeepslateGoldOre; + materials[126] = Material.DeepslateIronOre; + materials[521] = Material.DeepslateLapisOre; + for (int i = 5736; i <= 5737; i++) + materials[i] = Material.DeepslateRedstoneOre; + for (int i = 25810; i <= 25815; i++) + materials[i] = Material.DeepslateTileSlab; + for (int i = 25730; i <= 25809; i++) + materials[i] = Material.DeepslateTileStairs; + for (int i = 25816; i <= 26139; i++) + materials[i] = Material.DeepslateTileWall; + materials[25729] = Material.DeepslateTiles; + for (int i = 1968; i <= 1991; i++) + materials[i] = Material.DetectorRail; + materials[4276] = Material.DiamondBlock; + materials[4274] = Material.DiamondOre; + materials[4] = Material.Diorite; + for (int i = 14154; i <= 14159; i++) + materials[i] = Material.DioriteSlab; + for (int i = 14002; i <= 14081; i++) + materials[i] = Material.DioriteStairs; + for (int i = 18048; i <= 18371; i++) + materials[i] = Material.DioriteWall; + materials[10] = Material.Dirt; + materials[12513] = Material.DirtPath; + for (int i = 523; i <= 534; i++) + materials[i] = Material.Dispenser; + materials[7416] = Material.DragonEgg; + for (int i = 9027; i <= 9058; i++) + materials[i] = Material.DragonHead; + for (int i = 9059; i <= 9066; i++) + materials[i] = Material.DragonWallHead; + materials[12787] = Material.DriedKelpBlock; + materials[24768] = Material.DripstoneBlock; + for (int i = 9344; i <= 9355; i++) + materials[i] = Material.Dropper; + materials[7665] = Material.EmeraldBlock; + materials[7511] = Material.EmeraldOre; + materials[7389] = Material.EnchantingTable; + materials[12514] = Material.EndGateway; + materials[7406] = Material.EndPortal; + for (int i = 7407; i <= 7414; i++) + materials[i] = Material.EndPortalFrame; + for (int i = 12334; i <= 12339; i++) + materials[i] = Material.EndRod; + materials[7415] = Material.EndStone; + for (int i = 14112; i <= 14117; i++) + materials[i] = Material.EndStoneBrickSlab; + for (int i = 13362; i <= 13441; i++) + materials[i] = Material.EndStoneBrickStairs; + for (int i = 17724; i <= 18047; i++) + materials[i] = Material.EndStoneBrickWall; + materials[12494] = Material.EndStoneBricks; + for (int i = 7513; i <= 7520; i++) + materials[i] = Material.EnderChest; + materials[22950] = Material.ExposedChiseledCopper; + materials[22939] = Material.ExposedCopper; + for (int i = 24696; i <= 24699; i++) + materials[i] = Material.ExposedCopperBulb; + for (int i = 23716; i <= 23779; i++) + materials[i] = Material.ExposedCopperDoor; + for (int i = 24678; i <= 24679; i++) + materials[i] = Material.ExposedCopperGrate; + for (int i = 24228; i <= 24291; i++) + materials[i] = Material.ExposedCopperTrapdoor; + materials[22946] = Material.ExposedCutCopper; + for (int i = 23288; i <= 23293; i++) + materials[i] = Material.ExposedCutCopperSlab; + for (int i = 23116; i <= 23195; i++) + materials[i] = Material.ExposedCutCopperStairs; + for (int i = 4286; i <= 4293; i++) + materials[i] = Material.Farmland; + materials[2006] = Material.Fern; + for (int i = 2360; i <= 2871; i++) + materials[i] = Material.Fire; + for (int i = 12829; i <= 12830; i++) + materials[i] = Material.FireCoral; + materials[12811] = Material.FireCoralBlock; + for (int i = 12849; i <= 12850; i++) + materials[i] = Material.FireCoralFan; + for (int i = 12917; i <= 12924; i++) + materials[i] = Material.FireCoralWallFan; + materials[18437] = Material.FletchingTable; + materials[8567] = Material.FlowerPot; + materials[24825] = Material.FloweringAzalea; + for (int i = 489; i <= 516; i++) + materials[i] = Material.FloweringAzaleaLeaves; + materials[26572] = Material.Frogspawn; + for (int i = 12539; i <= 12542; i++) + materials[i] = Material.FrostedIce; + for (int i = 4294; i <= 4301; i++) + materials[i] = Material.Furnace; + materials[20285] = Material.GildedBlackstone; + materials[519] = Material.Glass; + for (int i = 6779; i <= 6810; i++) + materials[i] = Material.GlassPane; + for (int i = 6869; i <= 6996; i++) + materials[i] = Material.GlowLichen; + materials[5863] = Material.Glowstone; + materials[2091] = Material.GoldBlock; + materials[123] = Material.GoldOre; + materials[2] = Material.Granite; + for (int i = 14130; i <= 14135; i++) + materials[i] = Material.GraniteSlab; + for (int i = 13682; i <= 13761; i++) + materials[i] = Material.GraniteStairs; + for (int i = 15456; i <= 15779; i++) + materials[i] = Material.GraniteWall; + for (int i = 8; i <= 9; i++) + materials[i] = Material.GrassBlock; + materials[118] = Material.Gravel; + for (int i = 10871; i <= 10886; i++) + materials[i] = Material.GrayBanner; + for (int i = 1800; i <= 1815; i++) + materials[i] = Material.GrayBed; + for (int i = 20853; i <= 20868; i++) + materials[i] = Material.GrayCandle; + for (int i = 21013; i <= 21014; i++) + materials[i] = Material.GrayCandleCake; + materials[10735] = Material.GrayCarpet; + materials[12735] = Material.GrayConcrete; + materials[12751] = Material.GrayConcretePowder; + for (int i = 12692; i <= 12695; i++) + materials[i] = Material.GrayGlazedTerracotta; + for (int i = 12610; i <= 12615; i++) + materials[i] = Material.GrayShulkerBox; + materials[5952] = Material.GrayStainedGlass; + for (int i = 9596; i <= 9627; i++) + materials[i] = Material.GrayStainedGlassPane; + materials[9363] = Material.GrayTerracotta; + for (int i = 11043; i <= 11046; i++) + materials[i] = Material.GrayWallBanner; + materials[2054] = Material.GrayWool; + for (int i = 10967; i <= 10982; i++) + materials[i] = Material.GreenBanner; + for (int i = 1896; i <= 1911; i++) + materials[i] = Material.GreenBed; + for (int i = 20949; i <= 20964; i++) + materials[i] = Material.GreenCandle; + for (int i = 21025; i <= 21026; i++) + materials[i] = Material.GreenCandleCake; + materials[10741] = Material.GreenCarpet; + materials[12741] = Material.GreenConcrete; + materials[12757] = Material.GreenConcretePowder; + for (int i = 12716; i <= 12719; i++) + materials[i] = Material.GreenGlazedTerracotta; + for (int i = 12646; i <= 12651; i++) + materials[i] = Material.GreenShulkerBox; + materials[5958] = Material.GreenStainedGlass; + for (int i = 9788; i <= 9819; i++) + materials[i] = Material.GreenStainedGlassPane; + materials[9369] = Material.GreenTerracotta; + for (int i = 11067; i <= 11070; i++) + materials[i] = Material.GreenWallBanner; + materials[2060] = Material.GreenWool; + for (int i = 18438; i <= 18449; i++) + materials[i] = Material.Grindstone; + for (int i = 24900; i <= 24901; i++) + materials[i] = Material.HangingRoots; + for (int i = 10725; i <= 10727; i++) + materials[i] = Material.HayBlock; + for (int i = 9159; i <= 9174; i++) + materials[i] = Material.HeavyWeightedPressurePlate; + materials[19445] = Material.HoneyBlock; + materials[19446] = Material.HoneycombBlock; + for (int i = 9225; i <= 9234; i++) + materials[i] = Material.Hopper; + for (int i = 12831; i <= 12832; i++) + materials[i] = Material.HornCoral; + materials[12812] = Material.HornCoralBlock; + for (int i = 12851; i <= 12852; i++) + materials[i] = Material.HornCoralFan; + for (int i = 12925; i <= 12932; i++) + materials[i] = Material.HornCoralWallFan; + materials[5780] = Material.Ice; + materials[6548] = Material.InfestedChiseledStoneBricks; + materials[6544] = Material.InfestedCobblestone; + materials[6547] = Material.InfestedCrackedStoneBricks; + for (int i = 26554; i <= 26556; i++) + materials[i] = Material.InfestedDeepslate; + materials[6546] = Material.InfestedMossyStoneBricks; + materials[6543] = Material.InfestedStone; + materials[6545] = Material.InfestedStoneBricks; + for (int i = 6741; i <= 6772; i++) + materials[i] = Material.IronBars; + materials[2092] = Material.IronBlock; + for (int i = 5652; i <= 5715; i++) + materials[i] = Material.IronDoor; + materials[125] = Material.IronOre; + for (int i = 10399; i <= 10462; i++) + materials[i] = Material.IronTrapdoor; + for (int i = 5870; i <= 5873; i++) + materials[i] = Material.JackOLantern; + for (int i = 19360; i <= 19371; i++) + materials[i] = Material.Jigsaw; + for (int i = 5815; i <= 5816; i++) + materials[i] = Material.Jukebox; + for (int i = 8683; i <= 8706; i++) + materials[i] = Material.JungleButton; + for (int i = 11950; i <= 12013; i++) + materials[i] = Material.JungleDoor; + for (int i = 11630; i <= 11661; i++) + materials[i] = Material.JungleFence; + for (int i = 11374; i <= 11405; i++) + materials[i] = Material.JungleFenceGate; + for (int i = 5154; i <= 5217; i++) + materials[i] = Material.JungleHangingSign; + for (int i = 321; i <= 348; i++) + materials[i] = Material.JungleLeaves; + for (int i = 139; i <= 141; i++) + materials[i] = Material.JungleLog; + materials[18] = Material.JunglePlanks; + for (int i = 5722; i <= 5723; i++) + materials[i] = Material.JunglePressurePlate; + for (int i = 31; i <= 32; i++) + materials[i] = Material.JungleSapling; + for (int i = 4462; i <= 4493; i++) + materials[i] = Material.JungleSign; + for (int i = 11180; i <= 11185; i++) + materials[i] = Material.JungleSlab; + for (int i = 7826; i <= 7905; i++) + materials[i] = Material.JungleStairs; + for (int i = 6153; i <= 6216; i++) + materials[i] = Material.JungleTrapdoor; + for (int i = 5578; i <= 5585; i++) + materials[i] = Material.JungleWallHangingSign; + for (int i = 4802; i <= 4809; i++) + materials[i] = Material.JungleWallSign; + for (int i = 198; i <= 200; i++) + materials[i] = Material.JungleWood; + for (int i = 12760; i <= 12785; i++) + materials[i] = Material.Kelp; + materials[12786] = Material.KelpPlant; + for (int i = 4654; i <= 4661; i++) + materials[i] = Material.Ladder; + for (int i = 18503; i <= 18506; i++) + materials[i] = Material.Lantern; + materials[522] = Material.LapisBlock; + materials[520] = Material.LapisOre; + for (int i = 21045; i <= 21056; i++) + materials[i] = Material.LargeAmethystBud; + for (int i = 10757; i <= 10758; i++) + materials[i] = Material.LargeFern; + for (int i = 96; i <= 111; i++) + materials[i] = Material.Lava; + materials[7402] = Material.LavaCauldron; + for (int i = 18450; i <= 18465; i++) + materials[i] = Material.Lectern; + for (int i = 5626; i <= 5649; i++) + materials[i] = Material.Lever; + for (int i = 10367; i <= 10398; i++) + materials[i] = Material.Light; + for (int i = 10807; i <= 10822; i++) + materials[i] = Material.LightBlueBanner; + for (int i = 1736; i <= 1751; i++) + materials[i] = Material.LightBlueBed; + for (int i = 20789; i <= 20804; i++) + materials[i] = Material.LightBlueCandle; + for (int i = 21005; i <= 21006; i++) + materials[i] = Material.LightBlueCandleCake; + materials[10731] = Material.LightBlueCarpet; + materials[12731] = Material.LightBlueConcrete; + materials[12747] = Material.LightBlueConcretePowder; + for (int i = 12676; i <= 12679; i++) + materials[i] = Material.LightBlueGlazedTerracotta; + for (int i = 12586; i <= 12591; i++) + materials[i] = Material.LightBlueShulkerBox; + materials[5948] = Material.LightBlueStainedGlass; + for (int i = 9468; i <= 9499; i++) + materials[i] = Material.LightBlueStainedGlassPane; + materials[9359] = Material.LightBlueTerracotta; + for (int i = 11027; i <= 11030; i++) + materials[i] = Material.LightBlueWallBanner; + materials[2050] = Material.LightBlueWool; + for (int i = 10887; i <= 10902; i++) + materials[i] = Material.LightGrayBanner; + for (int i = 1816; i <= 1831; i++) + materials[i] = Material.LightGrayBed; + for (int i = 20869; i <= 20884; i++) + materials[i] = Material.LightGrayCandle; + for (int i = 21015; i <= 21016; i++) + materials[i] = Material.LightGrayCandleCake; + materials[10736] = Material.LightGrayCarpet; + materials[12736] = Material.LightGrayConcrete; + materials[12752] = Material.LightGrayConcretePowder; + for (int i = 12696; i <= 12699; i++) + materials[i] = Material.LightGrayGlazedTerracotta; + for (int i = 12616; i <= 12621; i++) + materials[i] = Material.LightGrayShulkerBox; + materials[5953] = Material.LightGrayStainedGlass; + for (int i = 9628; i <= 9659; i++) + materials[i] = Material.LightGrayStainedGlassPane; + materials[9364] = Material.LightGrayTerracotta; + for (int i = 11047; i <= 11050; i++) + materials[i] = Material.LightGrayWallBanner; + materials[2055] = Material.LightGrayWool; + for (int i = 9143; i <= 9158; i++) + materials[i] = Material.LightWeightedPressurePlate; + for (int i = 24724; i <= 24747; i++) + materials[i] = Material.LightningRod; + for (int i = 10749; i <= 10750; i++) + materials[i] = Material.Lilac; + materials[2088] = Material.LilyOfTheValley; + materials[7271] = Material.LilyPad; + for (int i = 10839; i <= 10854; i++) + materials[i] = Material.LimeBanner; + for (int i = 1768; i <= 1783; i++) + materials[i] = Material.LimeBed; + for (int i = 20821; i <= 20836; i++) + materials[i] = Material.LimeCandle; + for (int i = 21009; i <= 21010; i++) + materials[i] = Material.LimeCandleCake; + materials[10733] = Material.LimeCarpet; + materials[12733] = Material.LimeConcrete; + materials[12749] = Material.LimeConcretePowder; + for (int i = 12684; i <= 12687; i++) + materials[i] = Material.LimeGlazedTerracotta; + for (int i = 12598; i <= 12603; i++) + materials[i] = Material.LimeShulkerBox; + materials[5950] = Material.LimeStainedGlass; + for (int i = 9532; i <= 9563; i++) + materials[i] = Material.LimeStainedGlassPane; + materials[9361] = Material.LimeTerracotta; + for (int i = 11035; i <= 11038; i++) + materials[i] = Material.LimeWallBanner; + materials[2052] = Material.LimeWool; + materials[19459] = Material.Lodestone; + for (int i = 18404; i <= 18407; i++) + materials[i] = Material.Loom; + for (int i = 10791; i <= 10806; i++) + materials[i] = Material.MagentaBanner; + for (int i = 1720; i <= 1735; i++) + materials[i] = Material.MagentaBed; + for (int i = 20773; i <= 20788; i++) + materials[i] = Material.MagentaCandle; + for (int i = 21003; i <= 21004; i++) + materials[i] = Material.MagentaCandleCake; + materials[10730] = Material.MagentaCarpet; + materials[12730] = Material.MagentaConcrete; + materials[12746] = Material.MagentaConcretePowder; + for (int i = 12672; i <= 12675; i++) + materials[i] = Material.MagentaGlazedTerracotta; + for (int i = 12580; i <= 12585; i++) + materials[i] = Material.MagentaShulkerBox; + materials[5947] = Material.MagentaStainedGlass; + for (int i = 9436; i <= 9467; i++) + materials[i] = Material.MagentaStainedGlassPane; + materials[9358] = Material.MagentaTerracotta; + for (int i = 11023; i <= 11026; i++) + materials[i] = Material.MagentaWallBanner; + materials[2049] = Material.MagentaWool; + materials[12543] = Material.MagmaBlock; + for (int i = 8779; i <= 8802; i++) + materials[i] = Material.MangroveButton; + for (int i = 12206; i <= 12269; i++) + materials[i] = Material.MangroveDoor; + for (int i = 11758; i <= 11789; i++) + materials[i] = Material.MangroveFence; + for (int i = 11502; i <= 11533; i++) + materials[i] = Material.MangroveFenceGate; + for (int i = 5410; i <= 5473; i++) + materials[i] = Material.MangroveHangingSign; + for (int i = 433; i <= 460; i++) + materials[i] = Material.MangroveLeaves; + for (int i = 151; i <= 153; i++) + materials[i] = Material.MangroveLog; + materials[22] = Material.MangrovePlanks; + for (int i = 5730; i <= 5731; i++) + materials[i] = Material.MangrovePressurePlate; + for (int i = 39; i <= 78; i++) + materials[i] = Material.MangrovePropagule; + for (int i = 154; i <= 155; i++) + materials[i] = Material.MangroveRoots; + for (int i = 4526; i <= 4557; i++) + materials[i] = Material.MangroveSign; + for (int i = 11204; i <= 11209; i++) + materials[i] = Material.MangroveSlab; + for (int i = 10124; i <= 10203; i++) + materials[i] = Material.MangroveStairs; + for (int i = 6409; i <= 6472; i++) + materials[i] = Material.MangroveTrapdoor; + for (int i = 5594; i <= 5601; i++) + materials[i] = Material.MangroveWallHangingSign; + for (int i = 4818; i <= 4825; i++) + materials[i] = Material.MangroveWallSign; + for (int i = 210; i <= 212; i++) + materials[i] = Material.MangroveWood; + for (int i = 21057; i <= 21068; i++) + materials[i] = Material.MediumAmethystBud; + materials[6812] = Material.Melon; + for (int i = 6829; i <= 6836; i++) + materials[i] = Material.MelonStem; + materials[24843] = Material.MossBlock; + materials[24826] = Material.MossCarpet; + materials[2353] = Material.MossyCobblestone; + for (int i = 14106; i <= 14111; i++) + materials[i] = Material.MossyCobblestoneSlab; + for (int i = 13282; i <= 13361; i++) + materials[i] = Material.MossyCobblestoneStairs; + for (int i = 8243; i <= 8566; i++) + materials[i] = Material.MossyCobblestoneWall; + for (int i = 14094; i <= 14099; i++) + materials[i] = Material.MossyStoneBrickSlab; + for (int i = 13122; i <= 13201; i++) + materials[i] = Material.MossyStoneBrickStairs; + for (int i = 15132; i <= 15455; i++) + materials[i] = Material.MossyStoneBrickWall; + materials[6538] = Material.MossyStoneBricks; + for (int i = 2063; i <= 2074; i++) + materials[i] = Material.MovingPiston; + materials[24903] = Material.Mud; + for (int i = 11270; i <= 11275; i++) + materials[i] = Material.MudBrickSlab; + for (int i = 7189; i <= 7268; i++) + materials[i] = Material.MudBrickStairs; + for (int i = 16104; i <= 16427; i++) + materials[i] = Material.MudBrickWall; + materials[6542] = Material.MudBricks; + for (int i = 156; i <= 158; i++) + materials[i] = Material.MuddyMangroveRoots; + for (int i = 6677; i <= 6740; i++) + materials[i] = Material.MushroomStem; + for (int i = 7269; i <= 7270; i++) + materials[i] = Material.Mycelium; + for (int i = 7273; i <= 7304; i++) + materials[i] = Material.NetherBrickFence; + for (int i = 11276; i <= 11281; i++) + materials[i] = Material.NetherBrickSlab; + for (int i = 7305; i <= 7384; i++) + materials[i] = Material.NetherBrickStairs; + for (int i = 16428; i <= 16751; i++) + materials[i] = Material.NetherBrickWall; + materials[7272] = Material.NetherBricks; + materials[129] = Material.NetherGoldOre; + for (int i = 5864; i <= 5865; i++) + materials[i] = Material.NetherPortal; + materials[9224] = Material.NetherQuartzOre; + materials[18595] = Material.NetherSprouts; + for (int i = 7385; i <= 7388; i++) + materials[i] = Material.NetherWart; + materials[12544] = Material.NetherWartBlock; + materials[19447] = Material.NetheriteBlock; + materials[5849] = Material.Netherrack; + for (int i = 538; i <= 1687; i++) + materials[i] = Material.NoteBlock; + for (int i = 8611; i <= 8634; i++) + materials[i] = Material.OakButton; + for (int i = 4590; i <= 4653; i++) + materials[i] = Material.OakDoor; + for (int i = 5817; i <= 5848; i++) + materials[i] = Material.OakFence; + for (int i = 6997; i <= 7028; i++) + materials[i] = Material.OakFenceGate; + for (int i = 4834; i <= 4897; i++) + materials[i] = Material.OakHangingSign; + for (int i = 237; i <= 264; i++) + materials[i] = Material.OakLeaves; + for (int i = 130; i <= 132; i++) + materials[i] = Material.OakLog; + materials[15] = Material.OakPlanks; + for (int i = 5716; i <= 5717; i++) + materials[i] = Material.OakPressurePlate; + for (int i = 25; i <= 26; i++) + materials[i] = Material.OakSapling; + for (int i = 4302; i <= 4333; i++) + materials[i] = Material.OakSign; + for (int i = 11162; i <= 11167; i++) + materials[i] = Material.OakSlab; + for (int i = 2874; i <= 2953; i++) + materials[i] = Material.OakStairs; + for (int i = 5961; i <= 6024; i++) + materials[i] = Material.OakTrapdoor; + for (int i = 5538; i <= 5545; i++) + materials[i] = Material.OakWallHangingSign; + for (int i = 4762; i <= 4769; i++) + materials[i] = Material.OakWallSign; + for (int i = 189; i <= 191; i++) + materials[i] = Material.OakWood; + for (int i = 12550; i <= 12561; i++) + materials[i] = Material.Observer; + materials[2354] = Material.Obsidian; + for (int i = 26563; i <= 26565; i++) + materials[i] = Material.OchreFroglight; + for (int i = 10775; i <= 10790; i++) + materials[i] = Material.OrangeBanner; + for (int i = 1704; i <= 1719; i++) + materials[i] = Material.OrangeBed; + for (int i = 20757; i <= 20772; i++) + materials[i] = Material.OrangeCandle; + for (int i = 21001; i <= 21002; i++) + materials[i] = Material.OrangeCandleCake; + materials[10729] = Material.OrangeCarpet; + materials[12729] = Material.OrangeConcrete; + materials[12745] = Material.OrangeConcretePowder; + for (int i = 12668; i <= 12671; i++) + materials[i] = Material.OrangeGlazedTerracotta; + for (int i = 12574; i <= 12579; i++) + materials[i] = Material.OrangeShulkerBox; + materials[5946] = Material.OrangeStainedGlass; + for (int i = 9404; i <= 9435; i++) + materials[i] = Material.OrangeStainedGlassPane; + materials[9357] = Material.OrangeTerracotta; + materials[2082] = Material.OrangeTulip; + for (int i = 11019; i <= 11022; i++) + materials[i] = Material.OrangeWallBanner; + materials[2048] = Material.OrangeWool; + materials[2085] = Material.OxeyeDaisy; + materials[22948] = Material.OxidizedChiseledCopper; + materials[22941] = Material.OxidizedCopper; + for (int i = 24704; i <= 24707; i++) + materials[i] = Material.OxidizedCopperBulb; + for (int i = 23780; i <= 23843; i++) + materials[i] = Material.OxidizedCopperDoor; + for (int i = 24682; i <= 24683; i++) + materials[i] = Material.OxidizedCopperGrate; + for (int i = 24292; i <= 24355; i++) + materials[i] = Material.OxidizedCopperTrapdoor; + materials[22944] = Material.OxidizedCutCopper; + for (int i = 23276; i <= 23281; i++) + materials[i] = Material.OxidizedCutCopperSlab; + for (int i = 22956; i <= 23035; i++) + materials[i] = Material.OxidizedCutCopperStairs; + materials[10746] = Material.PackedIce; + materials[6541] = Material.PackedMud; + for (int i = 26569; i <= 26571; i++) + materials[i] = Material.PearlescentFroglight; + for (int i = 10753; i <= 10754; i++) + materials[i] = Material.Peony; + for (int i = 11246; i <= 11251; i++) + materials[i] = Material.PetrifiedOakSlab; + for (int i = 9067; i <= 9098; i++) + materials[i] = Material.PiglinHead; + for (int i = 9099; i <= 9106; i++) + materials[i] = Material.PiglinWallHead; + for (int i = 10855; i <= 10870; i++) + materials[i] = Material.PinkBanner; + for (int i = 1784; i <= 1799; i++) + materials[i] = Material.PinkBed; + for (int i = 20837; i <= 20852; i++) + materials[i] = Material.PinkCandle; + for (int i = 21011; i <= 21012; i++) + materials[i] = Material.PinkCandleCake; + materials[10734] = Material.PinkCarpet; + materials[12734] = Material.PinkConcrete; + materials[12750] = Material.PinkConcretePowder; + for (int i = 12688; i <= 12691; i++) + materials[i] = Material.PinkGlazedTerracotta; + for (int i = 24827; i <= 24842; i++) + materials[i] = Material.PinkPetals; + for (int i = 12604; i <= 12609; i++) + materials[i] = Material.PinkShulkerBox; + materials[5951] = Material.PinkStainedGlass; + for (int i = 9564; i <= 9595; i++) + materials[i] = Material.PinkStainedGlassPane; + materials[9362] = Material.PinkTerracotta; + materials[2084] = Material.PinkTulip; + for (int i = 11039; i <= 11042; i++) + materials[i] = Material.PinkWallBanner; + materials[2053] = Material.PinkWool; + for (int i = 2011; i <= 2022; i++) + materials[i] = Material.Piston; + for (int i = 2023; i <= 2046; i++) + materials[i] = Material.PistonHead; + for (int i = 12497; i <= 12506; i++) + materials[i] = Material.PitcherCrop; + for (int i = 12507; i <= 12508; i++) + materials[i] = Material.PitcherPlant; + for (int i = 8947; i <= 8978; i++) + materials[i] = Material.PlayerHead; + for (int i = 8979; i <= 8986; i++) + materials[i] = Material.PlayerWallHead; + for (int i = 12; i <= 13; i++) + materials[i] = Material.Podzol; + for (int i = 24748; i <= 24767; i++) + materials[i] = Material.PointedDripstone; + materials[7] = Material.PolishedAndesite; + for (int i = 14148; i <= 14153; i++) + materials[i] = Material.PolishedAndesiteSlab; + for (int i = 13922; i <= 14001; i++) + materials[i] = Material.PolishedAndesiteStairs; + for (int i = 5855; i <= 5857; i++) + materials[i] = Material.PolishedBasalt; + materials[19871] = Material.PolishedBlackstone; + for (int i = 19875; i <= 19880; i++) + materials[i] = Material.PolishedBlackstoneBrickSlab; + for (int i = 19881; i <= 19960; i++) + materials[i] = Material.PolishedBlackstoneBrickStairs; + for (int i = 19961; i <= 20284; i++) + materials[i] = Material.PolishedBlackstoneBrickWall; + materials[19872] = Material.PolishedBlackstoneBricks; + for (int i = 20374; i <= 20397; i++) + materials[i] = Material.PolishedBlackstoneButton; + for (int i = 20372; i <= 20373; i++) + materials[i] = Material.PolishedBlackstonePressurePlate; + for (int i = 20366; i <= 20371; i++) + materials[i] = Material.PolishedBlackstoneSlab; + for (int i = 20286; i <= 20365; i++) + materials[i] = Material.PolishedBlackstoneStairs; + for (int i = 20398; i <= 20721; i++) + materials[i] = Material.PolishedBlackstoneWall; + materials[25318] = Material.PolishedDeepslate; + for (int i = 25399; i <= 25404; i++) + materials[i] = Material.PolishedDeepslateSlab; + for (int i = 25319; i <= 25398; i++) + materials[i] = Material.PolishedDeepslateStairs; + for (int i = 25405; i <= 25728; i++) + materials[i] = Material.PolishedDeepslateWall; + materials[5] = Material.PolishedDiorite; + for (int i = 14100; i <= 14105; i++) + materials[i] = Material.PolishedDioriteSlab; + for (int i = 13202; i <= 13281; i++) + materials[i] = Material.PolishedDioriteStairs; + materials[3] = Material.PolishedGranite; + for (int i = 14082; i <= 14087; i++) + materials[i] = Material.PolishedGraniteSlab; + for (int i = 12962; i <= 13041; i++) + materials[i] = Material.PolishedGraniteStairs; + materials[21492] = Material.PolishedTuff; + for (int i = 21493; i <= 21498; i++) + materials[i] = Material.PolishedTuffSlab; + for (int i = 21499; i <= 21578; i++) + materials[i] = Material.PolishedTuffStairs; + for (int i = 21579; i <= 21902; i++) + materials[i] = Material.PolishedTuffWall; + materials[2077] = Material.Poppy; + for (int i = 8603; i <= 8610; i++) + materials[i] = Material.Potatoes; + materials[8573] = Material.PottedAcaciaSapling; + materials[8581] = Material.PottedAllium; + materials[26561] = Material.PottedAzaleaBush; + materials[8582] = Material.PottedAzureBluet; + materials[12957] = Material.PottedBamboo; + materials[8571] = Material.PottedBirchSapling; + materials[8580] = Material.PottedBlueOrchid; + materials[8592] = Material.PottedBrownMushroom; + materials[8594] = Material.PottedCactus; + materials[8574] = Material.PottedCherrySapling; + materials[8588] = Material.PottedCornflower; + materials[19455] = Material.PottedCrimsonFungus; + materials[19457] = Material.PottedCrimsonRoots; + materials[8578] = Material.PottedDandelion; + materials[8575] = Material.PottedDarkOakSapling; + materials[8593] = Material.PottedDeadBush; + materials[8577] = Material.PottedFern; + materials[26562] = Material.PottedFloweringAzaleaBush; + materials[8572] = Material.PottedJungleSapling; + materials[8589] = Material.PottedLilyOfTheValley; + materials[8576] = Material.PottedMangrovePropagule; + materials[8569] = Material.PottedOakSapling; + materials[8584] = Material.PottedOrangeTulip; + materials[8587] = Material.PottedOxeyeDaisy; + materials[8586] = Material.PottedPinkTulip; + materials[8579] = Material.PottedPoppy; + materials[8591] = Material.PottedRedMushroom; + materials[8583] = Material.PottedRedTulip; + materials[8570] = Material.PottedSpruceSapling; + materials[8568] = Material.PottedTorchflower; + materials[19456] = Material.PottedWarpedFungus; + materials[19458] = Material.PottedWarpedRoots; + materials[8585] = Material.PottedWhiteTulip; + materials[8590] = Material.PottedWitherRose; + materials[22318] = Material.PowderSnow; + for (int i = 7403; i <= 7405; i++) + materials[i] = Material.PowderSnowCauldron; + for (int i = 1944; i <= 1967; i++) + materials[i] = Material.PoweredRail; + materials[10463] = Material.Prismarine; + for (int i = 10712; i <= 10717; i++) + materials[i] = Material.PrismarineBrickSlab; + for (int i = 10546; i <= 10625; i++) + materials[i] = Material.PrismarineBrickStairs; + materials[10464] = Material.PrismarineBricks; + for (int i = 10706; i <= 10711; i++) + materials[i] = Material.PrismarineSlab; + for (int i = 10466; i <= 10545; i++) + materials[i] = Material.PrismarineStairs; + for (int i = 14484; i <= 14807; i++) + materials[i] = Material.PrismarineWall; + materials[6811] = Material.Pumpkin; + for (int i = 6821; i <= 6828; i++) + materials[i] = Material.PumpkinStem; + for (int i = 10919; i <= 10934; i++) + materials[i] = Material.PurpleBanner; + for (int i = 1848; i <= 1863; i++) + materials[i] = Material.PurpleBed; + for (int i = 20901; i <= 20916; i++) + materials[i] = Material.PurpleCandle; + for (int i = 21019; i <= 21020; i++) + materials[i] = Material.PurpleCandleCake; + materials[10738] = Material.PurpleCarpet; + materials[12738] = Material.PurpleConcrete; + materials[12754] = Material.PurpleConcretePowder; + for (int i = 12704; i <= 12707; i++) + materials[i] = Material.PurpleGlazedTerracotta; + for (int i = 12628; i <= 12633; i++) + materials[i] = Material.PurpleShulkerBox; + materials[5955] = Material.PurpleStainedGlass; + for (int i = 9692; i <= 9723; i++) + materials[i] = Material.PurpleStainedGlassPane; + materials[9366] = Material.PurpleTerracotta; + for (int i = 11055; i <= 11058; i++) + materials[i] = Material.PurpleWallBanner; + materials[2057] = Material.PurpleWool; + materials[12410] = Material.PurpurBlock; + for (int i = 12411; i <= 12413; i++) + materials[i] = Material.PurpurPillar; + for (int i = 11300; i <= 11305; i++) + materials[i] = Material.PurpurSlab; + for (int i = 12414; i <= 12493; i++) + materials[i] = Material.PurpurStairs; + materials[9235] = Material.QuartzBlock; + materials[20724] = Material.QuartzBricks; + for (int i = 9237; i <= 9239; i++) + materials[i] = Material.QuartzPillar; + for (int i = 11282; i <= 11287; i++) + materials[i] = Material.QuartzSlab; + for (int i = 9240; i <= 9319; i++) + materials[i] = Material.QuartzStairs; + for (int i = 4662; i <= 4681; i++) + materials[i] = Material.Rail; + materials[26559] = Material.RawCopperBlock; + materials[26560] = Material.RawGoldBlock; + materials[26558] = Material.RawIronBlock; + for (int i = 10983; i <= 10998; i++) + materials[i] = Material.RedBanner; + for (int i = 1912; i <= 1927; i++) + materials[i] = Material.RedBed; + for (int i = 20965; i <= 20980; i++) + materials[i] = Material.RedCandle; + for (int i = 21027; i <= 21028; i++) + materials[i] = Material.RedCandleCake; + materials[10742] = Material.RedCarpet; + materials[12742] = Material.RedConcrete; + materials[12758] = Material.RedConcretePowder; + for (int i = 12720; i <= 12723; i++) + materials[i] = Material.RedGlazedTerracotta; + materials[2090] = Material.RedMushroom; + for (int i = 6613; i <= 6676; i++) + materials[i] = Material.RedMushroomBlock; + for (int i = 14142; i <= 14147; i++) + materials[i] = Material.RedNetherBrickSlab; + for (int i = 13842; i <= 13921; i++) + materials[i] = Material.RedNetherBrickStairs; + for (int i = 17076; i <= 17399; i++) + materials[i] = Material.RedNetherBrickWall; + materials[12545] = Material.RedNetherBricks; + materials[117] = Material.RedSand; + materials[11079] = Material.RedSandstone; + for (int i = 11288; i <= 11293; i++) + materials[i] = Material.RedSandstoneSlab; + for (int i = 11082; i <= 11161; i++) + materials[i] = Material.RedSandstoneStairs; + for (int i = 14808; i <= 15131; i++) + materials[i] = Material.RedSandstoneWall; + for (int i = 12652; i <= 12657; i++) + materials[i] = Material.RedShulkerBox; + materials[5959] = Material.RedStainedGlass; + for (int i = 9820; i <= 9851; i++) + materials[i] = Material.RedStainedGlassPane; + materials[9370] = Material.RedTerracotta; + materials[2081] = Material.RedTulip; + for (int i = 11071; i <= 11074; i++) + materials[i] = Material.RedWallBanner; + materials[2061] = Material.RedWool; + materials[9223] = Material.RedstoneBlock; + for (int i = 7417; i <= 7418; i++) + materials[i] = Material.RedstoneLamp; + for (int i = 5734; i <= 5735; i++) + materials[i] = Material.RedstoneOre; + for (int i = 5738; i <= 5739; i++) + materials[i] = Material.RedstoneTorch; + for (int i = 5740; i <= 5747; i++) + materials[i] = Material.RedstoneWallTorch; + for (int i = 2978; i <= 4273; i++) + materials[i] = Material.RedstoneWire; + materials[26573] = Material.ReinforcedDeepslate; + for (int i = 5881; i <= 5944; i++) + materials[i] = Material.Repeater; + for (int i = 12515; i <= 12526; i++) + materials[i] = Material.RepeatingCommandBlock; + for (int i = 19450; i <= 19454; i++) + materials[i] = Material.RespawnAnchor; + materials[24902] = Material.RootedDirt; + for (int i = 10751; i <= 10752; i++) + materials[i] = Material.RoseBush; + materials[112] = Material.Sand; + materials[535] = Material.Sandstone; + for (int i = 11234; i <= 11239; i++) + materials[i] = Material.SandstoneSlab; + for (int i = 7431; i <= 7510; i++) + materials[i] = Material.SandstoneStairs; + for (int i = 17400; i <= 17723; i++) + materials[i] = Material.SandstoneWall; + for (int i = 18372; i <= 18403; i++) + materials[i] = Material.Scaffolding; + materials[22799] = Material.Sculk; + for (int i = 22928; i <= 22929; i++) + materials[i] = Material.SculkCatalyst; + for (int i = 22319; i <= 22414; i++) + materials[i] = Material.SculkSensor; + for (int i = 22930; i <= 22937; i++) + materials[i] = Material.SculkShrieker; + for (int i = 22800; i <= 22927; i++) + materials[i] = Material.SculkVein; + materials[10724] = Material.SeaLantern; + for (int i = 12933; i <= 12940; i++) + materials[i] = Material.SeaPickle; + materials[2008] = Material.Seagrass; + materials[2005] = Material.ShortGrass; + materials[18610] = Material.Shroomlight; + for (int i = 12562; i <= 12567; i++) + materials[i] = Material.ShulkerBox; + for (int i = 8827; i <= 8858; i++) + materials[i] = Material.SkeletonSkull; + for (int i = 8859; i <= 8866; i++) + materials[i] = Material.SkeletonWallSkull; + materials[10364] = Material.SlimeBlock; + for (int i = 21069; i <= 21080; i++) + materials[i] = Material.SmallAmethystBud; + for (int i = 24884; i <= 24899; i++) + materials[i] = Material.SmallDripleaf; + materials[18466] = Material.SmithingTable; + for (int i = 18420; i <= 18427; i++) + materials[i] = Material.Smoker; + materials[26557] = Material.SmoothBasalt; + materials[11308] = Material.SmoothQuartz; + for (int i = 14124; i <= 14129; i++) + materials[i] = Material.SmoothQuartzSlab; + for (int i = 13602; i <= 13681; i++) + materials[i] = Material.SmoothQuartzStairs; + materials[11309] = Material.SmoothRedSandstone; + for (int i = 14088; i <= 14093; i++) + materials[i] = Material.SmoothRedSandstoneSlab; + for (int i = 13042; i <= 13121; i++) + materials[i] = Material.SmoothRedSandstoneStairs; + materials[11307] = Material.SmoothSandstone; + for (int i = 14118; i <= 14123; i++) + materials[i] = Material.SmoothSandstoneSlab; + for (int i = 13522; i <= 13601; i++) + materials[i] = Material.SmoothSandstoneStairs; + materials[11306] = Material.SmoothStone; + for (int i = 11228; i <= 11233; i++) + materials[i] = Material.SmoothStoneSlab; + for (int i = 12800; i <= 12802; i++) + materials[i] = Material.SnifferEgg; + for (int i = 5772; i <= 5779; i++) + materials[i] = Material.Snow; + materials[5781] = Material.SnowBlock; + for (int i = 18543; i <= 18574; i++) + materials[i] = Material.SoulCampfire; + materials[2872] = Material.SoulFire; + for (int i = 18507; i <= 18510; i++) + materials[i] = Material.SoulLantern; + materials[5850] = Material.SoulSand; + materials[5851] = Material.SoulSoil; + materials[5858] = Material.SoulTorch; + for (int i = 5859; i <= 5862; i++) + materials[i] = Material.SoulWallTorch; + materials[2873] = Material.Spawner; + materials[517] = Material.Sponge; + materials[24823] = Material.SporeBlossom; + for (int i = 8635; i <= 8658; i++) + materials[i] = Material.SpruceButton; + for (int i = 11822; i <= 11885; i++) + materials[i] = Material.SpruceDoor; + for (int i = 11566; i <= 11597; i++) + materials[i] = Material.SpruceFence; + for (int i = 11310; i <= 11341; i++) + materials[i] = Material.SpruceFenceGate; + for (int i = 4898; i <= 4961; i++) + materials[i] = Material.SpruceHangingSign; + for (int i = 265; i <= 292; i++) + materials[i] = Material.SpruceLeaves; + for (int i = 133; i <= 135; i++) + materials[i] = Material.SpruceLog; + materials[16] = Material.SprucePlanks; + for (int i = 5718; i <= 5719; i++) + materials[i] = Material.SprucePressurePlate; + for (int i = 27; i <= 28; i++) + materials[i] = Material.SpruceSapling; + for (int i = 4334; i <= 4365; i++) + materials[i] = Material.SpruceSign; + for (int i = 11168; i <= 11173; i++) + materials[i] = Material.SpruceSlab; + for (int i = 7666; i <= 7745; i++) + materials[i] = Material.SpruceStairs; + for (int i = 6025; i <= 6088; i++) + materials[i] = Material.SpruceTrapdoor; + for (int i = 5546; i <= 5553; i++) + materials[i] = Material.SpruceWallHangingSign; + for (int i = 4770; i <= 4777; i++) + materials[i] = Material.SpruceWallSign; + for (int i = 192; i <= 194; i++) + materials[i] = Material.SpruceWood; + for (int i = 1992; i <= 2003; i++) + materials[i] = Material.StickyPiston; + materials[1] = Material.Stone; + for (int i = 11264; i <= 11269; i++) + materials[i] = Material.StoneBrickSlab; + for (int i = 7109; i <= 7188; i++) + materials[i] = Material.StoneBrickStairs; + for (int i = 15780; i <= 16103; i++) + materials[i] = Material.StoneBrickWall; + materials[6537] = Material.StoneBricks; + for (int i = 5748; i <= 5771; i++) + materials[i] = Material.StoneButton; + for (int i = 5650; i <= 5651; i++) + materials[i] = Material.StonePressurePlate; + for (int i = 11222; i <= 11227; i++) + materials[i] = Material.StoneSlab; + for (int i = 13442; i <= 13521; i++) + materials[i] = Material.StoneStairs; + for (int i = 18467; i <= 18470; i++) + materials[i] = Material.Stonecutter; + for (int i = 171; i <= 173; i++) + materials[i] = Material.StrippedAcaciaLog; + for (int i = 225; i <= 227; i++) + materials[i] = Material.StrippedAcaciaWood; + for (int i = 186; i <= 188; i++) + materials[i] = Material.StrippedBambooBlock; + for (int i = 165; i <= 167; i++) + materials[i] = Material.StrippedBirchLog; + for (int i = 219; i <= 221; i++) + materials[i] = Material.StrippedBirchWood; + for (int i = 174; i <= 176; i++) + materials[i] = Material.StrippedCherryLog; + for (int i = 228; i <= 230; i++) + materials[i] = Material.StrippedCherryWood; + for (int i = 18605; i <= 18607; i++) + materials[i] = Material.StrippedCrimsonHyphae; + for (int i = 18599; i <= 18601; i++) + materials[i] = Material.StrippedCrimsonStem; + for (int i = 177; i <= 179; i++) + materials[i] = Material.StrippedDarkOakLog; + for (int i = 231; i <= 233; i++) + materials[i] = Material.StrippedDarkOakWood; + for (int i = 168; i <= 170; i++) + materials[i] = Material.StrippedJungleLog; + for (int i = 222; i <= 224; i++) + materials[i] = Material.StrippedJungleWood; + for (int i = 183; i <= 185; i++) + materials[i] = Material.StrippedMangroveLog; + for (int i = 234; i <= 236; i++) + materials[i] = Material.StrippedMangroveWood; + for (int i = 180; i <= 182; i++) + materials[i] = Material.StrippedOakLog; + for (int i = 213; i <= 215; i++) + materials[i] = Material.StrippedOakWood; + for (int i = 162; i <= 164; i++) + materials[i] = Material.StrippedSpruceLog; + for (int i = 216; i <= 218; i++) + materials[i] = Material.StrippedSpruceWood; + for (int i = 18588; i <= 18590; i++) + materials[i] = Material.StrippedWarpedHyphae; + for (int i = 18582; i <= 18584; i++) + materials[i] = Material.StrippedWarpedStem; + for (int i = 19356; i <= 19359; i++) + materials[i] = Material.StructureBlock; + materials[12549] = Material.StructureVoid; + for (int i = 5799; i <= 5814; i++) + materials[i] = Material.SugarCane; + for (int i = 10747; i <= 10748; i++) + materials[i] = Material.Sunflower; + for (int i = 119; i <= 122; i++) + materials[i] = Material.SuspiciousGravel; + for (int i = 113; i <= 116; i++) + materials[i] = Material.SuspiciousSand; + for (int i = 18575; i <= 18578; i++) + materials[i] = Material.SweetBerryBush; + for (int i = 10755; i <= 10756; i++) + materials[i] = Material.TallGrass; + for (int i = 2009; i <= 2010; i++) + materials[i] = Material.TallSeagrass; + for (int i = 19381; i <= 19396; i++) + materials[i] = Material.Target; + materials[10744] = Material.Terracotta; + materials[22317] = Material.TintedGlass; + for (int i = 2094; i <= 2095; i++) + materials[i] = Material.Tnt; + materials[2355] = Material.Torch; + materials[2076] = Material.Torchflower; + for (int i = 12495; i <= 12496; i++) + materials[i] = Material.TorchflowerCrop; + for (int i = 9119; i <= 9142; i++) + materials[i] = Material.TrappedChest; + for (int i = 26638; i <= 26643; i++) + materials[i] = Material.TrialSpawner; + for (int i = 7537; i <= 7664; i++) + materials[i] = Material.Tripwire; + for (int i = 7521; i <= 7536; i++) + materials[i] = Material.TripwireHook; + for (int i = 12823; i <= 12824; i++) + materials[i] = Material.TubeCoral; + materials[12808] = Material.TubeCoralBlock; + for (int i = 12843; i <= 12844; i++) + materials[i] = Material.TubeCoralFan; + for (int i = 12893; i <= 12900; i++) + materials[i] = Material.TubeCoralWallFan; + materials[21081] = Material.Tuff; + for (int i = 21905; i <= 21910; i++) + materials[i] = Material.TuffBrickSlab; + for (int i = 21911; i <= 21990; i++) + materials[i] = Material.TuffBrickStairs; + for (int i = 21991; i <= 22314; i++) + materials[i] = Material.TuffBrickWall; + materials[21904] = Material.TuffBricks; + for (int i = 21082; i <= 21087; i++) + materials[i] = Material.TuffSlab; + for (int i = 21088; i <= 21167; i++) + materials[i] = Material.TuffStairs; + for (int i = 21168; i <= 21491; i++) + materials[i] = Material.TuffWall; + for (int i = 12788; i <= 12799; i++) + materials[i] = Material.TurtleEgg; + for (int i = 18638; i <= 18663; i++) + materials[i] = Material.TwistingVines; + materials[18664] = Material.TwistingVinesPlant; + for (int i = 26566; i <= 26568; i++) + materials[i] = Material.VerdantFroglight; + for (int i = 6837; i <= 6868; i++) + materials[i] = Material.Vine; + materials[12958] = Material.VoidAir; + for (int i = 2356; i <= 2359; i++) + materials[i] = Material.WallTorch; + for (int i = 19124; i <= 19147; i++) + materials[i] = Material.WarpedButton; + for (int i = 19212; i <= 19275; i++) + materials[i] = Material.WarpedDoor; + for (int i = 18716; i <= 18747; i++) + materials[i] = Material.WarpedFence; + for (int i = 18908; i <= 18939; i++) + materials[i] = Material.WarpedFenceGate; + materials[18592] = Material.WarpedFungus; + for (int i = 5346; i <= 5409; i++) + materials[i] = Material.WarpedHangingSign; + for (int i = 18585; i <= 18587; i++) + materials[i] = Material.WarpedHyphae; + materials[18591] = Material.WarpedNylium; + materials[18667] = Material.WarpedPlanks; + for (int i = 18682; i <= 18683; i++) + materials[i] = Material.WarpedPressurePlate; + materials[18594] = Material.WarpedRoots; + for (int i = 19308; i <= 19339; i++) + materials[i] = Material.WarpedSign; + for (int i = 18674; i <= 18679; i++) + materials[i] = Material.WarpedSlab; + for (int i = 19020; i <= 19099; i++) + materials[i] = Material.WarpedStairs; + for (int i = 18579; i <= 18581; i++) + materials[i] = Material.WarpedStem; + for (int i = 18812; i <= 18875; i++) + materials[i] = Material.WarpedTrapdoor; + for (int i = 5610; i <= 5617; i++) + materials[i] = Material.WarpedWallHangingSign; + for (int i = 19348; i <= 19355; i++) + materials[i] = Material.WarpedWallSign; + materials[18593] = Material.WarpedWartBlock; + for (int i = 80; i <= 95; i++) + materials[i] = Material.Water; + for (int i = 7399; i <= 7401; i++) + materials[i] = Material.WaterCauldron; + materials[22955] = Material.WaxedChiseledCopper; + materials[23300] = Material.WaxedCopperBlock; + for (int i = 24708; i <= 24711; i++) + materials[i] = Material.WaxedCopperBulb; + for (int i = 23908; i <= 23971; i++) + materials[i] = Material.WaxedCopperDoor; + for (int i = 24684; i <= 24685; i++) + materials[i] = Material.WaxedCopperGrate; + for (int i = 24420; i <= 24483; i++) + materials[i] = Material.WaxedCopperTrapdoor; + materials[23307] = Material.WaxedCutCopper; + for (int i = 23646; i <= 23651; i++) + materials[i] = Material.WaxedCutCopperSlab; + for (int i = 23548; i <= 23627; i++) + materials[i] = Material.WaxedCutCopperStairs; + materials[22954] = Material.WaxedExposedChiseledCopper; + materials[23302] = Material.WaxedExposedCopper; + for (int i = 24712; i <= 24715; i++) + materials[i] = Material.WaxedExposedCopperBulb; + for (int i = 23972; i <= 24035; i++) + materials[i] = Material.WaxedExposedCopperDoor; + for (int i = 24686; i <= 24687; i++) + materials[i] = Material.WaxedExposedCopperGrate; + for (int i = 24484; i <= 24547; i++) + materials[i] = Material.WaxedExposedCopperTrapdoor; + materials[23306] = Material.WaxedExposedCutCopper; + for (int i = 23640; i <= 23645; i++) + materials[i] = Material.WaxedExposedCutCopperSlab; + for (int i = 23468; i <= 23547; i++) + materials[i] = Material.WaxedExposedCutCopperStairs; + materials[22952] = Material.WaxedOxidizedChiseledCopper; + materials[23303] = Material.WaxedOxidizedCopper; + for (int i = 24720; i <= 24723; i++) + materials[i] = Material.WaxedOxidizedCopperBulb; + for (int i = 24036; i <= 24099; i++) + materials[i] = Material.WaxedOxidizedCopperDoor; + for (int i = 24690; i <= 24691; i++) + materials[i] = Material.WaxedOxidizedCopperGrate; + for (int i = 24548; i <= 24611; i++) + materials[i] = Material.WaxedOxidizedCopperTrapdoor; + materials[23304] = Material.WaxedOxidizedCutCopper; + for (int i = 23628; i <= 23633; i++) + materials[i] = Material.WaxedOxidizedCutCopperSlab; + for (int i = 23308; i <= 23387; i++) + materials[i] = Material.WaxedOxidizedCutCopperStairs; + materials[22953] = Material.WaxedWeatheredChiseledCopper; + materials[23301] = Material.WaxedWeatheredCopper; + for (int i = 24716; i <= 24719; i++) + materials[i] = Material.WaxedWeatheredCopperBulb; + for (int i = 24100; i <= 24163; i++) + materials[i] = Material.WaxedWeatheredCopperDoor; + for (int i = 24688; i <= 24689; i++) + materials[i] = Material.WaxedWeatheredCopperGrate; + for (int i = 24612; i <= 24675; i++) + materials[i] = Material.WaxedWeatheredCopperTrapdoor; + materials[23305] = Material.WaxedWeatheredCutCopper; + for (int i = 23634; i <= 23639; i++) + materials[i] = Material.WaxedWeatheredCutCopperSlab; + for (int i = 23388; i <= 23467; i++) + materials[i] = Material.WaxedWeatheredCutCopperStairs; + materials[22949] = Material.WeatheredChiseledCopper; + materials[22940] = Material.WeatheredCopper; + for (int i = 24700; i <= 24703; i++) + materials[i] = Material.WeatheredCopperBulb; + for (int i = 23844; i <= 23907; i++) + materials[i] = Material.WeatheredCopperDoor; + for (int i = 24680; i <= 24681; i++) + materials[i] = Material.WeatheredCopperGrate; + for (int i = 24356; i <= 24419; i++) + materials[i] = Material.WeatheredCopperTrapdoor; + materials[22945] = Material.WeatheredCutCopper; + for (int i = 23282; i <= 23287; i++) + materials[i] = Material.WeatheredCutCopperSlab; + for (int i = 23036; i <= 23115; i++) + materials[i] = Material.WeatheredCutCopperStairs; + for (int i = 18611; i <= 18636; i++) + materials[i] = Material.WeepingVines; + materials[18637] = Material.WeepingVinesPlant; + materials[518] = Material.WetSponge; + for (int i = 4278; i <= 4285; i++) + materials[i] = Material.Wheat; + for (int i = 10759; i <= 10774; i++) + materials[i] = Material.WhiteBanner; + for (int i = 1688; i <= 1703; i++) + materials[i] = Material.WhiteBed; + for (int i = 20741; i <= 20756; i++) + materials[i] = Material.WhiteCandle; + for (int i = 20999; i <= 21000; i++) + materials[i] = Material.WhiteCandleCake; + materials[10728] = Material.WhiteCarpet; + materials[12728] = Material.WhiteConcrete; + materials[12744] = Material.WhiteConcretePowder; + for (int i = 12664; i <= 12667; i++) + materials[i] = Material.WhiteGlazedTerracotta; + for (int i = 12568; i <= 12573; i++) + materials[i] = Material.WhiteShulkerBox; + materials[5945] = Material.WhiteStainedGlass; + for (int i = 9372; i <= 9403; i++) + materials[i] = Material.WhiteStainedGlassPane; + materials[9356] = Material.WhiteTerracotta; + materials[2083] = Material.WhiteTulip; + for (int i = 11015; i <= 11018; i++) + materials[i] = Material.WhiteWallBanner; + materials[2047] = Material.WhiteWool; + materials[2087] = Material.WitherRose; + for (int i = 8867; i <= 8898; i++) + materials[i] = Material.WitherSkeletonSkull; + for (int i = 8899; i <= 8906; i++) + materials[i] = Material.WitherSkeletonWallSkull; + for (int i = 10823; i <= 10838; i++) + materials[i] = Material.YellowBanner; + for (int i = 1752; i <= 1767; i++) + materials[i] = Material.YellowBed; + for (int i = 20805; i <= 20820; i++) + materials[i] = Material.YellowCandle; + for (int i = 21007; i <= 21008; i++) + materials[i] = Material.YellowCandleCake; + materials[10732] = Material.YellowCarpet; + materials[12732] = Material.YellowConcrete; + materials[12748] = Material.YellowConcretePowder; + for (int i = 12680; i <= 12683; i++) + materials[i] = Material.YellowGlazedTerracotta; + for (int i = 12592; i <= 12597; i++) + materials[i] = Material.YellowShulkerBox; + materials[5949] = Material.YellowStainedGlass; + for (int i = 9500; i <= 9531; i++) + materials[i] = Material.YellowStainedGlassPane; + materials[9360] = Material.YellowTerracotta; + for (int i = 11031; i <= 11034; i++) + materials[i] = Material.YellowWallBanner; + materials[2051] = Material.YellowWool; + for (int i = 8907; i <= 8938; i++) + materials[i] = Material.ZombieHead; + for (int i = 8939; i <= 8946; i++) + materials[i] = Material.ZombieWallHead; + } + + protected override Dictionary GetDict() + { + return materials; + } + } +} diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette1204.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1204.cs new file mode 100644 index 0000000000..5cb31df3fb --- /dev/null +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1204.cs @@ -0,0 +1,144 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Mapping.EntityPalettes +{ + public class EntityPalette1204 : EntityPalette + { + private static readonly Dictionary mappings = new(); + + static EntityPalette1204() + { + mappings[0] = EntityType.Allay; + mappings[1] = EntityType.AreaEffectCloud; + mappings[2] = EntityType.ArmorStand; + mappings[3] = EntityType.Arrow; + mappings[4] = EntityType.Axolotl; + mappings[5] = EntityType.Bat; + mappings[6] = EntityType.Bee; + mappings[7] = EntityType.Blaze; + mappings[8] = EntityType.BlockDisplay; + mappings[9] = EntityType.Boat; + mappings[10] = EntityType.Breeze; + mappings[11] = EntityType.Camel; + mappings[12] = EntityType.Cat; + mappings[13] = EntityType.CaveSpider; + mappings[14] = EntityType.ChestBoat; + mappings[15] = EntityType.ChestMinecart; + mappings[16] = EntityType.Chicken; + mappings[17] = EntityType.Cod; + mappings[18] = EntityType.CommandBlockMinecart; + mappings[19] = EntityType.Cow; + mappings[20] = EntityType.Creeper; + mappings[21] = EntityType.Dolphin; + mappings[22] = EntityType.Donkey; + mappings[23] = EntityType.DragonFireball; + mappings[24] = EntityType.Drowned; + mappings[25] = EntityType.Egg; + mappings[26] = EntityType.ElderGuardian; + mappings[27] = EntityType.EndCrystal; + mappings[28] = EntityType.EnderDragon; + mappings[29] = EntityType.EnderPearl; + mappings[30] = EntityType.Enderman; + mappings[31] = EntityType.Endermite; + mappings[32] = EntityType.Evoker; + mappings[33] = EntityType.EvokerFangs; + mappings[34] = EntityType.ExperienceBottle; + mappings[35] = EntityType.ExperienceOrb; + mappings[36] = EntityType.EyeOfEnder; + mappings[37] = EntityType.FallingBlock; + mappings[58] = EntityType.Fireball; + mappings[38] = EntityType.FireworkRocket; + mappings[125] = EntityType.FishingBobber; + mappings[39] = EntityType.Fox; + mappings[40] = EntityType.Frog; + mappings[41] = EntityType.FurnaceMinecart; + mappings[42] = EntityType.Ghast; + mappings[43] = EntityType.Giant; + mappings[44] = EntityType.GlowItemFrame; + mappings[45] = EntityType.GlowSquid; + mappings[46] = EntityType.Goat; + mappings[47] = EntityType.Guardian; + mappings[48] = EntityType.Hoglin; + mappings[49] = EntityType.HopperMinecart; + mappings[50] = EntityType.Horse; + mappings[51] = EntityType.Husk; + mappings[52] = EntityType.Illusioner; + mappings[53] = EntityType.Interaction; + mappings[54] = EntityType.IronGolem; + mappings[55] = EntityType.Item; + mappings[56] = EntityType.ItemDisplay; + mappings[57] = EntityType.ItemFrame; + mappings[59] = EntityType.LeashKnot; + mappings[60] = EntityType.LightningBolt; + mappings[61] = EntityType.Llama; + mappings[62] = EntityType.LlamaSpit; + mappings[63] = EntityType.MagmaCube; + mappings[64] = EntityType.Marker; + mappings[65] = EntityType.Minecart; + mappings[66] = EntityType.Mooshroom; + mappings[67] = EntityType.Mule; + mappings[68] = EntityType.Ocelot; + mappings[69] = EntityType.Painting; + mappings[70] = EntityType.Panda; + mappings[71] = EntityType.Parrot; + mappings[72] = EntityType.Phantom; + mappings[73] = EntityType.Pig; + mappings[74] = EntityType.Piglin; + mappings[75] = EntityType.PiglinBrute; + mappings[76] = EntityType.Pillager; + mappings[124] = EntityType.Player; + mappings[77] = EntityType.PolarBear; + mappings[78] = EntityType.Potion; + mappings[79] = EntityType.Pufferfish; + mappings[80] = EntityType.Rabbit; + mappings[81] = EntityType.Ravager; + mappings[82] = EntityType.Salmon; + mappings[83] = EntityType.Sheep; + mappings[84] = EntityType.Shulker; + mappings[85] = EntityType.ShulkerBullet; + mappings[86] = EntityType.Silverfish; + mappings[87] = EntityType.Skeleton; + mappings[88] = EntityType.SkeletonHorse; + mappings[89] = EntityType.Slime; + mappings[90] = EntityType.SmallFireball; + mappings[91] = EntityType.Sniffer; + mappings[92] = EntityType.SnowGolem; + mappings[93] = EntityType.Snowball; + mappings[94] = EntityType.SpawnerMinecart; + mappings[95] = EntityType.SpectralArrow; + mappings[96] = EntityType.Spider; + mappings[97] = EntityType.Squid; + mappings[98] = EntityType.Stray; + mappings[99] = EntityType.Strider; + mappings[100] = EntityType.Tadpole; + mappings[101] = EntityType.TextDisplay; + mappings[102] = EntityType.Tnt; + mappings[103] = EntityType.TntMinecart; + mappings[104] = EntityType.TraderLlama; + mappings[105] = EntityType.Trident; + mappings[106] = EntityType.TropicalFish; + mappings[107] = EntityType.Turtle; + mappings[108] = EntityType.Vex; + mappings[109] = EntityType.Villager; + mappings[110] = EntityType.Vindicator; + mappings[111] = EntityType.WanderingTrader; + mappings[112] = EntityType.Warden; + mappings[113] = EntityType.WindCharge; + mappings[114] = EntityType.Witch; + mappings[115] = EntityType.Wither; + mappings[116] = EntityType.WitherSkeleton; + mappings[117] = EntityType.WitherSkull; + mappings[118] = EntityType.Wolf; + mappings[119] = EntityType.Zoglin; + mappings[120] = EntityType.Zombie; + mappings[121] = EntityType.ZombieHorse; + mappings[122] = EntityType.ZombieVillager; + mappings[123] = EntityType.ZombifiedPiglin; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPaletteGenerator.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPaletteGenerator.cs index 141bcf6db2..2ac06fcb23 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPaletteGenerator.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPaletteGenerator.cs @@ -11,7 +11,10 @@ public static class EntityPaletteGenerator /// Generate EntityType.cs from Minecraft registries.json /// /// path to registries.json - /// java -cp minecraft_server.jar net.minecraft.data.Main --reports + /// + /// java -cp minecraft_server.jar net.minecraft.data.Main --reports + /// For 1.18+: java -DbundlerMainClass=net.minecraft.data.Main -jar minecraft_server.jar --reports + /// public static void GenerateEntityTypes(string registriesJsonFile) { DataTypeGenerator.GenerateEnumWithPalette(registriesJsonFile, "minecraft:entity_type", "EntityType", "MinecraftClient.Mapping", "EntityPalette", "MinecraftClient.Mapping.EntityPalettes"); diff --git a/MinecraftClient/Mapping/EntityType.cs b/MinecraftClient/Mapping/EntityType.cs index 8b697e5f1d..9a036bac37 100644 --- a/MinecraftClient/Mapping/EntityType.cs +++ b/MinecraftClient/Mapping/EntityType.cs @@ -24,6 +24,7 @@ public enum EntityType Blaze, BlockDisplay, Boat, + Breeze, Camel, Cat, CaveSpider, @@ -128,6 +129,7 @@ public enum EntityType Vindicator, WanderingTrader, Warden, + WindCharge, Witch, Wither, WitherSkeleton, diff --git a/MinecraftClient/Mapping/Material.cs b/MinecraftClient/Mapping/Material.cs index 0693eb8f00..f5cbc9aad4 100644 --- a/MinecraftClient/Mapping/Material.cs +++ b/MinecraftClient/Mapping/Material.cs @@ -198,6 +198,7 @@ public enum Material Chest, ChippedAnvil, ChiseledBookshelf, + ChiseledCopper, ChiseledDeepslate, ChiseledNetherBricks, ChiseledPolishedBlackstone, @@ -205,6 +206,8 @@ public enum Material ChiseledRedSandstone, ChiseledSandstone, ChiseledStoneBricks, + ChiseledTuff, + ChiseledTuffBricks, ChorusFlower, ChorusPlant, Clay, @@ -226,13 +229,18 @@ public enum Material Composter, Conduit, CopperBlock, + CopperBulb, + CopperDoor, + CopperGrate, CopperOre, + CopperTrapdoor, Cornflower, CrackedDeepslateBricks, CrackedDeepslateTiles, CrackedNetherBricks, CrackedPolishedBlackstoneBricks, CrackedStoneBricks, + Crafter, CraftingTable, CreeperHead, CreeperWallHead, @@ -367,7 +375,12 @@ public enum Material EndStoneBrickWall, EndStoneBricks, EnderChest, + ExposedChiseledCopper, ExposedCopper, + ExposedCopperBulb, + ExposedCopperDoor, + ExposedCopperGrate, + ExposedCopperTrapdoor, ExposedCutCopper, ExposedCutCopperSlab, ExposedCutCopperStairs, @@ -396,7 +409,7 @@ public enum Material GraniteSlab, GraniteStairs, GraniteWall, - Grass, + Grass, // 1.20.3+ renamed to ShortGrass GrassBlock, Gravel, GrayBanner, @@ -638,7 +651,12 @@ public enum Material OrangeWallBanner, OrangeWool, OxeyeDaisy, + OxidizedChiseledCopper, OxidizedCopper, + OxidizedCopperBulb, + OxidizedCopperDoor, + OxidizedCopperGrate, + OxidizedCopperTrapdoor, OxidizedCutCopper, OxidizedCutCopperSlab, OxidizedCutCopperStairs, @@ -697,6 +715,10 @@ public enum Material PolishedGranite, PolishedGraniteSlab, PolishedGraniteStairs, + PolishedTuff, + PolishedTuffSlab, + PolishedTuffStairs, + PolishedTuffWall, Poppy, Potatoes, PottedAcaciaSapling, @@ -824,6 +846,7 @@ public enum Material SeaLantern, SeaPickle, Seagrass, + ShortGrass, Shroomlight, ShulkerBox, SkeletonSkull, @@ -924,6 +947,7 @@ public enum Material Torchflower, TorchflowerCrop, TrappedChest, + TrialSpawner, Tripwire, TripwireHook, TubeCoral, @@ -931,6 +955,13 @@ public enum Material TubeCoralFan, TubeCoralWallFan, Tuff, + TuffBrickSlab, + TuffBrickStairs, + TuffBrickWall, + TuffBricks, + TuffSlab, + TuffStairs, + TuffWall, TurtleEgg, TwistingVines, TwistingVinesPlant, @@ -959,23 +990,48 @@ public enum Material WarpedWartBlock, Water, WaterCauldron, + WaxedChiseledCopper, WaxedCopperBlock, + WaxedCopperBulb, + WaxedCopperDoor, + WaxedCopperGrate, + WaxedCopperTrapdoor, WaxedCutCopper, WaxedCutCopperSlab, WaxedCutCopperStairs, + WaxedExposedChiseledCopper, WaxedExposedCopper, + WaxedExposedCopperBulb, + WaxedExposedCopperDoor, + WaxedExposedCopperGrate, + WaxedExposedCopperTrapdoor, WaxedExposedCutCopper, WaxedExposedCutCopperSlab, WaxedExposedCutCopperStairs, + WaxedOxidizedChiseledCopper, WaxedOxidizedCopper, + WaxedOxidizedCopperBulb, + WaxedOxidizedCopperDoor, + WaxedOxidizedCopperGrate, + WaxedOxidizedCopperTrapdoor, WaxedOxidizedCutCopper, WaxedOxidizedCutCopperSlab, WaxedOxidizedCutCopperStairs, + WaxedWeatheredChiseledCopper, WaxedWeatheredCopper, + WaxedWeatheredCopperBulb, + WaxedWeatheredCopperDoor, + WaxedWeatheredCopperGrate, + WaxedWeatheredCopperTrapdoor, WaxedWeatheredCutCopper, WaxedWeatheredCutCopperSlab, WaxedWeatheredCutCopperStairs, + WeatheredChiseledCopper, WeatheredCopper, + WeatheredCopperBulb, + WeatheredCopperDoor, + WeatheredCopperGrate, + WeatheredCopperTrapdoor, WeatheredCutCopper, WeatheredCutCopperSlab, WeatheredCutCopperStairs, diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 59b975dd2c..54dbf0de6b 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -146,6 +146,7 @@ class Protocol18Handler : IMinecraftCom // Block palette > MC_1_20_4_Version when handler.GetTerrainEnabled() => throw new NotImplementedException(Translations.exception_palette_block), + >= MC_1_20_4_Version => new Palette1204(), >= MC_1_20_Version => new Palette120(), MC_1_19_4_Version => new Palette1194(), MC_1_19_3_Version => new Palette1193(), @@ -163,6 +164,7 @@ class Protocol18Handler : IMinecraftCom // Entity palette > MC_1_20_4_Version when handler.GetEntityHandlingEnabled() => throw new NotImplementedException(Translations.exception_palette_entity), + >= MC_1_20_4_Version => new EntityPalette1204(), >= MC_1_20_Version => new EntityPalette120(), MC_1_19_4_Version => new EntityPalette1194(), MC_1_19_3_Version => new EntityPalette1193(), @@ -184,6 +186,7 @@ class Protocol18Handler : IMinecraftCom // Item palette > MC_1_20_4_Version when handler.GetInventoryEnabled() => throw new NotImplementedException(Translations.exception_palette_item), + >= MC_1_20_4_Version => new ItemPalette1204(), >= MC_1_20_Version => new ItemPalette120(), MC_1_19_4_Version => new ItemPalette1194(), MC_1_19_3_Version => new ItemPalette1193(), From 6d016332fb438be5ea6259d090b0c12a459dd939 Mon Sep 17 00:00:00 2001 From: ReinforceZwei <39955851+ReinforceZwei@users.noreply.github.com> Date: Sun, 11 Feb 2024 18:14:14 +0800 Subject: [PATCH 05/15] 1.20.4: Update NBT chat parser to handle text color --- .../Protocol/Message/ChatParser.cs | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 2c613f5be4..3551e4babd 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -426,13 +426,14 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List private static string NbtToString(Dictionary nbt) { - if (nbt.Count == 1 && nbt.TryGetValue("", out object rootMessage)) + if (nbt.Count == 1 && nbt.TryGetValue("", out object? rootMessage)) { // Nameless root tag return (string)rootMessage; } string message = string.Empty; + string colorCode = string.Empty; StringBuilder extraBuilder = new StringBuilder(); foreach (var kvp in nbt) { @@ -452,35 +453,40 @@ private static string NbtToString(Dictionary nbt) for (int i = 0; i < extras.Length; i++) { var extraDict = (Dictionary)extras[i]; - if (extraDict.TryGetValue("text", out object extraText)) - { - extraBuilder.Append(extraText); - } + extraBuilder.Append(NbtToString(extraDict) + "§r"); } } break; - case "with": + case "translate": { if (nbt.TryGetValue("translate", out object translate)) { var translateKey = (string)translate; List translateString = new(); - var withs = (object[])value; - for (int i = 0; i < withs.Length; i++) + if (nbt.TryGetValue("with", out object withComponent)) { - var withDict = (Dictionary)withs[i]; - if (withDict.TryGetValue("text", out object withText)) + var withs = (object[])withComponent; + for (int i = 0; i < withs.Length; i++) { - translateString.Add((string)withText); + var withDict = (Dictionary)withs[i]; + translateString.Add(NbtToString(withDict)); } } message = TranslateString(translateKey, translateString); } } break; + case "color": + { + if (nbt.TryGetValue("color", out object color)) + { + colorCode = Color2tag((string)color); + } + } + break; } } - return message + extraBuilder.ToString(); + return colorCode + message + extraBuilder.ToString(); } } } From 35cfd4a7dbd341550effd2e66de680674fd5afef Mon Sep 17 00:00:00 2001 From: Anon Date: Sun, 18 Feb 2024 17:56:02 +0100 Subject: [PATCH 06/15] Fixed a NBT crash < 1.20.2 and Fixed a crash with parsing 'extra' section in Chat --- MinecraftClient/Protocol/Handlers/DataTypes.cs | 8 +------- MinecraftClient/Protocol/Message/ChatParser.cs | 5 ++++- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 6f8961ff76..cbeeabbe10 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -565,12 +565,9 @@ public Entity ReadNextEntity(Queue cache, EntityPalette entityPalette, boo var nextId = cache.Dequeue(); if (protocolversion < Protocol18Handler.MC_1_20_2_Version) { - if (nextId is 10) // TAG_Compound + if (nextId is not 10) // TAG_Compound throw new System.IO.InvalidDataException("Failed to decode NBT: Does not start with TAG_Compound"); - // Read TAG_Compound - ReadNextByte(cache); - // NBT root name var rootName = Encoding.ASCII.GetString(ReadData(ReadNextUShort(cache), cache)); @@ -595,9 +592,6 @@ public Entity ReadNextEntity(Queue cache, EntityPalette entityPalette, boo { "", result } }; } - - // Read TAG_Compound - //ReadNextByte(cache); } } diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 3551e4babd..7be5dbeeda 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -452,7 +452,10 @@ private static string NbtToString(Dictionary nbt) object[] extras = (object[])value; for (int i = 0; i < extras.Length; i++) { - var extraDict = (Dictionary)extras[i]; + var extraDict = extras[i] is string + ? new Dictionary() { { "text", (string)extras[i] } } + : (Dictionary)extras[i]; + extraBuilder.Append(NbtToString(extraDict) + "§r"); } } From 3fab7eb78f05e0ec2b44d07add311a396251f312 Mon Sep 17 00:00:00 2001 From: Anon Date: Sun, 18 Feb 2024 18:54:45 +0100 Subject: [PATCH 07/15] Fixed a crash with Reconfiguration... screen --- MinecraftClient/Protocol/Handlers/Protocol18.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 54dbf0de6b..8a3b53d2b6 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -1007,6 +1007,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) chunkBatchStartTime = GetNanos(); break; case PacketTypesIn.StartConfiguration: + currentState = CurrentState.Configuration; SendAcknowledgeConfiguration(); break; case PacketTypesIn.HideMessage: From b2ef5cb23bf56827919872b910073f57efbafcd3 Mon Sep 17 00:00:00 2001 From: breadbyte <14045257+breadbyte@users.noreply.github.com> Date: Mon, 19 Feb 2024 02:47:07 +0800 Subject: [PATCH 08/15] (skip ci) update supported versions (visual change) --- MinecraftClient/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index 29ea3df5d5..9c126bee32 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -46,7 +46,7 @@ static class Program public const string Version = MCHighestVersion; public const string MCLowestVersion = "1.4.6"; - public const string MCHighestVersion = "1.20.2"; + public const string MCHighestVersion = "1.20.4"; public static readonly string? BuildInfo = null; private static Tuple? offlinePrompt = null; From 13de67b6f8332dfa34817d51df221c7148b44b4f Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 21 Feb 2024 17:38:32 +0100 Subject: [PATCH 09/15] Fixed a crash on chat parsing. Returned the commended try catch block. --- .../Protocol/Handlers/Protocol18.cs | 98 ++++++++++--------- .../Protocol/Message/ChatParser.cs | 5 +- 2 files changed, 55 insertions(+), 48 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 8a3b53d2b6..0f9e8e6f04 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -365,8 +365,8 @@ internal void PacketReader(object? o) /// TRUE if the packet was processed, FALSE if ignored or unknown internal bool HandlePacket(int packetId, Queue packetData) { - //try - //{ + try + { switch (currentState) { // https://wiki.vg/Protocol#Login @@ -403,16 +403,16 @@ internal bool HandlePacket(int packetId, Queue packetData) handler.OnConnectionLost(ChatBot.DisconnectReason.InGameKick, dataTypes.ReadNextChat(packetData)); return false; - + case ConfigurationPacketTypesIn.FinishConfiguration: currentState = CurrentState.Play; SendPacket(ConfigurationPacketTypesOut.FinishConfiguration, new List()); break; - + case ConfigurationPacketTypesIn.KeepAlive: SendPacket(ConfigurationPacketTypesOut.KeepAlive, packetData); break; - + case ConfigurationPacketTypesIn.Ping: SendPacket(ConfigurationPacketTypesOut.Pong, packetData); break; @@ -425,12 +425,12 @@ internal bool HandlePacket(int packetId, Queue packetData) World.StoreDimensionList(registryCodec); break; - + case ConfigurationPacketTypesIn.RemoveResourcePack: if (dataTypes.ReadNextBool(packetData)) // Has UUID dataTypes.ReadNextUUID(packetData); // UUID break; - + case ConfigurationPacketTypesIn.ResourcePack: HandleResourcePackPacket(packetData); break; @@ -449,23 +449,23 @@ internal bool HandlePacket(int packetId, Queue packetData) default: return true; } - //} - //catch (Exception innerException) - //{ - // //throw; - // if (innerException is ThreadAbortException || innerException is SocketException || - // innerException.InnerException is SocketException) - // throw; //Thread abort or Connection lost rather than invalid data - - // throw new System.IO.InvalidDataException( - // string.Format(Translations.exception_packet_process, - // packetPalette.GetIncomingTypeById(packetId), - // packetId, - // protocolVersion, - // currentState == CurrentState.Login, - // innerException.GetType()), - // innerException); - //} + } + catch (Exception innerException) + { + //throw; + if (innerException is ThreadAbortException || innerException is SocketException || + innerException.InnerException is SocketException) + throw; //Thread abort or Connection lost rather than invalid data + + throw new System.IO.InvalidDataException( + string.Format(Translations.exception_packet_process, + packetPalette.GetIncomingTypeById(packetId), + packetId, + protocolVersion, + currentState == CurrentState.Login, + innerException.GetType()), + innerException); + } return true; } @@ -473,10 +473,10 @@ internal bool HandlePacket(int packetId, Queue packetData) public void HandleResourcePackPacket(Queue packetData) { var uuid = Guid.Empty; - + if (protocolVersion >= MC_1_20_4_Version) uuid = dataTypes.ReadNextUUID(packetData); - + var url = dataTypes.ReadNextString(packetData); var hash = dataTypes.ReadNextString(packetData); @@ -493,21 +493,23 @@ public void HandleResourcePackPacket(Queue packetData) return; //Send back "accepted" and "successfully loaded" responses for plugins or server config making use of resource pack mandatory - var responseHeader = protocolVersion < MC_1_10_Version // After 1.10, the MC does not include resource pack hash in responses - ? dataTypes.ConcatBytes(DataTypes.GetVarInt(hash.Length), Encoding.UTF8.GetBytes(hash)) - : Array.Empty(); - + var responseHeader = + protocolVersion < MC_1_10_Version // After 1.10, the MC does not include resource pack hash in responses + ? dataTypes.ConcatBytes(DataTypes.GetVarInt(hash.Length), Encoding.UTF8.GetBytes(hash)) + : Array.Empty(); + var basePacketData = protocolVersion >= MC_1_20_4_Version && uuid != Guid.Empty ? dataTypes.ConcatBytes(responseHeader, DataTypes.GetUUID(uuid)) : responseHeader; var acceptedResourcePackData = dataTypes.ConcatBytes(basePacketData, DataTypes.GetVarInt(3)); var loadedResourcePackData = dataTypes.ConcatBytes(basePacketData, DataTypes.GetVarInt(0)); - + if (currentState == CurrentState.Configuration) { SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, acceptedResourcePackData); // Accepted - SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, loadedResourcePackData); // Successfully loaded + SendPacket(ConfigurationPacketTypesOut.ResourcePackResponse, + loadedResourcePackData); // Successfully loaded } else { @@ -515,7 +517,7 @@ public void HandleResourcePackPacket(Queue packetData) SendPacket(PacketTypesOut.ResourcePackStatus, loadedResourcePackData); // Successfully loaded } } - + private bool HandlePlayPackets(int packetId, Queue packetData) { switch (packetPalette.GetIncomingTypeById(packetId)) @@ -1677,7 +1679,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) var hasIcon = dataTypes.ReadNextBool(packetData); if (hasIcon) { - if(protocolVersion < MC_1_20_2_Version) + if (protocolVersion < MC_1_20_2_Version) iconBase64 = dataTypes.ReadNextString(packetData); else { @@ -2164,9 +2166,9 @@ private bool HandlePlayPackets(int packetId, Queue packetData) break; case PacketTypesIn.ResetScore: dataTypes.ReadNextString(packetData); // Entity Name - if(dataTypes.ReadNextBool(packetData)) // Has Objective Name + if (dataTypes.ReadNextBool(packetData)) // Has Objective Name dataTypes.ReadNextString(packetData); // Objective Name - + break; case PacketTypesIn.SpawnEntity: if (handler.GetEntityHandlingEnabled()) @@ -2517,7 +2519,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) dataTypes.ReadNextVarInt(packetData); // Block Interaction dataTypes.ReadParticleData(packetData, itemPalette); // Small Explosion Particles dataTypes.ReadParticleData(packetData, itemPalette); // Large Explosion Particles - + // Explosion Sound dataTypes.ReadNextString(packetData); // Sound Name var hasFixedRange = dataTypes.ReadNextBool(packetData); @@ -2533,11 +2535,11 @@ private bool HandlePlayPackets(int packetId, Queue packetData) case PacketTypesIn.ScoreboardObjective: var objectiveName = dataTypes.ReadNextString(packetData); var mode = dataTypes.ReadNextByte(packetData); - + var objectiveValue = string.Empty; var objectiveType = -1; var numberFormat = 0; - + if (mode is 0 or 2) { objectiveValue = dataTypes.ReadNextChat(packetData); @@ -2560,15 +2562,16 @@ private bool HandlePlayPackets(int packetId, Queue packetData) var objectiveValue2 = -1; var objectiveDisplayName3 = string.Empty; var numberFormat2 = 0; - + if (protocolVersion >= MC_1_20_4_Version) { objectiveName3 = dataTypes.ReadNextString(packetData); // Objective Name objectiveValue2 = dataTypes.ReadNextVarInt(packetData); // Value if (dataTypes.ReadNextBool(packetData)) // Has Display Name - objectiveDisplayName3 = ChatParser.ParseText(dataTypes.ReadNextString(packetData)); // Has Display Name - + objectiveDisplayName3 = + ChatParser.ParseText(dataTypes.ReadNextString(packetData)); // Has Display Name + if (dataTypes.ReadNextBool(packetData)) // Has Number Format numberFormat2 = dataTypes.ReadNextVarInt(packetData); // Number Format } @@ -2580,12 +2583,13 @@ private bool HandlePlayPackets(int packetId, Queue packetData) if (action3 != 1 || protocolVersion >= MC_1_8_Version) objectiveName3 = dataTypes.ReadNextString(packetData); - + if (action3 != 1) objectiveValue2 = dataTypes.ReadNextVarInt(packetData); } - handler.OnUpdateScore(entityName, action3, objectiveName3, objectiveDisplayName3, objectiveValue2, numberFormat2); + handler.OnUpdateScore(entityName, action3, objectiveName3, objectiveDisplayName3, objectiveValue2, + numberFormat2); break; case PacketTypesIn.BlockChangedAck: handler.OnBlockChangeAck(dataTypes.ReadNextVarInt(packetData)); @@ -2635,7 +2639,7 @@ private bool HandlePlayPackets(int packetId, Queue packetData) dataTypes.ReadNextFloat(packetData); dataTypes.ReadNextBool(packetData); break; - + default: return false; //Ignored packet } @@ -2704,7 +2708,7 @@ private void SendPacket(PacketTypesOut packet, IEnumerable packetData) { SendPacket(packetPalette.GetOutgoingIdByType(packet), packetData); } - + /// /// Send a configuration packet to the server. Packet ID, compression, and encryption will be handled automatically. /// @@ -4493,7 +4497,7 @@ public bool SendPlayerSession(PlayerKeyPair? playerKeyPair) return false; } } - + return false; } diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 7be5dbeeda..3e47d72600 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -471,7 +471,10 @@ private static string NbtToString(Dictionary nbt) var withs = (object[])withComponent; for (int i = 0; i < withs.Length; i++) { - var withDict = (Dictionary)withs[i]; + var withDict = withs[i] is string + ? new Dictionary() { { "text", (string)withs[i] } } + : (Dictionary)withs[i]; + translateString.Add(NbtToString(withDict)); } } From 3522a16b0deec8c879172defb3755bd6716623d5 Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 21 Feb 2024 17:40:39 +0100 Subject: [PATCH 10/15] Removed a comment --- MinecraftClient/Protocol/Handlers/DataTypes.cs | 1 - MinecraftClient/Protocol/Handlers/Protocol18.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index cbeeabbe10..638171536d 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -686,7 +686,6 @@ private object ReadNbtField(Queue cache, int fieldType) ? key >> 5 // 1.8 : ReadNextVarInt(cache); // 1.9+ - EntityMetaDataType type; try { diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 0f9e8e6f04..b4b3d98f30 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -452,7 +452,6 @@ internal bool HandlePacket(int packetId, Queue packetData) } catch (Exception innerException) { - //throw; if (innerException is ThreadAbortException || innerException is SocketException || innerException.InnerException is SocketException) throw; //Thread abort or Connection lost rather than invalid data From ecc88fac06088d637e2e9350a04b3d039c67cd1e Mon Sep 17 00:00:00 2001 From: Anon Date: Sun, 25 Feb 2024 16:11:33 +0100 Subject: [PATCH 11/15] Fixed a crash on Entity Metadata --- MinecraftClient/Protocol/Handlers/DataTypes.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 638171536d..59a63ed9e2 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -735,11 +735,11 @@ private object ReadNbtField(Queue cache, int fieldType) value = ReadNextString(cache); break; case EntityMetaDataType.Chat: // Chat - value = ReadNextString(cache); + value = ReadNextChat(cache); break; case EntityMetaDataType.OptionalChat: // Optional Chat if (ReadNextBool(cache)) - value = ReadNextString(cache); + value = ReadNextChat(cache); break; case EntityMetaDataType.Slot: // Slot value = ReadNextItemSlot(cache, itemPalette); From 1db0792d7bd74269d9655bf2b318b6d5d9991c09 Mon Sep 17 00:00:00 2001 From: Anon Date: Mon, 26 Feb 2024 23:39:20 +0100 Subject: [PATCH 12/15] Temporary Debug info --- .../Protocol/Message/ChatParser.cs | 37 ++++++++++++++----- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 3e47d72600..3bdaf4be56 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -452,11 +452,20 @@ private static string NbtToString(Dictionary nbt) object[] extras = (object[])value; for (int i = 0; i < extras.Length; i++) { - var extraDict = extras[i] is string - ? new Dictionary() { { "text", (string)extras[i] } } - : (Dictionary)extras[i]; - - extraBuilder.Append(NbtToString(extraDict) + "§r"); + try + { + var extraDict = extras[i] is string + ? new Dictionary() { { "text", (string)extras[i] } } + : (Dictionary)extras[i]; + + extraBuilder.Append(NbtToString(extraDict) + "§r"); + } + catch + { + ConsoleIO.WriteLine("[DEBUG] Full object:" + JsonSerializer.Serialize(extras)); + ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(extras[i])); + throw; + } } } break; @@ -471,11 +480,21 @@ private static string NbtToString(Dictionary nbt) var withs = (object[])withComponent; for (int i = 0; i < withs.Length; i++) { - var withDict = withs[i] is string - ? new Dictionary() { { "text", (string)withs[i] } } - : (Dictionary)withs[i]; + try + { + var withDict = withs[i] is string + ? new Dictionary() { { "text", (string)withs[i] } } + : (Dictionary)withs[i]; - translateString.Add(NbtToString(withDict)); + translateString.Add(NbtToString(withDict)); + } + catch + { + ConsoleIO.WriteLine("[DEBUG] Full object:" + JsonSerializer.Serialize(withs)); + ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(withs[i])); + + throw; + } } } message = TranslateString(translateKey, translateString); From 620e8bf274438ecc1ccf34f58929bbf882cbff1b Mon Sep 17 00:00:00 2001 From: Anon Date: Mon, 26 Feb 2024 23:46:08 +0100 Subject: [PATCH 13/15] More debug info --- MinecraftClient/Protocol/Message/ChatParser.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 3bdaf4be56..fe8ccb735e 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -462,8 +462,10 @@ private static string NbtToString(Dictionary nbt) } catch { - ConsoleIO.WriteLine("[DEBUG] Full object:" + JsonSerializer.Serialize(extras)); + ConsoleIO.WriteLine("[DEBUG] Full NBT object:" + JsonSerializer.Serialize(nbt)); + ConsoleIO.WriteLine("[DEBUG] Full extras object:" + JsonSerializer.Serialize(extras)); ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(extras[i])); + ConsoleIO.WriteLine("[DEBUG] Full string builder so far:" + extraBuilder.ToString()); throw; } } @@ -490,9 +492,10 @@ private static string NbtToString(Dictionary nbt) } catch { - ConsoleIO.WriteLine("[DEBUG] Full object:" + JsonSerializer.Serialize(withs)); + ConsoleIO.WriteLine("[DEBUG] Full NBT object:" + JsonSerializer.Serialize(nbt)); + ConsoleIO.WriteLine("[DEBUG] Full withs object:" + JsonSerializer.Serialize(withs)); ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(withs[i])); - + ConsoleIO.WriteLine("[DEBUG] Full string builder so far:" + extraBuilder.ToString()); throw; } } From bc0781cee9189c00896a89c555e14afaa00ee974 Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 28 Feb 2024 11:48:23 +0100 Subject: [PATCH 14/15] Fixed translations crash --- .../Protocol/Message/ChatParser.cs | 30 +- MinecraftClient/Resources/en_us.json | 12104 ++++++++-------- 2 files changed, 6425 insertions(+), 5709 deletions(-) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index fe8ccb735e..400ba78551 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -450,13 +450,19 @@ private static string NbtToString(Dictionary nbt) case "extra": { object[] extras = (object[])value; - for (int i = 0; i < extras.Length; i++) + for (var i = 0; i < extras.Length; i++) { try { - var extraDict = extras[i] is string - ? new Dictionary() { { "text", (string)extras[i] } } - : (Dictionary)extras[i]; + var extraDict = extras[i] switch + { + int => new Dictionary { { "text", $"{extras[i]}" } }, + string => new Dictionary + { + { "text", (string)extras[i] } + }, + _ => (Dictionary)extras[i] + }; extraBuilder.Append(NbtToString(extraDict) + "§r"); } @@ -480,14 +486,20 @@ private static string NbtToString(Dictionary nbt) if (nbt.TryGetValue("with", out object withComponent)) { var withs = (object[])withComponent; - for (int i = 0; i < withs.Length; i++) + for (var i = 0; i < withs.Length; i++) { try { - var withDict = withs[i] is string - ? new Dictionary() { { "text", (string)withs[i] } } - : (Dictionary)withs[i]; - + var withDict = withs[i] switch + { + int => new Dictionary { { "text", $"{withs[i]}" } }, + string => new Dictionary + { + { "text", (string)withs[i] } + }, + _ => (Dictionary)withs[i] + }; + translateString.Add(NbtToString(withDict)); } catch diff --git a/MinecraftClient/Resources/en_us.json b/MinecraftClient/Resources/en_us.json index 72aa260c24..b6f8bf96db 100644 --- a/MinecraftClient/Resources/en_us.json +++ b/MinecraftClient/Resources/en_us.json @@ -1,5279 +1,2515 @@ { - "language.name": "English", - "language.region": "United States", - "language.code": "en_us", - "narrator.button.accessibility": "Accessibility", - "narrator.button.language": "Language", - "narrator.button.difficulty_lock": "Difficulty lock", - "narrator.button.difficulty_lock.unlocked": "Unlocked", - "narrator.button.difficulty_lock.locked": "Locked", - "narrator.screen.title": "Title Screen", - "narrator.controls.reset": "Reset %s button", - "narrator.controls.bound": "%s is bound to %s", - "narrator.controls.unbound": "%s is not bound", - "narrator.select": "Selected: %s", - "narrator.select.world": "Selected %s, last played: %s, %s, %s, version: %s", - "narrator.loading": "Loading: %s", - "narrator.loading.done": "Done", - "narrator.joining": "Joining", - "narrator.position.screen": "Screen element %s out of %s", - "narrator.screen.usage": "Use mouse cursor or Tab button to select element", - "narrator.position.list": "Selected list row %s out of %s", - "narrator.position.object_list": "Selected row element %s out of %s", - "narration.suggestion.tooltip": "Selected suggestion %d out of %d: %s (%s)", - "narration.suggestion": "Selected suggestion %d out of %d: %s", - "narration.button": "Button: %s", - "narration.button.usage.focused": "Press Enter to activate", - "narration.button.usage.hovered": "Left click to activate", - "narration.cycle_button.usage.focused": "Press Enter to switch to %s", - "narration.cycle_button.usage.hovered": "Left click to switch to %s", - "narration.checkbox": "Checkbox: %s", - "narration.checkbox.usage.focused": "Press Enter to toggle", - "narration.checkbox.usage.hovered": "Left click to toggle", - "narration.recipe": "Recipe for %s", - "narration.recipe.usage": "Left click to select", - "narration.recipe.usage.more": "Right click to show more recipes", - "narration.selection.usage": "Press up and down buttons to move to another entry", - "narration.component_list.usage": "Press Tab to navigate to next element", - "narration.slider.usage.focused": "Press left or right keyboard buttons to change value", - "narration.slider.usage.hovered": "Drag slider to change value", - "narration.edit_box": "Edit box: %s", - "chat_screen.title": "Chat screen", - "chat_screen.usage": "Input message and press Enter to send", - "chat_screen.message": "Message to send: %s", - "gui.done": "Done", - "gui.cancel": "Cancel", - "gui.back": "Back", - "gui.toTitle": "Back to Title Screen", - "gui.toMenu": "Back to Server List", - "gui.up": "Up", - "gui.down": "Down", - "gui.yes": "Yes", - "gui.no": "No", - "gui.none": "None", - "gui.all": "All", - "gui.ok": "Ok", - "gui.proceed": "Proceed", - "gui.acknowledge": "Acknowledge", - "gui.recipebook.moreRecipes": "Right Click for More", - "gui.recipebook.search_hint": "Search...", - "gui.recipebook.toggleRecipes.all": "Showing All", - "gui.recipebook.toggleRecipes.craftable": "Showing Craftable", - "gui.recipebook.toggleRecipes.smeltable": "Showing Smeltable", - "gui.recipebook.toggleRecipes.blastable": "Showing Blastable", - "gui.recipebook.toggleRecipes.smokable": "Showing Smokable", - "gui.socialInteractions.title": "Social Interactions", - "gui.socialInteractions.tab_all": "All", - "gui.socialInteractions.tab_hidden": "Hidden", - "gui.socialInteractions.tab_blocked": "Blocked", - "gui.socialInteractions.blocking_hint": "Manage with Microsoft account", - "gui.socialInteractions.status_hidden": "Hidden", - "gui.socialInteractions.status_blocked": "Blocked", - "gui.socialInteractions.status_offline": "Offline", - "gui.socialInteractions.status_hidden_offline": "Hidden - Offline", - "gui.socialInteractions.status_blocked_offline": "Blocked - Offline", - "gui.socialInteractions.server_label.single": "%s - %s player", - "gui.socialInteractions.server_label.multiple": "%s - %s players", - "gui.socialInteractions.search_hint": "Search...", - "gui.socialInteractions.search_empty": "Couldn't find any players with that name", - "gui.socialInteractions.empty_hidden": "No players hidden in chat", - "gui.socialInteractions.empty_blocked": "No blocked players in chat", - "gui.socialInteractions.hide": "Hide in Chat", - "gui.socialInteractions.show": "Show in Chat", - "gui.socialInteractions.report": "Report", - "gui.socialInteractions.hidden_in_chat": "Chat messages from %s will be hidden", - "gui.socialInteractions.shown_in_chat": "Chat messages from %s will be shown", - "gui.socialInteractions.tooltip.hide": "Hide messages", - "gui.socialInteractions.tooltip.show": "Show messages", - "gui.socialInteractions.tooltip.report": "Report player", - "gui.socialInteractions.tooltip.report.disabled": "The reporting service is unavailable", - "gui.socialInteractions.tooltip.report.no_messages": "No reportable messages from player %s", - "gui.socialInteractions.tooltip.report.not_reportable": "This player can't be reported, because their chat messages can't be verified on this server", - "gui.socialInteractions.narration.hide": "Hide messages from %s", - "gui.socialInteractions.narration.show": "Show messages from %s", - "gui.socialInteractions.narration.report": "Report player %s", - "gui.narrate.button": "%s button", - "gui.narrate.slider": "%s slider", - "gui.narrate.editBox": "%s edit box: %s", - "gui.chatReport.title": "Report Player", - "gui.chatReport.send": "Send Report", - "gui.chatReport.send.comments_too_long": "Please shorten the comment", - "gui.chatReport.send.no_reason": "Please select a report category", - "gui.chatReport.send.no_reported_messages": "Please select at least one chat message to report", - "gui.chatReport.send.too_many_messages": "Trying to include too many messages in the report", - "gui.chatReport.observed_what": "Why are you reporting this?", - "gui.chatReport.select_reason": "Select Report Category", - "gui.chatReport.more_comments": "Please describe what happened:", - "gui.chatReport.describe": "Sharing details will help us make a well-informed decision.", - "gui.chatReport.comments": "Comments", - "gui.chatReport.read_info": "Learn About Reporting", - "gui.chatReport.select_chat": "Select Chat Messages to Report", - "gui.chatReport.selected_chat": "%s Chat Message(s) Selected to Report", - "gui.chatReport.report_sent_msg": "We’ve successfully received your report. Thank you!\n\nOur team will review it as soon as possible.", - "gui.chatReport.discard.title": "Discard report and comments?", - "gui.chatReport.discard.content": "If you leave, you'll lose this report and your comments.\nAre you sure you want to leave?", - "gui.chatReport.discard.discard": "Leave and Discard Report", - "gui.chatReport.discard.draft": "Save as Draft", - "gui.chatReport.discard.return": "Continue Editing", - "gui.chatReport.draft.title": "Edit draft chat report?", - "gui.chatReport.draft.content": "Would you like to continue editing the existing report or discard it and create a new one?", - "gui.chatReport.draft.quittotitle.title": "You have a draft chat report that will be lost if you quit", - "gui.chatReport.draft.quittotitle.content": "Would you like to continue editing it or discard it?", - "gui.chatReport.draft.discard": "Discard", - "gui.chatReport.draft.edit": "Continue Editing", - "gui.abuseReport.reason.title": "Select Report Category", - "gui.abuseReport.reason.description": "Description:", - "gui.abuseReport.reason.narration": "%s: %s", - "gui.abuseReport.reason.false_reporting": "False Reporting", - "gui.abuseReport.reason.child_sexual_exploitation_or_abuse": "Child sexual exploitation or abuse", - "gui.abuseReport.reason.child_sexual_exploitation_or_abuse.description": "Someone is talking about or otherwise promoting indecent behavior involving children.", - "gui.abuseReport.reason.terrorism_or_violent_extremism": "Terrorism or violent extremism", - "gui.abuseReport.reason.terrorism_or_violent_extremism.description": "Someone is talking about, promoting, or threatening to commit acts of terrorism or violent extremism for political, religious, ideological, or other reasons.", - "gui.abuseReport.reason.hate_speech": "Hate speech", - "gui.abuseReport.reason.hate_speech.description": "Someone is attacking you or another player based on characteristics of their identity, like religion, race, or sexuality.", - "gui.abuseReport.reason.harassment_or_bullying": "Harassment or bullying", - "gui.abuseReport.reason.harassment_or_bullying.description": "Someone is shaming, attacking, or bullying you or someone else. This includes when someone is repeatedly trying to contact you or someone else without consent or posting private personal information about you or someone else without consent (\"doxing\").", - "gui.abuseReport.reason.imminent_harm": "Imminent harm - Threat to harm others", - "gui.abuseReport.reason.imminent_harm.description": "Someone is threatening to harm you or someone else in real life.", - "gui.abuseReport.reason.defamation_impersonation_false_information": "Defamation, impersonation, or false information", - "gui.abuseReport.reason.defamation_impersonation_false_information.description": "Someone is damaging someone else's reputation, pretending to be someone they're not, or sharing false information with the aim to exploit or mislead others.", - "gui.abuseReport.reason.self_harm_or_suicide": "Imminent harm - Self-harm or suicide", - "gui.abuseReport.reason.self_harm_or_suicide.description": "Someone is threatening to harm themselves in real life or talking about harming themselves in real life.", - "gui.abuseReport.reason.alcohol_tobacco_drugs": "Drugs or alcohol", - "gui.abuseReport.reason.alcohol_tobacco_drugs.description": "Someone is encouraging others to partake in illegal drug related activities or encouraging underage drinking.", - "gui.abuseReport.reason.non_consensual_intimate_imagery": "Non-consensual intimate imagery", - "gui.abuseReport.reason.non_consensual_intimate_imagery.description": "Someone is talking about, sharing, or otherwise promoting private and intimate images.", - "gui.abuseReport.sending.title": "Sending your report...", - "gui.abuseReport.sent.title": "Report sent", - "gui.abuseReport.error.title": "Problem sending your report", - "gui.abuseReport.send.generic_error": "Encountered an unexpected error while sending your report.", - "gui.abuseReport.send.error_message": "An error was returned while sending your report:\n'%s'", - "gui.abuseReport.send.service_unavailable": "Unable to reach the Abuse Reporting service. Please make sure you are connected to the internet and try again.", - "gui.abuseReport.send.http_error": "An unexpected HTTP error occurred while sending your report.", - "gui.abuseReport.send.json_error": "Encountered malformed payload while sending your report.", - "gui.chatSelection.title": "Select Chat Messages to Report", - "gui.chatSelection.context": "Messages surrounding this selection will be included to provide additional context", - "gui.chatSelection.selected": "%s/%s message(s) selected", - "gui.chatSelection.heading": "%s %s", - "gui.chatSelection.message.narrate": "%s said: %s at %s", - "gui.chatSelection.fold": "%s message(s) hidden", - "gui.chatSelection.join": "%s joined the chat", - "gui.multiLineEditBox.character_limit": "%s/%s", - "gui.banned.title.temporary": "Account temporarily suspended", - "gui.banned.title.permanent": "Account permanently banned", - "gui.banned.description": "%s\n\n%s\n\nLearn more at the following link: %s", - "gui.banned.description.reason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified it as %s, which goes against the Minecraft Community Standards.", - "gui.banned.description.reason_id": "Code: %s", - "gui.banned.description.reason_id_message": "Code: %s - %s", - "gui.banned.description.unknownreason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified that it goes against the Minecraft Community Standards.", - "gui.banned.description.temporary.duration": "Your account is temporarily suspended and will be reactivated in %s.", - "gui.banned.description.temporary": "%s Until then, you can’t play online or join Realms.", - "gui.banned.description.permanent": "Your account is permanently banned, which means you can’t play online or join Realms.", - "translation.test.none": "Hello, world!", - "translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!", - "translation.test.escape": "%%s %%%s %%%%s %%%%%s", - "translation.test.invalid": "hi %", - "translation.test.invalid2": "hi % s", - "translation.test.args": "%s %s", - "translation.test.world": "world", - "menu.game": "Game Menu", - "menu.singleplayer": "Singleplayer", - "menu.multiplayer": "Multiplayer", - "menu.online": "Minecraft Realms", - "menu.options": "Options...", - "menu.quit": "Quit Game", - "menu.returnToMenu": "Save and Quit to Title", - "menu.disconnect": "Disconnect", - "menu.returnToGame": "Back to Game", - "menu.generatingLevel": "Generating world", - "menu.loadingLevel": "Loading world", - "menu.savingLevel": "Saving world", - "menu.working": "Working...", - "menu.savingChunks": "Saving chunks", - "menu.preparingSpawn": "Preparing spawn area: %s%%", - "menu.loadingForcedChunks": "Loading forced chunks for dimension %s", - "menu.generatingTerrain": "Building terrain", - "menu.convertingLevel": "Converting world", - "menu.respawning": "Respawning", - "menu.shareToLan": "Open to LAN", - "menu.sendFeedback": "Give Feedback", - "menu.reportBugs": "Report Bugs", - "menu.playerReporting": "Player Reporting", - "menu.paused": "Game Paused", - "menu.modded": " (Modded)", - "optimizeWorld.confirm.title": "Optimize World", - "optimizeWorld.confirm.description": "This will attempt to optimize your world by making sure all data is stored in the most recent game format. This can take a very long time, depending on your world. Once done, your world may play faster but will no longer be compatible with older versions of the game. Are you sure you wish to proceed?", - "optimizeWorld.title": "Optimizing World '%s'", - "optimizeWorld.stage.counting": "Counting chunks...", - "optimizeWorld.stage.upgrading": "Upgrading all chunks...", - "optimizeWorld.stage.finished": "Finishing up...", - "optimizeWorld.stage.failed": "Failed! :(", - "optimizeWorld.info.converted": "Upgraded chunks: %s", - "optimizeWorld.info.skipped": "Skipped chunks: %s", - "optimizeWorld.info.total": "Total chunks: %s", - "selectWorld.title": "Select World", - "selectWorld.search": "search for worlds", - "selectWorld.world": "World", - "selectWorld.select": "Play Selected World", - "selectWorld.create": "Create New World", - "selectWorld.recreate": "Re-Create", - "selectWorld.createDemo": "Play New Demo World", - "selectWorld.delete": "Delete", - "selectWorld.edit": "Edit", - "selectWorld.edit.title": "Edit World", - "selectWorld.edit.resetIcon": "Reset Icon", - "selectWorld.edit.openFolder": "Open World Folder", - "selectWorld.edit.save": "Save", - "selectWorld.edit.backup": "Make Backup", - "selectWorld.edit.backupFolder": "Open Backups Folder", - "selectWorld.edit.backupFailed": "Backup failed", - "selectWorld.edit.backupCreated": "Backed up: %s", - "selectWorld.edit.backupSize": "size: %s MB", - "selectWorld.edit.optimize": "Optimize World", - "selectWorld.edit.export_worldgen_settings": "Export World Generation Settings", - "selectWorld.edit.export_worldgen_settings.success": "Exported", - "selectWorld.edit.export_worldgen_settings.failure": "Export failed", - "selectWorld.deleteQuestion": "Are you sure you want to delete this world?", - "selectWorld.deleteWarning": "'%s' will be lost forever! (A long time!)", - "selectWorld.deleteButton": "Delete", - "selectWorld.conversion": "Must be converted!", - "selectWorld.conversion.tooltip": "This world must be opened in an older version (like 1.6.4) to be safely converted", - "selectWorld.locked": "Locked by another running instance of Minecraft", - "selectWorld.incompatible_series": "Created by an incompatible version", - "selectWorld.newWorld": "New World", - "selectWorld.enterName": "World Name", - "selectWorld.resultFolder": "Will be saved in:", - "selectWorld.enterSeed": "Seed for the world generator", - "selectWorld.seedInfo": "Leave blank for a random seed", - "selectWorld.cheats": "Cheats", - "selectWorld.experimental": "Experimental", - "selectWorld.customizeType": "Customize", - "selectWorld.version": "Version:", - "selectWorld.versionUnknown": "unknown", - "selectWorld.versionQuestion": "Do you really want to load this world?", - "selectWorld.versionWarning": "This world was last played in version %s and loading it in this version could cause corruption!", - "selectWorld.versionJoinButton": "Load Anyway", - "selectWorld.backupQuestion.snapshot": "Do you really want to load this world?", - "selectWorld.backupWarning.snapshot": "This world was last played in version %s; you are on version %s. Please make a backup in case you experience world corruptions!", - "selectWorld.backupQuestion.downgrade": "Downgrading a world is not supported", - "selectWorld.backupWarning.downgrade": "This world was last played in version %s; you are on version %s. Downgrading a world could cause corruption - we cannot guarantee that it will load or work. If you still want to continue, please make a backup!", - "selectWorld.backupQuestion.customized": "Customized worlds are no longer supported", - "selectWorld.backupWarning.customized": "Unfortunately, we do not support customized worlds in this version of Minecraft. We can still load this world and keep everything the way it was, but any newly generated terrain will no longer be customized. We're sorry for the inconvenience!", - "selectWorld.backupQuestion.experimental": "Worlds using Experimental Settings are not supported", - "selectWorld.backupWarning.experimental": "This world uses experimental settings that could stop working at any time. We cannot guarantee it will load or work. Here be dragons!", - "selectWorld.backupEraseCache": "Erase Cached Data", - "selectWorld.backupJoinConfirmButton": "Create Backup and Load", - "selectWorld.backupJoinSkipButton": "I know what I'm doing!", - "selectWorld.tooltip.fromNewerVersion1": "World was saved in a newer version,", - "selectWorld.tooltip.fromNewerVersion2": "loading this world could cause problems!", - "selectWorld.tooltip.snapshot1": "Don't forget to back up this world", - "selectWorld.tooltip.snapshot2": "before you load it in this snapshot.", - "selectWorld.unable_to_load": "Unable to load worlds", - "selectWorld.futureworld.error.title": "An error occurred!", - "selectWorld.futureworld.error.text": "Something went wrong while trying to load a world from a future version. This was a risky operation to begin with; sorry it didn't work.", - "selectWorld.recreate.error.title": "An error occurred!", - "selectWorld.recreate.error.text": "Something went wrong while trying to recreate a world.", - "selectWorld.recreate.customized.title": "Customized worlds are no longer supported", - "selectWorld.recreate.customized.text": "Customized worlds are no longer supported in this version of Minecraft. We can try to recreate it with the same seed and properties, but any terrain customizations will be lost. We're sorry for the inconvenience!", - "selectWorld.load_folder_access": "Unable to read or access folder where game worlds are saved!", - "selectWorld.access_failure": "Failed to access world", - "selectWorld.delete_failure": "Failed to delete world", - "selectWorld.data_read": "Reading world data...", - "selectWorld.loading_list": "Loading world list", - "createWorld.customize.presets": "Presets", - "createWorld.customize.presets.title": "Select a Preset", - "createWorld.customize.presets.select": "Use Preset", - "createWorld.customize.presets.share": "Want to share your preset with someone? Use the box below!", - "createWorld.customize.presets.list": "Alternatively, here's some we made earlier!", - "createWorld.customize.flat.title": "Superflat Customization", - "createWorld.customize.flat.tile": "Layer Material", - "createWorld.customize.flat.height": "Height", - "createWorld.customize.flat.removeLayer": "Remove Layer", - "createWorld.customize.flat.layer.top": "Top - %s", - "createWorld.customize.flat.layer": "%s", - "createWorld.customize.flat.layer.bottom": "Bottom - %s", - "createWorld.customize.buffet.title": "Buffet world customization", - "createWorld.customize.buffet.biome": "Please select a biome", - "flat_world_preset.unknown": "???", - "flat_world_preset.minecraft.classic_flat": "Classic Flat", - "flat_world_preset.minecraft.tunnelers_dream": "Tunnelers' Dream", - "flat_world_preset.minecraft.water_world": "Water World", - "flat_world_preset.minecraft.overworld": "Overworld", - "flat_world_preset.minecraft.snowy_kingdom": "Snowy Kingdom", - "flat_world_preset.minecraft.bottomless_pit": "Bottomless Pit", - "flat_world_preset.minecraft.desert": "Desert", - "flat_world_preset.minecraft.redstone_ready": "Redstone Ready", - "flat_world_preset.minecraft.the_void": "The Void", - "createWorld.customize.custom.page0": "Basic Settings", - "createWorld.customize.custom.page1": "Ore Settings", - "createWorld.customize.custom.page2": "Advanced Settings (Expert Users Only!)", - "createWorld.customize.custom.page3": "Extra Advanced Settings (Expert Users Only!)", - "createWorld.customize.custom.randomize": "Randomize", - "createWorld.customize.custom.prev": "Previous Page", - "createWorld.customize.custom.next": "Next Page", - "createWorld.customize.custom.defaults": "Defaults", - "createWorld.customize.custom.confirm1": "This will overwrite your current", - "createWorld.customize.custom.confirm2": "settings and cannot be undone.", - "createWorld.customize.custom.confirmTitle": "Warning!", - "createWorld.customize.custom.mainNoiseScaleX": "Main Noise Scale X", - "createWorld.customize.custom.mainNoiseScaleY": "Main Noise Scale Y", - "createWorld.customize.custom.mainNoiseScaleZ": "Main Noise Scale Z", - "createWorld.customize.custom.depthNoiseScaleX": "Depth Noise Scale X", - "createWorld.customize.custom.depthNoiseScaleZ": "Depth Noise Scale Z", - "createWorld.customize.custom.depthNoiseScaleExponent": "Depth Noise Exponent", - "createWorld.customize.custom.baseSize": "Depth Base Size", - "createWorld.customize.custom.coordinateScale": "Coordinate Scale", - "createWorld.customize.custom.heightScale": "Height Scale", - "createWorld.customize.custom.stretchY": "Height Stretch", - "createWorld.customize.custom.upperLimitScale": "Upper Limit Scale", - "createWorld.customize.custom.lowerLimitScale": "Lower Limit Scale", - "createWorld.customize.custom.biomeDepthWeight": "Biome Depth Weight", - "createWorld.customize.custom.biomeDepthOffset": "Biome Depth Offset", - "createWorld.customize.custom.biomeScaleWeight": "Biome Scale Weight", - "createWorld.customize.custom.biomeScaleOffset": "Biome Scale Offset", - "createWorld.customize.custom.seaLevel": "Sea Level", - "createWorld.customize.custom.useCaves": "Caves", - "createWorld.customize.custom.useStrongholds": "Strongholds", - "createWorld.customize.custom.useVillages": "Villages", - "createWorld.customize.custom.useMineShafts": "Mineshafts", - "createWorld.customize.custom.useTemples": "Temples", - "createWorld.customize.custom.useOceanRuins": "Ocean Ruins", - "createWorld.customize.custom.useMonuments": "Ocean Monuments", - "createWorld.customize.custom.useMansions": "Woodland Mansions", - "createWorld.customize.custom.useRavines": "Ravines", - "createWorld.customize.custom.useDungeons": "Dungeons", - "createWorld.customize.custom.dungeonChance": "Dungeon Count", - "createWorld.customize.custom.useWaterLakes": "Water Lakes", - "createWorld.customize.custom.waterLakeChance": "Water Lake Rarity", - "createWorld.customize.custom.useLavaLakes": "Lava Lakes", - "createWorld.customize.custom.lavaLakeChance": "Lava Lake Rarity", - "createWorld.customize.custom.useLavaOceans": "Lava Oceans", - "createWorld.customize.custom.fixedBiome": "Biome", - "createWorld.customize.custom.biomeSize": "Biome Size", - "createWorld.customize.custom.riverSize": "River Size", - "createWorld.customize.custom.size": "Spawn Size", - "createWorld.customize.custom.count": "Spawn Tries", - "createWorld.customize.custom.minHeight": "Min. Height", - "createWorld.customize.custom.maxHeight": "Max. Height", - "createWorld.customize.custom.center": "Center Height", - "createWorld.customize.custom.spread": "Spread Height", - "createWorld.customize.custom.presets.title": "Customize World Presets", - "createWorld.customize.custom.presets": "Presets", - "createWorld.customize.custom.preset.waterWorld": "Water World", - "createWorld.customize.custom.preset.isleLand": "Isle Land", - "createWorld.customize.custom.preset.caveDelight": "Caver's Delight", - "createWorld.customize.custom.preset.mountains": "Mountain Madness", - "createWorld.customize.custom.preset.drought": "Drought", - "createWorld.customize.custom.preset.caveChaos": "Caves of Chaos", - "createWorld.customize.custom.preset.goodLuck": "Good Luck", - "createWorld.preparing": "Preparing for world creation...", - "datapackFailure.title": "Errors in currently selected datapacks prevented the world from loading.\nYou can either try to load it with only the vanilla data pack (\"safe mode\"), or go back to the title screen and fix it manually.", - "datapackFailure.safeMode": "Safe Mode", - "editGamerule.title": "Edit Game Rules", - "editGamerule.default": "Default: %s", - "gameMode.survival": "Survival Mode", - "gameMode.creative": "Creative Mode", - "gameMode.adventure": "Adventure Mode", - "gameMode.spectator": "Spectator Mode", - "gameMode.hardcore": "Hardcore Mode!", - "gameMode.changed": "Your game mode has been updated to %s", - "spectatorMenu.previous_page": "Previous Page", - "spectatorMenu.next_page": "Next Page", - "spectatorMenu.close": "Close Menu", - "spectatorMenu.teleport": "Teleport to Player", - "spectatorMenu.teleport.prompt": "Select a player to teleport to", - "spectatorMenu.team_teleport": "Teleport to Team Member", - "spectatorMenu.team_teleport.prompt": "Select a team to teleport to", - "spectatorMenu.root.prompt": "Press a key to select a command, and again to use it.", - "selectWorld.gameMode": "Game Mode", - "selectWorld.gameMode.survival": "Survival", - "selectWorld.gameMode.survival.line1": "Search for resources, craft, gain", - "selectWorld.gameMode.survival.line2": "levels, health and hunger", - "selectWorld.gameMode.creative": "Creative", - "selectWorld.gameMode.creative.line1": "Unlimited resources, free flying and", - "selectWorld.gameMode.creative.line2": "destroy blocks instantly", - "selectWorld.gameMode.spectator": "Spectator", - "selectWorld.gameMode.spectator.line1": "You can look but don't touch", - "selectWorld.gameMode.spectator.line2": "", - "selectWorld.gameMode.hardcore": "Hardcore", - "selectWorld.gameMode.hardcore.line1": "Same as Survival Mode, locked at hardest", - "selectWorld.gameMode.hardcore.line2": "difficulty, and one life only", - "selectWorld.gameMode.adventure": "Adventure", - "selectWorld.gameMode.adventure.line1": "Same as Survival Mode, but blocks can't", - "selectWorld.gameMode.adventure.line2": "be added or removed", - "selectWorld.moreWorldOptions": "More World Options...", - "selectWorld.gameRules": "Game Rules", - "selectWorld.mapFeatures": "Generate Structures", - "selectWorld.mapFeatures.info": "Villages, dungeons etc.", - "selectWorld.mapType": "World Type", - "selectWorld.mapType.normal": "Normal", - "selectWorld.allowCommands": "Allow Cheats", - "selectWorld.allowCommands.info": "Commands like /gamemode, /experience", - "selectWorld.dataPacks": "Data Packs", - "selectWorld.bonusItems": "Bonus Chest", - "selectWorld.import_worldgen_settings": "Import Settings", - "selectWorld.import_worldgen_settings.select_file": "Select settings file (.json)", - "selectWorld.import_worldgen_settings.failure": "Error importing settings", - "selectWorld.warning.experimental.title": "Warning! These settings are using experimental features", - "selectWorld.warning.experimental.question": "These settings are experimental and could one day stop working. Do you wish to proceed?", - "selectWorld.warning.deprecated.title": "Warning! These settings are using deprecated features", - "selectWorld.warning.deprecated.question": "Some features used are deprecated and will stop working in the future. Do you wish to proceed?", - "selectWorld.experimental.title": "Experimental Features Warning", - "selectWorld.experimental.message": "Be careful!\nSome of the selected packs require features that are still under development. Your world might crash, break or not work with future updates.", - "selectWorld.experimental.details": "Details", - "selectWorld.experimental.details.title": "Experimental feature requirements", - "selectWorld.experimental.details.entry": "Required experimental features: %s", - "generator.custom": "Custom", - "generator.minecraft.normal": "Default", - "generator.minecraft.flat": "Superflat", - "generator.minecraft.large_biomes": "Large Biomes", - "generator.minecraft.amplified": "AMPLIFIED", - "generator.minecraft.amplified.info": "Notice: Just for fun! Requires a beefy computer.", - "generator.minecraft.debug_all_block_states": "Debug Mode", - "generator.minecraft.single_biome_surface": "Single Biome", - "generator.customized": "Old Customized", - "generator.single_biome_caves": "Caves", - "generator.single_biome_floating_islands": "Floating Islands", - "selectServer.title": "Select Server", - "selectServer.select": "Join Server", - "selectServer.direct": "Direct Connection", - "selectServer.edit": "Edit", - "selectServer.delete": "Delete", - "selectServer.add": "Add Server", - "selectServer.defaultName": "Minecraft Server", - "selectServer.deleteQuestion": "Are you sure you want to remove this server?", - "selectServer.deleteWarning": "'%s' will be lost forever! (A long time!)", - "selectServer.deleteButton": "Delete", - "selectServer.refresh": "Refresh", - "selectServer.hiddenAddress": "(Hidden)", - "addServer.title": "Edit Server Info", - "addServer.enterName": "Server Name", - "addServer.enterIp": "Server Address", - "addServer.add": "Done", - "addServer.hideAddress": "Hide Address", - "addServer.resourcePack": "Server Resource Packs", - "addServer.resourcePack.enabled": "Enabled", - "addServer.resourcePack.disabled": "Disabled", - "addServer.resourcePack.prompt": "Prompt", - "lanServer.title": "LAN World", - "lanServer.scanning": "Scanning for games on your local network", - "lanServer.start": "Start LAN World", - "lanServer.otherPlayers": "Settings for Other Players", - "lanServer.port": "Port Number", - "lanServer.port.unavailable": "Port not available.\nLeave the edit box empty or enter a different number between 1024 and 65535.", - "lanServer.port.unavailable.new": "Port not available.\nLeave the edit box empty or enter a different number between %s and %s.", - "lanServer.port.invalid": "Not a valid port.\nLeave the edit box empty or enter a number between 1024 and 65535.", - "lanServer.port.invalid.new": "Not a valid port.\nLeave the edit box empty or enter a number between %s and %s.", - "multiplayerWarning.header": "Caution: Third-Party Online Play", - "multiplayerWarning.message": "Caution: Online play is offered by third-party servers that are not owned, operated, or supervised by Mojang Studios or Microsoft. During online play, you may be exposed to unmoderated chat messages or other types of user-generated content that may not be suitable for everyone.", - "multiplayerWarning.check": "Do not show this screen again", - "multiplayer.title": "Play Multiplayer", - "multiplayer.texturePrompt.line1": "This server recommends the use of a custom resource pack.", - "multiplayer.texturePrompt.line2": "Would you like to download and install it automagically?", - "multiplayer.requiredTexturePrompt.line1": "This server requires the use of a custom resource pack.", - "multiplayer.requiredTexturePrompt.line2": "Rejecting this custom resource pack will disconnect you from this server.", - "multiplayer.requiredTexturePrompt.disconnect": "Server requires a custom resource pack", - "multiplayer.texturePrompt.failure.line1": "Server resource pack couldn't be applied", - "multiplayer.texturePrompt.failure.line2": "Any functionality that requires custom resources might not work as expected", - "multiplayer.texturePrompt.serverPrompt": "%s\n\nMessage from server:\n%s", - "multiplayer.applyingPack": "Applying resource pack", - "multiplayer.downloadingTerrain": "Loading terrain...", - "multiplayer.downloadingStats": "Retrieving statistics...", - "multiplayer.stopSleeping": "Leave Bed", - "multiplayer.message_not_delivered": "Can't deliver chat message, check server logs: %s", - "multiplayer.player.joined": "%s joined the game", - "multiplayer.player.joined.renamed": "%s (formerly known as %s) joined the game", - "multiplayer.player.left": "%s left the game", - "multiplayer.status.and_more": "... and %s more ...", - "multiplayer.status.cancelled": "Cancelled", - "multiplayer.status.cannot_connect": "Can't connect to server", - "multiplayer.status.cannot_resolve": "Can't resolve hostname", - "multiplayer.status.finished": "Finished", - "multiplayer.status.incompatible": "Incompatible version!", - "multiplayer.status.no_connection": "(no connection)", - "multiplayer.status.ping": "%s ms", - "multiplayer.status.old": "Old", - "multiplayer.status.pinging": "Pinging...", - "multiplayer.status.quitting": "Quitting", - "multiplayer.status.unknown": "???", - "multiplayer.status.unrequested": "Received unrequested status", - "multiplayer.status.request_handled": "Status request has been handled", - "multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!", - "multiplayer.disconnect.banned": "You are banned from this server", - "multiplayer.disconnect.banned.reason": "You are banned from this server.\nReason: %s", - "multiplayer.disconnect.banned.expiration": "\nYour ban will be removed on %s", - "multiplayer.disconnect.banned_ip.reason": "Your IP address is banned from this server.\nReason: %s", - "multiplayer.disconnect.banned_ip.expiration": "\nYour ban will be removed on %s", - "multiplayer.disconnect.duplicate_login": "You logged in from another location", - "multiplayer.disconnect.flying": "Flying is not enabled on this server", - "multiplayer.disconnect.generic": "Disconnected", - "multiplayer.disconnect.idling": "You have been idle for too long!", - "multiplayer.disconnect.illegal_characters": "Illegal characters in chat", - "multiplayer.disconnect.invalid_entity_attacked": "Attempting to attack an invalid entity", - "multiplayer.disconnect.invalid_packet": "Server sent an invalid packet", - "multiplayer.disconnect.invalid_player_data": "Invalid player data", - "multiplayer.disconnect.invalid_player_movement": "Invalid move player packet received", - "multiplayer.disconnect.invalid_vehicle_movement": "Invalid move vehicle packet received", - "multiplayer.disconnect.ip_banned": "You have been IP banned from this server", - "multiplayer.disconnect.kicked": "Kicked by an operator", - "multiplayer.disconnect.incompatible": "Incompatible client! Please use %s", - "multiplayer.disconnect.outdated_client": "Incompatible client! Please use %s", - "multiplayer.disconnect.outdated_server": "Incompatible client! Please use %s", - "multiplayer.disconnect.server_shutdown": "Server closed", - "multiplayer.disconnect.slow_login": "Took too long to log in", - "multiplayer.disconnect.unverified_username": "Failed to verify username!", - "multiplayer.disconnect.not_whitelisted": "You are not white-listed on this server!", - "multiplayer.disconnect.server_full": "The server is full!", - "multiplayer.disconnect.name_taken": "That name is already taken", - "multiplayer.disconnect.unexpected_query_response": "Unexpected custom data from client", - "multiplayer.disconnect.missing_tags": "Incomplete set of tags received from server.\nPlease contact server operator.", - "multiplayer.disconnect.expired_public_key": "Expired profile public key. Check that your system time is synchronized, and try restarting your game.", - "multiplayer.disconnect.invalid_public_key_signature": "Invalid signature for profile public key.\nTry restarting your game.", - "multiplayer.disconnect.out_of_order_chat": "Out-of-order chat packet received. Did your system time change?", - "multiplayer.disconnect.unsigned_chat": "Received chat packet with missing or invalid signature.", - "multiplayer.disconnect.too_many_pending_chats": "Too many unacknowledged chat messages", - "multiplayer.disconnect.chat_validation_failed": "Chat message validation failure", - "multiplayer.socialInteractions.not_available": "Social Interactions are only available in Multiplayer worlds", - "multiplayer.unsecureserver.toast.title": "Chat messages can't be verified", - "multiplayer.unsecureserver.toast": "Messages sent on this server may be modified and might not reflect the original message", - "chat.editBox": "chat", - "chat.cannotSend": "Cannot send chat message", - "chat.disabled.options": "Chat disabled in client options", - "chat.disabled.launcher": "Chat disabled by launcher option. Cannot send message", - "chat.disabled.profile": "Chat not allowed by account settings. Press '%s' again for more information", - "chat.disabled.profile.moreInfo": "Chat not allowed by account settings. Cannot send or view messages.", - "chat.disabled.expiredProfileKey": "Chat disabled due to expired profile public key. Please try reconnecting.", - "chat.disabled.chain_broken": "Chat disabled due to broken chain. Please try reconnecting.", - "chat.disabled.missingProfileKey": "Chat disabled due to missing profile public key. Please try reconnecting.", - "chat.type.text": "<%s> %s", - "chat.type.text.narrate": "%s says %s", - "chat.type.emote": "* %s %s", - "chat.type.announcement": "[%s] %s", - "chat.type.admin": "[%s: %s]", - "chat.type.advancement.task": "%s has made the advancement %s", - "chat.type.advancement.challenge": "%s has completed the challenge %s", - "chat.type.advancement.goal": "%s has reached the goal %s", - "chat.type.team.text": "%s <%s> %s", - "chat.type.team.sent": "-> %s <%s> %s", - "chat.type.team.hover": "Message Team", - "chat.link.confirm": "Are you sure you want to open the following website?", - "chat.link.warning": "Never open links from people that you don't trust!", - "chat.copy": "Copy to Clipboard", - "chat.copy.click": "Click to Copy to Clipboard", - "chat.link.confirmTrusted": "Do you want to open this link or copy it to your clipboard?", - "chat.link.open": "Open in Browser", - "chat.coordinates": "%s, %s, %s", - "chat.coordinates.tooltip": "Click to teleport", - "chat.queue": "[+%s pending lines]", - "chat.square_brackets": "[%s]", - "chat.tag.system": "Server message. Cannot be reported.", - "chat.tag.system_single_player": "Server message.", - "chat.tag.not_secure": "Unverified message. Cannot be reported.", - "chat.tag.modified": "Message modified by the server. Original:", - "chat.filtered_full": "The server has hidden your message for some players.", - "chat.filtered": "Filtered by the server.", - "chat.deleted_marker": "This chat message has been deleted by the server.", - "menu.playdemo": "Play Demo World", - "menu.resetdemo": "Reset Demo World", - "demo.day.1": "This demo will last five game days. Do your best!", - "demo.day.2": "Day Two", - "demo.day.3": "Day Three", - "demo.day.4": "Day Four", - "demo.day.5": "This is your last day!", - "demo.day.warning": "Your time is almost up!", - "demo.day.6": "You have passed your fifth day. Use %s to save a screenshot of your creation.", - "demo.reminder": "The demo time has expired. Buy the game to continue or start a new world!", - "demo.remainingTime": "Remaining time: %s", - "demo.demoExpired": "Demo time's up!", - "demo.help.movement": "Use the %1$s, %2$s, %3$s, %4$s keys and the mouse to move around", - "demo.help.movementShort": "Move by pressing the %1$s, %2$s, %3$s, %4$s keys", - "demo.help.movementMouse": "Look around using the mouse", - "demo.help.jump": "Jump by pressing the %1$s key", - "demo.help.inventory": "Use the %1$s key to open your inventory", - "demo.help.title": "Minecraft Demo Mode", - "demo.help.fullWrapped": "This demo will last 5 in-game days (about 1 hour and 40 minutes of real time). Check the advancements for hints! Have fun!", - "demo.help.buy": "Purchase Now!", - "demo.help.later": "Continue Playing!", - "connect.connecting": "Connecting to the server...", - "connect.aborted": "Aborted", - "connect.authorizing": "Logging in...", - "connect.negotiating": "Negotiating...", - "connect.encrypting": "Encrypting...", - "connect.joining": "Joining world...", - "connect.failed": "Failed to connect to the server", - "disconnect.genericReason": "%s", - "disconnect.unknownHost": "Unknown host", - "disconnect.disconnected": "Disconnected by Server", - "disconnect.lost": "Connection Lost", - "disconnect.kicked": "Was kicked from the game", - "disconnect.timeout": "Timed out", - "disconnect.closed": "Connection closed", - "disconnect.loginFailed": "Failed to log in", - "disconnect.loginFailedInfo": "Failed to log in: %s", - "disconnect.loginFailedInfo.serversUnavailable": "The authentication servers are currently not reachable. Please try again.", - "disconnect.loginFailedInfo.invalidSession": "Invalid session (Try restarting your game and the launcher)", - "disconnect.loginFailedInfo.insufficientPrivileges": "Multiplayer is disabled. Please check your Microsoft account settings.", - "disconnect.loginFailedInfo.userBanned": "You are banned from playing online", - "disconnect.quitting": "Quitting", - "disconnect.endOfStream": "End of stream", - "disconnect.overflow": "Buffer overflow", - "disconnect.spam": "Kicked for spamming", - "disconnect.exceeded_packet_rate": "Kicked for exceeding packet rate limit", - "soundCategory.master": "Master Volume", - "soundCategory.music": "Music", - "soundCategory.record": "Jukebox/Note Blocks", - "soundCategory.weather": "Weather", - "soundCategory.hostile": "Hostile Creatures", - "soundCategory.neutral": "Friendly Creatures", - "soundCategory.player": "Players", - "soundCategory.block": "Blocks", - "soundCategory.ambient": "Ambient/Environment", - "soundCategory.voice": "Voice/Speech", - "record.nowPlaying": "Now Playing: %s", - "options.off": "OFF", - "options.on": "ON", - "options.off.composed": "%s: OFF", - "options.on.composed": "%s: ON", - "options.generic_value": "%s: %s", - "options.pixel_value": "%s: %spx", - "options.percent_value": "%s: %s%%", - "options.percent_add_value": "%s: +%s%%", - "options.visible": "Shown", - "options.hidden": "Hidden", - "options.title": "Options", - "options.controls": "Controls...", - "options.video": "Video Settings...", - "options.language": "Language...", - "options.sounds": "Music & Sounds...", - "options.sounds.title": "Music & Sound Options", - "options.languageWarning": "Language translations may not be 100%% accurate", - "options.videoTitle": "Video Settings", - "options.mouse_settings": "Mouse Settings...", - "options.mouse_settings.title": "Mouse Settings", - "options.customizeTitle": "Customize World Settings", - "options.invertMouse": "Invert Mouse", - "options.fov": "FOV", - "options.fov.min": "Normal", - "options.fov.max": "Quake Pro", - "options.screenEffectScale": "Distortion Effects", - "options.screenEffectScale.tooltip": "Strength of nausea and Nether portal screen distortion effects.\nAt lower values, the nausea effect is replaced with a green overlay.", - "options.fovEffectScale": "FOV Effects", - "options.fovEffectScale.tooltip": "Controls how much the field of view can change with gameplay effects.", - "options.darknessEffectScale": "Darkness Pulsing", - "options.darknessEffectScale.tooltip": "Controls how much the Darkness effect pulses when a Warden or Sculk Shrieker gives it to you.", - "options.biomeBlendRadius": "Biome Blend", - "options.biomeBlendRadius.1": "OFF (Fastest)", - "options.biomeBlendRadius.3": "3x3 (Fast)", - "options.biomeBlendRadius.5": "5x5 (Normal)", - "options.biomeBlendRadius.7": "7x7 (High)", - "options.biomeBlendRadius.9": "9x9 (Very High)", - "options.biomeBlendRadius.11": "11x11 (Extreme)", - "options.biomeBlendRadius.13": "13x13 (Showoff)", - "options.biomeBlendRadius.15": "15x15 (Maximum)", - "options.gamma": "Brightness", - "options.gamma.min": "Moody", - "options.gamma.default": "Default", - "options.gamma.max": "Bright", - "options.sensitivity": "Sensitivity", - "options.sensitivity.min": "*yawn*", - "options.sensitivity.max": "HYPERSPEED!!!", - "options.renderDistance": "Render Distance", - "options.simulationDistance": "Simulation Distance", - "options.entityDistanceScaling": "Entity Distance", - "options.viewBobbing": "View Bobbing", - "options.ao": "Smooth Lighting", - "options.ao.off": "OFF", - "options.ao.min": "Minimum", - "options.ao.max": "Maximum", - "options.prioritizeChunkUpdates": "Chunk Builder", - "options.prioritizeChunkUpdates.none": "Threaded", - "options.prioritizeChunkUpdates.byPlayer": "Semi Blocking", - "options.prioritizeChunkUpdates.nearby": "Fully Blocking", - "options.prioritizeChunkUpdates.none.tooltip": "Nearby chunks are compiled in parallel threads. This may result in brief visual holes when blocks are destroyed.", - "options.prioritizeChunkUpdates.byPlayer.tooltip": "Some actions within a chunk will recompile the chunk immediately. This includes block placing & destroying.", - "options.prioritizeChunkUpdates.nearby.tooltip": "Nearby chunks are always compiled immediately. This may impact game performance when blocks are placed or destroyed.", - "options.chunks": "%s chunks", - "options.framerate": "%s fps", - "options.framerateLimit": "Max Framerate", - "options.framerateLimit.max": "Unlimited", - "options.difficulty": "Difficulty", - "options.difficulty.online": "Server Difficulty", - "options.difficulty.peaceful": "Peaceful", - "options.difficulty.easy": "Easy", - "options.difficulty.normal": "Normal", - "options.difficulty.hard": "Hard", - "options.difficulty.hardcore": "Hardcore", - "options.graphics": "Graphics", - "options.graphics.fabulous.tooltip": "%s graphics uses screen shaders for drawing weather, clouds, and particles behind translucent blocks and water.\nThis may severely impact performance for portable devices and 4K displays.", - "options.graphics.fabulous": "Fabulous!", - "options.graphics.fancy.tooltip": "Fancy graphics balances performance and quality for the majority of machines.\nWeather, clouds, and particles may not appear behind translucent blocks or water.", - "options.graphics.fancy": "Fancy", - "options.graphics.fast.tooltip": "Fast graphics reduces the amount of visible rain and snow.\nTransparency effects are disabled for various blocks such as leaves.", - "options.graphics.fast": "Fast", - "options.graphics.warning.title": "Graphics Device Unsupported", - "options.graphics.warning.message": "Your graphics device is detected as unsupported for the %s graphics option.\n\nYou may ignore this and continue, however support will not be provided for your device if you choose to use %s graphics.", - "options.graphics.warning.renderer": "Renderer detected: [%s]", - "options.graphics.warning.vendor": "Vendor detected: [%s]", - "options.graphics.warning.version": "OpenGL Version detected: [%s]", - "options.graphics.warning.accept": "Continue without Support", - "options.graphics.warning.cancel": "Take me Back", - "options.clouds.fancy": "Fancy", - "options.clouds.fast": "Fast", - "options.guiScale": "GUI Scale", - "options.guiScale.auto": "Auto", - "options.renderClouds": "Clouds", - "options.particles": "Particles", - "options.particles.all": "All", - "options.particles.decreased": "Decreased", - "options.particles.minimal": "Minimal", - "options.multiplayer.title": "Multiplayer Settings...", - "options.chat.title": "Chat Settings...", - "options.chat.visibility": "Chat", - "options.chat.visibility.full": "Shown", - "options.chat.visibility.system": "Commands Only", - "options.chat.visibility.hidden": "Hidden", - "options.chat.color": "Colors", - "options.chat.opacity": "Chat Text Opacity", - "options.chat.line_spacing": "Line Spacing", - "options.chat.links": "Web Links", - "options.chat.links.prompt": "Prompt on Links", - "options.chat.delay_none": "Chat Delay: None", - "options.chat.delay": "Chat Delay: %s seconds", - "options.chat.scale": "Chat Text Size", - "options.chat.width": "Width", - "options.chat.height.focused": "Focused Height", - "options.chat.height.unfocused": "Unfocused Height", - "options.onlyShowSecureChat": "Only Show Secure Chat", - "options.onlyShowSecureChat.tooltip": "Only display messages from other players that can be verified to have been sent by that player, and have not been modified.", - "options.accessibility.title": "Accessibility Settings...", - "options.accessibility.text_background": "Text Background", - "options.accessibility.text_background.chat": "Chat", - "options.accessibility.text_background.everywhere": "Everywhere", - "options.accessibility.text_background_opacity": "Text Background Opacity", - "options.accessibility.panorama_speed": "Panorama Scroll Speed", - "options.accessibility.link": "Accessibility Guide", - "options.telemetry": "Telemetry Data", - "options.telemetry.button": "Data Collection", - "options.telemetry.state.none": "None", - "options.telemetry.state.minimal": "Minimal", - "options.telemetry.state.all": "All", - "options.telemetry.button.tooltip": "\"%s\" includes only the required data.\n\"%s\" includes optional, as well as the required data.", - "options.audioDevice": "Device", - "options.audioDevice.default": "System Default", - "options.key.toggle": "Toggle", - "options.key.hold": "Hold", - "options.skinCustomisation": "Skin Customization...", - "options.skinCustomisation.title": "Skin Customization", - "options.modelPart.cape": "Cape", - "options.modelPart.hat": "Hat", - "options.modelPart.jacket": "Jacket", - "options.modelPart.left_sleeve": "Left Sleeve", - "options.modelPart.right_sleeve": "Right Sleeve", - "options.modelPart.left_pants_leg": "Left Pants Leg", - "options.modelPart.right_pants_leg": "Right Pants Leg", - "options.resourcepack": "Resource Packs...", - "options.fullscreen": "Fullscreen", - "options.vsync": "VSync", - "options.touchscreen": "Touchscreen Mode", - "options.reducedDebugInfo": "Reduced Debug Info", - "options.entityShadows": "Entity Shadows", - "options.mainHand": "Main Hand", - "options.mainHand.left": "Left", - "options.mainHand.right": "Right", - "options.attackIndicator": "Attack Indicator", - "options.attack.crosshair": "Crosshair", - "options.attack.hotbar": "Hotbar", - "options.showSubtitles": "Show Subtitles", - "options.directionalAudio": "Directional Audio", - "options.directionalAudio.on.tooltip": "Uses HRTF-based directional audio to improve the simulation of 3D sound. Requires HRTF compatible audio hardware, and is best experienced with headphones.", - "options.directionalAudio.off.tooltip": "Classic Stereo sound", - "options.online": "Online...", - "options.online.title": "Online Options", - "options.allowServerListing": "Allow Server Listings", - "options.allowServerListing.tooltip": "Servers may list online players as part of their public status.\nWith this option off your name will not show up in such lists.", - "options.realmsNotifications": "Realms Notifications", - "options.autoJump": "Auto-Jump", - "options.operatorItemsTab": "Operator Items Tab", - "options.autoSuggestCommands": "Command Suggestions", - "options.autosaveIndicator": "Autosave Indicator", - "options.discrete_mouse_scroll": "Discrete Scrolling", - "options.mouseWheelSensitivity": "Scroll Sensitivity", - "options.rawMouseInput": "Raw Input", - "options.narrator": "Narrator", - "options.narrator.off": "OFF", - "options.narrator.all": "Narrates All", - "options.narrator.chat": "Narrates Chat", - "options.narrator.system": "Narrates System", - "options.narrator.notavailable": "Not Available", - "options.fullscreen.resolution": "Fullscreen Resolution", - "options.fullscreen.unavailable": "Setting unavailable", - "options.fullscreen.current": "Current", - "options.mipmapLevels": "Mipmap Levels", - "options.forceUnicodeFont": "Force Unicode Font", - "options.hideMatchedNames": "Hide Matched Names", - "options.hideMatchedNames.tooltip": "3rd-party Servers may send chat messages in non-standard formats.\nWith this option on: hidden players will be matched based on chat sender names.", - "options.darkMojangStudiosBackgroundColor": "Monochrome Logo", - "options.darkMojangStudiosBackgroundColor.tooltip": "Changes the Mojang Studios loading screen background color to black.", - "options.hideLightningFlashes": "Hide Lightning Flashes", - "options.hideLightningFlashes.tooltip": "Prevents lightning bolts from making the sky flash. The bolts themselves will still be visible.", - "narrator.toast.disabled": "Narrator Disabled", - "narrator.toast.enabled": "Narrator Enabled", - "difficulty.lock.title": "Lock World Difficulty", - "difficulty.lock.question": "Are you sure you want to lock the difficulty of this world? This will set this world to always be %1$s, and you will never be able to change that again.", - "title.32bit.deprecation": "32-bit system detected: this may prevent you from playing in the future as a 64-bit system will be required!", - "title.32bit.deprecation.realms.header": "32-bit system detected", - "title.32bit.deprecation.realms": "Minecraft will soon require a 64-bit system, which will prevent you from playing or using Realms on this device. You will need to manually cancel any Realms subscription.", - "title.32bit.deprecation.realms.check": "Do not show this screen again", - "title.multiplayer.disabled": "Multiplayer is disabled. Please check your Microsoft account settings.", - "title.multiplayer.disabled.banned.temporary": "Your account is temporarily suspended from online play", - "title.multiplayer.disabled.banned.permanent": "Your account is permanently suspended from online play", - "controls.title": "Controls", - "controls.reset": "Reset", - "controls.resetAll": "Reset Keys", - "controls.keybinds": "Key Binds...", - "controls.keybinds.title": "Key Binds", - "key.sprint": "Sprint", - "key.forward": "Walk Forwards", - "key.left": "Strafe Left", - "key.back": "Walk Backwards", - "key.right": "Strafe Right", - "key.jump": "Jump", - "key.inventory": "Open/Close Inventory", - "key.drop": "Drop Selected Item", - "key.swapOffhand": "Swap Item With Offhand", - "key.chat": "Open Chat", - "key.sneak": "Sneak", - "key.playerlist": "List Players", - "key.attack": "Attack/Destroy", - "key.use": "Use Item/Place Block", - "key.pickItem": "Pick Block", - "key.command": "Open Command", - "key.socialInteractions": "Social Interactions Screen", - "key.screenshot": "Take Screenshot", - "key.togglePerspective": "Toggle Perspective", - "key.smoothCamera": "Toggle Cinematic Camera", - "key.fullscreen": "Toggle Fullscreen", - "key.spectatorOutlines": "Highlight Players (Spectators)", - "key.hotbar.1": "Hotbar Slot 1", - "key.hotbar.2": "Hotbar Slot 2", - "key.hotbar.3": "Hotbar Slot 3", - "key.hotbar.4": "Hotbar Slot 4", - "key.hotbar.5": "Hotbar Slot 5", - "key.hotbar.6": "Hotbar Slot 6", - "key.hotbar.7": "Hotbar Slot 7", - "key.hotbar.8": "Hotbar Slot 8", - "key.hotbar.9": "Hotbar Slot 9", - "key.saveToolbarActivator": "Save Hotbar Activator", - "key.loadToolbarActivator": "Load Hotbar Activator", - "key.advancements": "Advancements", - "key.categories.movement": "Movement", - "key.categories.misc": "Miscellaneous", - "key.categories.multiplayer": "Multiplayer", - "key.categories.gameplay": "Gameplay", - "key.categories.ui": "Game Interface", - "key.categories.inventory": "Inventory", - "key.categories.creative": "Creative Mode", - "key.mouse.left": "Left Button", - "key.mouse.right": "Right Button", - "key.mouse.middle": "Middle Button", - "key.mouse": "Button %1$s", - "key.keyboard.unknown": "Not bound", - "key.keyboard.apostrophe": "'", - "key.keyboard.backslash": "\\", - "key.keyboard.backspace": "Backspace", - "key.keyboard.comma": ",", - "key.keyboard.delete": "Delete", - "key.keyboard.end": "End", - "key.keyboard.enter": "Enter", - "key.keyboard.equal": "=", - "key.keyboard.escape": "Escape", - "key.keyboard.f1": "F1", - "key.keyboard.f2": "F2", - "key.keyboard.f3": "F3", - "key.keyboard.f4": "F4", - "key.keyboard.f5": "F5", - "key.keyboard.f6": "F6", - "key.keyboard.f7": "F7", - "key.keyboard.f8": "F8", - "key.keyboard.f9": "F9", - "key.keyboard.f10": "F10", - "key.keyboard.f11": "F11", - "key.keyboard.f12": "F12", - "key.keyboard.f13": "F13", - "key.keyboard.f14": "F14", - "key.keyboard.f15": "F15", - "key.keyboard.f16": "F16", - "key.keyboard.f17": "F17", - "key.keyboard.f18": "F18", - "key.keyboard.f19": "F19", - "key.keyboard.f20": "F20", - "key.keyboard.f21": "F21", - "key.keyboard.f22": "F22", - "key.keyboard.f23": "F23", - "key.keyboard.f24": "F24", - "key.keyboard.f25": "F25", - "key.keyboard.grave.accent": "`", - "key.keyboard.home": "Home", - "key.keyboard.insert": "Insert", - "key.keyboard.keypad.0": "Keypad 0", - "key.keyboard.keypad.1": "Keypad 1", - "key.keyboard.keypad.2": "Keypad 2", - "key.keyboard.keypad.3": "Keypad 3", - "key.keyboard.keypad.4": "Keypad 4", - "key.keyboard.keypad.5": "Keypad 5", - "key.keyboard.keypad.6": "Keypad 6", - "key.keyboard.keypad.7": "Keypad 7", - "key.keyboard.keypad.8": "Keypad 8", - "key.keyboard.keypad.9": "Keypad 9", - "key.keyboard.keypad.add": "Keypad +", - "key.keyboard.keypad.decimal": "Keypad Decimal", - "key.keyboard.keypad.enter": "Keypad Enter", - "key.keyboard.keypad.equal": "Keypad =", - "key.keyboard.keypad.multiply": "Keypad *", - "key.keyboard.keypad.divide": "Keypad /", - "key.keyboard.keypad.subtract": "Keypad -", - "key.keyboard.left.bracket": "[", - "key.keyboard.right.bracket": "]", - "key.keyboard.minus": "-", - "key.keyboard.num.lock": "Num Lock", - "key.keyboard.caps.lock": "Caps Lock", - "key.keyboard.scroll.lock": "Scroll Lock", - "key.keyboard.page.down": "Page Down", - "key.keyboard.page.up": "Page Up", - "key.keyboard.pause": "Pause", - "key.keyboard.period": ".", - "key.keyboard.left.control": "Left Control", - "key.keyboard.right.control": "Right Control", - "key.keyboard.left.alt": "Left Alt", - "key.keyboard.right.alt": "Right Alt", - "key.keyboard.left.shift": "Left Shift", - "key.keyboard.right.shift": "Right Shift", - "key.keyboard.left.win": "Left Win", - "key.keyboard.right.win": "Right Win", - "key.keyboard.semicolon": ";", - "key.keyboard.slash": "/", - "key.keyboard.space": "Space", - "key.keyboard.tab": "Tab", - "key.keyboard.up": "Up Arrow", - "key.keyboard.down": "Down Arrow", - "key.keyboard.left": "Left Arrow", - "key.keyboard.right": "Right Arrow", - "key.keyboard.menu": "Menu", - "key.keyboard.print.screen": "Print Screen", - "key.keyboard.world.1": "World 1", - "key.keyboard.world.2": "World 2", - "pack.available.title": "Available", - "pack.selected.title": "Selected", - "pack.incompatible": "Incompatible", - "pack.incompatible.old": "(Made for an older version of Minecraft)", - "pack.incompatible.new": "(Made for a newer version of Minecraft)", - "pack.incompatible.confirm.title": "Are you sure you want to load this pack?", - "pack.incompatible.confirm.old": "This pack was made for an older version of Minecraft and may no longer work correctly.", - "pack.incompatible.confirm.new": "This pack was made for a newer version of Minecraft and may not work correctly.", - "pack.dropInfo": "Drag and drop files into this window to add packs", - "pack.dropConfirm": "Do you want to add the following packs to Minecraft?", - "pack.copyFailure": "Failed to copy packs", - "pack.nameAndSource": "%s (%s)", - "pack.openFolder": "Open Pack Folder", - "pack.folderInfo": "(Place pack files here)", - "resourcePack.title": "Select Resource Packs", - "resourcePack.server.name": "World Specific Resources", - "resourcePack.programmer_art.name": "Programmer Art", - "resourcePack.broken_assets": "BROKEN ASSETS DETECTED", - "resourcePack.vanilla.name": "Default", - "resourcePack.vanilla.description": "The default look and feel of Minecraft", - "resourcePack.load_fail": "Resource reload failed", - "dataPack.title": "Select Data Packs", - "dataPack.validation.working": "Validating selected data packs...", - "dataPack.validation.failed": "Data pack validation failed!", - "dataPack.validation.back": "Go Back", - "dataPack.validation.reset": "Reset to Default", - "dataPack.vanilla.name": "Default", - "dataPack.vanilla.description": "The default data for Minecraft", - "dataPack.bundle.description": "Enables experimental Bundle item", - "dataPack.update_1_20.description": "New features and content for Minecraft 1.20", - "sign.edit": "Edit Sign Message", - "hanging_sign.edit": "Edit Hanging Sign Message", - "book.pageIndicator": "Page %1$s of %2$s", - "book.byAuthor": "by %1$s", - "book.signButton": "Sign", - "book.editTitle": "Enter Book Title:", - "book.finalizeButton": "Sign and Close", - "book.finalizeWarning": "Note! When you sign the book, it will no longer be editable.", - "book.generation.0": "Original", - "book.generation.1": "Copy of original", - "book.generation.2": "Copy of a copy", - "book.generation.3": "Tattered", - "book.invalid.tag": "* Invalid book tag *", - "merchant.deprecated": "Villagers restock up to two times per day.", - "merchant.current_level": "Trader's current level", - "merchant.next_level": "Trader's next level", - "merchant.level.1": "Novice", - "merchant.level.2": "Apprentice", - "merchant.level.3": "Journeyman", - "merchant.level.4": "Expert", - "merchant.level.5": "Master", - "merchant.trades": "Trades", - "block.minecraft.air": "Air", - "block.minecraft.barrier": "Barrier", - "block.minecraft.light": "Light", - "block.minecraft.stone": "Stone", - "block.minecraft.granite": "Granite", - "block.minecraft.polished_granite": "Polished Granite", - "block.minecraft.diorite": "Diorite", - "block.minecraft.polished_diorite": "Polished Diorite", - "block.minecraft.andesite": "Andesite", - "block.minecraft.polished_andesite": "Polished Andesite", - "block.minecraft.hay_block": "Hay Bale", - "block.minecraft.grass_block": "Grass Block", - "block.minecraft.dirt": "Dirt", - "block.minecraft.coarse_dirt": "Coarse Dirt", - "block.minecraft.podzol": "Podzol", - "block.minecraft.cobblestone": "Cobblestone", - "block.minecraft.oak_planks": "Oak Planks", - "block.minecraft.spruce_planks": "Spruce Planks", - "block.minecraft.birch_planks": "Birch Planks", - "block.minecraft.jungle_planks": "Jungle Planks", - "block.minecraft.acacia_planks": "Acacia Planks", - "block.minecraft.dark_oak_planks": "Dark Oak Planks", - "block.minecraft.mangrove_planks": "Mangrove Planks", - "block.minecraft.bamboo_planks": "Bamboo Planks", - "block.minecraft.bamboo_mosaic": "Bamboo Mosaic", - "block.minecraft.oak_sapling": "Oak Sapling", - "block.minecraft.spruce_sapling": "Spruce Sapling", - "block.minecraft.birch_sapling": "Birch Sapling", - "block.minecraft.jungle_sapling": "Jungle Sapling", - "block.minecraft.acacia_sapling": "Acacia Sapling", - "block.minecraft.dark_oak_sapling": "Dark Oak Sapling", - "block.minecraft.mangrove_propagule": "Mangrove Propagule", - "block.minecraft.oak_door": "Oak Door", - "block.minecraft.spruce_door": "Spruce Door", - "block.minecraft.birch_door": "Birch Door", - "block.minecraft.jungle_door": "Jungle Door", - "block.minecraft.acacia_door": "Acacia Door", - "block.minecraft.dark_oak_door": "Dark Oak Door", - "block.minecraft.mangrove_door": "Mangrove Door", - "block.minecraft.bamboo_door": "Bamboo Door", - "block.minecraft.bedrock": "Bedrock", - "block.minecraft.water": "Water", - "block.minecraft.lava": "Lava", - "block.minecraft.sand": "Sand", - "block.minecraft.red_sand": "Red Sand", - "block.minecraft.sandstone": "Sandstone", - "block.minecraft.chiseled_sandstone": "Chiseled Sandstone", - "block.minecraft.cut_sandstone": "Cut Sandstone", - "block.minecraft.red_sandstone": "Red Sandstone", - "block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone", - "block.minecraft.cut_red_sandstone": "Cut Red Sandstone", - "block.minecraft.gravel": "Gravel", - "block.minecraft.gold_ore": "Gold Ore", - "block.minecraft.deepslate_gold_ore": "Deepslate Gold Ore", - "block.minecraft.nether_gold_ore": "Nether Gold Ore", - "block.minecraft.iron_ore": "Iron Ore", - "block.minecraft.deepslate_iron_ore": "Deepslate Iron Ore", - "block.minecraft.coal_ore": "Coal Ore", - "block.minecraft.deepslate_coal_ore": "Deepslate Coal Ore", - "block.minecraft.oak_wood": "Oak Wood", - "block.minecraft.spruce_wood": "Spruce Wood", - "block.minecraft.birch_wood": "Birch Wood", - "block.minecraft.jungle_wood": "Jungle Wood", - "block.minecraft.acacia_wood": "Acacia Wood", - "block.minecraft.dark_oak_wood": "Dark Oak Wood", - "block.minecraft.mangrove_wood": "Mangrove Wood", - "block.minecraft.oak_log": "Oak Log", - "block.minecraft.spruce_log": "Spruce Log", - "block.minecraft.birch_log": "Birch Log", - "block.minecraft.jungle_log": "Jungle Log", - "block.minecraft.acacia_log": "Acacia Log", - "block.minecraft.dark_oak_log": "Dark Oak Log", - "block.minecraft.mangrove_log": "Mangrove Log", - "block.minecraft.mangrove_roots": "Mangrove Roots", - "block.minecraft.muddy_mangrove_roots": "Muddy Mangrove Roots", - "block.minecraft.bamboo_block": "Block of Bamboo", - "block.minecraft.stripped_oak_log": "Stripped Oak Log", - "block.minecraft.stripped_spruce_log": "Stripped Spruce Log", - "block.minecraft.stripped_birch_log": "Stripped Birch Log", - "block.minecraft.stripped_jungle_log": "Stripped Jungle Log", - "block.minecraft.stripped_acacia_log": "Stripped Acacia Log", - "block.minecraft.stripped_dark_oak_log": "Stripped Dark Oak Log", - "block.minecraft.stripped_mangrove_log": "Stripped Mangrove Log", - "block.minecraft.stripped_bamboo_block": "Block of Stripped Bamboo", - "block.minecraft.stripped_oak_wood": "Stripped Oak Wood", - "block.minecraft.stripped_spruce_wood": "Stripped Spruce Wood", - "block.minecraft.stripped_birch_wood": "Stripped Birch Wood", - "block.minecraft.stripped_jungle_wood": "Stripped Jungle Wood", - "block.minecraft.stripped_acacia_wood": "Stripped Acacia Wood", - "block.minecraft.stripped_dark_oak_wood": "Stripped Dark Oak Wood", - "block.minecraft.stripped_mangrove_wood": "Stripped Mangrove Wood", - "block.minecraft.oak_leaves": "Oak Leaves", - "block.minecraft.spruce_leaves": "Spruce Leaves", - "block.minecraft.birch_leaves": "Birch Leaves", - "block.minecraft.jungle_leaves": "Jungle Leaves", - "block.minecraft.acacia_leaves": "Acacia Leaves", - "block.minecraft.dark_oak_leaves": "Dark Oak Leaves", - "block.minecraft.mangrove_leaves": "Mangrove Leaves", - "block.minecraft.dead_bush": "Dead Bush", - "block.minecraft.grass": "Grass", - "block.minecraft.fern": "Fern", - "block.minecraft.sponge": "Sponge", - "block.minecraft.wet_sponge": "Wet Sponge", - "block.minecraft.glass": "Glass", - "block.minecraft.kelp_plant": "Kelp Plant", - "block.minecraft.kelp": "Kelp", - "block.minecraft.dried_kelp_block": "Dried Kelp Block", - "block.minecraft.white_stained_glass": "White Stained Glass", - "block.minecraft.orange_stained_glass": "Orange Stained Glass", - "block.minecraft.magenta_stained_glass": "Magenta Stained Glass", - "block.minecraft.light_blue_stained_glass": "Light Blue Stained Glass", - "block.minecraft.yellow_stained_glass": "Yellow Stained Glass", - "block.minecraft.lime_stained_glass": "Lime Stained Glass", - "block.minecraft.pink_stained_glass": "Pink Stained Glass", - "block.minecraft.gray_stained_glass": "Gray Stained Glass", - "block.minecraft.light_gray_stained_glass": "Light Gray Stained Glass", - "block.minecraft.cyan_stained_glass": "Cyan Stained Glass", - "block.minecraft.purple_stained_glass": "Purple Stained Glass", - "block.minecraft.blue_stained_glass": "Blue Stained Glass", - "block.minecraft.brown_stained_glass": "Brown Stained Glass", - "block.minecraft.green_stained_glass": "Green Stained Glass", - "block.minecraft.red_stained_glass": "Red Stained Glass", - "block.minecraft.black_stained_glass": "Black Stained Glass", - "block.minecraft.white_stained_glass_pane": "White Stained Glass Pane", - "block.minecraft.orange_stained_glass_pane": "Orange Stained Glass Pane", - "block.minecraft.magenta_stained_glass_pane": "Magenta Stained Glass Pane", - "block.minecraft.light_blue_stained_glass_pane": "Light Blue Stained Glass Pane", - "block.minecraft.yellow_stained_glass_pane": "Yellow Stained Glass Pane", - "block.minecraft.lime_stained_glass_pane": "Lime Stained Glass Pane", - "block.minecraft.pink_stained_glass_pane": "Pink Stained Glass Pane", - "block.minecraft.gray_stained_glass_pane": "Gray Stained Glass Pane", - "block.minecraft.light_gray_stained_glass_pane": "Light Gray Stained Glass Pane", - "block.minecraft.cyan_stained_glass_pane": "Cyan Stained Glass Pane", - "block.minecraft.purple_stained_glass_pane": "Purple Stained Glass Pane", - "block.minecraft.blue_stained_glass_pane": "Blue Stained Glass Pane", - "block.minecraft.brown_stained_glass_pane": "Brown Stained Glass Pane", - "block.minecraft.green_stained_glass_pane": "Green Stained Glass Pane", - "block.minecraft.red_stained_glass_pane": "Red Stained Glass Pane", - "block.minecraft.black_stained_glass_pane": "Black Stained Glass Pane", - "block.minecraft.glass_pane": "Glass Pane", - "block.minecraft.dandelion": "Dandelion", - "block.minecraft.poppy": "Poppy", - "block.minecraft.blue_orchid": "Blue Orchid", - "block.minecraft.allium": "Allium", - "block.minecraft.azure_bluet": "Azure Bluet", - "block.minecraft.red_tulip": "Red Tulip", - "block.minecraft.orange_tulip": "Orange Tulip", - "block.minecraft.white_tulip": "White Tulip", - "block.minecraft.pink_tulip": "Pink Tulip", - "block.minecraft.oxeye_daisy": "Oxeye Daisy", - "block.minecraft.cornflower": "Cornflower", - "block.minecraft.lily_of_the_valley": "Lily of the Valley", - "block.minecraft.wither_rose": "Wither Rose", - "block.minecraft.sunflower": "Sunflower", - "block.minecraft.lilac": "Lilac", - "block.minecraft.tall_grass": "Tall Grass", - "block.minecraft.tall_seagrass": "Tall Seagrass", - "block.minecraft.large_fern": "Large Fern", - "block.minecraft.rose_bush": "Rose Bush", - "block.minecraft.peony": "Peony", - "block.minecraft.seagrass": "Seagrass", - "block.minecraft.sea_pickle": "Sea Pickle", - "block.minecraft.brown_mushroom": "Brown Mushroom", - "block.minecraft.red_mushroom_block": "Red Mushroom Block", - "block.minecraft.brown_mushroom_block": "Brown Mushroom Block", - "block.minecraft.mushroom_stem": "Mushroom Stem", - "block.minecraft.gold_block": "Block of Gold", - "block.minecraft.iron_block": "Block of Iron", - "block.minecraft.smooth_stone": "Smooth Stone", - "block.minecraft.smooth_sandstone": "Smooth Sandstone", - "block.minecraft.smooth_red_sandstone": "Smooth Red Sandstone", - "block.minecraft.smooth_quartz": "Smooth Quartz Block", - "block.minecraft.stone_slab": "Stone Slab", - "block.minecraft.smooth_stone_slab": "Smooth Stone Slab", - "block.minecraft.sandstone_slab": "Sandstone Slab", - "block.minecraft.red_sandstone_slab": "Red Sandstone Slab", - "block.minecraft.cut_sandstone_slab": "Cut Sandstone Slab", - "block.minecraft.cut_red_sandstone_slab": "Cut Red Sandstone Slab", - "block.minecraft.petrified_oak_slab": "Petrified Oak Slab", - "block.minecraft.cobblestone_slab": "Cobblestone Slab", - "block.minecraft.brick_slab": "Brick Slab", - "block.minecraft.stone_brick_slab": "Stone Brick Slab", - "block.minecraft.mud_brick_slab": "Mud Brick Slab", - "block.minecraft.nether_brick_slab": "Nether Brick Slab", - "block.minecraft.quartz_slab": "Quartz Slab", - "block.minecraft.oak_slab": "Oak Slab", - "block.minecraft.spruce_slab": "Spruce Slab", - "block.minecraft.birch_slab": "Birch Slab", - "block.minecraft.jungle_slab": "Jungle Slab", - "block.minecraft.acacia_slab": "Acacia Slab", - "block.minecraft.dark_oak_slab": "Dark Oak Slab", - "block.minecraft.mangrove_slab": "Mangrove Slab", - "block.minecraft.bamboo_slab": "Bamboo Slab", - "block.minecraft.bamboo_mosaic_slab": "Bamboo Mosaic Slab", - "block.minecraft.dark_prismarine_slab": "Dark Prismarine Slab", - "block.minecraft.prismarine_slab": "Prismarine Slab", - "block.minecraft.prismarine_brick_slab": "Prismarine Brick Slab", - "block.minecraft.bricks": "Bricks", - "block.minecraft.tnt": "TNT", - "block.minecraft.bookshelf": "Bookshelf", - "block.minecraft.chiseled_bookshelf": "Chiseled Bookshelf", - "block.minecraft.mossy_cobblestone": "Mossy Cobblestone", - "block.minecraft.obsidian": "Obsidian", - "block.minecraft.torch": "Torch", - "block.minecraft.wall_torch": "Wall Torch", - "block.minecraft.soul_torch": "Soul Torch", - "block.minecraft.soul_wall_torch": "Soul Wall Torch", - "block.minecraft.fire": "Fire", - "block.minecraft.spawner": "Monster Spawner", - "block.minecraft.spawner.desc1": "Interact with Spawn Egg:", - "block.minecraft.spawner.desc2": "Sets Mob Type", - "block.minecraft.respawn_anchor": "Respawn Anchor", - "block.minecraft.oak_stairs": "Oak Stairs", - "block.minecraft.spruce_stairs": "Spruce Stairs", - "block.minecraft.birch_stairs": "Birch Stairs", - "block.minecraft.jungle_stairs": "Jungle Stairs", - "block.minecraft.acacia_stairs": "Acacia Stairs", - "block.minecraft.dark_oak_stairs": "Dark Oak Stairs", - "block.minecraft.mangrove_stairs": "Mangrove Stairs", - "block.minecraft.bamboo_stairs": "Bamboo Stairs", - "block.minecraft.bamboo_mosaic_stairs": "Bamboo Mosaic Stairs", - "block.minecraft.dark_prismarine_stairs": "Dark Prismarine Stairs", - "block.minecraft.prismarine_stairs": "Prismarine Stairs", - "block.minecraft.prismarine_brick_stairs": "Prismarine Brick Stairs", - "block.minecraft.chest": "Chest", - "block.minecraft.trapped_chest": "Trapped Chest", - "block.minecraft.redstone_wire": "Redstone Wire", - "block.minecraft.diamond_ore": "Diamond Ore", - "block.minecraft.deepslate_diamond_ore": "Deepslate Diamond Ore", - "block.minecraft.coal_block": "Block of Coal", - "block.minecraft.diamond_block": "Block of Diamond", - "block.minecraft.crafting_table": "Crafting Table", - "block.minecraft.wheat": "Wheat Crops", - "block.minecraft.farmland": "Farmland", - "block.minecraft.furnace": "Furnace", - "block.minecraft.oak_sign": "Oak Sign", - "block.minecraft.spruce_sign": "Spruce Sign", - "block.minecraft.birch_sign": "Birch Sign", - "block.minecraft.acacia_sign": "Acacia Sign", - "block.minecraft.jungle_sign": "Jungle Sign", - "block.minecraft.dark_oak_sign": "Dark Oak Sign", - "block.minecraft.mangrove_sign": "Mangrove Sign", - "block.minecraft.bamboo_sign": "Bamboo Sign", - "block.minecraft.oak_wall_sign": "Oak Wall Sign", - "block.minecraft.spruce_wall_sign": "Spruce Wall Sign", - "block.minecraft.birch_wall_sign": "Birch Wall Sign", - "block.minecraft.acacia_wall_sign": "Acacia Wall Sign", - "block.minecraft.jungle_wall_sign": "Jungle Wall Sign", - "block.minecraft.dark_oak_wall_sign": "Dark Oak Wall Sign", - "block.minecraft.mangrove_wall_sign": "Mangrove Wall Sign", - "block.minecraft.bamboo_wall_sign": "Bamboo Wall Sign", - "block.minecraft.oak_hanging_sign": "Oak Hanging Sign", - "block.minecraft.spruce_hanging_sign": "Spruce Hanging Sign", - "block.minecraft.birch_hanging_sign": "Birch Hanging Sign", - "block.minecraft.acacia_hanging_sign": "Acacia Hanging Sign", - "block.minecraft.jungle_hanging_sign": "Jungle Hanging Sign", - "block.minecraft.crimson_hanging_sign": "Crimson Hanging Sign", - "block.minecraft.warped_hanging_sign": "Warped Hanging Sign", - "block.minecraft.dark_oak_hanging_sign": "Dark Oak Hanging Sign", - "block.minecraft.mangrove_hanging_sign": "Mangrove Hanging Sign", - "block.minecraft.bamboo_hanging_sign": "Bamboo Hanging Sign", - "block.minecraft.oak_wall_hanging_sign": "Oak Wall Hanging Sign", - "block.minecraft.spruce_wall_hanging_sign": "Spruce Wall Hanging Sign", - "block.minecraft.birch_wall_hanging_sign": "Birch Wall Hanging Sign", - "block.minecraft.acacia_wall_hanging_sign": "Acacia Wall Hanging Sign", - "block.minecraft.jungle_wall_hanging_sign": "Jungle Wall Hanging Sign", - "block.minecraft.dark_oak_wall_hanging_sign": "Dark Oak Wall Hanging Sign", - "block.minecraft.mangrove_wall_hanging_sign": "Mangrove Wall Hanging Sign", - "block.minecraft.crimson_wall_hanging_sign": "Crimson Wall Hanging Sign", - "block.minecraft.warped_wall_hanging_sign": "Warped Wall Hanging Sign", - "block.minecraft.bamboo_wall_hanging_sign": "Bamboo Wall Hanging Sign", - "block.minecraft.ladder": "Ladder", - "block.minecraft.scaffolding": "Scaffolding", - "block.minecraft.rail": "Rail", - "block.minecraft.powered_rail": "Powered Rail", - "block.minecraft.activator_rail": "Activator Rail", - "block.minecraft.detector_rail": "Detector Rail", - "block.minecraft.cobblestone_stairs": "Cobblestone Stairs", - "block.minecraft.sandstone_stairs": "Sandstone Stairs", - "block.minecraft.red_sandstone_stairs": "Red Sandstone Stairs", - "block.minecraft.lever": "Lever", - "block.minecraft.stone_pressure_plate": "Stone Pressure Plate", - "block.minecraft.oak_pressure_plate": "Oak Pressure Plate", - "block.minecraft.spruce_pressure_plate": "Spruce Pressure Plate", - "block.minecraft.birch_pressure_plate": "Birch Pressure Plate", - "block.minecraft.jungle_pressure_plate": "Jungle Pressure Plate", - "block.minecraft.acacia_pressure_plate": "Acacia Pressure Plate", - "block.minecraft.dark_oak_pressure_plate": "Dark Oak Pressure Plate", - "block.minecraft.mangrove_pressure_plate": "Mangrove Pressure Plate", - "block.minecraft.bamboo_pressure_plate": "Bamboo Pressure Plate", - "block.minecraft.light_weighted_pressure_plate": "Light Weighted Pressure Plate", - "block.minecraft.heavy_weighted_pressure_plate": "Heavy Weighted Pressure Plate", - "block.minecraft.iron_door": "Iron Door", - "block.minecraft.redstone_ore": "Redstone Ore", - "block.minecraft.deepslate_redstone_ore": "Deepslate Redstone Ore", - "block.minecraft.redstone_torch": "Redstone Torch", - "block.minecraft.redstone_wall_torch": "Redstone Wall Torch", - "block.minecraft.stone_button": "Stone Button", - "block.minecraft.oak_button": "Oak Button", - "block.minecraft.spruce_button": "Spruce Button", - "block.minecraft.birch_button": "Birch Button", - "block.minecraft.jungle_button": "Jungle Button", - "block.minecraft.acacia_button": "Acacia Button", - "block.minecraft.dark_oak_button": "Dark Oak Button", - "block.minecraft.mangrove_button": "Mangrove Button", - "block.minecraft.bamboo_button": "Bamboo Button", - "block.minecraft.snow": "Snow", - "block.minecraft.white_carpet": "White Carpet", - "block.minecraft.orange_carpet": "Orange Carpet", - "block.minecraft.magenta_carpet": "Magenta Carpet", - "block.minecraft.light_blue_carpet": "Light Blue Carpet", - "block.minecraft.yellow_carpet": "Yellow Carpet", - "block.minecraft.lime_carpet": "Lime Carpet", - "block.minecraft.pink_carpet": "Pink Carpet", - "block.minecraft.gray_carpet": "Gray Carpet", - "block.minecraft.light_gray_carpet": "Light Gray Carpet", - "block.minecraft.cyan_carpet": "Cyan Carpet", - "block.minecraft.purple_carpet": "Purple Carpet", - "block.minecraft.blue_carpet": "Blue Carpet", - "block.minecraft.brown_carpet": "Brown Carpet", - "block.minecraft.green_carpet": "Green Carpet", - "block.minecraft.red_carpet": "Red Carpet", - "block.minecraft.black_carpet": "Black Carpet", - "block.minecraft.ice": "Ice", - "block.minecraft.frosted_ice": "Frosted Ice", - "block.minecraft.packed_ice": "Packed Ice", - "block.minecraft.blue_ice": "Blue Ice", - "block.minecraft.cactus": "Cactus", - "block.minecraft.clay": "Clay", - "block.minecraft.white_terracotta": "White Terracotta", - "block.minecraft.orange_terracotta": "Orange Terracotta", - "block.minecraft.magenta_terracotta": "Magenta Terracotta", - "block.minecraft.light_blue_terracotta": "Light Blue Terracotta", - "block.minecraft.yellow_terracotta": "Yellow Terracotta", - "block.minecraft.lime_terracotta": "Lime Terracotta", - "block.minecraft.pink_terracotta": "Pink Terracotta", - "block.minecraft.gray_terracotta": "Gray Terracotta", - "block.minecraft.light_gray_terracotta": "Light Gray Terracotta", - "block.minecraft.cyan_terracotta": "Cyan Terracotta", - "block.minecraft.purple_terracotta": "Purple Terracotta", - "block.minecraft.blue_terracotta": "Blue Terracotta", - "block.minecraft.brown_terracotta": "Brown Terracotta", - "block.minecraft.green_terracotta": "Green Terracotta", - "block.minecraft.red_terracotta": "Red Terracotta", - "block.minecraft.black_terracotta": "Black Terracotta", - "block.minecraft.terracotta": "Terracotta", - "block.minecraft.sugar_cane": "Sugar Cane", - "block.minecraft.jukebox": "Jukebox", - "block.minecraft.oak_fence": "Oak Fence", - "block.minecraft.spruce_fence": "Spruce Fence", - "block.minecraft.birch_fence": "Birch Fence", - "block.minecraft.jungle_fence": "Jungle Fence", - "block.minecraft.acacia_fence": "Acacia Fence", - "block.minecraft.dark_oak_fence": "Dark Oak Fence", - "block.minecraft.mangrove_fence": "Mangrove Fence", - "block.minecraft.bamboo_fence": "Bamboo Fence", - "block.minecraft.oak_fence_gate": "Oak Fence Gate", - "block.minecraft.spruce_fence_gate": "Spruce Fence Gate", - "block.minecraft.birch_fence_gate": "Birch Fence Gate", - "block.minecraft.jungle_fence_gate": "Jungle Fence Gate", - "block.minecraft.acacia_fence_gate": "Acacia Fence Gate", - "block.minecraft.dark_oak_fence_gate": "Dark Oak Fence Gate", - "block.minecraft.mangrove_fence_gate": "Mangrove Fence Gate", - "block.minecraft.bamboo_fence_gate": "Bamboo Fence Gate", - "block.minecraft.pumpkin_stem": "Pumpkin Stem", - "block.minecraft.attached_pumpkin_stem": "Attached Pumpkin Stem", - "block.minecraft.pumpkin": "Pumpkin", - "block.minecraft.carved_pumpkin": "Carved Pumpkin", - "block.minecraft.jack_o_lantern": "Jack o'Lantern", - "block.minecraft.netherrack": "Netherrack", - "block.minecraft.soul_sand": "Soul Sand", - "block.minecraft.glowstone": "Glowstone", - "block.minecraft.nether_portal": "Nether Portal", - "block.minecraft.white_wool": "White Wool", - "block.minecraft.orange_wool": "Orange Wool", - "block.minecraft.magenta_wool": "Magenta Wool", - "block.minecraft.light_blue_wool": "Light Blue Wool", - "block.minecraft.yellow_wool": "Yellow Wool", - "block.minecraft.lime_wool": "Lime Wool", - "block.minecraft.pink_wool": "Pink Wool", - "block.minecraft.gray_wool": "Gray Wool", - "block.minecraft.light_gray_wool": "Light Gray Wool", - "block.minecraft.cyan_wool": "Cyan Wool", - "block.minecraft.purple_wool": "Purple Wool", - "block.minecraft.blue_wool": "Blue Wool", - "block.minecraft.brown_wool": "Brown Wool", - "block.minecraft.green_wool": "Green Wool", - "block.minecraft.red_wool": "Red Wool", - "block.minecraft.black_wool": "Black Wool", - "block.minecraft.lapis_ore": "Lapis Lazuli Ore", - "block.minecraft.deepslate_lapis_ore": "Deepslate Lapis Lazuli Ore", - "block.minecraft.lapis_block": "Block of Lapis Lazuli", - "block.minecraft.dispenser": "Dispenser", - "block.minecraft.dropper": "Dropper", - "block.minecraft.note_block": "Note Block", - "block.minecraft.cake": "Cake", - "block.minecraft.bed.occupied": "This bed is occupied", - "block.minecraft.bed.obstructed": "This bed is obstructed", - "block.minecraft.bed.no_sleep": "You can sleep only at night or during thunderstorms", - "block.minecraft.bed.too_far_away": "You may not rest now; the bed is too far away", - "block.minecraft.bed.not_safe": "You may not rest now; there are monsters nearby", - "block.minecraft.spawn.not_valid": "You have no home bed or charged respawn anchor, or it was obstructed", - "block.minecraft.set_spawn": "Respawn point set", - "block.minecraft.oak_trapdoor": "Oak Trapdoor", - "block.minecraft.spruce_trapdoor": "Spruce Trapdoor", - "block.minecraft.birch_trapdoor": "Birch Trapdoor", - "block.minecraft.jungle_trapdoor": "Jungle Trapdoor", - "block.minecraft.acacia_trapdoor": "Acacia Trapdoor", - "block.minecraft.dark_oak_trapdoor": "Dark Oak Trapdoor", - "block.minecraft.mangrove_trapdoor": "Mangrove Trapdoor", - "block.minecraft.bamboo_trapdoor": "Bamboo Trapdoor", - "block.minecraft.iron_trapdoor": "Iron Trapdoor", - "block.minecraft.cobweb": "Cobweb", - "block.minecraft.stone_bricks": "Stone Bricks", - "block.minecraft.mossy_stone_bricks": "Mossy Stone Bricks", - "block.minecraft.cracked_stone_bricks": "Cracked Stone Bricks", - "block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks", - "block.minecraft.packed_mud": "Packed Mud", - "block.minecraft.mud_bricks": "Mud Bricks", - "block.minecraft.infested_stone": "Infested Stone", - "block.minecraft.infested_cobblestone": "Infested Cobblestone", - "block.minecraft.infested_stone_bricks": "Infested Stone Bricks", - "block.minecraft.infested_mossy_stone_bricks": "Infested Mossy Stone Bricks", - "block.minecraft.infested_cracked_stone_bricks": "Infested Cracked Stone Bricks", - "block.minecraft.infested_chiseled_stone_bricks": "Infested Chiseled Stone Bricks", - "block.minecraft.piston": "Piston", - "block.minecraft.sticky_piston": "Sticky Piston", - "block.minecraft.iron_bars": "Iron Bars", - "block.minecraft.melon": "Melon", - "block.minecraft.brick_stairs": "Brick Stairs", - "block.minecraft.stone_brick_stairs": "Stone Brick Stairs", - "block.minecraft.mud_brick_stairs": "Mud Brick Stairs", - "block.minecraft.vine": "Vines", - "block.minecraft.nether_bricks": "Nether Bricks", - "block.minecraft.nether_brick_fence": "Nether Brick Fence", - "block.minecraft.nether_brick_stairs": "Nether Brick Stairs", - "block.minecraft.nether_wart": "Nether Wart", - "block.minecraft.warped_wart_block": "Warped Wart Block", - "block.minecraft.warped_stem": "Warped Stem", - "block.minecraft.stripped_warped_stem": "Stripped Warped Stem", - "block.minecraft.warped_hyphae": "Warped Hyphae", - "block.minecraft.stripped_warped_hyphae": "Stripped Warped Hyphae", - "block.minecraft.crimson_stem": "Crimson Stem", - "block.minecraft.stripped_crimson_stem": "Stripped Crimson Stem", - "block.minecraft.crimson_hyphae": "Crimson Hyphae", - "block.minecraft.stripped_crimson_hyphae": "Stripped Crimson Hyphae", - "block.minecraft.warped_nylium": "Warped Nylium", - "block.minecraft.crimson_nylium": "Crimson Nylium", - "block.minecraft.warped_fungus": "Warped Fungus", - "block.minecraft.crimson_fungus": "Crimson Fungus", - "block.minecraft.crimson_roots": "Crimson Roots", - "block.minecraft.warped_roots": "Warped Roots", - "block.minecraft.nether_sprouts": "Nether Sprouts", - "block.minecraft.shroomlight": "Shroomlight", - "block.minecraft.weeping_vines": "Weeping Vines", - "block.minecraft.weeping_vines_plant": "Weeping Vines Plant", - "block.minecraft.twisting_vines": "Twisting Vines", - "block.minecraft.twisting_vines_plant": "Twisting Vines Plant", - "block.minecraft.soul_soil": "Soul Soil", - "block.minecraft.basalt": "Basalt", - "block.minecraft.polished_basalt": "Polished Basalt", - "block.minecraft.warped_planks": "Warped Planks", - "block.minecraft.warped_slab": "Warped Slab", - "block.minecraft.warped_pressure_plate": "Warped Pressure Plate", - "block.minecraft.warped_fence": "Warped Fence", - "block.minecraft.warped_trapdoor": "Warped Trapdoor", - "block.minecraft.warped_fence_gate": "Warped Fence Gate", - "block.minecraft.warped_stairs": "Warped Stairs", - "block.minecraft.warped_button": "Warped Button", - "block.minecraft.warped_door": "Warped Door", - "block.minecraft.warped_sign": "Warped Sign", - "block.minecraft.warped_wall_sign": "Warped Wall Sign", - "block.minecraft.crimson_planks": "Crimson Planks", - "block.minecraft.crimson_slab": "Crimson Slab", - "block.minecraft.crimson_pressure_plate": "Crimson Pressure Plate", - "block.minecraft.crimson_fence": "Crimson Fence", - "block.minecraft.crimson_trapdoor": "Crimson Trapdoor", - "block.minecraft.crimson_fence_gate": "Crimson Fence Gate", - "block.minecraft.crimson_stairs": "Crimson Stairs", - "block.minecraft.crimson_button": "Crimson Button", - "block.minecraft.crimson_door": "Crimson Door", - "block.minecraft.crimson_sign": "Crimson Sign", - "block.minecraft.crimson_wall_sign": "Crimson Wall Sign", - "block.minecraft.soul_fire": "Soul Fire", - "block.minecraft.cauldron": "Cauldron", - "block.minecraft.water_cauldron": "Water Cauldron", - "block.minecraft.lava_cauldron": "Lava Cauldron", - "block.minecraft.powder_snow_cauldron": "Powder Snow Cauldron", - "block.minecraft.enchanting_table": "Enchanting Table", - "block.minecraft.anvil": "Anvil", - "block.minecraft.chipped_anvil": "Chipped Anvil", - "block.minecraft.damaged_anvil": "Damaged Anvil", - "block.minecraft.end_stone": "End Stone", - "block.minecraft.end_portal_frame": "End Portal Frame", - "block.minecraft.mycelium": "Mycelium", - "block.minecraft.lily_pad": "Lily Pad", - "block.minecraft.dragon_egg": "Dragon Egg", - "block.minecraft.redstone_lamp": "Redstone Lamp", - "block.minecraft.cocoa": "Cocoa", - "block.minecraft.ender_chest": "Ender Chest", - "block.minecraft.emerald_ore": "Emerald Ore", - "block.minecraft.deepslate_emerald_ore": "Deepslate Emerald Ore", - "block.minecraft.emerald_block": "Block of Emerald", - "block.minecraft.redstone_block": "Block of Redstone", - "block.minecraft.tripwire": "Tripwire", - "block.minecraft.tripwire_hook": "Tripwire Hook", - "block.minecraft.command_block": "Command Block", - "block.minecraft.repeating_command_block": "Repeating Command Block", - "block.minecraft.chain_command_block": "Chain Command Block", - "block.minecraft.beacon": "Beacon", - "block.minecraft.beacon.primary": "Primary Power", - "block.minecraft.beacon.secondary": "Secondary Power", - "block.minecraft.cobblestone_wall": "Cobblestone Wall", - "block.minecraft.mossy_cobblestone_wall": "Mossy Cobblestone Wall", - "block.minecraft.carrots": "Carrots", - "block.minecraft.potatoes": "Potatoes", - "block.minecraft.daylight_detector": "Daylight Detector", - "block.minecraft.nether_quartz_ore": "Nether Quartz Ore", - "block.minecraft.hopper": "Hopper", - "block.minecraft.quartz_block": "Block of Quartz", - "block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block", - "block.minecraft.quartz_pillar": "Quartz Pillar", - "block.minecraft.quartz_stairs": "Quartz Stairs", - "block.minecraft.slime_block": "Slime Block", - "block.minecraft.prismarine": "Prismarine", - "block.minecraft.prismarine_bricks": "Prismarine Bricks", - "block.minecraft.dark_prismarine": "Dark Prismarine", - "block.minecraft.sea_lantern": "Sea Lantern", - "block.minecraft.end_rod": "End Rod", - "block.minecraft.chorus_plant": "Chorus Plant", - "block.minecraft.chorus_flower": "Chorus Flower", - "block.minecraft.purpur_block": "Purpur Block", - "block.minecraft.purpur_pillar": "Purpur Pillar", - "block.minecraft.purpur_stairs": "Purpur Stairs", - "block.minecraft.purpur_slab": "Purpur Slab", - "block.minecraft.end_stone_bricks": "End Stone Bricks", - "block.minecraft.beetroots": "Beetroots", - "block.minecraft.dirt_path": "Dirt Path", - "block.minecraft.magma_block": "Magma Block", - "block.minecraft.nether_wart_block": "Nether Wart Block", - "block.minecraft.red_nether_bricks": "Red Nether Bricks", - "block.minecraft.bone_block": "Bone Block", - "block.minecraft.observer": "Observer", - "block.minecraft.shulker_box": "Shulker Box", - "block.minecraft.white_shulker_box": "White Shulker Box", - "block.minecraft.orange_shulker_box": "Orange Shulker Box", - "block.minecraft.magenta_shulker_box": "Magenta Shulker Box", - "block.minecraft.light_blue_shulker_box": "Light Blue Shulker Box", - "block.minecraft.yellow_shulker_box": "Yellow Shulker Box", - "block.minecraft.lime_shulker_box": "Lime Shulker Box", - "block.minecraft.pink_shulker_box": "Pink Shulker Box", - "block.minecraft.gray_shulker_box": "Gray Shulker Box", - "block.minecraft.light_gray_shulker_box": "Light Gray Shulker Box", - "block.minecraft.cyan_shulker_box": "Cyan Shulker Box", - "block.minecraft.purple_shulker_box": "Purple Shulker Box", - "block.minecraft.blue_shulker_box": "Blue Shulker Box", - "block.minecraft.brown_shulker_box": "Brown Shulker Box", - "block.minecraft.green_shulker_box": "Green Shulker Box", - "block.minecraft.red_shulker_box": "Red Shulker Box", - "block.minecraft.black_shulker_box": "Black Shulker Box", - "block.minecraft.white_glazed_terracotta": "White Glazed Terracotta", - "block.minecraft.orange_glazed_terracotta": "Orange Glazed Terracotta", - "block.minecraft.magenta_glazed_terracotta": "Magenta Glazed Terracotta", - "block.minecraft.light_blue_glazed_terracotta": "Light Blue Glazed Terracotta", - "block.minecraft.yellow_glazed_terracotta": "Yellow Glazed Terracotta", - "block.minecraft.lime_glazed_terracotta": "Lime Glazed Terracotta", - "block.minecraft.pink_glazed_terracotta": "Pink Glazed Terracotta", - "block.minecraft.gray_glazed_terracotta": "Gray Glazed Terracotta", - "block.minecraft.light_gray_glazed_terracotta": "Light Gray Glazed Terracotta", - "block.minecraft.cyan_glazed_terracotta": "Cyan Glazed Terracotta", - "block.minecraft.purple_glazed_terracotta": "Purple Glazed Terracotta", - "block.minecraft.blue_glazed_terracotta": "Blue Glazed Terracotta", - "block.minecraft.brown_glazed_terracotta": "Brown Glazed Terracotta", - "block.minecraft.green_glazed_terracotta": "Green Glazed Terracotta", - "block.minecraft.red_glazed_terracotta": "Red Glazed Terracotta", - "block.minecraft.black_glazed_terracotta": "Black Glazed Terracotta", - "block.minecraft.black_concrete": "Black Concrete", - "block.minecraft.red_concrete": "Red Concrete", - "block.minecraft.green_concrete": "Green Concrete", - "block.minecraft.brown_concrete": "Brown Concrete", - "block.minecraft.blue_concrete": "Blue Concrete", - "block.minecraft.purple_concrete": "Purple Concrete", - "block.minecraft.cyan_concrete": "Cyan Concrete", - "block.minecraft.light_gray_concrete": "Light Gray Concrete", - "block.minecraft.gray_concrete": "Gray Concrete", - "block.minecraft.pink_concrete": "Pink Concrete", - "block.minecraft.lime_concrete": "Lime Concrete", - "block.minecraft.yellow_concrete": "Yellow Concrete", - "block.minecraft.light_blue_concrete": "Light Blue Concrete", - "block.minecraft.magenta_concrete": "Magenta Concrete", - "block.minecraft.orange_concrete": "Orange Concrete", - "block.minecraft.white_concrete": "White Concrete", - "block.minecraft.black_concrete_powder": "Black Concrete Powder", - "block.minecraft.red_concrete_powder": "Red Concrete Powder", - "block.minecraft.green_concrete_powder": "Green Concrete Powder", - "block.minecraft.brown_concrete_powder": "Brown Concrete Powder", - "block.minecraft.blue_concrete_powder": "Blue Concrete Powder", - "block.minecraft.purple_concrete_powder": "Purple Concrete Powder", - "block.minecraft.cyan_concrete_powder": "Cyan Concrete Powder", - "block.minecraft.light_gray_concrete_powder": "Light Gray Concrete Powder", - "block.minecraft.gray_concrete_powder": "Gray Concrete Powder", - "block.minecraft.pink_concrete_powder": "Pink Concrete Powder", - "block.minecraft.lime_concrete_powder": "Lime Concrete Powder", - "block.minecraft.yellow_concrete_powder": "Yellow Concrete Powder", - "block.minecraft.light_blue_concrete_powder": "Light Blue Concrete Powder", - "block.minecraft.magenta_concrete_powder": "Magenta Concrete Powder", - "block.minecraft.orange_concrete_powder": "Orange Concrete Powder", - "block.minecraft.white_concrete_powder": "White Concrete Powder", - "block.minecraft.turtle_egg": "Turtle Egg", - "block.minecraft.piston_head": "Piston Head", - "block.minecraft.moving_piston": "Moving Piston", - "block.minecraft.red_mushroom": "Red Mushroom", - "block.minecraft.snow_block": "Snow Block", - "block.minecraft.attached_melon_stem": "Attached Melon Stem", - "block.minecraft.melon_stem": "Melon Stem", - "block.minecraft.brewing_stand": "Brewing Stand", - "block.minecraft.end_portal": "End Portal", - "block.minecraft.flower_pot": "Flower Pot", - "block.minecraft.potted_oak_sapling": "Potted Oak Sapling", - "block.minecraft.potted_spruce_sapling": "Potted Spruce Sapling", - "block.minecraft.potted_birch_sapling": "Potted Birch Sapling", - "block.minecraft.potted_jungle_sapling": "Potted Jungle Sapling", - "block.minecraft.potted_acacia_sapling": "Potted Acacia Sapling", - "block.minecraft.potted_dark_oak_sapling": "Potted Dark Oak Sapling", - "block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule", - "block.minecraft.potted_fern": "Potted Fern", - "block.minecraft.potted_dandelion": "Potted Dandelion", - "block.minecraft.potted_poppy": "Potted Poppy", - "block.minecraft.potted_blue_orchid": "Potted Blue Orchid", - "block.minecraft.potted_allium": "Potted Allium", - "block.minecraft.potted_azure_bluet": "Potted Azure Bluet", - "block.minecraft.potted_red_tulip": "Potted Red Tulip", - "block.minecraft.potted_orange_tulip": "Potted Orange Tulip", - "block.minecraft.potted_white_tulip": "Potted White Tulip", - "block.minecraft.potted_pink_tulip": "Potted Pink Tulip", - "block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy", - "block.minecraft.potted_cornflower": "Potted Cornflower", - "block.minecraft.potted_lily_of_the_valley": "Potted Lily of the Valley", - "block.minecraft.potted_wither_rose": "Potted Wither Rose", - "block.minecraft.potted_red_mushroom": "Potted Red Mushroom", - "block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom", - "block.minecraft.potted_dead_bush": "Potted Dead Bush", - "block.minecraft.potted_cactus": "Potted Cactus", - "block.minecraft.potted_bamboo": "Potted Bamboo", - "block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus", - "block.minecraft.potted_warped_fungus": "Potted Warped Fungus", - "block.minecraft.potted_crimson_roots": "Potted Crimson Roots", - "block.minecraft.potted_warped_roots": "Potted Warped Roots", - "block.minecraft.potted_azalea_bush": "Potted Azalea", - "block.minecraft.potted_flowering_azalea_bush": "Potted Flowering Azalea", - "block.minecraft.skeleton_wall_skull": "Skeleton Wall Skull", - "block.minecraft.skeleton_skull": "Skeleton Skull", - "block.minecraft.wither_skeleton_wall_skull": "Wither Skeleton Wall Skull", - "block.minecraft.wither_skeleton_skull": "Wither Skeleton Skull", - "block.minecraft.zombie_wall_head": "Zombie Wall Head", - "block.minecraft.zombie_head": "Zombie Head", - "block.minecraft.player_wall_head": "Player Wall Head", - "block.minecraft.player_head": "Player Head", - "block.minecraft.player_head.named": "%s's Head", - "block.minecraft.creeper_wall_head": "Creeper Wall Head", - "block.minecraft.creeper_head": "Creeper Head", - "block.minecraft.dragon_wall_head": "Dragon Wall Head", - "block.minecraft.dragon_head": "Dragon Head", - "block.minecraft.piglin_wall_head": "Piglin Wall Head", - "block.minecraft.piglin_head": "Piglin Head", - "block.minecraft.end_gateway": "End Gateway", - "block.minecraft.structure_void": "Structure Void", - "block.minecraft.structure_block": "Structure Block", - "block.minecraft.void_air": "Void Air", - "block.minecraft.cave_air": "Cave Air", - "block.minecraft.bubble_column": "Bubble Column", - "block.minecraft.dead_tube_coral_block": "Dead Tube Coral Block", - "block.minecraft.dead_brain_coral_block": "Dead Brain Coral Block", - "block.minecraft.dead_bubble_coral_block": "Dead Bubble Coral Block", - "block.minecraft.dead_fire_coral_block": "Dead Fire Coral Block", - "block.minecraft.dead_horn_coral_block": "Dead Horn Coral Block", - "block.minecraft.tube_coral_block": "Tube Coral Block", - "block.minecraft.brain_coral_block": "Brain Coral Block", - "block.minecraft.bubble_coral_block": "Bubble Coral Block", - "block.minecraft.fire_coral_block": "Fire Coral Block", - "block.minecraft.horn_coral_block": "Horn Coral Block", - "block.minecraft.tube_coral": "Tube Coral", - "block.minecraft.brain_coral": "Brain Coral", - "block.minecraft.bubble_coral": "Bubble Coral", - "block.minecraft.fire_coral": "Fire Coral", - "block.minecraft.horn_coral": "Horn Coral", - "block.minecraft.dead_tube_coral": "Dead Tube Coral", - "block.minecraft.dead_brain_coral": "Dead Brain Coral", - "block.minecraft.dead_bubble_coral": "Dead Bubble Coral", - "block.minecraft.dead_fire_coral": "Dead Fire Coral", - "block.minecraft.dead_horn_coral": "Dead Horn Coral", - "block.minecraft.tube_coral_fan": "Tube Coral Fan", - "block.minecraft.brain_coral_fan": "Brain Coral Fan", - "block.minecraft.bubble_coral_fan": "Bubble Coral Fan", - "block.minecraft.fire_coral_fan": "Fire Coral Fan", - "block.minecraft.horn_coral_fan": "Horn Coral Fan", - "block.minecraft.dead_tube_coral_fan": "Dead Tube Coral Fan", - "block.minecraft.dead_brain_coral_fan": "Dead Brain Coral Fan", - "block.minecraft.dead_bubble_coral_fan": "Dead Bubble Coral Fan", - "block.minecraft.dead_fire_coral_fan": "Dead Fire Coral Fan", - "block.minecraft.dead_horn_coral_fan": "Dead Horn Coral Fan", - "block.minecraft.tube_coral_wall_fan": "Tube Coral Wall Fan", - "block.minecraft.brain_coral_wall_fan": "Brain Coral Wall Fan", - "block.minecraft.bubble_coral_wall_fan": "Bubble Coral Wall Fan", - "block.minecraft.fire_coral_wall_fan": "Fire Coral Wall Fan", - "block.minecraft.horn_coral_wall_fan": "Horn Coral Wall Fan", - "block.minecraft.dead_tube_coral_wall_fan": "Dead Tube Coral Wall Fan", - "block.minecraft.dead_brain_coral_wall_fan": "Dead Brain Coral Wall Fan", - "block.minecraft.dead_bubble_coral_wall_fan": "Dead Bubble Coral Wall Fan", - "block.minecraft.dead_fire_coral_wall_fan": "Dead Fire Coral Wall Fan", - "block.minecraft.dead_horn_coral_wall_fan": "Dead Horn Coral Wall Fan", - "block.minecraft.loom": "Loom", - "block.minecraft.conduit": "Conduit", - "block.minecraft.bamboo": "Bamboo", - "block.minecraft.bamboo_sapling": "Bamboo Shoot", - "block.minecraft.jigsaw": "Jigsaw Block", - "block.minecraft.composter": "Composter", - "block.minecraft.target": "Target", - "block.minecraft.polished_granite_stairs": "Polished Granite Stairs", - "block.minecraft.smooth_red_sandstone_stairs": "Smooth Red Sandstone Stairs", - "block.minecraft.mossy_stone_brick_stairs": "Mossy Stone Brick Stairs", - "block.minecraft.polished_diorite_stairs": "Polished Diorite Stairs", - "block.minecraft.mossy_cobblestone_stairs": "Mossy Cobblestone Stairs", - "block.minecraft.end_stone_brick_stairs": "End Stone Brick Stairs", - "block.minecraft.stone_stairs": "Stone Stairs", - "block.minecraft.smooth_sandstone_stairs": "Smooth Sandstone Stairs", - "block.minecraft.smooth_quartz_stairs": "Smooth Quartz Stairs", - "block.minecraft.granite_stairs": "Granite Stairs", - "block.minecraft.andesite_stairs": "Andesite Stairs", - "block.minecraft.red_nether_brick_stairs": "Red Nether Brick Stairs", - "block.minecraft.polished_andesite_stairs": "Polished Andesite Stairs", - "block.minecraft.diorite_stairs": "Diorite Stairs", - "block.minecraft.polished_granite_slab": "Polished Granite Slab", - "block.minecraft.smooth_red_sandstone_slab": "Smooth Red Sandstone Slab", - "block.minecraft.mossy_stone_brick_slab": "Mossy Stone Brick Slab", - "block.minecraft.polished_diorite_slab": "Polished Diorite Slab", - "block.minecraft.mossy_cobblestone_slab": "Mossy Cobblestone Slab", - "block.minecraft.end_stone_brick_slab": "End Stone Brick Slab", - "block.minecraft.smooth_sandstone_slab": "Smooth Sandstone Slab", - "block.minecraft.smooth_quartz_slab": "Smooth Quartz Slab", - "block.minecraft.granite_slab": "Granite Slab", - "block.minecraft.andesite_slab": "Andesite Slab", - "block.minecraft.red_nether_brick_slab": "Red Nether Brick Slab", - "block.minecraft.polished_andesite_slab": "Polished Andesite Slab", - "block.minecraft.diorite_slab": "Diorite Slab", - "block.minecraft.brick_wall": "Brick Wall", - "block.minecraft.prismarine_wall": "Prismarine Wall", - "block.minecraft.red_sandstone_wall": "Red Sandstone Wall", - "block.minecraft.mossy_stone_brick_wall": "Mossy Stone Brick Wall", - "block.minecraft.granite_wall": "Granite Wall", - "block.minecraft.stone_brick_wall": "Stone Brick Wall", - "block.minecraft.mud_brick_wall": "Mud Brick Wall", - "block.minecraft.nether_brick_wall": "Nether Brick Wall", - "block.minecraft.andesite_wall": "Andesite Wall", - "block.minecraft.red_nether_brick_wall": "Red Nether Brick Wall", - "block.minecraft.sandstone_wall": "Sandstone Wall", - "block.minecraft.end_stone_brick_wall": "End Stone Brick Wall", - "block.minecraft.diorite_wall": "Diorite Wall", - "block.minecraft.barrel": "Barrel", - "block.minecraft.smoker": "Smoker", - "block.minecraft.blast_furnace": "Blast Furnace", - "block.minecraft.cartography_table": "Cartography Table", - "block.minecraft.fletching_table": "Fletching Table", - "block.minecraft.smithing_table": "Smithing Table", - "block.minecraft.grindstone": "Grindstone", - "block.minecraft.lectern": "Lectern", - "block.minecraft.stonecutter": "Stonecutter", - "block.minecraft.bell": "Bell", - "block.minecraft.ominous_banner": "Ominous Banner", - "block.minecraft.lantern": "Lantern", - "block.minecraft.soul_lantern": "Soul Lantern", - "block.minecraft.sweet_berry_bush": "Sweet Berry Bush", - "block.minecraft.campfire": "Campfire", - "block.minecraft.soul_campfire": "Soul Campfire", - "block.minecraft.beehive": "Beehive", - "block.minecraft.bee_nest": "Bee Nest", - "block.minecraft.honey_block": "Honey Block", - "block.minecraft.honeycomb_block": "Honeycomb Block", - "block.minecraft.lodestone": "Lodestone", - "block.minecraft.netherite_block": "Block of Netherite", - "block.minecraft.ancient_debris": "Ancient Debris", - "block.minecraft.crying_obsidian": "Crying Obsidian", - "block.minecraft.blackstone": "Blackstone", - "block.minecraft.blackstone_slab": "Blackstone Slab", - "block.minecraft.blackstone_stairs": "Blackstone Stairs", - "block.minecraft.blackstone_wall": "Blackstone Wall", - "block.minecraft.polished_blackstone_bricks": "Polished Blackstone Bricks", - "block.minecraft.polished_blackstone_brick_slab": "Polished Blackstone Brick Slab", - "block.minecraft.polished_blackstone_brick_stairs": "Polished Blackstone Brick Stairs", - "block.minecraft.polished_blackstone_brick_wall": "Polished Blackstone Brick Wall", - "block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone", - "block.minecraft.cracked_polished_blackstone_bricks": "Cracked Polished Blackstone Bricks", - "block.minecraft.gilded_blackstone": "Gilded Blackstone", - "block.minecraft.polished_blackstone": "Polished Blackstone", - "block.minecraft.polished_blackstone_wall": "Polished Blackstone Wall", - "block.minecraft.polished_blackstone_slab": "Polished Blackstone Slab", - "block.minecraft.polished_blackstone_stairs": "Polished Blackstone Stairs", - "block.minecraft.polished_blackstone_pressure_plate": "Polished Blackstone Pressure Plate", - "block.minecraft.polished_blackstone_button": "Polished Blackstone Button", - "block.minecraft.cracked_nether_bricks": "Cracked Nether Bricks", - "block.minecraft.chiseled_nether_bricks": "Chiseled Nether Bricks", - "block.minecraft.quartz_bricks": "Quartz Bricks", - "block.minecraft.chain": "Chain", - "block.minecraft.candle": "Candle", - "block.minecraft.white_candle": "White Candle", - "block.minecraft.orange_candle": "Orange Candle", - "block.minecraft.magenta_candle": "Magenta Candle", - "block.minecraft.light_blue_candle": "Light Blue Candle", - "block.minecraft.yellow_candle": "Yellow Candle", - "block.minecraft.lime_candle": "Lime Candle", - "block.minecraft.pink_candle": "Pink Candle", - "block.minecraft.gray_candle": "Gray Candle", - "block.minecraft.light_gray_candle": "Light Gray Candle", - "block.minecraft.cyan_candle": "Cyan Candle", - "block.minecraft.purple_candle": "Purple Candle", - "block.minecraft.blue_candle": "Blue Candle", - "block.minecraft.brown_candle": "Brown Candle", - "block.minecraft.green_candle": "Green Candle", - "block.minecraft.red_candle": "Red Candle", - "block.minecraft.black_candle": "Black Candle", - "block.minecraft.candle_cake": "Cake with Candle", - "block.minecraft.white_candle_cake": "Cake with White Candle", - "block.minecraft.orange_candle_cake": "Cake with Orange Candle", - "block.minecraft.magenta_candle_cake": "Cake with Magenta Candle", - "block.minecraft.light_blue_candle_cake": "Cake with Light Blue Candle", - "block.minecraft.yellow_candle_cake": "Cake with Yellow Candle", - "block.minecraft.lime_candle_cake": "Cake with Lime Candle", - "block.minecraft.pink_candle_cake": "Cake with Pink Candle", - "block.minecraft.gray_candle_cake": "Cake with Gray Candle", - "block.minecraft.light_gray_candle_cake": "Cake with Light Gray Candle", - "block.minecraft.cyan_candle_cake": "Cake with Cyan Candle", - "block.minecraft.purple_candle_cake": "Cake with Purple Candle", - "block.minecraft.blue_candle_cake": "Cake with Blue Candle", - "block.minecraft.brown_candle_cake": "Cake with Brown Candle", - "block.minecraft.green_candle_cake": "Cake with Green Candle", - "block.minecraft.red_candle_cake": "Cake with Red Candle", - "block.minecraft.black_candle_cake": "Cake with Black Candle", - "block.minecraft.amethyst_block": "Block of Amethyst", - "block.minecraft.small_amethyst_bud": "Small Amethyst Bud", - "block.minecraft.medium_amethyst_bud": "Medium Amethyst Bud", - "block.minecraft.large_amethyst_bud": "Large Amethyst Bud", - "block.minecraft.amethyst_cluster": "Amethyst Cluster", - "block.minecraft.budding_amethyst": "Budding Amethyst", - "block.minecraft.calcite": "Calcite", - "block.minecraft.tuff": "Tuff", - "block.minecraft.tinted_glass": "Tinted Glass", - "block.minecraft.dripstone_block": "Dripstone Block", - "block.minecraft.pointed_dripstone": "Pointed Dripstone", - "block.minecraft.copper_ore": "Copper Ore", - "block.minecraft.deepslate_copper_ore": "Deepslate Copper Ore", - "block.minecraft.copper_block": "Block of Copper", - "block.minecraft.exposed_copper": "Exposed Copper", - "block.minecraft.weathered_copper": "Weathered Copper", - "block.minecraft.oxidized_copper": "Oxidized Copper", - "block.minecraft.cut_copper": "Cut Copper", - "block.minecraft.exposed_cut_copper": "Exposed Cut Copper", - "block.minecraft.weathered_cut_copper": "Weathered Cut Copper", - "block.minecraft.oxidized_cut_copper": "Oxidized Cut Copper", - "block.minecraft.cut_copper_stairs": "Cut Copper Stairs", - "block.minecraft.exposed_cut_copper_stairs": "Exposed Cut Copper Stairs", - "block.minecraft.weathered_cut_copper_stairs": "Weathered Cut Copper Stairs", - "block.minecraft.oxidized_cut_copper_stairs": "Oxidized Cut Copper Stairs", - "block.minecraft.cut_copper_slab": "Cut Copper Slab", - "block.minecraft.exposed_cut_copper_slab": "Exposed Cut Copper Slab", - "block.minecraft.weathered_cut_copper_slab": "Weathered Cut Copper Slab", - "block.minecraft.oxidized_cut_copper_slab": "Oxidized Cut Copper Slab", - "block.minecraft.waxed_copper_block": "Waxed Block of Copper", - "block.minecraft.waxed_exposed_copper": "Waxed Exposed Copper", - "block.minecraft.waxed_weathered_copper": "Waxed Weathered Copper", - "block.minecraft.waxed_oxidized_copper": "Waxed Oxidized Copper", - "block.minecraft.waxed_cut_copper": "Waxed Cut Copper", - "block.minecraft.waxed_exposed_cut_copper": "Waxed Exposed Cut Copper", - "block.minecraft.waxed_weathered_cut_copper": "Waxed Weathered Cut Copper", - "block.minecraft.waxed_oxidized_cut_copper": "Waxed Oxidized Cut Copper", - "block.minecraft.waxed_cut_copper_stairs": "Waxed Cut Copper Stairs", - "block.minecraft.waxed_exposed_cut_copper_stairs": "Waxed Exposed Cut Copper Stairs", - "block.minecraft.waxed_weathered_cut_copper_stairs": "Waxed Weathered Cut Copper Stairs", - "block.minecraft.waxed_oxidized_cut_copper_stairs": "Waxed Oxidized Cut Copper Stairs", - "block.minecraft.waxed_cut_copper_slab": "Waxed Cut Copper Slab", - "block.minecraft.waxed_exposed_cut_copper_slab": "Waxed Exposed Cut Copper Slab", - "block.minecraft.waxed_weathered_cut_copper_slab": "Waxed Weathered Cut Copper Slab", - "block.minecraft.waxed_oxidized_cut_copper_slab": "Waxed Oxidized Cut Copper Slab", - "block.minecraft.lightning_rod": "Lightning Rod", - "block.minecraft.cave_vines": "Cave Vines", - "block.minecraft.cave_vines_plant": "Cave Vines Plant", - "block.minecraft.spore_blossom": "Spore Blossom", - "block.minecraft.azalea": "Azalea", - "block.minecraft.flowering_azalea": "Flowering Azalea", - "block.minecraft.azalea_leaves": "Azalea Leaves", - "block.minecraft.flowering_azalea_leaves": "Flowering Azalea Leaves", - "block.minecraft.moss_carpet": "Moss Carpet", - "block.minecraft.moss_block": "Moss Block", - "block.minecraft.big_dripleaf": "Big Dripleaf", - "block.minecraft.big_dripleaf_stem": "Big Dripleaf Stem", - "block.minecraft.small_dripleaf": "Small Dripleaf", - "block.minecraft.rooted_dirt": "Rooted Dirt", - "block.minecraft.mud": "Mud", - "block.minecraft.hanging_roots": "Hanging Roots", - "block.minecraft.powder_snow": "Powder Snow", - "block.minecraft.glow_lichen": "Glow Lichen", - "block.minecraft.sculk_sensor": "Sculk Sensor", - "block.minecraft.deepslate": "Deepslate", - "block.minecraft.cobbled_deepslate": "Cobbled Deepslate", - "block.minecraft.cobbled_deepslate_slab": "Cobbled Deepslate Slab", - "block.minecraft.cobbled_deepslate_stairs": "Cobbled Deepslate Stairs", - "block.minecraft.cobbled_deepslate_wall": "Cobbled Deepslate Wall", - "block.minecraft.chiseled_deepslate": "Chiseled Deepslate", - "block.minecraft.polished_deepslate": "Polished Deepslate", - "block.minecraft.polished_deepslate_slab": "Polished Deepslate Slab", - "block.minecraft.polished_deepslate_stairs": "Polished Deepslate Stairs", - "block.minecraft.polished_deepslate_wall": "Polished Deepslate Wall", - "block.minecraft.deepslate_bricks": "Deepslate Bricks", - "block.minecraft.deepslate_brick_slab": "Deepslate Brick Slab", - "block.minecraft.deepslate_brick_stairs": "Deepslate Brick Stairs", - "block.minecraft.deepslate_brick_wall": "Deepslate Brick Wall", - "block.minecraft.deepslate_tiles": "Deepslate Tiles", - "block.minecraft.deepslate_tile_slab": "Deepslate Tile Slab", - "block.minecraft.deepslate_tile_stairs": "Deepslate Tile Stairs", - "block.minecraft.deepslate_tile_wall": "Deepslate Tile Wall", - "block.minecraft.cracked_deepslate_bricks": "Cracked Deepslate Bricks", - "block.minecraft.cracked_deepslate_tiles": "Cracked Deepslate Tiles", - "block.minecraft.infested_deepslate": "Infested Deepslate", - "block.minecraft.smooth_basalt": "Smooth Basalt", - "block.minecraft.raw_iron_block": "Block of Raw Iron", - "block.minecraft.raw_copper_block": "Block of Raw Copper", - "block.minecraft.raw_gold_block": "Block of Raw Gold", - "block.minecraft.sculk": "Sculk", - "block.minecraft.sculk_catalyst": "Sculk Catalyst", - "block.minecraft.sculk_shrieker": "Sculk Shrieker", - "block.minecraft.sculk_vein": "Sculk Vein", - "block.minecraft.ochre_froglight": "Ochre Froglight", - "block.minecraft.verdant_froglight": "Verdant Froglight", - "block.minecraft.pearlescent_froglight": "Pearlescent Froglight", - "block.minecraft.frogspawn": "Frogspawn", - "block.minecraft.reinforced_deepslate": "Reinforced Deepslate", - "item.minecraft.name_tag": "Name Tag", - "item.minecraft.lead": "Lead", - "item.minecraft.iron_shovel": "Iron Shovel", - "item.minecraft.iron_pickaxe": "Iron Pickaxe", - "item.minecraft.iron_axe": "Iron Axe", - "item.minecraft.flint_and_steel": "Flint and Steel", - "item.minecraft.apple": "Apple", - "item.minecraft.cookie": "Cookie", - "item.minecraft.bow": "Bow", - "item.minecraft.bundle": "Bundle", - "item.minecraft.bundle.fullness": "%s/%s", - "item.minecraft.arrow": "Arrow", - "item.minecraft.spectral_arrow": "Spectral Arrow", - "item.minecraft.tipped_arrow": "Tipped Arrow", - "item.minecraft.dried_kelp": "Dried Kelp", - "item.minecraft.coal": "Coal", - "item.minecraft.charcoal": "Charcoal", - "item.minecraft.raw_copper": "Raw Copper", - "item.minecraft.raw_iron": "Raw Iron", - "item.minecraft.raw_gold": "Raw Gold", - "item.minecraft.diamond": "Diamond", - "item.minecraft.emerald": "Emerald", - "item.minecraft.iron_ingot": "Iron Ingot", - "item.minecraft.copper_ingot": "Copper Ingot", - "item.minecraft.gold_ingot": "Gold Ingot", - "item.minecraft.iron_sword": "Iron Sword", - "item.minecraft.wooden_sword": "Wooden Sword", - "item.minecraft.wooden_shovel": "Wooden Shovel", - "item.minecraft.wooden_pickaxe": "Wooden Pickaxe", - "item.minecraft.wooden_axe": "Wooden Axe", - "item.minecraft.stone_sword": "Stone Sword", - "item.minecraft.stone_shovel": "Stone Shovel", - "item.minecraft.stone_pickaxe": "Stone Pickaxe", - "item.minecraft.stone_axe": "Stone Axe", - "item.minecraft.diamond_sword": "Diamond Sword", - "item.minecraft.diamond_shovel": "Diamond Shovel", - "item.minecraft.diamond_pickaxe": "Diamond Pickaxe", - "item.minecraft.diamond_axe": "Diamond Axe", - "item.minecraft.stick": "Stick", - "item.minecraft.bowl": "Bowl", - "item.minecraft.mushroom_stew": "Mushroom Stew", - "item.minecraft.golden_sword": "Golden Sword", - "item.minecraft.golden_shovel": "Golden Shovel", - "item.minecraft.golden_pickaxe": "Golden Pickaxe", - "item.minecraft.golden_axe": "Golden Axe", - "item.minecraft.string": "String", - "item.minecraft.feather": "Feather", - "item.minecraft.gunpowder": "Gunpowder", - "item.minecraft.wooden_hoe": "Wooden Hoe", - "item.minecraft.stone_hoe": "Stone Hoe", - "item.minecraft.iron_hoe": "Iron Hoe", - "item.minecraft.diamond_hoe": "Diamond Hoe", - "item.minecraft.golden_hoe": "Golden Hoe", - "item.minecraft.wheat_seeds": "Wheat Seeds", - "item.minecraft.pumpkin_seeds": "Pumpkin Seeds", - "item.minecraft.melon_seeds": "Melon Seeds", - "item.minecraft.melon_slice": "Melon Slice", - "item.minecraft.wheat": "Wheat", - "item.minecraft.bread": "Bread", - "item.minecraft.leather_helmet": "Leather Cap", - "item.minecraft.leather_chestplate": "Leather Tunic", - "item.minecraft.leather_leggings": "Leather Pants", - "item.minecraft.leather_boots": "Leather Boots", - "item.minecraft.chainmail_helmet": "Chainmail Helmet", - "item.minecraft.chainmail_chestplate": "Chainmail Chestplate", - "item.minecraft.chainmail_leggings": "Chainmail Leggings", - "item.minecraft.chainmail_boots": "Chainmail Boots", - "item.minecraft.iron_helmet": "Iron Helmet", - "item.minecraft.iron_chestplate": "Iron Chestplate", - "item.minecraft.iron_leggings": "Iron Leggings", - "item.minecraft.iron_boots": "Iron Boots", - "item.minecraft.diamond_helmet": "Diamond Helmet", - "item.minecraft.diamond_chestplate": "Diamond Chestplate", - "item.minecraft.diamond_leggings": "Diamond Leggings", - "item.minecraft.diamond_boots": "Diamond Boots", - "item.minecraft.golden_helmet": "Golden Helmet", - "item.minecraft.golden_chestplate": "Golden Chestplate", - "item.minecraft.golden_leggings": "Golden Leggings", - "item.minecraft.golden_boots": "Golden Boots", - "item.minecraft.flint": "Flint", - "item.minecraft.porkchop": "Raw Porkchop", - "item.minecraft.cooked_porkchop": "Cooked Porkchop", - "item.minecraft.chicken": "Raw Chicken", - "item.minecraft.cooked_chicken": "Cooked Chicken", - "item.minecraft.mutton": "Raw Mutton", - "item.minecraft.cooked_mutton": "Cooked Mutton", - "item.minecraft.rabbit": "Raw Rabbit", - "item.minecraft.cooked_rabbit": "Cooked Rabbit", - "item.minecraft.rabbit_stew": "Rabbit Stew", - "item.minecraft.rabbit_foot": "Rabbit's Foot", - "item.minecraft.rabbit_hide": "Rabbit Hide", - "item.minecraft.beef": "Raw Beef", - "item.minecraft.cooked_beef": "Steak", - "item.minecraft.painting": "Painting", - "item.minecraft.item_frame": "Item Frame", - "item.minecraft.golden_apple": "Golden Apple", - "item.minecraft.enchanted_golden_apple": "Enchanted Golden Apple", - "item.minecraft.sign": "Sign", - "item.minecraft.bucket": "Bucket", - "item.minecraft.water_bucket": "Water Bucket", - "item.minecraft.lava_bucket": "Lava Bucket", - "item.minecraft.pufferfish_bucket": "Bucket of Pufferfish", - "item.minecraft.salmon_bucket": "Bucket of Salmon", - "item.minecraft.cod_bucket": "Bucket of Cod", - "item.minecraft.tropical_fish_bucket": "Bucket of Tropical Fish", - "item.minecraft.powder_snow_bucket": "Powder Snow Bucket", - "item.minecraft.axolotl_bucket": "Bucket of Axolotl", - "item.minecraft.tadpole_bucket": "Bucket of Tadpole", - "item.minecraft.minecart": "Minecart", - "item.minecraft.saddle": "Saddle", - "item.minecraft.redstone": "Redstone Dust", - "item.minecraft.snowball": "Snowball", - "item.minecraft.oak_boat": "Oak Boat", - "item.minecraft.oak_chest_boat": "Oak Boat with Chest", - "item.minecraft.spruce_boat": "Spruce Boat", - "item.minecraft.spruce_chest_boat": "Spruce Boat with Chest", - "item.minecraft.birch_boat": "Birch Boat", - "item.minecraft.birch_chest_boat": "Birch Boat with Chest", - "item.minecraft.jungle_boat": "Jungle Boat", - "item.minecraft.jungle_chest_boat": "Jungle Boat with Chest", - "item.minecraft.acacia_boat": "Acacia Boat", - "item.minecraft.acacia_chest_boat": "Acacia Boat with Chest", - "item.minecraft.dark_oak_boat": "Dark Oak Boat", - "item.minecraft.dark_oak_chest_boat": "Dark Oak Boat with Chest", - "item.minecraft.mangrove_boat": "Mangrove Boat", - "item.minecraft.mangrove_chest_boat": "Mangrove Boat with Chest", - "item.minecraft.bamboo_raft": "Bamboo Raft", - "item.minecraft.bamboo_chest_raft": "Bamboo Raft with Chest", - "item.minecraft.leather": "Leather", - "item.minecraft.milk_bucket": "Milk Bucket", - "item.minecraft.brick": "Brick", - "item.minecraft.clay_ball": "Clay Ball", - "item.minecraft.paper": "Paper", - "item.minecraft.book": "Book", - "item.minecraft.slime_ball": "Slimeball", - "item.minecraft.chest_minecart": "Minecart with Chest", - "item.minecraft.furnace_minecart": "Minecart with Furnace", - "item.minecraft.tnt_minecart": "Minecart with TNT", - "item.minecraft.hopper_minecart": "Minecart with Hopper", - "item.minecraft.command_block_minecart": "Minecart with Command Block", - "item.minecraft.egg": "Egg", - "item.minecraft.compass": "Compass", - "item.minecraft.recovery_compass": "Recovery Compass", - "item.minecraft.fishing_rod": "Fishing Rod", - "item.minecraft.clock": "Clock", - "item.minecraft.glowstone_dust": "Glowstone Dust", - "item.minecraft.cod": "Raw Cod", - "item.minecraft.salmon": "Raw Salmon", - "item.minecraft.pufferfish": "Pufferfish", - "item.minecraft.tropical_fish": "Tropical Fish", - "item.minecraft.cooked_cod": "Cooked Cod", - "item.minecraft.cooked_salmon": "Cooked Salmon", - "item.minecraft.music_disc_13": "Music Disc", - "item.minecraft.music_disc_cat": "Music Disc", - "item.minecraft.music_disc_blocks": "Music Disc", - "item.minecraft.music_disc_chirp": "Music Disc", - "item.minecraft.music_disc_far": "Music Disc", - "item.minecraft.music_disc_mall": "Music Disc", - "item.minecraft.music_disc_mellohi": "Music Disc", - "item.minecraft.music_disc_stal": "Music Disc", - "item.minecraft.music_disc_strad": "Music Disc", - "item.minecraft.music_disc_ward": "Music Disc", - "item.minecraft.music_disc_11": "Music Disc", - "item.minecraft.music_disc_wait": "Music Disc", - "item.minecraft.music_disc_pigstep": "Music Disc", - "item.minecraft.music_disc_otherside": "Music Disc", - "item.minecraft.music_disc_5": "Music Disc", - "item.minecraft.music_disc_13.desc": "C418 - 13", - "item.minecraft.music_disc_cat.desc": "C418 - cat", - "item.minecraft.music_disc_blocks.desc": "C418 - blocks", - "item.minecraft.music_disc_chirp.desc": "C418 - chirp", - "item.minecraft.music_disc_far.desc": "C418 - far", - "item.minecraft.music_disc_mall.desc": "C418 - mall", - "item.minecraft.music_disc_mellohi.desc": "C418 - mellohi", - "item.minecraft.music_disc_stal.desc": "C418 - stal", - "item.minecraft.music_disc_strad.desc": "C418 - strad", - "item.minecraft.music_disc_ward.desc": "C418 - ward", - "item.minecraft.music_disc_11.desc": "C418 - 11", - "item.minecraft.music_disc_wait.desc": "C418 - wait", - "item.minecraft.music_disc_pigstep.desc": "Lena Raine - Pigstep", - "item.minecraft.music_disc_otherside.desc": "Lena Raine - otherside", - "item.minecraft.music_disc_5.desc": "Samuel Åberg - 5", - "item.minecraft.bone": "Bone", - "item.minecraft.ink_sac": "Ink Sac", - "item.minecraft.red_dye": "Red Dye", - "item.minecraft.green_dye": "Green Dye", - "item.minecraft.cocoa_beans": "Cocoa Beans", - "item.minecraft.lapis_lazuli": "Lapis Lazuli", - "item.minecraft.purple_dye": "Purple Dye", - "item.minecraft.cyan_dye": "Cyan Dye", - "item.minecraft.light_gray_dye": "Light Gray Dye", - "item.minecraft.gray_dye": "Gray Dye", - "item.minecraft.pink_dye": "Pink Dye", - "item.minecraft.lime_dye": "Lime Dye", - "item.minecraft.yellow_dye": "Yellow Dye", - "item.minecraft.light_blue_dye": "Light Blue Dye", - "item.minecraft.magenta_dye": "Magenta Dye", - "item.minecraft.orange_dye": "Orange Dye", - "item.minecraft.bone_meal": "Bone Meal", - "item.minecraft.blue_dye": "Blue Dye", - "item.minecraft.black_dye": "Black Dye", - "item.minecraft.brown_dye": "Brown Dye", - "item.minecraft.white_dye": "White Dye", - "item.minecraft.sugar": "Sugar", - "item.minecraft.amethyst_shard": "Amethyst Shard", - "item.minecraft.spyglass": "Spyglass", - "item.minecraft.glow_berries": "Glow Berries", - "item.minecraft.disc_fragment_5": "Disc Fragment", - "item.minecraft.disc_fragment_5.desc": "Music Disc - 5", - "block.minecraft.black_bed": "Black Bed", - "block.minecraft.red_bed": "Red Bed", - "block.minecraft.green_bed": "Green Bed", - "block.minecraft.brown_bed": "Brown Bed", - "block.minecraft.blue_bed": "Blue Bed", - "block.minecraft.purple_bed": "Purple Bed", - "block.minecraft.cyan_bed": "Cyan Bed", - "block.minecraft.light_gray_bed": "Light Gray Bed", - "block.minecraft.gray_bed": "Gray Bed", - "block.minecraft.pink_bed": "Pink Bed", - "block.minecraft.lime_bed": "Lime Bed", - "block.minecraft.yellow_bed": "Yellow Bed", - "block.minecraft.light_blue_bed": "Light Blue Bed", - "block.minecraft.magenta_bed": "Magenta Bed", - "block.minecraft.orange_bed": "Orange Bed", - "block.minecraft.white_bed": "White Bed", - "block.minecraft.repeater": "Redstone Repeater", - "block.minecraft.comparator": "Redstone Comparator", - "item.minecraft.filled_map": "Map", - "item.minecraft.shears": "Shears", - "item.minecraft.rotten_flesh": "Rotten Flesh", - "item.minecraft.ender_pearl": "Ender Pearl", - "item.minecraft.blaze_rod": "Blaze Rod", - "item.minecraft.ghast_tear": "Ghast Tear", - "item.minecraft.nether_wart": "Nether Wart", - "item.minecraft.potion": "Potion", - "item.minecraft.splash_potion": "Splash Potion", - "item.minecraft.lingering_potion": "Lingering Potion", - "item.minecraft.end_crystal": "End Crystal", - "item.minecraft.gold_nugget": "Gold Nugget", - "item.minecraft.glass_bottle": "Glass Bottle", - "item.minecraft.spider_eye": "Spider Eye", - "item.minecraft.fermented_spider_eye": "Fermented Spider Eye", - "item.minecraft.blaze_powder": "Blaze Powder", - "item.minecraft.magma_cream": "Magma Cream", - "item.minecraft.cauldron": "Cauldron", - "item.minecraft.brewing_stand": "Brewing Stand", - "item.minecraft.ender_eye": "Eye of Ender", - "item.minecraft.glistering_melon_slice": "Glistering Melon Slice", - "item.minecraft.allay_spawn_egg": "Allay Spawn Egg", - "item.minecraft.axolotl_spawn_egg": "Axolotl Spawn Egg", - "item.minecraft.bat_spawn_egg": "Bat Spawn Egg", - "item.minecraft.bee_spawn_egg": "Bee Spawn Egg", - "item.minecraft.blaze_spawn_egg": "Blaze Spawn Egg", - "item.minecraft.cat_spawn_egg": "Cat Spawn Egg", - "item.minecraft.camel_spawn_egg": "Camel Spawn Egg", - "item.minecraft.cave_spider_spawn_egg": "Cave Spider Spawn Egg", - "item.minecraft.chicken_spawn_egg": "Chicken Spawn Egg", - "item.minecraft.cod_spawn_egg": "Cod Spawn Egg", - "item.minecraft.cow_spawn_egg": "Cow Spawn Egg", - "item.minecraft.creeper_spawn_egg": "Creeper Spawn Egg", - "item.minecraft.dolphin_spawn_egg": "Dolphin Spawn Egg", - "item.minecraft.donkey_spawn_egg": "Donkey Spawn Egg", - "item.minecraft.drowned_spawn_egg": "Drowned Spawn Egg", - "item.minecraft.elder_guardian_spawn_egg": "Elder Guardian Spawn Egg", - "item.minecraft.ender_dragon_spawn_egg": "Ender Dragon Spawn Egg", - "item.minecraft.enderman_spawn_egg": "Enderman Spawn Egg", - "item.minecraft.endermite_spawn_egg": "Endermite Spawn Egg", - "item.minecraft.evoker_spawn_egg": "Evoker Spawn Egg", - "item.minecraft.ghast_spawn_egg": "Ghast Spawn Egg", - "item.minecraft.glow_squid_spawn_egg": "Glow Squid Spawn Egg", - "item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg", - "item.minecraft.hoglin_spawn_egg": "Hoglin Spawn Egg", - "item.minecraft.horse_spawn_egg": "Horse Spawn Egg", - "item.minecraft.husk_spawn_egg": "Husk Spawn Egg", - "item.minecraft.iron_golem_spawn_egg": "Iron Golem Spawn Egg", - "item.minecraft.ravager_spawn_egg": "Ravager Spawn Egg", - "item.minecraft.llama_spawn_egg": "Llama Spawn Egg", - "item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg", - "item.minecraft.mooshroom_spawn_egg": "Mooshroom Spawn Egg", - "item.minecraft.mule_spawn_egg": "Mule Spawn Egg", - "item.minecraft.ocelot_spawn_egg": "Ocelot Spawn Egg", - "item.minecraft.panda_spawn_egg": "Panda Spawn Egg", - "item.minecraft.parrot_spawn_egg": "Parrot Spawn Egg", - "item.minecraft.pig_spawn_egg": "Pig Spawn Egg", - "item.minecraft.piglin_spawn_egg": "Piglin Spawn Egg", - "item.minecraft.piglin_brute_spawn_egg": "Piglin Brute Spawn Egg", - "item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg", - "item.minecraft.phantom_spawn_egg": "Phantom Spawn Egg", - "item.minecraft.polar_bear_spawn_egg": "Polar Bear Spawn Egg", - "item.minecraft.pufferfish_spawn_egg": "Pufferfish Spawn Egg", - "item.minecraft.rabbit_spawn_egg": "Rabbit Spawn Egg", - "item.minecraft.fox_spawn_egg": "Fox Spawn Egg", - "item.minecraft.frog_spawn_egg": "Frog Spawn Egg", - "item.minecraft.salmon_spawn_egg": "Salmon Spawn Egg", - "item.minecraft.sheep_spawn_egg": "Sheep Spawn Egg", - "item.minecraft.shulker_spawn_egg": "Shulker Spawn Egg", - "item.minecraft.silverfish_spawn_egg": "Silverfish Spawn Egg", - "item.minecraft.skeleton_spawn_egg": "Skeleton Spawn Egg", - "item.minecraft.skeleton_horse_spawn_egg": "Skeleton Horse Spawn Egg", - "item.minecraft.slime_spawn_egg": "Slime Spawn Egg", - "item.minecraft.snow_golem_spawn_egg": "Snow Golem Spawn Egg", - "item.minecraft.spider_spawn_egg": "Spider Spawn Egg", - "item.minecraft.squid_spawn_egg": "Squid Spawn Egg", - "item.minecraft.stray_spawn_egg": "Stray Spawn Egg", - "item.minecraft.strider_spawn_egg": "Strider Spawn Egg", - "item.minecraft.tadpole_spawn_egg": "Tadpole Spawn Egg", - "item.minecraft.trader_llama_spawn_egg": "Trader Llama Spawn Egg", - "item.minecraft.tropical_fish_spawn_egg": "Tropical Fish Spawn Egg", - "item.minecraft.turtle_spawn_egg": "Turtle Spawn Egg", - "item.minecraft.vex_spawn_egg": "Vex Spawn Egg", - "item.minecraft.villager_spawn_egg": "Villager Spawn Egg", - "item.minecraft.wandering_trader_spawn_egg": "Wandering Trader Spawn Egg", - "item.minecraft.vindicator_spawn_egg": "Vindicator Spawn Egg", - "item.minecraft.warden_spawn_egg": "Warden Spawn Egg", - "item.minecraft.witch_spawn_egg": "Witch Spawn Egg", - "item.minecraft.wither_spawn_egg": "Wither Spawn Egg", - "item.minecraft.wither_skeleton_spawn_egg": "Wither Skeleton Spawn Egg", - "item.minecraft.wolf_spawn_egg": "Wolf Spawn Egg", - "item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg", - "item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg", - "item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg", - "item.minecraft.zombified_piglin_spawn_egg": "Zombified Piglin Spawn Egg", - "item.minecraft.zombie_villager_spawn_egg": "Zombie Villager Spawn Egg", - "item.minecraft.goat_spawn_egg": "Goat Spawn Egg", - "item.minecraft.experience_bottle": "Bottle o' Enchanting", - "item.minecraft.fire_charge": "Fire Charge", - "item.minecraft.writable_book": "Book and Quill", - "item.minecraft.written_book": "Written Book", - "item.minecraft.flower_pot": "Flower Pot", - "item.minecraft.map": "Empty Map", - "item.minecraft.carrot": "Carrot", - "item.minecraft.golden_carrot": "Golden Carrot", - "item.minecraft.potato": "Potato", - "item.minecraft.baked_potato": "Baked Potato", - "item.minecraft.poisonous_potato": "Poisonous Potato", - "item.minecraft.carrot_on_a_stick": "Carrot on a Stick", - "item.minecraft.nether_star": "Nether Star", - "item.minecraft.pumpkin_pie": "Pumpkin Pie", - "item.minecraft.enchanted_book": "Enchanted Book", - "item.minecraft.firework_rocket": "Firework Rocket", - "item.minecraft.firework_rocket.flight": "Flight Duration:", - "item.minecraft.firework_star": "Firework Star", - "item.minecraft.firework_star.black": "Black", - "item.minecraft.firework_star.red": "Red", - "item.minecraft.firework_star.green": "Green", - "item.minecraft.firework_star.brown": "Brown", - "item.minecraft.firework_star.blue": "Blue", - "item.minecraft.firework_star.purple": "Purple", - "item.minecraft.firework_star.cyan": "Cyan", - "item.minecraft.firework_star.light_gray": "Light Gray", - "item.minecraft.firework_star.gray": "Gray", - "item.minecraft.firework_star.pink": "Pink", - "item.minecraft.firework_star.lime": "Lime", - "item.minecraft.firework_star.yellow": "Yellow", - "item.minecraft.firework_star.light_blue": "Light Blue", - "item.minecraft.firework_star.magenta": "Magenta", - "item.minecraft.firework_star.orange": "Orange", - "item.minecraft.firework_star.white": "White", - "item.minecraft.firework_star.custom_color": "Custom", - "item.minecraft.firework_star.fade_to": "Fade to", - "item.minecraft.firework_star.flicker": "Twinkle", - "item.minecraft.firework_star.trail": "Trail", - "item.minecraft.firework_star.shape.small_ball": "Small Ball", - "item.minecraft.firework_star.shape.large_ball": "Large Ball", - "item.minecraft.firework_star.shape.star": "Star-shaped", - "item.minecraft.firework_star.shape.creeper": "Creeper-shaped", - "item.minecraft.firework_star.shape.burst": "Burst", - "item.minecraft.firework_star.shape": "Unknown Shape", - "item.minecraft.nether_brick": "Nether Brick", - "item.minecraft.quartz": "Nether Quartz", - "item.minecraft.armor_stand": "Armor Stand", - "item.minecraft.iron_horse_armor": "Iron Horse Armor", - "item.minecraft.golden_horse_armor": "Golden Horse Armor", - "item.minecraft.diamond_horse_armor": "Diamond Horse Armor", - "item.minecraft.leather_horse_armor": "Leather Horse Armor", - "item.minecraft.prismarine_shard": "Prismarine Shard", - "item.minecraft.prismarine_crystals": "Prismarine Crystals", - "item.minecraft.chorus_fruit": "Chorus Fruit", - "item.minecraft.popped_chorus_fruit": "Popped Chorus Fruit", - "item.minecraft.beetroot": "Beetroot", - "item.minecraft.beetroot_seeds": "Beetroot Seeds", - "item.minecraft.beetroot_soup": "Beetroot Soup", - "item.minecraft.dragon_breath": "Dragon's Breath", - "item.minecraft.elytra": "Elytra", - "item.minecraft.totem_of_undying": "Totem of Undying", - "item.minecraft.shulker_shell": "Shulker Shell", - "item.minecraft.iron_nugget": "Iron Nugget", - "item.minecraft.knowledge_book": "Knowledge Book", - "item.minecraft.debug_stick": "Debug Stick", - "item.minecraft.debug_stick.empty": "%s has no properties", - "item.minecraft.debug_stick.update": "\"%s\" to %s", - "item.minecraft.debug_stick.select": "selected \"%s\" (%s)", - "item.minecraft.trident": "Trident", - "item.minecraft.scute": "Scute", - "item.minecraft.turtle_helmet": "Turtle Shell", - "item.minecraft.phantom_membrane": "Phantom Membrane", - "item.minecraft.nautilus_shell": "Nautilus Shell", - "item.minecraft.heart_of_the_sea": "Heart of the Sea", - "item.minecraft.crossbow": "Crossbow", - "item.minecraft.crossbow.projectile": "Projectile:", - "item.minecraft.suspicious_stew": "Suspicious Stew", - "item.minecraft.creeper_banner_pattern": "Banner Pattern", - "item.minecraft.skull_banner_pattern": "Banner Pattern", - "item.minecraft.flower_banner_pattern": "Banner Pattern", - "item.minecraft.mojang_banner_pattern": "Banner Pattern", - "item.minecraft.globe_banner_pattern": "Banner Pattern", - "item.minecraft.creeper_banner_pattern.desc": "Creeper Charge", - "item.minecraft.skull_banner_pattern.desc": "Skull Charge", - "item.minecraft.flower_banner_pattern.desc": "Flower Charge", - "item.minecraft.mojang_banner_pattern.desc": "Thing", - "item.minecraft.globe_banner_pattern.desc": "Globe", - "item.minecraft.piglin_banner_pattern": "Banner Pattern", - "item.minecraft.piglin_banner_pattern.desc": "Snout", - "item.minecraft.sweet_berries": "Sweet Berries", - "item.minecraft.honey_bottle": "Honey Bottle", - "item.minecraft.honeycomb": "Honeycomb", - "item.minecraft.lodestone_compass": "Lodestone Compass", - "item.minecraft.netherite_scrap": "Netherite Scrap", - "item.minecraft.netherite_ingot": "Netherite Ingot", - "item.minecraft.netherite_helmet": "Netherite Helmet", - "item.minecraft.netherite_chestplate": "Netherite Chestplate", - "item.minecraft.netherite_leggings": "Netherite Leggings", - "item.minecraft.netherite_boots": "Netherite Boots", - "item.minecraft.netherite_axe": "Netherite Axe", - "item.minecraft.netherite_pickaxe": "Netherite Pickaxe", - "item.minecraft.netherite_hoe": "Netherite Hoe", - "item.minecraft.netherite_shovel": "Netherite Shovel", - "item.minecraft.netherite_sword": "Netherite Sword", - "item.minecraft.warped_fungus_on_a_stick": "Warped Fungus on a Stick", - "item.minecraft.glow_ink_sac": "Glow Ink Sac", - "item.minecraft.glow_item_frame": "Glow Item Frame", - "item.minecraft.echo_shard": "Echo Shard", - "item.minecraft.goat_horn": "Goat Horn", - "instrument.minecraft.ponder_goat_horn": "Ponder", - "instrument.minecraft.sing_goat_horn": "Sing", - "instrument.minecraft.seek_goat_horn": "Seek", - "instrument.minecraft.feel_goat_horn": "Feel", - "instrument.minecraft.admire_goat_horn": "Admire", - "instrument.minecraft.call_goat_horn": "Call", - "instrument.minecraft.yearn_goat_horn": "Yearn", - "instrument.minecraft.dream_goat_horn": "Dream", - "container.inventory": "Inventory", - "container.hopper": "Item Hopper", - "container.crafting": "Crafting", - "container.dispenser": "Dispenser", - "container.dropper": "Dropper", - "container.furnace": "Furnace", - "container.enchant": "Enchant", - "container.smoker": "Smoker", - "container.lectern": "Lectern", - "container.blast_furnace": "Blast Furnace", - "container.enchant.lapis.one": "1 Lapis Lazuli", - "container.enchant.lapis.many": "%s Lapis Lazuli", - "container.enchant.level.one": "1 Enchantment Level", - "container.enchant.level.many": "%s Enchantment Levels", - "container.enchant.level.requirement": "Level Requirement: %s", - "container.enchant.clue": "%s . . . ?", - "container.repair": "Repair & Name", - "container.repair.cost": "Enchantment Cost: %1$s", - "container.repair.expensive": "Too Expensive!", - "container.creative": "Item Selection", - "container.brewing": "Brewing Stand", - "container.chest": "Chest", - "container.chestDouble": "Large Chest", - "container.enderchest": "Ender Chest", - "container.beacon": "Beacon", - "container.shulkerBox": "Shulker Box", - "container.shulkerBox.more": "and %s more...", - "container.barrel": "Barrel", - "container.spectatorCantOpen": "Unable to open. Loot not generated yet.", - "container.isLocked": "%s is locked!", - "container.loom": "Loom", - "container.grindstone_title": "Repair & Disenchant", - "container.cartography_table": "Cartography Table", - "container.stonecutter": "Stonecutter", - "container.upgrade": "Upgrade Gear", - "structure_block.invalid_structure_name": "Invalid structure name '%s'", - "structure_block.save_success": "Structure saved as '%s'", - "structure_block.save_failure": "Unable to save structure '%s'", - "structure_block.load_success": "Structure loaded from '%s'", - "structure_block.load_prepare": "Structure '%s' position prepared", - "structure_block.load_not_found": "Structure '%s' is not available", - "structure_block.size_success": "Size successfully detected for '%s'", - "structure_block.size_failure": "Unable to detect structure size. Add corners with matching structure names", - "structure_block.mode.save": "Save", - "structure_block.mode.load": "Load", - "structure_block.mode.data": "Data", - "structure_block.mode.corner": "Corner", - "structure_block.hover.save": "Save: %s", - "structure_block.hover.load": "Load: %s", - "structure_block.hover.data": "Data: %s", - "structure_block.hover.corner": "Corner: %s", - "structure_block.mode_info.save": "Save Mode - Write to File", - "structure_block.mode_info.load": "Load Mode - Load from File", - "structure_block.mode_info.data": "Data Mode - Game Logic Marker", - "structure_block.mode_info.corner": "Corner Mode - Placement and Size Marker", - "structure_block.structure_name": "Structure Name", - "structure_block.custom_data": "Custom Data Tag Name", - "structure_block.position": "Relative Position", - "structure_block.position.x": "relative Position x", - "structure_block.position.y": "relative position y", - "structure_block.position.z": "relative position z", - "structure_block.size": "Structure Size", - "structure_block.size.x": "structure size x", - "structure_block.size.y": "structure size y", - "structure_block.size.z": "structure size z", - "structure_block.integrity": "Structure Integrity and Seed", - "structure_block.integrity.integrity": "Structure Integrity", - "structure_block.integrity.seed": "Structure Seed", - "structure_block.include_entities": "Include entities:", - "structure_block.detect_size": "Detect structure size and position:", - "structure_block.button.detect_size": "DETECT", - "structure_block.button.save": "SAVE", - "structure_block.button.load": "LOAD", - "structure_block.show_air": "Show Invisible Blocks:", - "structure_block.show_boundingbox": "Show Bounding Box:", - "jigsaw_block.pool": "Target Pool:", - "jigsaw_block.name": "Name:", - "jigsaw_block.target": "Target Name:", - "jigsaw_block.final_state": "Turns into:", - "jigsaw_block.levels": "Levels: %s", - "jigsaw_block.keep_jigsaws": "Keep Jigsaws", - "jigsaw_block.generate": "Generate", - "jigsaw_block.joint_label": "Joint Type:", - "jigsaw_block.joint.rollable": "Rollable", - "jigsaw_block.joint.aligned": "Aligned", - "item.dyed": "Dyed", - "item.unbreakable": "Unbreakable", - "item.canBreak": "Can break:", - "item.canPlace": "Can be placed on:", - "item.color": "Color: %s", - "item.nbt_tags": "NBT: %s tag(s)", - "item.durability": "Durability: %s / %s", - "item.disabled": "Disabled item", - "filled_map.mansion": "Woodland Explorer Map", - "filled_map.monument": "Ocean Explorer Map", - "filled_map.buried_treasure": "Buried Treasure Map", - "filled_map.unknown": "Unknown Map", - "filled_map.id": "Id #%s", - "filled_map.level": "(Level %s/%s)", - "filled_map.scale": "Scaling at 1:%s", - "filled_map.locked": "Locked", - "entity.minecraft.allay": "Allay", - "entity.minecraft.area_effect_cloud": "Area Effect Cloud", - "entity.minecraft.armor_stand": "Armor Stand", - "entity.minecraft.arrow": "Arrow", - "entity.minecraft.axolotl": "Axolotl", - "entity.minecraft.bat": "Bat", - "entity.minecraft.bee": "Bee", - "entity.minecraft.blaze": "Blaze", - "entity.minecraft.boat": "Boat", - "entity.minecraft.chest_boat": "Boat with Chest", - "entity.minecraft.cat": "Cat", - "entity.minecraft.camel": "Camel", - "entity.minecraft.cave_spider": "Cave Spider", - "entity.minecraft.chest_minecart": "Minecart with Chest", - "entity.minecraft.chicken": "Chicken", - "entity.minecraft.command_block_minecart": "Minecart with Command Block", - "entity.minecraft.cod": "Cod", - "entity.minecraft.cow": "Cow", - "entity.minecraft.creeper": "Creeper", - "entity.minecraft.dolphin": "Dolphin", - "entity.minecraft.donkey": "Donkey", - "entity.minecraft.drowned": "Drowned", - "entity.minecraft.dragon_fireball": "Dragon Fireball", - "entity.minecraft.egg": "Thrown Egg", - "entity.minecraft.elder_guardian": "Elder Guardian", - "entity.minecraft.end_crystal": "End Crystal", - "entity.minecraft.ender_dragon": "Ender Dragon", - "entity.minecraft.ender_pearl": "Thrown Ender Pearl", - "entity.minecraft.enderman": "Enderman", - "entity.minecraft.endermite": "Endermite", - "entity.minecraft.evoker_fangs": "Evoker Fangs", - "entity.minecraft.evoker": "Evoker", - "entity.minecraft.eye_of_ender": "Eye of Ender", - "entity.minecraft.falling_block": "Falling Block", - "entity.minecraft.fireball": "Fireball", - "entity.minecraft.firework_rocket": "Firework Rocket", - "entity.minecraft.fishing_bobber": "Fishing Bobber", - "entity.minecraft.fox": "Fox", - "entity.minecraft.frog": "Frog", - "entity.minecraft.furnace_minecart": "Minecart with Furnace", - "entity.minecraft.ghast": "Ghast", - "entity.minecraft.giant": "Giant", - "entity.minecraft.glow_item_frame": "Glow Item Frame", - "entity.minecraft.glow_squid": "Glow Squid", - "entity.minecraft.goat": "Goat", - "entity.minecraft.guardian": "Guardian", - "entity.minecraft.hoglin": "Hoglin", - "entity.minecraft.hopper_minecart": "Minecart with Hopper", - "entity.minecraft.horse": "Horse", - "entity.minecraft.husk": "Husk", - "entity.minecraft.ravager": "Ravager", - "entity.minecraft.illusioner": "Illusioner", - "entity.minecraft.item": "Item", - "entity.minecraft.item_frame": "Item Frame", - "entity.minecraft.killer_bunny": "The Killer Bunny", - "entity.minecraft.leash_knot": "Leash Knot", - "entity.minecraft.lightning_bolt": "Lightning Bolt", - "entity.minecraft.llama": "Llama", - "entity.minecraft.llama_spit": "Llama Spit", - "entity.minecraft.magma_cube": "Magma Cube", - "entity.minecraft.marker": "Marker", - "entity.minecraft.minecart": "Minecart", - "entity.minecraft.mooshroom": "Mooshroom", - "entity.minecraft.mule": "Mule", - "entity.minecraft.ocelot": "Ocelot", - "entity.minecraft.painting": "Painting", - "entity.minecraft.panda": "Panda", - "entity.minecraft.parrot": "Parrot", - "entity.minecraft.phantom": "Phantom", - "entity.minecraft.pig": "Pig", - "entity.minecraft.piglin": "Piglin", - "entity.minecraft.piglin_brute": "Piglin Brute", - "entity.minecraft.pillager": "Pillager", - "entity.minecraft.player": "Player", - "entity.minecraft.polar_bear": "Polar Bear", - "entity.minecraft.potion": "Potion", - "entity.minecraft.pufferfish": "Pufferfish", - "entity.minecraft.rabbit": "Rabbit", - "entity.minecraft.salmon": "Salmon", - "entity.minecraft.sheep": "Sheep", - "entity.minecraft.shulker": "Shulker", - "entity.minecraft.shulker_bullet": "Shulker Bullet", - "entity.minecraft.silverfish": "Silverfish", - "entity.minecraft.skeleton": "Skeleton", - "entity.minecraft.skeleton_horse": "Skeleton Horse", - "entity.minecraft.slime": "Slime", - "entity.minecraft.small_fireball": "Small Fireball", - "entity.minecraft.snowball": "Snowball", - "entity.minecraft.snow_golem": "Snow Golem", - "entity.minecraft.spawner_minecart": "Minecart with Monster Spawner", - "entity.minecraft.spectral_arrow": "Spectral Arrow", - "entity.minecraft.spider": "Spider", - "entity.minecraft.squid": "Squid", - "entity.minecraft.stray": "Stray", - "entity.minecraft.strider": "Strider", - "entity.minecraft.tadpole": "Tadpole", - "entity.minecraft.tnt": "Primed TNT", - "entity.minecraft.tnt_minecart": "Minecart with TNT", - "entity.minecraft.trader_llama": "Trader Llama", - "entity.minecraft.trident": "Trident", - "entity.minecraft.tropical_fish": "Tropical Fish", - "entity.minecraft.tropical_fish.predefined.0": "Anemone", - "entity.minecraft.tropical_fish.predefined.1": "Black Tang", - "entity.minecraft.tropical_fish.predefined.2": "Blue Tang", - "entity.minecraft.tropical_fish.predefined.3": "Butterflyfish", - "entity.minecraft.tropical_fish.predefined.4": "Cichlid", - "entity.minecraft.tropical_fish.predefined.5": "Clownfish", - "entity.minecraft.tropical_fish.predefined.6": "Cotton Candy Betta", - "entity.minecraft.tropical_fish.predefined.7": "Dottyback", - "entity.minecraft.tropical_fish.predefined.8": "Emperor Red Snapper", - "entity.minecraft.tropical_fish.predefined.9": "Goatfish", - "entity.minecraft.tropical_fish.predefined.10": "Moorish Idol", - "entity.minecraft.tropical_fish.predefined.11": "Ornate Butterflyfish", - "entity.minecraft.tropical_fish.predefined.12": "Parrotfish", - "entity.minecraft.tropical_fish.predefined.13": "Queen Angelfish", - "entity.minecraft.tropical_fish.predefined.14": "Red Cichlid", - "entity.minecraft.tropical_fish.predefined.15": "Red Lipped Blenny", - "entity.minecraft.tropical_fish.predefined.16": "Red Snapper", - "entity.minecraft.tropical_fish.predefined.17": "Threadfin", - "entity.minecraft.tropical_fish.predefined.18": "Tomato Clownfish", - "entity.minecraft.tropical_fish.predefined.19": "Triggerfish", - "entity.minecraft.tropical_fish.predefined.20": "Yellowtail Parrotfish", - "entity.minecraft.tropical_fish.predefined.21": "Yellow Tang", - "entity.minecraft.tropical_fish.type.flopper": "Flopper", - "entity.minecraft.tropical_fish.type.stripey": "Stripey", - "entity.minecraft.tropical_fish.type.glitter": "Glitter", - "entity.minecraft.tropical_fish.type.blockfish": "Blockfish", - "entity.minecraft.tropical_fish.type.betty": "Betty", - "entity.minecraft.tropical_fish.type.clayfish": "Clayfish", - "entity.minecraft.tropical_fish.type.kob": "Kob", - "entity.minecraft.tropical_fish.type.sunstreak": "Sunstreak", - "entity.minecraft.tropical_fish.type.snooper": "Snooper", - "entity.minecraft.tropical_fish.type.dasher": "Dasher", - "entity.minecraft.tropical_fish.type.brinely": "Brinely", - "entity.minecraft.tropical_fish.type.spotty": "Spotty", - "entity.minecraft.turtle": "Turtle", - "entity.minecraft.vex": "Vex", - "entity.minecraft.villager.armorer": "Armorer", - "entity.minecraft.villager.butcher": "Butcher", - "entity.minecraft.villager.cartographer": "Cartographer", - "entity.minecraft.villager.cleric": "Cleric", - "entity.minecraft.villager.farmer": "Farmer", - "entity.minecraft.villager.fisherman": "Fisherman", - "entity.minecraft.villager.fletcher": "Fletcher", - "entity.minecraft.villager.leatherworker": "Leatherworker", - "entity.minecraft.villager.librarian": "Librarian", - "entity.minecraft.villager.mason": "Mason", - "entity.minecraft.villager.none": "Villager", - "entity.minecraft.villager.nitwit": "Nitwit", - "entity.minecraft.villager.shepherd": "Shepherd", - "entity.minecraft.villager.toolsmith": "Toolsmith", - "entity.minecraft.villager.weaponsmith": "Weaponsmith", - "entity.minecraft.villager": "Villager", - "entity.minecraft.wandering_trader": "Wandering Trader", - "entity.minecraft.iron_golem": "Iron Golem", - "entity.minecraft.vindicator": "Vindicator", - "entity.minecraft.warden": "Warden", - "entity.minecraft.witch": "Witch", - "entity.minecraft.wither": "Wither", - "entity.minecraft.wither_skeleton": "Wither Skeleton", - "entity.minecraft.wither_skull": "Wither Skull", - "entity.minecraft.wolf": "Wolf", - "entity.minecraft.experience_bottle": "Thrown Bottle o' Enchanting", - "entity.minecraft.experience_orb": "Experience Orb", - "entity.minecraft.zoglin": "Zoglin", - "entity.minecraft.zombie": "Zombie", - "entity.minecraft.zombie_horse": "Zombie Horse", - "entity.minecraft.zombified_piglin": "Zombified Piglin", - "entity.minecraft.zombie_villager": "Zombie Villager", - "death.fell.accident.ladder": "%1$s fell off a ladder", - "death.fell.accident.vines": "%1$s fell off some vines", - "death.fell.accident.weeping_vines": "%1$s fell off some weeping vines", - "death.fell.accident.twisting_vines": "%1$s fell off some twisting vines", - "death.fell.accident.scaffolding": "%1$s fell off scaffolding", - "death.fell.accident.other_climbable": "%1$s fell while climbing", - "death.fell.accident.generic": "%1$s fell from a high place", - "death.fell.killer": "%1$s was doomed to fall", - "death.fell.assist": "%1$s was doomed to fall by %2$s", - "death.fell.assist.item": "%1$s was doomed to fall by %2$s using %3$s", - "death.fell.finish": "%1$s fell too far and was finished by %2$s", - "death.fell.finish.item": "%1$s fell too far and was finished by %2$s using %3$s", - "death.attack.lightningBolt": "%1$s was struck by lightning", - "death.attack.lightningBolt.player": "%1$s was struck by lightning whilst fighting %2$s", - "death.attack.inFire": "%1$s went up in flames", - "death.attack.inFire.player": "%1$s walked into fire whilst fighting %2$s", - "death.attack.onFire": "%1$s burned to death", - "death.attack.onFire.item": "%1$s was burnt to a crisp whilst fighting %2$s wielding %3$s", - "death.attack.onFire.player": "%1$s was burnt to a crisp whilst fighting %2$s", - "death.attack.lava": "%1$s tried to swim in lava", - "death.attack.lava.player": "%1$s tried to swim in lava to escape %2$s", - "death.attack.hotFloor": "%1$s discovered the floor was lava", - "death.attack.hotFloor.player": "%1$s walked into danger zone due to %2$s", - "death.attack.inWall": "%1$s suffocated in a wall", - "death.attack.inWall.player": "%1$s suffocated in a wall whilst fighting %2$s", - "death.attack.cramming": "%1$s was squished too much", - "death.attack.cramming.player": "%1$s was squashed by %2$s", - "death.attack.drown": "%1$s drowned", - "death.attack.drown.player": "%1$s drowned whilst trying to escape %2$s", - "death.attack.dryout": "%1$s died from dehydration", - "death.attack.dryout.player": "%1$s died from dehydration whilst trying to escape %2$s", - "death.attack.starve": "%1$s starved to death", - "death.attack.starve.player": "%1$s starved to death whilst fighting %2$s", - "death.attack.cactus": "%1$s was pricked to death", - "death.attack.cactus.player": "%1$s walked into a cactus whilst trying to escape %2$s", - "death.attack.generic": "%1$s died", - "death.attack.generic.player": "%1$s died because of %2$s", - "death.attack.explosion": "%1$s blew up", - "death.attack.explosion.player": "%1$s was blown up by %2$s", - "death.attack.explosion.player.item": "%1$s was blown up by %2$s using %3$s", - "death.attack.magic": "%1$s was killed by magic", - "death.attack.magic.player": "%1$s was killed by magic whilst trying to escape %2$s", - "death.attack.even_more_magic": "%1$s was killed by even more magic", - "death.attack.message_too_long": "Actually, message was too long to deliver fully. Sorry! Here's stripped version: %s", - "death.attack.wither": "%1$s withered away", - "death.attack.wither.player": "%1$s withered away whilst fighting %2$s", - "death.attack.witherSkull": "%1$s was shot by a skull from %2$s", - "death.attack.witherSkull.item": "%1$s was shot by a skull from %2$s using %3$s", - "death.attack.anvil": "%1$s was squashed by a falling anvil", - "death.attack.anvil.player": "%1$s was squashed by a falling anvil whilst fighting %2$s", - "death.attack.fallingBlock": "%1$s was squashed by a falling block", - "death.attack.fallingBlock.player": "%1$s was squashed by a falling block whilst fighting %2$s", - "death.attack.stalagmite": "%1$s was impaled on a stalagmite", - "death.attack.stalagmite.player": "%1$s was impaled on a stalagmite whilst fighting %2$s", - "death.attack.fallingStalactite": "%1$s was skewered by a falling stalactite", - "death.attack.fallingStalactite.player": "%1$s was skewered by a falling stalactite whilst fighting %2$s", - "death.attack.sonic_boom": "%1$s was obliterated by a sonically-charged shriek", - "death.attack.sonic_boom.item": "%1$s was obliterated by a sonically-charged shriek whilst trying to escape %2$s wielding %3$s", - "death.attack.sonic_boom.player": "%1$s was obliterated by a sonically-charged shriek whilst trying to escape %2$s", - "death.attack.mob": "%1$s was slain by %2$s", - "death.attack.mob.item": "%1$s was slain by %2$s using %3$s", - "death.attack.player": "%1$s was slain by %2$s", - "death.attack.player.item": "%1$s was slain by %2$s using %3$s", - "death.attack.arrow": "%1$s was shot by %2$s", - "death.attack.arrow.item": "%1$s was shot by %2$s using %3$s", - "death.attack.fireball": "%1$s was fireballed by %2$s", - "death.attack.fireball.item": "%1$s was fireballed by %2$s using %3$s", - "death.attack.thrown": "%1$s was pummeled by %2$s", - "death.attack.thrown.item": "%1$s was pummeled by %2$s using %3$s", - "death.attack.indirectMagic": "%1$s was killed by %2$s using magic", - "death.attack.indirectMagic.item": "%1$s was killed by %2$s using %3$s", - "death.attack.thorns": "%1$s was killed trying to hurt %2$s", - "death.attack.thorns.item": "%1$s was killed by %3$s trying to hurt %2$s", - "death.attack.trident": "%1$s was impaled by %2$s", - "death.attack.trident.item": "%1$s was impaled by %2$s with %3$s", - "death.attack.fall": "%1$s hit the ground too hard", - "death.attack.fall.player": "%1$s hit the ground too hard whilst trying to escape %2$s", - "death.attack.outOfWorld": "%1$s fell out of the world", - "death.attack.outOfWorld.player": "%1$s didn't want to live in the same world as %2$s", - "death.attack.dragonBreath": "%1$s was roasted in dragon breath", - "death.attack.dragonBreath.player": "%1$s was roasted in dragon breath by %2$s", - "death.attack.flyIntoWall": "%1$s experienced kinetic energy", - "death.attack.flyIntoWall.player": "%1$s experienced kinetic energy whilst trying to escape %2$s", - "death.attack.fireworks": "%1$s went off with a bang", - "death.attack.fireworks.player": "%1$s went off with a bang whilst fighting %2$s", - "death.attack.fireworks.item": "%1$s went off with a bang due to a firework fired from %3$s by %2$s", - "death.attack.badRespawnPoint.message": "%1$s was killed by %2$s", - "death.attack.badRespawnPoint.link": "Intentional Game Design", - "death.attack.sweetBerryBush": "%1$s was poked to death by a sweet berry bush", - "death.attack.sweetBerryBush.player": "%1$s was poked to death by a sweet berry bush whilst trying to escape %2$s", - "death.attack.sting": "%1$s was stung to death", - "death.attack.sting.item": "%1$s was stung to death by %2$s using %3$s", - "death.attack.sting.player": "%1$s was stung to death by %2$s", - "death.attack.freeze": "%1$s froze to death", - "death.attack.freeze.player": "%1$s was frozen to death by %2$s", - "deathScreen.respawn": "Respawn", - "deathScreen.spectate": "Spectate World", - "deathScreen.titleScreen": "Title Screen", - "deathScreen.score": "Score", - "deathScreen.title.hardcore": "Game Over!", - "deathScreen.title": "You Died!", - "deathScreen.quit.confirm": "Are you sure you want to quit?", - "effect.none": "No Effects", - "effect.minecraft.speed": "Speed", - "effect.minecraft.slowness": "Slowness", - "effect.minecraft.haste": "Haste", - "effect.minecraft.mining_fatigue": "Mining Fatigue", - "effect.minecraft.strength": "Strength", - "effect.minecraft.instant_health": "Instant Health", - "effect.minecraft.instant_damage": "Instant Damage", - "effect.minecraft.jump_boost": "Jump Boost", - "effect.minecraft.nausea": "Nausea", - "effect.minecraft.regeneration": "Regeneration", - "effect.minecraft.resistance": "Resistance", - "effect.minecraft.fire_resistance": "Fire Resistance", - "effect.minecraft.water_breathing": "Water Breathing", - "effect.minecraft.invisibility": "Invisibility", - "effect.minecraft.blindness": "Blindness", - "effect.minecraft.night_vision": "Night Vision", - "effect.minecraft.hunger": "Hunger", - "effect.minecraft.weakness": "Weakness", - "effect.minecraft.poison": "Poison", - "effect.minecraft.wither": "Wither", - "effect.minecraft.health_boost": "Health Boost", - "effect.minecraft.absorption": "Absorption", - "effect.minecraft.saturation": "Saturation", - "effect.minecraft.glowing": "Glowing", - "effect.minecraft.luck": "Luck", - "effect.minecraft.unluck": "Bad Luck", - "effect.minecraft.levitation": "Levitation", - "effect.minecraft.slow_falling": "Slow Falling", - "effect.minecraft.conduit_power": "Conduit Power", - "effect.minecraft.dolphins_grace": "Dolphin's Grace", - "effect.minecraft.bad_omen": "Bad Omen", - "effect.minecraft.hero_of_the_village": "Hero of the Village", - "effect.minecraft.darkness": "Darkness", - "event.minecraft.raid": "Raid", - "event.minecraft.raid.raiders_remaining": "Raiders Remaining: %s", - "event.minecraft.raid.victory": "Victory", - "event.minecraft.raid.defeat": "Defeat", - "item.minecraft.tipped_arrow.effect.empty": "Uncraftable Tipped Arrow", - "item.minecraft.tipped_arrow.effect.water": "Arrow of Splashing", - "item.minecraft.tipped_arrow.effect.mundane": "Tipped Arrow", - "item.minecraft.tipped_arrow.effect.thick": "Tipped Arrow", - "item.minecraft.tipped_arrow.effect.awkward": "Tipped Arrow", - "item.minecraft.tipped_arrow.effect.night_vision": "Arrow of Night Vision", - "item.minecraft.tipped_arrow.effect.invisibility": "Arrow of Invisibility", - "item.minecraft.tipped_arrow.effect.leaping": "Arrow of Leaping", - "item.minecraft.tipped_arrow.effect.fire_resistance": "Arrow of Fire Resistance", - "item.minecraft.tipped_arrow.effect.swiftness": "Arrow of Swiftness", - "item.minecraft.tipped_arrow.effect.slowness": "Arrow of Slowness", - "item.minecraft.tipped_arrow.effect.water_breathing": "Arrow of Water Breathing", - "item.minecraft.tipped_arrow.effect.healing": "Arrow of Healing", - "item.minecraft.tipped_arrow.effect.harming": "Arrow of Harming", - "item.minecraft.tipped_arrow.effect.poison": "Arrow of Poison", - "item.minecraft.tipped_arrow.effect.regeneration": "Arrow of Regeneration", - "item.minecraft.tipped_arrow.effect.strength": "Arrow of Strength", - "item.minecraft.tipped_arrow.effect.weakness": "Arrow of Weakness", - "item.minecraft.tipped_arrow.effect.levitation": "Arrow of Levitation", - "item.minecraft.tipped_arrow.effect.luck": "Arrow of Luck", - "item.minecraft.tipped_arrow.effect.turtle_master": "Arrow of the Turtle Master", - "item.minecraft.tipped_arrow.effect.slow_falling": "Arrow of Slow Falling", - "potion.whenDrank": "When Applied:", - "potion.withAmplifier": "%s %s", - "potion.withDuration": "%s (%s)", - "item.minecraft.potion.effect.empty": "Uncraftable Potion", - "item.minecraft.potion.effect.water": "Water Bottle", - "item.minecraft.potion.effect.mundane": "Mundane Potion", - "item.minecraft.potion.effect.thick": "Thick Potion", - "item.minecraft.potion.effect.awkward": "Awkward Potion", - "item.minecraft.potion.effect.night_vision": "Potion of Night Vision", - "item.minecraft.potion.effect.invisibility": "Potion of Invisibility", - "item.minecraft.potion.effect.leaping": "Potion of Leaping", - "item.minecraft.potion.effect.fire_resistance": "Potion of Fire Resistance", - "item.minecraft.potion.effect.swiftness": "Potion of Swiftness", - "item.minecraft.potion.effect.slowness": "Potion of Slowness", - "item.minecraft.potion.effect.water_breathing": "Potion of Water Breathing", - "item.minecraft.potion.effect.healing": "Potion of Healing", - "item.minecraft.potion.effect.harming": "Potion of Harming", - "item.minecraft.potion.effect.poison": "Potion of Poison", - "item.minecraft.potion.effect.regeneration": "Potion of Regeneration", - "item.minecraft.potion.effect.strength": "Potion of Strength", - "item.minecraft.potion.effect.weakness": "Potion of Weakness", - "item.minecraft.potion.effect.levitation": "Potion of Levitation", - "item.minecraft.potion.effect.luck": "Potion of Luck", - "item.minecraft.potion.effect.turtle_master": "Potion of the Turtle Master", - "item.minecraft.potion.effect.slow_falling": "Potion of Slow Falling", - "item.minecraft.splash_potion.effect.empty": "Splash Uncraftable Potion", - "item.minecraft.splash_potion.effect.water": "Splash Water Bottle", - "item.minecraft.splash_potion.effect.mundane": "Mundane Splash Potion", - "item.minecraft.splash_potion.effect.thick": "Thick Splash Potion", - "item.minecraft.splash_potion.effect.awkward": "Awkward Splash Potion", - "item.minecraft.splash_potion.effect.night_vision": "Splash Potion of Night Vision", - "item.minecraft.splash_potion.effect.invisibility": "Splash Potion of Invisibility", - "item.minecraft.splash_potion.effect.leaping": "Splash Potion of Leaping", - "item.minecraft.splash_potion.effect.fire_resistance": "Splash Potion of Fire Resistance", - "item.minecraft.splash_potion.effect.swiftness": "Splash Potion of Swiftness", - "item.minecraft.splash_potion.effect.slowness": "Splash Potion of Slowness", - "item.minecraft.splash_potion.effect.water_breathing": "Splash Potion of Water Breathing", - "item.minecraft.splash_potion.effect.healing": "Splash Potion of Healing", - "item.minecraft.splash_potion.effect.harming": "Splash Potion of Harming", - "item.minecraft.splash_potion.effect.poison": "Splash Potion of Poison", - "item.minecraft.splash_potion.effect.regeneration": "Splash Potion of Regeneration", - "item.minecraft.splash_potion.effect.strength": "Splash Potion of Strength", - "item.minecraft.splash_potion.effect.weakness": "Splash Potion of Weakness", - "item.minecraft.splash_potion.effect.levitation": "Splash Potion of Levitation", - "item.minecraft.splash_potion.effect.luck": "Splash Potion of Luck", - "item.minecraft.splash_potion.effect.turtle_master": "Splash Potion of the Turtle Master", - "item.minecraft.splash_potion.effect.slow_falling": "Splash Potion of Slow Falling", - "item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion", - "item.minecraft.lingering_potion.effect.water": "Lingering Water Bottle", - "item.minecraft.lingering_potion.effect.mundane": "Mundane Lingering Potion", - "item.minecraft.lingering_potion.effect.thick": "Thick Lingering Potion", - "item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion", - "item.minecraft.lingering_potion.effect.night_vision": "Lingering Potion of Night Vision", - "item.minecraft.lingering_potion.effect.invisibility": "Lingering Potion of Invisibility", - "item.minecraft.lingering_potion.effect.leaping": "Lingering Potion of Leaping", - "item.minecraft.lingering_potion.effect.fire_resistance": "Lingering Potion of Fire Resistance", - "item.minecraft.lingering_potion.effect.swiftness": "Lingering Potion of Swiftness", - "item.minecraft.lingering_potion.effect.slowness": "Lingering Potion of Slowness", - "item.minecraft.lingering_potion.effect.water_breathing": "Lingering Potion of Water Breathing", - "item.minecraft.lingering_potion.effect.healing": "Lingering Potion of Healing", - "item.minecraft.lingering_potion.effect.harming": "Lingering Potion of Harming", - "item.minecraft.lingering_potion.effect.poison": "Lingering Potion of Poison", - "item.minecraft.lingering_potion.effect.regeneration": "Lingering Potion of Regeneration", - "item.minecraft.lingering_potion.effect.strength": "Lingering Potion of Strength", - "item.minecraft.lingering_potion.effect.weakness": "Lingering Potion of Weakness", - "item.minecraft.lingering_potion.effect.levitation": "Lingering Potion of Levitation", - "item.minecraft.lingering_potion.effect.luck": "Lingering Potion of Luck", - "item.minecraft.lingering_potion.effect.turtle_master": "Lingering Potion of the Turtle Master", - "item.minecraft.lingering_potion.effect.slow_falling": "Lingering Potion of Slow Falling", - "potion.potency.0": "", - "potion.potency.1": "II", - "potion.potency.2": "III", - "potion.potency.3": "IV", - "potion.potency.4": "V", - "potion.potency.5": "VI", - "enchantment.minecraft.sharpness": "Sharpness", - "enchantment.minecraft.smite": "Smite", - "enchantment.minecraft.bane_of_arthropods": "Bane of Arthropods", - "enchantment.minecraft.knockback": "Knockback", - "enchantment.minecraft.fire_aspect": "Fire Aspect", - "enchantment.minecraft.sweeping": "Sweeping Edge", - "enchantment.minecraft.protection": "Protection", - "enchantment.minecraft.fire_protection": "Fire Protection", - "enchantment.minecraft.feather_falling": "Feather Falling", - "enchantment.minecraft.blast_protection": "Blast Protection", - "enchantment.minecraft.projectile_protection": "Projectile Protection", - "enchantment.minecraft.respiration": "Respiration", - "enchantment.minecraft.aqua_affinity": "Aqua Affinity", - "enchantment.minecraft.depth_strider": "Depth Strider", - "enchantment.minecraft.frost_walker": "Frost Walker", - "enchantment.minecraft.soul_speed": "Soul Speed", - "enchantment.minecraft.swift_sneak": "Swift Sneak", - "enchantment.minecraft.efficiency": "Efficiency", - "enchantment.minecraft.silk_touch": "Silk Touch", - "enchantment.minecraft.unbreaking": "Unbreaking", - "enchantment.minecraft.looting": "Looting", - "enchantment.minecraft.fortune": "Fortune", - "enchantment.minecraft.luck_of_the_sea": "Luck of the Sea", - "enchantment.minecraft.lure": "Lure", - "enchantment.minecraft.power": "Power", - "enchantment.minecraft.flame": "Flame", - "enchantment.minecraft.punch": "Punch", - "enchantment.minecraft.infinity": "Infinity", - "enchantment.minecraft.thorns": "Thorns", - "enchantment.minecraft.mending": "Mending", - "enchantment.minecraft.binding_curse": "Curse of Binding", - "enchantment.minecraft.vanishing_curse": "Curse of Vanishing", - "enchantment.minecraft.loyalty": "Loyalty", - "enchantment.minecraft.impaling": "Impaling", - "enchantment.minecraft.riptide": "Riptide", - "enchantment.minecraft.channeling": "Channeling", - "enchantment.minecraft.multishot": "Multishot", - "enchantment.minecraft.quick_charge": "Quick Charge", - "enchantment.minecraft.piercing": "Piercing", - "enchantment.level.1": "I", - "enchantment.level.2": "II", - "enchantment.level.3": "III", - "enchantment.level.4": "IV", - "enchantment.level.5": "V", - "enchantment.level.6": "VI", - "enchantment.level.7": "VII", - "enchantment.level.8": "VIII", - "enchantment.level.9": "IX", - "enchantment.level.10": "X", - "gui.minutes": "%s minute(s)", - "gui.hours": "%s hour(s)", - "gui.days": "%s day(s)", - "gui.advancements": "Advancements", - "gui.stats": "Statistics", - "gui.entity_tooltip.type": "Type: %s", - "advancements.empty": "There doesn't seem to be anything here...", - "advancements.sad_label": ":(", - "advancements.toast.task": "Advancement Made!", - "advancements.toast.challenge": "Challenge Complete!", - "advancements.toast.goal": "Goal Reached!", - "stats.tooltip.type.statistic": "Statistic", - "stat.generalButton": "General", - "stat.itemsButton": "Items", - "stat.mobsButton": "Mobs", - "stat_type.minecraft.mined": "Times Mined", - "stat_type.minecraft.crafted": "Times Crafted", - "stat_type.minecraft.used": "Times Used", - "stat_type.minecraft.broken": "Times Broken", - "stat_type.minecraft.picked_up": "Picked Up", - "stat_type.minecraft.dropped": "Dropped", - "stat_type.minecraft.killed": "You killed %s %s", - "stat_type.minecraft.killed.none": "You have never killed %s", - "stat_type.minecraft.killed_by": "%s killed you %s time(s)", - "stat_type.minecraft.killed_by.none": "You have never been killed by %s", - "stat.minecraft.animals_bred": "Animals Bred", - "stat.minecraft.aviate_one_cm": "Distance by Elytra", - "stat.minecraft.clean_armor": "Armor Pieces Cleaned", - "stat.minecraft.clean_banner": "Banners Cleaned", - "stat.minecraft.clean_shulker_box": "Shulker Boxes Cleaned", - "stat.minecraft.climb_one_cm": "Distance Climbed", - "stat.minecraft.bell_ring": "Bells Rung", - "stat.minecraft.target_hit": "Targets Hit", - "stat.minecraft.boat_one_cm": "Distance by Boat", - "stat.minecraft.crouch_one_cm": "Distance Crouched", - "stat.minecraft.damage_dealt": "Damage Dealt", - "stat.minecraft.damage_dealt_absorbed": "Damage Dealt (Absorbed)", - "stat.minecraft.damage_dealt_resisted": "Damage Dealt (Resisted)", - "stat.minecraft.damage_taken": "Damage Taken", - "stat.minecraft.damage_blocked_by_shield": "Damage Blocked by Shield", - "stat.minecraft.damage_absorbed": "Damage Absorbed", - "stat.minecraft.damage_resisted": "Damage Resisted", - "stat.minecraft.deaths": "Number of Deaths", - "stat.minecraft.walk_under_water_one_cm": "Distance Walked under Water", - "stat.minecraft.drop": "Items Dropped", - "stat.minecraft.eat_cake_slice": "Cake Slices Eaten", - "stat.minecraft.enchant_item": "Items Enchanted", - "stat.minecraft.fall_one_cm": "Distance Fallen", - "stat.minecraft.fill_cauldron": "Cauldrons Filled", - "stat.minecraft.fish_caught": "Fish Caught", - "stat.minecraft.fly_one_cm": "Distance Flown", - "stat.minecraft.horse_one_cm": "Distance by Horse", - "stat.minecraft.inspect_dispenser": "Dispensers Searched", - "stat.minecraft.inspect_dropper": "Droppers Searched", - "stat.minecraft.inspect_hopper": "Hoppers Searched", - "stat.minecraft.interact_with_anvil": "Interactions with Anvil", - "stat.minecraft.interact_with_beacon": "Interactions with Beacon", - "stat.minecraft.interact_with_brewingstand": "Interactions with Brewing Stand", - "stat.minecraft.interact_with_campfire": "Interactions with Campfire", - "stat.minecraft.interact_with_cartography_table": "Interactions with Cartography Table", - "stat.minecraft.interact_with_crafting_table": "Interactions with Crafting Table", - "stat.minecraft.interact_with_furnace": "Interactions with Furnace", - "stat.minecraft.interact_with_grindstone": "Interactions with Grindstone", - "stat.minecraft.interact_with_lectern": "Interactions with Lectern", - "stat.minecraft.interact_with_loom": "Interactions with Loom", - "stat.minecraft.interact_with_blast_furnace": "Interactions with Blast Furnace", - "stat.minecraft.interact_with_smithing_table": "Interactions with Smithing Table", - "stat.minecraft.interact_with_smoker": "Interactions with Smoker", - "stat.minecraft.interact_with_stonecutter": "Interactions with Stonecutter", - "stat.minecraft.jump": "Jumps", - "stat.minecraft.junk_fished": "Junk Fished", - "stat.minecraft.leave_game": "Games Quit", - "stat.minecraft.minecart_one_cm": "Distance by Minecart", - "stat.minecraft.mob_kills": "Mob Kills", - "stat.minecraft.open_barrel": "Barrels Opened", - "stat.minecraft.open_chest": "Chests Opened", - "stat.minecraft.open_enderchest": "Ender Chests Opened", - "stat.minecraft.open_shulker_box": "Shulker Boxes Opened", - "stat.minecraft.pig_one_cm": "Distance by Pig", - "stat.minecraft.strider_one_cm": "Distance by Strider", - "stat.minecraft.player_kills": "Player Kills", - "stat.minecraft.play_noteblock": "Note Blocks Played", - "stat.minecraft.play_time": "Time Played", - "stat.minecraft.play_record": "Music Discs Played", - "stat.minecraft.pot_flower": "Plants Potted", - "stat.minecraft.raid_trigger": "Raids Triggered", - "stat.minecraft.raid_win": "Raids Won", - "stat.minecraft.ring_bell": "Bells Rung", - "stat.minecraft.sleep_in_bed": "Times Slept in a Bed", - "stat.minecraft.sneak_time": "Sneak Time", - "stat.minecraft.sprint_one_cm": "Distance Sprinted", - "stat.minecraft.walk_on_water_one_cm": "Distance Walked on Water", - "stat.minecraft.swim_one_cm": "Distance Swum", - "stat.minecraft.talked_to_villager": "Talked to Villagers", - "stat.minecraft.time_since_rest": "Time Since Last Rest", - "stat.minecraft.time_since_death": "Time Since Last Death", - "stat.minecraft.total_world_time": "Time with World Open", - "stat.minecraft.traded_with_villager": "Traded with Villagers", - "stat.minecraft.treasure_fished": "Treasure Fished", - "stat.minecraft.trigger_trapped_chest": "Trapped Chests Triggered", - "stat.minecraft.tune_noteblock": "Note Blocks Tuned", - "stat.minecraft.use_cauldron": "Water Taken from Cauldron", - "stat.minecraft.walk_one_cm": "Distance Walked", - "recipe.toast.title": "New Recipes Unlocked!", - "recipe.toast.description": "Check your recipe book", - "itemGroup.buildingBlocks": "Building Blocks", - "itemGroup.coloredBlocks": "Colored Blocks", - "itemGroup.natural": "Natural Blocks", - "itemGroup.functional": "Functional Blocks", - "itemGroup.redstone": "Redstone Blocks", - "itemGroup.op": "Operator Utilities", - "itemGroup.spawnEggs": "Spawn Eggs", - "itemGroup.search": "Search Items", - "itemGroup.consumables": "Consumables", - "itemGroup.foodAndDrink": "Food & Drinks", - "itemGroup.tools": "Tools & Utilities", - "itemGroup.combat": "Combat", - "itemGroup.crafting": "Crafting", - "itemGroup.ingredients": "Ingredients", - "itemGroup.inventory": "Survival Inventory", - "itemGroup.hotbar": "Saved Hotbars", - "inventory.binSlot": "Destroy Item", - "inventory.hotbarSaved": "Item hotbar saved (restore with %1$s+%2$s)", - "inventory.hotbarInfo": "Save hotbar with %1$s+%2$s", - "advMode.setCommand": "Set Console Command for Block", - "advMode.setCommand.success": "Command set: %s", - "advMode.command": "Console Command", - "advMode.nearestPlayer": "Use \"@p\" to target nearest player", - "advMode.randomPlayer": "Use \"@r\" to target random player", - "advMode.allPlayers": "Use \"@a\" to target all players", - "advMode.allEntities": "Use \"@e\" to target all entities", - "advMode.self": "Use \"@s\" to target the executing entity", - "advMode.previousOutput": "Previous Output", - "advMode.mode": "Mode", - "advMode.mode.sequence": "Chain", - "advMode.mode.auto": "Repeat", - "advMode.mode.redstone": "Impulse", - "advMode.type": "Type", - "advMode.mode.conditional": "Conditional", - "advMode.mode.unconditional": "Unconditional", - "advMode.triggering": "Triggering", - "advMode.mode.redstoneTriggered": "Needs Redstone", - "advMode.mode.autoexec.bat": "Always Active", - "advMode.notEnabled": "Command blocks are not enabled on this server", - "advMode.notAllowed": "Must be an opped player in creative mode", - "advMode.trackOutput": "Track output", - "mount.onboard": "Press %1$s to Dismount", - "build.tooHigh": "Height limit for building is %s", - "item.modifiers.mainhand": "When in Main Hand:", - "item.modifiers.offhand": "When in Off Hand:", - "item.modifiers.feet": "When on Feet:", - "item.modifiers.legs": "When on Legs:", - "item.modifiers.chest": "When on Body:", - "item.modifiers.head": "When on Head:", - "attribute.modifier.plus.0": "+%s %s", - "attribute.modifier.plus.1": "+%s%% %s", - "attribute.modifier.plus.2": "+%s%% %s", - "attribute.modifier.take.0": "-%s %s", - "attribute.modifier.take.1": "-%s%% %s", - "attribute.modifier.take.2": "-%s%% %s", - "attribute.modifier.equals.0": "%s %s", - "attribute.modifier.equals.1": "%s%% %s", - "attribute.modifier.equals.2": "%s%% %s", - "attribute.name.horse.jump_strength": "Horse Jump Strength", - "attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements", - "attribute.name.generic.max_health": "Max Health", - "attribute.name.generic.follow_range": "Mob Follow Range", - "attribute.name.generic.knockback_resistance": "Knockback Resistance", - "attribute.name.generic.movement_speed": "Speed", - "attribute.name.generic.flying_speed": "Flying Speed", - "attribute.name.generic.attack_damage": "Attack Damage", - "attribute.name.generic.attack_knockback": "Attack Knockback", - "attribute.name.generic.attack_speed": "Attack Speed", - "attribute.name.generic.luck": "Luck", - "attribute.name.generic.armor": "Armor", - "attribute.name.generic.armor_toughness": "Armor Toughness", - "screenshot.success": "Saved screenshot as %s", - "screenshot.failure": "Couldn't save screenshot: %s", - "block.minecraft.black_banner": "Black Banner", - "block.minecraft.red_banner": "Red Banner", - "block.minecraft.green_banner": "Green Banner", - "block.minecraft.brown_banner": "Brown Banner", - "block.minecraft.blue_banner": "Blue Banner", - "block.minecraft.purple_banner": "Purple Banner", - "block.minecraft.cyan_banner": "Cyan Banner", - "block.minecraft.light_gray_banner": "Light Gray Banner", - "block.minecraft.gray_banner": "Gray Banner", - "block.minecraft.pink_banner": "Pink Banner", - "block.minecraft.lime_banner": "Lime Banner", - "block.minecraft.yellow_banner": "Yellow Banner", - "block.minecraft.light_blue_banner": "Light Blue Banner", - "block.minecraft.magenta_banner": "Magenta Banner", - "block.minecraft.orange_banner": "Orange Banner", - "block.minecraft.white_banner": "White Banner", - "item.minecraft.shield": "Shield", - "item.minecraft.shield.black": "Black Shield", - "item.minecraft.shield.red": "Red Shield", - "item.minecraft.shield.green": "Green Shield", - "item.minecraft.shield.brown": "Brown Shield", - "item.minecraft.shield.blue": "Blue Shield", - "item.minecraft.shield.purple": "Purple Shield", - "item.minecraft.shield.cyan": "Cyan Shield", - "item.minecraft.shield.light_gray": "Light Gray Shield", - "item.minecraft.shield.gray": "Gray Shield", - "item.minecraft.shield.pink": "Pink Shield", - "item.minecraft.shield.lime": "Lime Shield", - "item.minecraft.shield.yellow": "Yellow Shield", - "item.minecraft.shield.light_blue": "Light Blue Shield", - "item.minecraft.shield.magenta": "Magenta Shield", - "item.minecraft.shield.orange": "Orange Shield", - "item.minecraft.shield.white": "White Shield", - "block.minecraft.banner.base.black": "Fully Black Field", - "block.minecraft.banner.base.red": "Fully Red Field", - "block.minecraft.banner.base.green": "Fully Green Field", - "block.minecraft.banner.base.brown": "Fully Brown Field", - "block.minecraft.banner.base.blue": "Fully Blue Field", - "block.minecraft.banner.base.purple": "Fully Purple Field", - "block.minecraft.banner.base.cyan": "Fully Cyan Field", - "block.minecraft.banner.base.light_gray": "Fully Light Gray Field", - "block.minecraft.banner.base.gray": "Fully Gray Field", - "block.minecraft.banner.base.pink": "Fully Pink Field", - "block.minecraft.banner.base.lime": "Fully Lime Field", - "block.minecraft.banner.base.yellow": "Fully Yellow Field", - "block.minecraft.banner.base.light_blue": "Fully Light Blue Field", - "block.minecraft.banner.base.magenta": "Fully Magenta Field", - "block.minecraft.banner.base.orange": "Fully Orange Field", - "block.minecraft.banner.base.white": "Fully White Field", - "block.minecraft.banner.square_bottom_left.black": "Black Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.red": "Red Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.green": "Green Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.brown": "Brown Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.blue": "Blue Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.purple": "Purple Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.cyan": "Cyan Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.light_gray": "Light Gray Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.gray": "Gray Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.pink": "Pink Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.lime": "Lime Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.yellow": "Yellow Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.light_blue": "Light Blue Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.magenta": "Magenta Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.orange": "Orange Base Dexter Canton", - "block.minecraft.banner.square_bottom_left.white": "White Base Dexter Canton", - "block.minecraft.banner.square_bottom_right.black": "Black Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.red": "Red Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.green": "Green Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.brown": "Brown Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.blue": "Blue Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.purple": "Purple Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.cyan": "Cyan Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.light_gray": "Light Gray Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.gray": "Gray Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.pink": "Pink Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.lime": "Lime Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.yellow": "Yellow Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.light_blue": "Light Blue Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.magenta": "Magenta Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.orange": "Orange Base Sinister Canton", - "block.minecraft.banner.square_bottom_right.white": "White Base Sinister Canton", - "block.minecraft.banner.square_top_left.black": "Black Chief Dexter Canton", - "block.minecraft.banner.square_top_left.red": "Red Chief Dexter Canton", - "block.minecraft.banner.square_top_left.green": "Green Chief Dexter Canton", - "block.minecraft.banner.square_top_left.brown": "Brown Chief Dexter Canton", - "block.minecraft.banner.square_top_left.blue": "Blue Chief Dexter Canton", - "block.minecraft.banner.square_top_left.purple": "Purple Chief Dexter Canton", - "block.minecraft.banner.square_top_left.cyan": "Cyan Chief Dexter Canton", - "block.minecraft.banner.square_top_left.light_gray": "Light Gray Chief Dexter Canton", - "block.minecraft.banner.square_top_left.gray": "Gray Chief Dexter Canton", - "block.minecraft.banner.square_top_left.pink": "Pink Chief Dexter Canton", - "block.minecraft.banner.square_top_left.lime": "Lime Chief Dexter Canton", - "block.minecraft.banner.square_top_left.yellow": "Yellow Chief Dexter Canton", - "block.minecraft.banner.square_top_left.light_blue": "Light Blue Chief Dexter Canton", - "block.minecraft.banner.square_top_left.magenta": "Magenta Chief Dexter Canton", - "block.minecraft.banner.square_top_left.orange": "Orange Chief Dexter Canton", - "block.minecraft.banner.square_top_left.white": "White Chief Dexter Canton", - "block.minecraft.banner.square_top_right.black": "Black Chief Sinister Canton", - "block.minecraft.banner.square_top_right.red": "Red Chief Sinister Canton", - "block.minecraft.banner.square_top_right.green": "Green Chief Sinister Canton", - "block.minecraft.banner.square_top_right.brown": "Brown Chief Sinister Canton", - "block.minecraft.banner.square_top_right.blue": "Blue Chief Sinister Canton", - "block.minecraft.banner.square_top_right.purple": "Purple Chief Sinister Canton", - "block.minecraft.banner.square_top_right.cyan": "Cyan Chief Sinister Canton", - "block.minecraft.banner.square_top_right.light_gray": "Light Gray Chief Sinister Canton", - "block.minecraft.banner.square_top_right.gray": "Gray Chief Sinister Canton", - "block.minecraft.banner.square_top_right.pink": "Pink Chief Sinister Canton", - "block.minecraft.banner.square_top_right.lime": "Lime Chief Sinister Canton", - "block.minecraft.banner.square_top_right.yellow": "Yellow Chief Sinister Canton", - "block.minecraft.banner.square_top_right.light_blue": "Light Blue Chief Sinister Canton", - "block.minecraft.banner.square_top_right.magenta": "Magenta Chief Sinister Canton", - "block.minecraft.banner.square_top_right.orange": "Orange Chief Sinister Canton", - "block.minecraft.banner.square_top_right.white": "White Chief Sinister Canton", - "block.minecraft.banner.stripe_bottom.black": "Black Base", - "block.minecraft.banner.stripe_bottom.red": "Red Base", - "block.minecraft.banner.stripe_bottom.green": "Green Base", - "block.minecraft.banner.stripe_bottom.brown": "Brown Base", - "block.minecraft.banner.stripe_bottom.blue": "Blue Base", - "block.minecraft.banner.stripe_bottom.purple": "Purple Base", - "block.minecraft.banner.stripe_bottom.cyan": "Cyan Base", - "block.minecraft.banner.stripe_bottom.light_gray": "Light Gray Base", - "block.minecraft.banner.stripe_bottom.gray": "Gray Base", - "block.minecraft.banner.stripe_bottom.pink": "Pink Base", - "block.minecraft.banner.stripe_bottom.lime": "Lime Base", - "block.minecraft.banner.stripe_bottom.yellow": "Yellow Base", - "block.minecraft.banner.stripe_bottom.light_blue": "Light Blue Base", - "block.minecraft.banner.stripe_bottom.magenta": "Magenta Base", - "block.minecraft.banner.stripe_bottom.orange": "Orange Base", - "block.minecraft.banner.stripe_bottom.white": "White Base", - "block.minecraft.banner.stripe_top.black": "Black Chief", - "block.minecraft.banner.stripe_top.red": "Red Chief", - "block.minecraft.banner.stripe_top.green": "Green Chief", - "block.minecraft.banner.stripe_top.brown": "Brown Chief", - "block.minecraft.banner.stripe_top.blue": "Blue Chief", - "block.minecraft.banner.stripe_top.purple": "Purple Chief", - "block.minecraft.banner.stripe_top.cyan": "Cyan Chief", - "block.minecraft.banner.stripe_top.light_gray": "Light Gray Chief", - "block.minecraft.banner.stripe_top.gray": "Gray Chief", - "block.minecraft.banner.stripe_top.pink": "Pink Chief", - "block.minecraft.banner.stripe_top.lime": "Lime Chief", - "block.minecraft.banner.stripe_top.yellow": "Yellow Chief", - "block.minecraft.banner.stripe_top.light_blue": "Light Blue Chief", - "block.minecraft.banner.stripe_top.magenta": "Magenta Chief", - "block.minecraft.banner.stripe_top.orange": "Orange Chief", - "block.minecraft.banner.stripe_top.white": "White Chief", - "block.minecraft.banner.stripe_left.black": "Black Pale Dexter", - "block.minecraft.banner.stripe_left.red": "Red Pale Dexter", - "block.minecraft.banner.stripe_left.green": "Green Pale Dexter", - "block.minecraft.banner.stripe_left.brown": "Brown Pale Dexter", - "block.minecraft.banner.stripe_left.blue": "Blue Pale Dexter", - "block.minecraft.banner.stripe_left.purple": "Purple Pale Dexter", - "block.minecraft.banner.stripe_left.cyan": "Cyan Pale Dexter", - "block.minecraft.banner.stripe_left.light_gray": "Light Gray Pale Dexter", - "block.minecraft.banner.stripe_left.gray": "Gray Pale Dexter", - "block.minecraft.banner.stripe_left.pink": "Pink Pale Dexter", - "block.minecraft.banner.stripe_left.lime": "Lime Pale Dexter", - "block.minecraft.banner.stripe_left.yellow": "Yellow Pale Dexter", - "block.minecraft.banner.stripe_left.light_blue": "Light Blue Pale Dexter", - "block.minecraft.banner.stripe_left.magenta": "Magenta Pale Dexter", - "block.minecraft.banner.stripe_left.orange": "Orange Pale Dexter", - "block.minecraft.banner.stripe_left.white": "White Pale Dexter", - "block.minecraft.banner.stripe_right.black": "Black Pale Sinister", - "block.minecraft.banner.stripe_right.red": "Red Pale Sinister", - "block.minecraft.banner.stripe_right.green": "Green Pale Sinister", - "block.minecraft.banner.stripe_right.brown": "Brown Pale Sinister", - "block.minecraft.banner.stripe_right.blue": "Blue Pale Sinister", - "block.minecraft.banner.stripe_right.purple": "Purple Pale Sinister", - "block.minecraft.banner.stripe_right.cyan": "Cyan Pale Sinister", - "block.minecraft.banner.stripe_right.light_gray": "Light Gray Pale Sinister", - "block.minecraft.banner.stripe_right.gray": "Gray Pale Sinister", - "block.minecraft.banner.stripe_right.pink": "Pink Pale Sinister", - "block.minecraft.banner.stripe_right.lime": "Lime Pale Sinister", - "block.minecraft.banner.stripe_right.yellow": "Yellow Pale Sinister", - "block.minecraft.banner.stripe_right.light_blue": "Light Blue Pale Sinister", - "block.minecraft.banner.stripe_right.magenta": "Magenta Pale Sinister", - "block.minecraft.banner.stripe_right.orange": "Orange Pale Sinister", - "block.minecraft.banner.stripe_right.white": "White Pale Sinister", - "block.minecraft.banner.stripe_center.black": "Black Pale", - "block.minecraft.banner.stripe_center.red": "Red Pale", - "block.minecraft.banner.stripe_center.green": "Green Pale", - "block.minecraft.banner.stripe_center.brown": "Brown Pale", - "block.minecraft.banner.stripe_center.blue": "Blue Pale", - "block.minecraft.banner.stripe_center.purple": "Purple Pale", - "block.minecraft.banner.stripe_center.cyan": "Cyan Pale", - "block.minecraft.banner.stripe_center.light_gray": "Light Gray Pale", - "block.minecraft.banner.stripe_center.gray": "Gray Pale", - "block.minecraft.banner.stripe_center.pink": "Pink Pale", - "block.minecraft.banner.stripe_center.lime": "Lime Pale", - "block.minecraft.banner.stripe_center.yellow": "Yellow Pale", - "block.minecraft.banner.stripe_center.light_blue": "Light Blue Pale", - "block.minecraft.banner.stripe_center.magenta": "Magenta Pale", - "block.minecraft.banner.stripe_center.orange": "Orange Pale", - "block.minecraft.banner.stripe_center.white": "White Pale", - "block.minecraft.banner.stripe_middle.black": "Black Fess", - "block.minecraft.banner.stripe_middle.red": "Red Fess", - "block.minecraft.banner.stripe_middle.green": "Green Fess", - "block.minecraft.banner.stripe_middle.brown": "Brown Fess", - "block.minecraft.banner.stripe_middle.blue": "Blue Fess", - "block.minecraft.banner.stripe_middle.purple": "Purple Fess", - "block.minecraft.banner.stripe_middle.cyan": "Cyan Fess", - "block.minecraft.banner.stripe_middle.light_gray": "Light Gray Fess", - "block.minecraft.banner.stripe_middle.gray": "Gray Fess", - "block.minecraft.banner.stripe_middle.pink": "Pink Fess", - "block.minecraft.banner.stripe_middle.lime": "Lime Fess", - "block.minecraft.banner.stripe_middle.yellow": "Yellow Fess", - "block.minecraft.banner.stripe_middle.light_blue": "Light Blue Fess", - "block.minecraft.banner.stripe_middle.magenta": "Magenta Fess", - "block.minecraft.banner.stripe_middle.orange": "Orange Fess", - "block.minecraft.banner.stripe_middle.white": "White Fess", - "block.minecraft.banner.stripe_downright.black": "Black Bend", - "block.minecraft.banner.stripe_downright.red": "Red Bend", - "block.minecraft.banner.stripe_downright.green": "Green Bend", - "block.minecraft.banner.stripe_downright.brown": "Brown Bend", - "block.minecraft.banner.stripe_downright.blue": "Blue Bend", - "block.minecraft.banner.stripe_downright.purple": "Purple Bend", - "block.minecraft.banner.stripe_downright.cyan": "Cyan Bend", - "block.minecraft.banner.stripe_downright.light_gray": "Light Gray Bend", - "block.minecraft.banner.stripe_downright.gray": "Gray Bend", - "block.minecraft.banner.stripe_downright.pink": "Pink Bend", - "block.minecraft.banner.stripe_downright.lime": "Lime Bend", - "block.minecraft.banner.stripe_downright.yellow": "Yellow Bend", - "block.minecraft.banner.stripe_downright.light_blue": "Light Blue Bend", - "block.minecraft.banner.stripe_downright.magenta": "Magenta Bend", - "block.minecraft.banner.stripe_downright.orange": "Orange Bend", - "block.minecraft.banner.stripe_downright.white": "White Bend", - "block.minecraft.banner.stripe_downleft.black": "Black Bend Sinister", - "block.minecraft.banner.stripe_downleft.red": "Red Bend Sinister", - "block.minecraft.banner.stripe_downleft.green": "Green Bend Sinister", - "block.minecraft.banner.stripe_downleft.brown": "Brown Bend Sinister", - "block.minecraft.banner.stripe_downleft.blue": "Blue Bend Sinister", - "block.minecraft.banner.stripe_downleft.purple": "Purple Bend Sinister", - "block.minecraft.banner.stripe_downleft.cyan": "Cyan Bend Sinister", - "block.minecraft.banner.stripe_downleft.light_gray": "Light Gray Bend Sinister", - "block.minecraft.banner.stripe_downleft.gray": "Gray Bend Sinister", - "block.minecraft.banner.stripe_downleft.pink": "Pink Bend Sinister", - "block.minecraft.banner.stripe_downleft.lime": "Lime Bend Sinister", - "block.minecraft.banner.stripe_downleft.yellow": "Yellow Bend Sinister", - "block.minecraft.banner.stripe_downleft.light_blue": "Light Blue Bend Sinister", - "block.minecraft.banner.stripe_downleft.magenta": "Magenta Bend Sinister", - "block.minecraft.banner.stripe_downleft.orange": "Orange Bend Sinister", - "block.minecraft.banner.stripe_downleft.white": "White Bend Sinister", - "block.minecraft.banner.small_stripes.black": "Black Paly", - "block.minecraft.banner.small_stripes.red": "Red Paly", - "block.minecraft.banner.small_stripes.green": "Green Paly", - "block.minecraft.banner.small_stripes.brown": "Brown Paly", - "block.minecraft.banner.small_stripes.blue": "Blue Paly", - "block.minecraft.banner.small_stripes.purple": "Purple Paly", - "block.minecraft.banner.small_stripes.cyan": "Cyan Paly", - "block.minecraft.banner.small_stripes.light_gray": "Light Gray Paly", - "block.minecraft.banner.small_stripes.gray": "Gray Paly", - "block.minecraft.banner.small_stripes.pink": "Pink Paly", - "block.minecraft.banner.small_stripes.lime": "Lime Paly", - "block.minecraft.banner.small_stripes.yellow": "Yellow Paly", - "block.minecraft.banner.small_stripes.light_blue": "Light Blue Paly", - "block.minecraft.banner.small_stripes.magenta": "Magenta Paly", - "block.minecraft.banner.small_stripes.orange": "Orange Paly", - "block.minecraft.banner.small_stripes.white": "White Paly", - "block.minecraft.banner.cross.black": "Black Saltire", - "block.minecraft.banner.cross.red": "Red Saltire", - "block.minecraft.banner.cross.green": "Green Saltire", - "block.minecraft.banner.cross.brown": "Brown Saltire", - "block.minecraft.banner.cross.blue": "Blue Saltire", - "block.minecraft.banner.cross.purple": "Purple Saltire", - "block.minecraft.banner.cross.cyan": "Cyan Saltire", - "block.minecraft.banner.cross.light_gray": "Light Gray Saltire", - "block.minecraft.banner.cross.gray": "Gray Saltire", - "block.minecraft.banner.cross.pink": "Pink Saltire", - "block.minecraft.banner.cross.lime": "Lime Saltire", - "block.minecraft.banner.cross.yellow": "Yellow Saltire", - "block.minecraft.banner.cross.light_blue": "Light Blue Saltire", - "block.minecraft.banner.cross.magenta": "Magenta Saltire", - "block.minecraft.banner.cross.orange": "Orange Saltire", - "block.minecraft.banner.cross.white": "White Saltire", - "block.minecraft.banner.triangle_bottom.black": "Black Chevron", - "block.minecraft.banner.triangle_bottom.red": "Red Chevron", - "block.minecraft.banner.triangle_bottom.green": "Green Chevron", - "block.minecraft.banner.triangle_bottom.brown": "Brown Chevron", - "block.minecraft.banner.triangle_bottom.blue": "Blue Chevron", - "block.minecraft.banner.triangle_bottom.purple": "Purple Chevron", - "block.minecraft.banner.triangle_bottom.cyan": "Cyan Chevron", - "block.minecraft.banner.triangle_bottom.light_gray": "Light Gray Chevron", - "block.minecraft.banner.triangle_bottom.gray": "Gray Chevron", - "block.minecraft.banner.triangle_bottom.pink": "Pink Chevron", - "block.minecraft.banner.triangle_bottom.lime": "Lime Chevron", - "block.minecraft.banner.triangle_bottom.yellow": "Yellow Chevron", - "block.minecraft.banner.triangle_bottom.light_blue": "Light Blue Chevron", - "block.minecraft.banner.triangle_bottom.magenta": "Magenta Chevron", - "block.minecraft.banner.triangle_bottom.orange": "Orange Chevron", - "block.minecraft.banner.triangle_bottom.white": "White Chevron", - "block.minecraft.banner.triangle_top.black": "Black Inverted Chevron", - "block.minecraft.banner.triangle_top.red": "Red Inverted Chevron", - "block.minecraft.banner.triangle_top.green": "Green Inverted Chevron", - "block.minecraft.banner.triangle_top.brown": "Brown Inverted Chevron", - "block.minecraft.banner.triangle_top.blue": "Blue Inverted Chevron", - "block.minecraft.banner.triangle_top.purple": "Purple Inverted Chevron", - "block.minecraft.banner.triangle_top.cyan": "Cyan Inverted Chevron", - "block.minecraft.banner.triangle_top.light_gray": "Light Gray Inverted Chevron", - "block.minecraft.banner.triangle_top.gray": "Gray Inverted Chevron", - "block.minecraft.banner.triangle_top.pink": "Pink Inverted Chevron", - "block.minecraft.banner.triangle_top.lime": "Lime Inverted Chevron", - "block.minecraft.banner.triangle_top.yellow": "Yellow Inverted Chevron", - "block.minecraft.banner.triangle_top.light_blue": "Light Blue Inverted Chevron", - "block.minecraft.banner.triangle_top.magenta": "Magenta Inverted Chevron", - "block.minecraft.banner.triangle_top.orange": "Orange Inverted Chevron", - "block.minecraft.banner.triangle_top.white": "White Inverted Chevron", - "block.minecraft.banner.triangles_bottom.black": "Black Base Indented", - "block.minecraft.banner.triangles_bottom.red": "Red Base Indented", - "block.minecraft.banner.triangles_bottom.green": "Green Base Indented", - "block.minecraft.banner.triangles_bottom.brown": "Brown Base Indented", - "block.minecraft.banner.triangles_bottom.blue": "Blue Base Indented", - "block.minecraft.banner.triangles_bottom.purple": "Purple Base Indented", - "block.minecraft.banner.triangles_bottom.cyan": "Cyan Base Indented", - "block.minecraft.banner.triangles_bottom.light_gray": "Light Gray Base Indented", - "block.minecraft.banner.triangles_bottom.gray": "Gray Base Indented", - "block.minecraft.banner.triangles_bottom.pink": "Pink Base Indented", - "block.minecraft.banner.triangles_bottom.lime": "Lime Base Indented", - "block.minecraft.banner.triangles_bottom.yellow": "Yellow Base Indented", - "block.minecraft.banner.triangles_bottom.light_blue": "Light Blue Base Indented", - "block.minecraft.banner.triangles_bottom.magenta": "Magenta Base Indented", - "block.minecraft.banner.triangles_bottom.orange": "Orange Base Indented", - "block.minecraft.banner.triangles_bottom.white": "White Base Indented", - "block.minecraft.banner.triangles_top.black": "Black Chief Indented", - "block.minecraft.banner.triangles_top.red": "Red Chief Indented", - "block.minecraft.banner.triangles_top.green": "Green Chief Indented", - "block.minecraft.banner.triangles_top.brown": "Brown Chief Indented", - "block.minecraft.banner.triangles_top.blue": "Blue Chief Indented", - "block.minecraft.banner.triangles_top.purple": "Purple Chief Indented", - "block.minecraft.banner.triangles_top.cyan": "Cyan Chief Indented", - "block.minecraft.banner.triangles_top.light_gray": "Light Gray Chief Indented", - "block.minecraft.banner.triangles_top.gray": "Gray Chief Indented", - "block.minecraft.banner.triangles_top.pink": "Pink Chief Indented", - "block.minecraft.banner.triangles_top.lime": "Lime Chief Indented", - "block.minecraft.banner.triangles_top.yellow": "Yellow Chief Indented", - "block.minecraft.banner.triangles_top.light_blue": "Light Blue Chief Indented", - "block.minecraft.banner.triangles_top.magenta": "Magenta Chief Indented", - "block.minecraft.banner.triangles_top.orange": "Orange Chief Indented", - "block.minecraft.banner.triangles_top.white": "White Chief Indented", - "block.minecraft.banner.diagonal_left.black": "Black Per Bend Sinister", - "block.minecraft.banner.diagonal_left.red": "Red Per Bend Sinister", - "block.minecraft.banner.diagonal_left.green": "Green Per Bend Sinister", - "block.minecraft.banner.diagonal_left.brown": "Brown Per Bend Sinister", - "block.minecraft.banner.diagonal_left.blue": "Blue Per Bend Sinister", - "block.minecraft.banner.diagonal_left.purple": "Purple Per Bend Sinister", - "block.minecraft.banner.diagonal_left.cyan": "Cyan Per Bend Sinister", - "block.minecraft.banner.diagonal_left.light_gray": "Light Gray Per Bend Sinister", - "block.minecraft.banner.diagonal_left.gray": "Gray Per Bend Sinister", - "block.minecraft.banner.diagonal_left.pink": "Pink Per Bend Sinister", - "block.minecraft.banner.diagonal_left.lime": "Lime Per Bend Sinister", - "block.minecraft.banner.diagonal_left.yellow": "Yellow Per Bend Sinister", - "block.minecraft.banner.diagonal_left.light_blue": "Light Blue Per Bend Sinister", - "block.minecraft.banner.diagonal_left.magenta": "Magenta Per Bend Sinister", - "block.minecraft.banner.diagonal_left.orange": "Orange Per Bend Sinister", - "block.minecraft.banner.diagonal_left.white": "White Per Bend Sinister", - "block.minecraft.banner.diagonal_right.black": "Black Per Bend", - "block.minecraft.banner.diagonal_right.red": "Red Per Bend", - "block.minecraft.banner.diagonal_right.green": "Green Per Bend", - "block.minecraft.banner.diagonal_right.brown": "Brown Per Bend", - "block.minecraft.banner.diagonal_right.blue": "Blue Per Bend", - "block.minecraft.banner.diagonal_right.purple": "Purple Per Bend", - "block.minecraft.banner.diagonal_right.cyan": "Cyan Per Bend", - "block.minecraft.banner.diagonal_right.light_gray": "Light Gray Per Bend", - "block.minecraft.banner.diagonal_right.gray": "Gray Per Bend", - "block.minecraft.banner.diagonal_right.pink": "Pink Per Bend", - "block.minecraft.banner.diagonal_right.lime": "Lime Per Bend", - "block.minecraft.banner.diagonal_right.yellow": "Yellow Per Bend", - "block.minecraft.banner.diagonal_right.light_blue": "Light Blue Per Bend", - "block.minecraft.banner.diagonal_right.magenta": "Magenta Per Bend", - "block.minecraft.banner.diagonal_right.orange": "Orange Per Bend", - "block.minecraft.banner.diagonal_right.white": "White Per Bend", - "block.minecraft.banner.diagonal_up_left.black": "Black Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.red": "Red Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.green": "Green Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.brown": "Brown Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.blue": "Blue Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.purple": "Purple Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.cyan": "Cyan Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.light_gray": "Light Gray Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.gray": "Gray Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.pink": "Pink Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.lime": "Lime Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.yellow": "Yellow Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.light_blue": "Light Blue Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.magenta": "Magenta Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.orange": "Orange Per Bend Inverted", - "block.minecraft.banner.diagonal_up_left.white": "White Per Bend Inverted", - "block.minecraft.banner.diagonal_up_right.black": "Black Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.red": "Red Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.green": "Green Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.brown": "Brown Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.blue": "Blue Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.purple": "Purple Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.cyan": "Cyan Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.light_gray": "Light Gray Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.gray": "Gray Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.pink": "Pink Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.lime": "Lime Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.yellow": "Yellow Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.light_blue": "Light Blue Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.magenta": "Magenta Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.orange": "Orange Per Bend Sinister Inverted", - "block.minecraft.banner.diagonal_up_right.white": "White Per Bend Sinister Inverted", - "block.minecraft.banner.circle.black": "Black Roundel", - "block.minecraft.banner.circle.red": "Red Roundel", - "block.minecraft.banner.circle.green": "Green Roundel", - "block.minecraft.banner.circle.brown": "Brown Roundel", - "block.minecraft.banner.circle.blue": "Blue Roundel", - "block.minecraft.banner.circle.purple": "Purple Roundel", - "block.minecraft.banner.circle.cyan": "Cyan Roundel", - "block.minecraft.banner.circle.light_gray": "Light Gray Roundel", - "block.minecraft.banner.circle.gray": "Gray Roundel", - "block.minecraft.banner.circle.pink": "Pink Roundel", - "block.minecraft.banner.circle.lime": "Lime Roundel", - "block.minecraft.banner.circle.yellow": "Yellow Roundel", - "block.minecraft.banner.circle.light_blue": "Light Blue Roundel", - "block.minecraft.banner.circle.magenta": "Magenta Roundel", - "block.minecraft.banner.circle.orange": "Orange Roundel", - "block.minecraft.banner.circle.white": "White Roundel", - "block.minecraft.banner.rhombus.black": "Black Lozenge", - "block.minecraft.banner.rhombus.red": "Red Lozenge", - "block.minecraft.banner.rhombus.green": "Green Lozenge", - "block.minecraft.banner.rhombus.brown": "Brown Lozenge", - "block.minecraft.banner.rhombus.blue": "Blue Lozenge", - "block.minecraft.banner.rhombus.purple": "Purple Lozenge", - "block.minecraft.banner.rhombus.cyan": "Cyan Lozenge", - "block.minecraft.banner.rhombus.light_gray": "Light Gray Lozenge", - "block.minecraft.banner.rhombus.gray": "Gray Lozenge", - "block.minecraft.banner.rhombus.pink": "Pink Lozenge", - "block.minecraft.banner.rhombus.lime": "Lime Lozenge", - "block.minecraft.banner.rhombus.yellow": "Yellow Lozenge", - "block.minecraft.banner.rhombus.light_blue": "Light Blue Lozenge", - "block.minecraft.banner.rhombus.magenta": "Magenta Lozenge", - "block.minecraft.banner.rhombus.orange": "Orange Lozenge", - "block.minecraft.banner.rhombus.white": "White Lozenge", - "block.minecraft.banner.half_vertical.black": "Black Per Pale", - "block.minecraft.banner.half_vertical.red": "Red Per Pale", - "block.minecraft.banner.half_vertical.green": "Green Per Pale", - "block.minecraft.banner.half_vertical.brown": "Brown Per Pale", - "block.minecraft.banner.half_vertical.blue": "Blue Per Pale", - "block.minecraft.banner.half_vertical.purple": "Purple Per Pale", - "block.minecraft.banner.half_vertical.cyan": "Cyan Per Pale", - "block.minecraft.banner.half_vertical.light_gray": "Light Gray Per Pale", - "block.minecraft.banner.half_vertical.gray": "Gray Per Pale", - "block.minecraft.banner.half_vertical.pink": "Pink Per Pale", - "block.minecraft.banner.half_vertical.lime": "Lime Per Pale", - "block.minecraft.banner.half_vertical.yellow": "Yellow Per Pale", - "block.minecraft.banner.half_vertical.light_blue": "Light Blue Per Pale", - "block.minecraft.banner.half_vertical.magenta": "Magenta Per Pale", - "block.minecraft.banner.half_vertical.orange": "Orange Per Pale", - "block.minecraft.banner.half_vertical.white": "White Per Pale", - "block.minecraft.banner.half_horizontal.black": "Black Per Fess", - "block.minecraft.banner.half_horizontal.red": "Red Per Fess", - "block.minecraft.banner.half_horizontal.green": "Green Per Fess", - "block.minecraft.banner.half_horizontal.brown": "Brown Per Fess", - "block.minecraft.banner.half_horizontal.blue": "Blue Per Fess", - "block.minecraft.banner.half_horizontal.purple": "Purple Per Fess", - "block.minecraft.banner.half_horizontal.cyan": "Cyan Per Fess", - "block.minecraft.banner.half_horizontal.light_gray": "Light Gray Per Fess", - "block.minecraft.banner.half_horizontal.gray": "Gray Per Fess", - "block.minecraft.banner.half_horizontal.pink": "Pink Per Fess", - "block.minecraft.banner.half_horizontal.lime": "Lime Per Fess", - "block.minecraft.banner.half_horizontal.yellow": "Yellow Per Fess", - "block.minecraft.banner.half_horizontal.light_blue": "Light Blue Per Fess", - "block.minecraft.banner.half_horizontal.magenta": "Magenta Per Fess", - "block.minecraft.banner.half_horizontal.orange": "Orange Per Fess", - "block.minecraft.banner.half_horizontal.white": "White Per Fess", - "block.minecraft.banner.half_vertical_right.black": "Black Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.red": "Red Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.green": "Green Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.brown": "Brown Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.blue": "Blue Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.purple": "Purple Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.cyan": "Cyan Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.light_gray": "Light Gray Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.gray": "Gray Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.pink": "Pink Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.lime": "Lime Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.yellow": "Yellow Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.light_blue": "Light Blue Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.magenta": "Magenta Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.orange": "Orange Per Pale Inverted", - "block.minecraft.banner.half_vertical_right.white": "White Per Pale Inverted", - "block.minecraft.banner.half_horizontal_bottom.black": "Black Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.red": "Red Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.green": "Green Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.brown": "Brown Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.blue": "Blue Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.purple": "Purple Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.cyan": "Cyan Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.light_gray": "Light Gray Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.gray": "Gray Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.pink": "Pink Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.lime": "Lime Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.yellow": "Yellow Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.light_blue": "Light Blue Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.magenta": "Magenta Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.orange": "Orange Per Fess Inverted", - "block.minecraft.banner.half_horizontal_bottom.white": "White Per Fess Inverted", - "block.minecraft.banner.creeper.black": "Black Creeper Charge", - "block.minecraft.banner.creeper.red": "Red Creeper Charge", - "block.minecraft.banner.creeper.green": "Green Creeper Charge", - "block.minecraft.banner.creeper.brown": "Brown Creeper Charge", - "block.minecraft.banner.creeper.blue": "Blue Creeper Charge", - "block.minecraft.banner.creeper.purple": "Purple Creeper Charge", - "block.minecraft.banner.creeper.cyan": "Cyan Creeper Charge", - "block.minecraft.banner.creeper.light_gray": "Light Gray Creeper Charge", - "block.minecraft.banner.creeper.gray": "Gray Creeper Charge", - "block.minecraft.banner.creeper.pink": "Pink Creeper Charge", - "block.minecraft.banner.creeper.lime": "Lime Creeper Charge", - "block.minecraft.banner.creeper.yellow": "Yellow Creeper Charge", - "block.minecraft.banner.creeper.light_blue": "Light Blue Creeper Charge", - "block.minecraft.banner.creeper.magenta": "Magenta Creeper Charge", - "block.minecraft.banner.creeper.orange": "Orange Creeper Charge", - "block.minecraft.banner.creeper.white": "White Creeper Charge", - "block.minecraft.banner.bricks.black": "Black Field Masoned", - "block.minecraft.banner.bricks.red": "Red Field Masoned", - "block.minecraft.banner.bricks.green": "Green Field Masoned", - "block.minecraft.banner.bricks.brown": "Brown Field Masoned", - "block.minecraft.banner.bricks.blue": "Blue Field Masoned", - "block.minecraft.banner.bricks.purple": "Purple Field Masoned", - "block.minecraft.banner.bricks.cyan": "Cyan Field Masoned", - "block.minecraft.banner.bricks.light_gray": "Light Gray Field Masoned", - "block.minecraft.banner.bricks.gray": "Gray Field Masoned", - "block.minecraft.banner.bricks.pink": "Pink Field Masoned", - "block.minecraft.banner.bricks.lime": "Lime Field Masoned", - "block.minecraft.banner.bricks.yellow": "Yellow Field Masoned", - "block.minecraft.banner.bricks.light_blue": "Light Blue Field Masoned", - "block.minecraft.banner.bricks.magenta": "Magenta Field Masoned", - "block.minecraft.banner.bricks.orange": "Orange Field Masoned", - "block.minecraft.banner.bricks.white": "White Field Masoned", - "block.minecraft.banner.gradient.black": "Black Gradient", - "block.minecraft.banner.gradient.red": "Red Gradient", - "block.minecraft.banner.gradient.green": "Green Gradient", - "block.minecraft.banner.gradient.brown": "Brown Gradient", - "block.minecraft.banner.gradient.blue": "Blue Gradient", - "block.minecraft.banner.gradient.purple": "Purple Gradient", - "block.minecraft.banner.gradient.cyan": "Cyan Gradient", - "block.minecraft.banner.gradient.light_gray": "Light Gray Gradient", - "block.minecraft.banner.gradient.gray": "Gray Gradient", - "block.minecraft.banner.gradient.pink": "Pink Gradient", - "block.minecraft.banner.gradient.lime": "Lime Gradient", - "block.minecraft.banner.gradient.yellow": "Yellow Gradient", - "block.minecraft.banner.gradient.light_blue": "Light Blue Gradient", - "block.minecraft.banner.gradient.magenta": "Magenta Gradient", - "block.minecraft.banner.gradient.orange": "Orange Gradient", - "block.minecraft.banner.gradient.white": "White Gradient", - "block.minecraft.banner.gradient_up.black": "Black Base Gradient", - "block.minecraft.banner.gradient_up.red": "Red Base Gradient", - "block.minecraft.banner.gradient_up.green": "Green Base Gradient", - "block.minecraft.banner.gradient_up.brown": "Brown Base Gradient", - "block.minecraft.banner.gradient_up.blue": "Blue Base Gradient", - "block.minecraft.banner.gradient_up.purple": "Purple Base Gradient", - "block.minecraft.banner.gradient_up.cyan": "Cyan Base Gradient", - "block.minecraft.banner.gradient_up.light_gray": "Light Gray Base Gradient", - "block.minecraft.banner.gradient_up.gray": "Gray Base Gradient", - "block.minecraft.banner.gradient_up.pink": "Pink Base Gradient", - "block.minecraft.banner.gradient_up.lime": "Lime Base Gradient", - "block.minecraft.banner.gradient_up.yellow": "Yellow Base Gradient", - "block.minecraft.banner.gradient_up.light_blue": "Light Blue Base Gradient", - "block.minecraft.banner.gradient_up.magenta": "Magenta Base Gradient", - "block.minecraft.banner.gradient_up.orange": "Orange Base Gradient", - "block.minecraft.banner.gradient_up.white": "White Base Gradient", - "block.minecraft.banner.skull.black": "Black Skull Charge", - "block.minecraft.banner.skull.red": "Red Skull Charge", - "block.minecraft.banner.skull.green": "Green Skull Charge", - "block.minecraft.banner.skull.brown": "Brown Skull Charge", - "block.minecraft.banner.skull.blue": "Blue Skull Charge", - "block.minecraft.banner.skull.purple": "Purple Skull Charge", - "block.minecraft.banner.skull.cyan": "Cyan Skull Charge", - "block.minecraft.banner.skull.light_gray": "Light Gray Skull Charge", - "block.minecraft.banner.skull.gray": "Gray Skull Charge", - "block.minecraft.banner.skull.pink": "Pink Skull Charge", - "block.minecraft.banner.skull.lime": "Lime Skull Charge", - "block.minecraft.banner.skull.yellow": "Yellow Skull Charge", - "block.minecraft.banner.skull.light_blue": "Light Blue Skull Charge", - "block.minecraft.banner.skull.magenta": "Magenta Skull Charge", - "block.minecraft.banner.skull.orange": "Orange Skull Charge", - "block.minecraft.banner.skull.white": "White Skull Charge", - "block.minecraft.banner.flower.black": "Black Flower Charge", - "block.minecraft.banner.flower.red": "Red Flower Charge", - "block.minecraft.banner.flower.green": "Green Flower Charge", - "block.minecraft.banner.flower.brown": "Brown Flower Charge", - "block.minecraft.banner.flower.blue": "Blue Flower Charge", - "block.minecraft.banner.flower.purple": "Purple Flower Charge", - "block.minecraft.banner.flower.cyan": "Cyan Flower Charge", - "block.minecraft.banner.flower.light_gray": "Light Gray Flower Charge", - "block.minecraft.banner.flower.gray": "Gray Flower Charge", - "block.minecraft.banner.flower.pink": "Pink Flower Charge", - "block.minecraft.banner.flower.lime": "Lime Flower Charge", - "block.minecraft.banner.flower.yellow": "Yellow Flower Charge", - "block.minecraft.banner.flower.light_blue": "Light Blue Flower Charge", - "block.minecraft.banner.flower.magenta": "Magenta Flower Charge", - "block.minecraft.banner.flower.orange": "Orange Flower Charge", - "block.minecraft.banner.flower.white": "White Flower Charge", - "block.minecraft.banner.border.black": "Black Bordure", - "block.minecraft.banner.border.red": "Red Bordure", - "block.minecraft.banner.border.green": "Green Bordure", - "block.minecraft.banner.border.brown": "Brown Bordure", - "block.minecraft.banner.border.blue": "Blue Bordure", - "block.minecraft.banner.border.purple": "Purple Bordure", - "block.minecraft.banner.border.cyan": "Cyan Bordure", - "block.minecraft.banner.border.light_gray": "Light Gray Bordure", - "block.minecraft.banner.border.gray": "Gray Bordure", - "block.minecraft.banner.border.pink": "Pink Bordure", - "block.minecraft.banner.border.lime": "Lime Bordure", - "block.minecraft.banner.border.yellow": "Yellow Bordure", - "block.minecraft.banner.border.light_blue": "Light Blue Bordure", - "block.minecraft.banner.border.magenta": "Magenta Bordure", - "block.minecraft.banner.border.orange": "Orange Bordure", - "block.minecraft.banner.border.white": "White Bordure", - "block.minecraft.banner.curly_border.black": "Black Bordure Indented", - "block.minecraft.banner.curly_border.red": "Red Bordure Indented", - "block.minecraft.banner.curly_border.green": "Green Bordure Indented", - "block.minecraft.banner.curly_border.brown": "Brown Bordure Indented", - "block.minecraft.banner.curly_border.blue": "Blue Bordure Indented", - "block.minecraft.banner.curly_border.purple": "Purple Bordure Indented", - "block.minecraft.banner.curly_border.cyan": "Cyan Bordure Indented", - "block.minecraft.banner.curly_border.light_gray": "Light Gray Bordure Indented", - "block.minecraft.banner.curly_border.gray": "Gray Bordure Indented", - "block.minecraft.banner.curly_border.pink": "Pink Bordure Indented", - "block.minecraft.banner.curly_border.lime": "Lime Bordure Indented", - "block.minecraft.banner.curly_border.yellow": "Yellow Bordure Indented", - "block.minecraft.banner.curly_border.light_blue": "Light Blue Bordure Indented", - "block.minecraft.banner.curly_border.magenta": "Magenta Bordure Indented", - "block.minecraft.banner.curly_border.orange": "Orange Bordure Indented", - "block.minecraft.banner.curly_border.white": "White Bordure Indented", - "block.minecraft.banner.mojang.black": "Black Thing", - "block.minecraft.banner.mojang.red": "Red Thing", - "block.minecraft.banner.mojang.green": "Green Thing", - "block.minecraft.banner.mojang.brown": "Brown Thing", - "block.minecraft.banner.mojang.blue": "Blue Thing", - "block.minecraft.banner.mojang.purple": "Purple Thing", - "block.minecraft.banner.mojang.cyan": "Cyan Thing", - "block.minecraft.banner.mojang.light_gray": "Light Gray Thing", - "block.minecraft.banner.mojang.gray": "Gray Thing", - "block.minecraft.banner.mojang.pink": "Pink Thing", - "block.minecraft.banner.mojang.lime": "Lime Thing", - "block.minecraft.banner.mojang.yellow": "Yellow Thing", - "block.minecraft.banner.mojang.light_blue": "Light Blue Thing", - "block.minecraft.banner.mojang.magenta": "Magenta Thing", - "block.minecraft.banner.mojang.orange": "Orange Thing", - "block.minecraft.banner.mojang.white": "White Thing", - "block.minecraft.banner.straight_cross.black": "Black Cross", - "block.minecraft.banner.straight_cross.red": "Red Cross", - "block.minecraft.banner.straight_cross.green": "Green Cross", - "block.minecraft.banner.straight_cross.brown": "Brown Cross", - "block.minecraft.banner.straight_cross.blue": "Blue Cross", - "block.minecraft.banner.straight_cross.purple": "Purple Cross", - "block.minecraft.banner.straight_cross.cyan": "Cyan Cross", - "block.minecraft.banner.straight_cross.light_gray": "Light Gray Cross", - "block.minecraft.banner.straight_cross.gray": "Gray Cross", - "block.minecraft.banner.straight_cross.pink": "Pink Cross", - "block.minecraft.banner.straight_cross.lime": "Lime Cross", - "block.minecraft.banner.straight_cross.yellow": "Yellow Cross", - "block.minecraft.banner.straight_cross.light_blue": "Light Blue Cross", - "block.minecraft.banner.straight_cross.magenta": "Magenta Cross", - "block.minecraft.banner.straight_cross.orange": "Orange Cross", - "block.minecraft.banner.straight_cross.white": "White Cross", - "block.minecraft.banner.globe.black": "Black Globe", - "block.minecraft.banner.globe.red": "Red Globe", - "block.minecraft.banner.globe.green": "Green Globe", - "block.minecraft.banner.globe.brown": "Brown Globe", - "block.minecraft.banner.globe.blue": "Blue Globe", - "block.minecraft.banner.globe.purple": "Purple Globe", - "block.minecraft.banner.globe.cyan": "Cyan Globe", - "block.minecraft.banner.globe.light_gray": "Light Gray Globe", - "block.minecraft.banner.globe.gray": "Gray Globe", - "block.minecraft.banner.globe.pink": "Pink Globe", - "block.minecraft.banner.globe.lime": "Lime Globe", - "block.minecraft.banner.globe.yellow": "Yellow Globe", - "block.minecraft.banner.globe.light_blue": "Light Blue Globe", - "block.minecraft.banner.globe.magenta": "Magenta Globe", - "block.minecraft.banner.globe.orange": "Orange Globe", - "block.minecraft.banner.globe.white": "White Globe", - "block.minecraft.banner.piglin.black": "Black Snout", - "block.minecraft.banner.piglin.red": "Red Snout", - "block.minecraft.banner.piglin.green": "Green Snout", - "block.minecraft.banner.piglin.brown": "Brown Snout", - "block.minecraft.banner.piglin.blue": "Blue Snout", - "block.minecraft.banner.piglin.purple": "Purple Snout", - "block.minecraft.banner.piglin.cyan": "Cyan Snout", - "block.minecraft.banner.piglin.light_gray": "Light Gray Snout", - "block.minecraft.banner.piglin.gray": "Gray Snout", - "block.minecraft.banner.piglin.pink": "Pink Snout", - "block.minecraft.banner.piglin.lime": "Lime Snout", - "block.minecraft.banner.piglin.yellow": "Yellow Snout", - "block.minecraft.banner.piglin.light_blue": "Light Blue Snout", - "block.minecraft.banner.piglin.magenta": "Magenta Snout", - "block.minecraft.banner.piglin.orange": "Orange Snout", - "block.minecraft.banner.piglin.white": "White Snout", - "subtitles.ambient.cave": "Eerie noise", - "subtitles.block.amethyst_block.chime": "Amethyst chimes", - "subtitles.block.anvil.destroy": "Anvil destroyed", - "subtitles.block.anvil.land": "Anvil landed", - "subtitles.block.anvil.use": "Anvil used", - "subtitles.block.barrel.close": "Barrel closes", - "subtitles.block.barrel.open": "Barrel opens", - "subtitles.block.beacon.activate": "Beacon activates", - "subtitles.block.beacon.ambient": "Beacon hums", - "subtitles.block.beacon.deactivate": "Beacon deactivates", - "subtitles.block.beacon.power_select": "Beacon power selected", - "subtitles.block.beehive.drip": "Honey drips", - "subtitles.block.beehive.enter": "Bee enters hive", - "subtitles.block.beehive.exit": "Bee leaves hive", - "subtitles.block.beehive.shear": "Shears scrape", - "subtitles.block.beehive.work": "Bees work", - "subtitles.block.bell.resonate": "Bell resonates", - "subtitles.block.bell.use": "Bell rings", - "subtitles.block.big_dripleaf.tilt_down": "Dripleaf tilts down", - "subtitles.block.big_dripleaf.tilt_up": "Dripleaf tilts up", - "subtitles.block.blastfurnace.fire_crackle": "Blast Furnace crackles", - "subtitles.block.brewing_stand.brew": "Brewing Stand bubbles", - "subtitles.block.bubble_column.bubble_pop": "Bubbles pop", - "subtitles.block.bubble_column.upwards_ambient": "Bubbles flow", - "subtitles.block.bubble_column.upwards_inside": "Bubbles woosh", - "subtitles.block.bubble_column.whirlpool_ambient": "Bubbles whirl", - "subtitles.block.bubble_column.whirlpool_inside": "Bubbles zoom", - "subtitles.block.button.click": "Button clicks", - "subtitles.block.campfire.crackle": "Campfire crackles", - "subtitles.block.candle.crackle": "Candle crackles", - "subtitles.block.cake.add_candle": "Cake squishes", - "subtitles.block.chest.close": "Chest closes", - "subtitles.block.chest.locked": "Chest locked", - "subtitles.block.chest.open": "Chest opens", - "subtitles.chiseled_bookshelf.insert": "Book placed", - "subtitles.chiseled_bookshelf.insert_enchanted": "Enchanted book placed", - "subtitles.chiseled_bookshelf.take": "Book taken", - "subtitles.chiseled_bookshelf.take_enchanted": "Enchanted book taken", - "subtitles.block.chorus_flower.death": "Chorus Flower withers", - "subtitles.block.chorus_flower.grow": "Chorus Flower grows", - "subtitles.block.comparator.click": "Comparator clicks", - "subtitles.block.composter.empty": "Composter emptied", - "subtitles.block.composter.fill": "Composter filled", - "subtitles.block.composter.ready": "Composter composts", - "subtitles.block.conduit.activate": "Conduit activates", - "subtitles.block.conduit.ambient": "Conduit pulses", - "subtitles.block.conduit.attack.target": "Conduit attacks", - "subtitles.block.conduit.deactivate": "Conduit deactivates", - "subtitles.block.dispenser.dispense": "Dispensed item", - "subtitles.block.dispenser.fail": "Dispenser failed", - "subtitles.block.door.toggle": "Door creaks", - "subtitles.block.enchantment_table.use": "Enchanting Table used", - "subtitles.block.end_portal.spawn": "End Portal opens", - "subtitles.block.end_portal_frame.fill": "Eye of Ender attaches", - "subtitles.block.fence_gate.toggle": "Fence Gate creaks", - "subtitles.block.fire.ambient": "Fire crackles", - "subtitles.block.fire.extinguish": "Fire extinguished", - "subtitles.block.frogspawn.hatch": "Tadpole hatches", - "subtitles.block.furnace.fire_crackle": "Furnace crackles", - "subtitles.block.generic.break": "Block broken", - "subtitles.block.generic.footsteps": "Footsteps", - "subtitles.block.generic.hit": "Block breaking", - "subtitles.block.generic.place": "Block placed", - "subtitles.block.grindstone.use": "Grindstone used", - "subtitles.block.growing_plant.crop": "Plant cropped", - "subtitles.block.honey_block.slide": "Sliding down a honey block", - "subtitles.item.honeycomb.wax_on": "Wax on", - "subtitles.block.iron_trapdoor.close": "Trapdoor closes", - "subtitles.block.iron_trapdoor.open": "Trapdoor opens", - "subtitles.block.lava.ambient": "Lava pops", - "subtitles.block.lava.extinguish": "Lava hisses", - "subtitles.block.lever.click": "Lever clicks", - "subtitles.block.note_block.note": "Note Block plays", - "subtitles.block.piston.move": "Piston moves", - "subtitles.block.pointed_dripstone.land": "Stalactite crashes down", - "subtitles.block.pointed_dripstone.drip_lava": "Lava drips", - "subtitles.block.pointed_dripstone.drip_water": "Water drips", - "subtitles.block.pointed_dripstone.drip_lava_into_cauldron": "Lava drips into Cauldron", - "subtitles.block.pointed_dripstone.drip_water_into_cauldron": "Water drips into Cauldron", - "subtitles.block.portal.ambient": "Portal whooshes", - "subtitles.block.portal.travel": "Portal noise fades", - "subtitles.block.portal.trigger": "Portal noise intensifies", - "subtitles.block.pressure_plate.click": "Pressure Plate clicks", - "subtitles.block.pumpkin.carve": "Shears carve", - "subtitles.block.redstone_torch.burnout": "Torch fizzes", - "subtitles.block.respawn_anchor.ambient": "Portal whooshes", - "subtitles.block.respawn_anchor.charge": "Respawn Anchor is charged", - "subtitles.block.respawn_anchor.deplete": "Respawn Anchor depletes", - "subtitles.block.respawn_anchor.set_spawn": "Respawn Anchor sets spawn", - "subtitles.block.sculk.charge": "Sculk bubbles", - "subtitles.block.sculk.spread": "Sculk spreads", - "subtitles.block.sculk_catalyst.bloom": "Sculk Catalyst blooms", - "subtitles.block.sculk_sensor.clicking": "Sculk Sensor starts clicking", - "subtitles.block.sculk_sensor.clicking_stop": "Sculk Sensor stops clicking", - "subtitles.block.sculk_shrieker.shriek": "Sculk Shrieker shrieks", - "subtitles.block.shulker_box.close": "Shulker closes", - "subtitles.block.shulker_box.open": "Shulker opens", - "subtitles.block.smithing_table.use": "Smithing Table used", - "subtitles.block.smoker.smoke": "Smoker smokes", - "subtitles.block.sweet_berry_bush.pick_berries": "Berries pop", - "subtitles.block.trapdoor.toggle": "Trapdoor creaks", - "subtitles.block.tripwire.attach": "Tripwire attaches", - "subtitles.block.tripwire.click": "Tripwire clicks", - "subtitles.block.tripwire.detach": "Tripwire detaches", - "subtitles.block.water.ambient": "Water flows", - "subtitles.enchant.thorns.hit": "Thorns prick", - "subtitles.entity.allay.death": "Allay dies", - "subtitles.entity.allay.hurt": "Allay hurts", - "subtitles.entity.allay.ambient_with_item": "Allay seeks", - "subtitles.entity.allay.ambient_without_item": "Allay yearns", - "subtitles.entity.allay.item_given": "Allay chortles", - "subtitles.entity.allay.item_taken": "Allay allays", - "subtitles.entity.allay.item_thrown": "Allay tosses", - "subtitles.entity.armor_stand.fall": "Something fell", - "subtitles.entity.arrow.hit": "Arrow hits", - "subtitles.entity.arrow.hit_player": "Player hit", - "subtitles.entity.arrow.shoot": "Arrow fired", - "subtitles.entity.axolotl.attack": "Axolotl attacks", - "subtitles.entity.axolotl.death": "Axolotl dies", - "subtitles.entity.axolotl.hurt": "Axolotl hurts", - "subtitles.entity.axolotl.idle_air": "Axolotl chirps", - "subtitles.entity.axolotl.idle_water": "Axolotl chirps", - "subtitles.entity.axolotl.splash": "Axolotl splashes", - "subtitles.entity.axolotl.swim": "Axolotl swims", - "subtitles.entity.bat.ambient": "Bat screeches", - "subtitles.entity.bat.death": "Bat dies", - "subtitles.entity.bat.hurt": "Bat hurts", - "subtitles.entity.bat.takeoff": "Bat takes off", - "subtitles.entity.bee.ambient": "Bee buzzes", - "subtitles.entity.bee.death": "Bee dies", - "subtitles.entity.bee.hurt": "Bee hurts", - "subtitles.entity.bee.loop": "Bee buzzes", - "subtitles.entity.bee.loop_aggressive": "Bee buzzes angrily", - "subtitles.entity.bee.pollinate": "Bee buzzes happily", - "subtitles.entity.bee.sting": "Bee stings", - "subtitles.entity.blaze.ambient": "Blaze breathes", - "subtitles.entity.blaze.burn": "Blaze crackles", - "subtitles.entity.blaze.death": "Blaze dies", - "subtitles.entity.blaze.hurt": "Blaze hurts", - "subtitles.entity.blaze.shoot": "Blaze shoots", - "subtitles.entity.boat.paddle_land": "Rowing", - "subtitles.entity.boat.paddle_water": "Rowing", - "subtitles.entity.camel.ambient": "Camel grunts", - "subtitles.entity.camel.dash": "Camel yeets", - "subtitles.entity.camel.dash_ready": "Camel recovers", - "subtitles.entity.camel.death": "Camel dies", - "subtitles.entity.camel.eat": "Camel eats", - "subtitles.entity.camel.hurt": "Camel hurts", - "subtitles.entity.camel.saddle": "Saddle equips", - "subtitles.entity.camel.sit": "Camel sits down", - "subtitles.entity.camel.stand": "Camel stands up", - "subtitles.entity.camel.step": "Camel steps", - "subtitles.entity.camel.step_sand": "Camel sands", - "subtitles.entity.cat.ambient": "Cat meows", - "subtitles.entity.cat.beg_for_food": "Cat begs", - "subtitles.entity.cat.death": "Cat dies", - "subtitles.entity.cat.eat": "Cat eats", - "subtitles.entity.cat.hiss": "Cat hisses", - "subtitles.entity.cat.hurt": "Cat hurts", - "subtitles.entity.cat.purr": "Cat purrs", - "subtitles.entity.chicken.ambient": "Chicken clucks", - "subtitles.entity.chicken.death": "Chicken dies", - "subtitles.entity.chicken.egg": "Chicken plops", - "subtitles.entity.chicken.hurt": "Chicken hurts", - "subtitles.entity.cod.death": "Cod dies", - "subtitles.entity.cod.flop": "Cod flops", - "subtitles.entity.cod.hurt": "Cod hurts", - "subtitles.entity.cow.ambient": "Cow moos", - "subtitles.entity.cow.death": "Cow dies", - "subtitles.entity.cow.hurt": "Cow hurts", - "subtitles.entity.cow.milk": "Cow gets milked", - "subtitles.entity.creeper.death": "Creeper dies", - "subtitles.entity.creeper.hurt": "Creeper hurts", - "subtitles.entity.creeper.primed": "Creeper hisses", - "subtitles.entity.dolphin.ambient": "Dolphin chirps", - "subtitles.entity.dolphin.ambient_water": "Dolphin whistles", - "subtitles.entity.dolphin.attack": "Dolphin attacks", - "subtitles.entity.dolphin.death": "Dolphin dies", - "subtitles.entity.dolphin.eat": "Dolphin eats", - "subtitles.entity.dolphin.hurt": "Dolphin hurts", - "subtitles.entity.dolphin.jump": "Dolphin jumps", - "subtitles.entity.dolphin.play": "Dolphin plays", - "subtitles.entity.dolphin.splash": "Dolphin splashes", - "subtitles.entity.dolphin.swim": "Dolphin swims", - "subtitles.entity.donkey.ambient": "Donkey hee-haws", - "subtitles.entity.donkey.angry": "Donkey neighs", - "subtitles.entity.donkey.chest": "Donkey Chest equips", - "subtitles.entity.donkey.death": "Donkey dies", - "subtitles.entity.donkey.eat": "Donkey eats", - "subtitles.entity.donkey.hurt": "Donkey hurts", - "subtitles.entity.drowned.ambient": "Drowned gurgles", - "subtitles.entity.drowned.ambient_water": "Drowned gurgles", - "subtitles.entity.drowned.death": "Drowned dies", - "subtitles.entity.drowned.hurt": "Drowned hurts", - "subtitles.entity.drowned.shoot": "Drowned throws Trident", - "subtitles.entity.drowned.step": "Drowned steps", - "subtitles.entity.drowned.swim": "Drowned swims", - "subtitles.entity.egg.throw": "Egg flies", - "subtitles.entity.elder_guardian.ambient": "Elder Guardian moans", - "subtitles.entity.elder_guardian.ambient_land": "Elder Guardian flaps", - "subtitles.entity.elder_guardian.curse": "Elder Guardian curses", - "subtitles.entity.elder_guardian.death": "Elder Guardian dies", - "subtitles.entity.elder_guardian.flop": "Elder Guardian flops", - "subtitles.entity.elder_guardian.hurt": "Elder Guardian hurts", - "subtitles.entity.ender_dragon.ambient": "Dragon roars", - "subtitles.entity.ender_dragon.death": "Dragon dies", - "subtitles.entity.ender_dragon.flap": "Dragon flaps", - "subtitles.entity.ender_dragon.growl": "Dragon growls", - "subtitles.entity.ender_dragon.hurt": "Dragon hurts", - "subtitles.entity.ender_dragon.shoot": "Dragon shoots", - "subtitles.entity.ender_eye.death": "Eye of Ender falls", - "subtitles.entity.ender_eye.launch": "Eye of Ender shoots", - "subtitles.entity.ender_pearl.throw": "Ender Pearl flies", - "subtitles.entity.enderman.ambient": "Enderman vwoops", - "subtitles.entity.enderman.death": "Enderman dies", - "subtitles.entity.enderman.hurt": "Enderman hurts", - "subtitles.entity.enderman.scream": "Enderman screams", - "subtitles.entity.enderman.stare": "Enderman cries out", - "subtitles.entity.enderman.teleport": "Enderman teleports", - "subtitles.entity.endermite.ambient": "Endermite scuttles", - "subtitles.entity.endermite.death": "Endermite dies", - "subtitles.entity.endermite.hurt": "Endermite hurts", - "subtitles.entity.evoker.ambient": "Evoker murmurs", - "subtitles.entity.evoker.cast_spell": "Evoker casts spell", - "subtitles.entity.evoker.celebrate": "Evoker cheers", - "subtitles.entity.evoker.death": "Evoker dies", - "subtitles.entity.evoker.hurt": "Evoker hurts", - "subtitles.entity.evoker.prepare_attack": "Evoker prepares attack", - "subtitles.entity.evoker.prepare_summon": "Evoker prepares summoning", - "subtitles.entity.evoker.prepare_wololo": "Evoker prepares charming", - "subtitles.entity.evoker_fangs.attack": "Fangs snap", - "subtitles.entity.experience_orb.pickup": "Experience gained", - "subtitles.entity.firework_rocket.blast": "Firework blasts", - "subtitles.entity.firework_rocket.launch": "Firework launches", - "subtitles.entity.firework_rocket.twinkle": "Firework twinkles", - "subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved", - "subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes", - "subtitles.entity.fishing_bobber.throw": "Bobber thrown", - "subtitles.entity.fox.aggro": "Fox angers", - "subtitles.entity.fox.ambient": "Fox squeaks", - "subtitles.entity.fox.bite": "Fox bites", - "subtitles.entity.fox.death": "Fox dies", - "subtitles.entity.fox.eat": "Fox eats", - "subtitles.entity.fox.hurt": "Fox hurts", - "subtitles.entity.fox.screech": "Fox screeches", - "subtitles.entity.fox.sleep": "Fox snores", - "subtitles.entity.fox.sniff": "Fox sniffs", - "subtitles.entity.fox.spit": "Fox spits", - "subtitles.entity.fox.teleport": "Fox teleports", - "subtitles.entity.frog.ambient": "Frog croaks", - "subtitles.entity.frog.death": "Frog dies", - "subtitles.entity.frog.eat": "Frog eats", - "subtitles.entity.frog.hurt": "Frog hurts", - "subtitles.entity.frog.lay_spawn": "Frog lays spawn", - "subtitles.entity.frog.long_jump": "Frog jumps", - "subtitles.entity.generic.big_fall": "Something fell", - "subtitles.entity.generic.burn": "Burning", - "subtitles.entity.generic.death": "Dying", - "subtitles.entity.generic.drink": "Sipping", - "subtitles.entity.generic.eat": "Eating", - "subtitles.entity.generic.explode": "Explosion", - "subtitles.entity.generic.extinguish_fire": "Fire extinguishes", - "subtitles.entity.generic.hurt": "Something hurts", - "subtitles.entity.generic.small_fall": "Something trips", - "subtitles.entity.generic.splash": "Splashing", - "subtitles.entity.generic.swim": "Swimming", - "subtitles.entity.ghast.ambient": "Ghast cries", - "subtitles.entity.ghast.death": "Ghast dies", - "subtitles.entity.ghast.hurt": "Ghast hurts", - "subtitles.entity.ghast.shoot": "Ghast shoots", - "subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills", - "subtitles.entity.glow_item_frame.break": "Glow Item Frame breaks", - "subtitles.entity.glow_item_frame.place": "Glow Item Frame placed", - "subtitles.entity.glow_item_frame.remove_item": "Glow Item Frame empties", - "subtitles.entity.glow_item_frame.rotate_item": "Glow Item Frame clicks", - "subtitles.entity.glow_squid.ambient": "Glow Squid swims", - "subtitles.entity.glow_squid.death": "Glow Squid dies", - "subtitles.entity.glow_squid.hurt": "Glow Squid hurts", - "subtitles.entity.glow_squid.squirt": "Glow Squid shoots ink", - "subtitles.entity.goat.ambient": "Goat bleats", - "subtitles.entity.goat.screaming.ambient": "Goat bellows", - "subtitles.entity.goat.death": "Goat dies", - "subtitles.entity.goat.eat": "Goat eats", - "subtitles.entity.goat.horn_break": "Goat Horn breaks off", - "subtitles.entity.goat.hurt": "Goat hurts", - "subtitles.entity.goat.long_jump": "Goat leaps", - "subtitles.entity.goat.milk": "Goat gets milked", - "subtitles.entity.goat.prepare_ram": "Goat stomps", - "subtitles.entity.goat.ram_impact": "Goat rams", - "subtitles.entity.goat.step": "Goat steps", - "subtitles.entity.guardian.ambient": "Guardian moans", - "subtitles.entity.guardian.ambient_land": "Guardian flaps", - "subtitles.entity.guardian.attack": "Guardian shoots", - "subtitles.entity.guardian.death": "Guardian dies", - "subtitles.entity.guardian.flop": "Guardian flops", - "subtitles.entity.guardian.hurt": "Guardian hurts", - "subtitles.entity.hoglin.ambient": "Hoglin growls", - "subtitles.entity.hoglin.angry": "Hoglin growls angrily", - "subtitles.entity.hoglin.attack": "Hoglin attacks", - "subtitles.entity.hoglin.converted_to_zombified": "Hoglin converts to Zoglin", - "subtitles.entity.hoglin.death": "Hoglin dies", - "subtitles.entity.hoglin.hurt": "Hoglin hurts", - "subtitles.entity.hoglin.retreat": "Hoglin retreats", - "subtitles.entity.hoglin.step": "Hoglin steps", - "subtitles.entity.horse.ambient": "Horse neighs", - "subtitles.entity.horse.angry": "Horse neighs", - "subtitles.entity.horse.armor": "Horse armor equips", - "subtitles.entity.horse.breathe": "Horse breathes", - "subtitles.entity.horse.death": "Horse dies", - "subtitles.entity.horse.eat": "Horse eats", - "subtitles.entity.horse.gallop": "Horse gallops", - "subtitles.entity.horse.hurt": "Horse hurts", - "subtitles.entity.horse.jump": "Horse jumps", - "subtitles.entity.horse.saddle": "Saddle equips", - "subtitles.entity.husk.ambient": "Husk groans", - "subtitles.entity.husk.converted_to_zombie": "Husk converts to Zombie", - "subtitles.entity.husk.death": "Husk dies", - "subtitles.entity.husk.hurt": "Husk hurts", - "subtitles.entity.illusioner.ambient": "Illusioner murmurs", - "subtitles.entity.illusioner.cast_spell": "Illusioner casts spell", - "subtitles.entity.illusioner.death": "Illusioner dies", - "subtitles.entity.illusioner.hurt": "Illusioner hurts", - "subtitles.entity.illusioner.mirror_move": "Illusioner displaces", - "subtitles.entity.illusioner.prepare_blindness": "Illusioner prepares blindness", - "subtitles.entity.illusioner.prepare_mirror": "Illusioner prepares mirror image", - "subtitles.entity.iron_golem.attack": "Iron Golem attacks", - "subtitles.entity.iron_golem.damage": "Iron Golem breaks", - "subtitles.entity.iron_golem.death": "Iron Golem dies", - "subtitles.entity.iron_golem.hurt": "Iron Golem hurts", - "subtitles.entity.iron_golem.repair": "Iron Golem repaired", - "subtitles.entity.item.break": "Item breaks", - "subtitles.entity.item.pickup": "Item plops", - "subtitles.entity.item_frame.add_item": "Item Frame fills", - "subtitles.entity.item_frame.break": "Item Frame breaks", - "subtitles.entity.item_frame.place": "Item Frame placed", - "subtitles.entity.item_frame.remove_item": "Item Frame empties", - "subtitles.entity.item_frame.rotate_item": "Item Frame clicks", - "subtitles.entity.leash_knot.break": "Leash knot breaks", - "subtitles.entity.leash_knot.place": "Leash knot tied", - "subtitles.entity.lightning_bolt.impact": "Lightning strikes", - "subtitles.entity.lightning_bolt.thunder": "Thunder roars", - "subtitles.entity.llama.ambient": "Llama bleats", - "subtitles.entity.llama.angry": "Llama bleats angrily", - "subtitles.entity.llama.chest": "Llama Chest equips", - "subtitles.entity.llama.death": "Llama dies", - "subtitles.entity.llama.eat": "Llama eats", - "subtitles.entity.llama.hurt": "Llama hurts", - "subtitles.entity.llama.spit": "Llama spits", - "subtitles.entity.llama.step": "Llama steps", - "subtitles.entity.llama.swag": "Llama is decorated", - "subtitles.entity.magma_cube.death": "Magma Cube dies", - "subtitles.entity.magma_cube.hurt": "Magma Cube hurts", - "subtitles.entity.magma_cube.squish": "Magma Cube squishes", - "subtitles.entity.minecart.riding": "Minecart rolls", - "subtitles.entity.mooshroom.convert": "Mooshroom transforms", - "subtitles.entity.mooshroom.eat": "Mooshroom eats", - "subtitles.entity.mooshroom.milk": "Mooshroom gets milked", - "subtitles.entity.mooshroom.suspicious_milk": "Mooshroom gets milked suspiciously", - "subtitles.entity.mule.ambient": "Mule hee-haws", - "subtitles.entity.mule.angry": "Mule neighs", - "subtitles.entity.mule.chest": "Mule Chest equips", - "subtitles.entity.mule.death": "Mule dies", - "subtitles.entity.mule.eat": "Mule eats", - "subtitles.entity.mule.hurt": "Mule hurts", - "subtitles.entity.painting.break": "Painting breaks", - "subtitles.entity.painting.place": "Painting placed", - "subtitles.entity.panda.aggressive_ambient": "Panda huffs", - "subtitles.entity.panda.ambient": "Panda pants", - "subtitles.entity.panda.bite": "Panda bites", - "subtitles.entity.panda.cant_breed": "Panda bleats", - "subtitles.entity.panda.death": "Panda dies", - "subtitles.entity.panda.eat": "Panda eats", - "subtitles.entity.panda.hurt": "Panda hurts", - "subtitles.entity.panda.pre_sneeze": "Panda's nose tickles", - "subtitles.entity.panda.sneeze": "Panda sneezes", - "subtitles.entity.panda.step": "Panda steps", - "subtitles.entity.panda.worried_ambient": "Panda whimpers", - "subtitles.entity.parrot.ambient": "Parrot talks", - "subtitles.entity.parrot.death": "Parrot dies", - "subtitles.entity.parrot.eats": "Parrot eats", - "subtitles.entity.parrot.fly": "Parrot flutters", - "subtitles.entity.parrot.hurts": "Parrot hurts", - "subtitles.entity.parrot.imitate.blaze": "Parrot breathes", - "subtitles.entity.parrot.imitate.creeper": "Parrot hisses", - "subtitles.entity.parrot.imitate.drowned": "Parrot gurgles", - "subtitles.entity.parrot.imitate.elder_guardian": "Parrot moans", - "subtitles.entity.parrot.imitate.ender_dragon": "Parrot roars", - "subtitles.entity.parrot.imitate.endermite": "Parrot scuttles", - "subtitles.entity.parrot.imitate.evoker": "Parrot murmurs", - "subtitles.entity.parrot.imitate.ghast": "Parrot cries", - "subtitles.entity.parrot.imitate.guardian": "Parrot moans", - "subtitles.entity.parrot.imitate.hoglin": "Parrot growls", - "subtitles.entity.parrot.imitate.husk": "Parrot groans", - "subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs", - "subtitles.entity.parrot.imitate.magma_cube": "Parrot squishes", - "subtitles.entity.parrot.imitate.phantom": "Parrot screeches", - "subtitles.entity.parrot.imitate.piglin": "Parrot snorts", - "subtitles.entity.parrot.imitate.piglin_brute": "Parrot snorts", - "subtitles.entity.parrot.imitate.pillager": "Parrot murmurs", - "subtitles.entity.parrot.imitate.ravager": "Parrot grunts", - "subtitles.entity.parrot.imitate.shulker": "Parrot lurks", - "subtitles.entity.parrot.imitate.silverfish": "Parrot hisses", - "subtitles.entity.parrot.imitate.skeleton": "Parrot rattles", - "subtitles.entity.parrot.imitate.slime": "Parrot squishes", - "subtitles.entity.parrot.imitate.spider": "Parrot hisses", - "subtitles.entity.parrot.imitate.stray": "Parrot rattles", - "subtitles.entity.parrot.imitate.vex": "Parrot vexes", - "subtitles.entity.parrot.imitate.vindicator": "Parrot mutters", - "subtitles.entity.parrot.imitate.warden": "Parrot whines", - "subtitles.entity.parrot.imitate.witch": "Parrot giggles", - "subtitles.entity.parrot.imitate.wither": "Parrot angers", - "subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles", - "subtitles.entity.parrot.imitate.zoglin": "Parrot growls", - "subtitles.entity.parrot.imitate.zombie": "Parrot groans", - "subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans", - "subtitles.entity.phantom.ambient": "Phantom screeches", - "subtitles.entity.phantom.bite": "Phantom bites", - "subtitles.entity.phantom.death": "Phantom dies", - "subtitles.entity.phantom.flap": "Phantom flaps", - "subtitles.entity.phantom.hurt": "Phantom hurts", - "subtitles.entity.phantom.swoop": "Phantom swoops", - "subtitles.entity.pig.ambient": "Pig oinks", - "subtitles.entity.pig.death": "Pig dies", - "subtitles.entity.pig.hurt": "Pig hurts", - "subtitles.entity.pig.saddle": "Saddle equips", - "subtitles.entity.piglin.admiring_item": "Piglin admires item", - "subtitles.entity.piglin.ambient": "Piglin snorts", - "subtitles.entity.piglin.angry": "Piglin snorts angrily", - "subtitles.entity.piglin.celebrate": "Piglin celebrates", - "subtitles.entity.piglin.converted_to_zombified": "Piglin converts to Zombified Piglin", - "subtitles.entity.piglin.death": "Piglin dies", - "subtitles.entity.piglin.hurt": "Piglin hurts", - "subtitles.entity.piglin.jealous": "Piglin snorts enviously", - "subtitles.entity.piglin.retreat": "Piglin retreats", - "subtitles.entity.piglin.step": "Piglin steps", - "subtitles.entity.piglin_brute.ambient": "Piglin Brute snorts", - "subtitles.entity.piglin_brute.angry": "Piglin Brute snorts angrily", - "subtitles.entity.piglin_brute.death": "Piglin Brute dies", - "subtitles.entity.piglin_brute.hurt": "Piglin Brute hurts", - "subtitles.entity.piglin_brute.step": "Piglin Brute steps", - "subtitles.entity.piglin_brute.converted_to_zombified": "Piglin Brute converts to Zombified Piglin", - "subtitles.entity.pillager.ambient": "Pillager murmurs", - "subtitles.entity.pillager.celebrate": "Pillager cheers", - "subtitles.entity.pillager.death": "Pillager dies", - "subtitles.entity.pillager.hurt": "Pillager hurts", - "subtitles.entity.player.attack.crit": "Critical attack", - "subtitles.entity.player.attack.knockback": "Knockback attack", - "subtitles.entity.player.attack.strong": "Strong attack", - "subtitles.entity.player.attack.sweep": "Sweeping attack", - "subtitles.entity.player.attack.weak": "Weak attack", - "subtitles.entity.player.burp": "Burp", - "subtitles.entity.player.death": "Player dies", - "subtitles.entity.player.hurt": "Player hurts", - "subtitles.entity.player.hurt_drown": "Player drowning", - "subtitles.entity.player.hurt_on_fire": "Player burns", - "subtitles.entity.player.levelup": "Player dings", - "subtitles.entity.player.freeze_hurt": "Player freezes", - "subtitles.entity.polar_bear.ambient": "Polar Bear groans", - "subtitles.entity.polar_bear.ambient_baby": "Polar Bear hums", - "subtitles.entity.polar_bear.death": "Polar Bear dies", - "subtitles.entity.polar_bear.hurt": "Polar Bear hurts", - "subtitles.entity.polar_bear.warning": "Polar Bear roars", - "subtitles.entity.potion.splash": "Bottle smashes", - "subtitles.entity.potion.throw": "Bottle thrown", - "subtitles.entity.puffer_fish.blow_out": "Pufferfish deflates", - "subtitles.entity.puffer_fish.blow_up": "Pufferfish inflates", - "subtitles.entity.puffer_fish.death": "Pufferfish dies", - "subtitles.entity.puffer_fish.flop": "Pufferfish flops", - "subtitles.entity.puffer_fish.hurt": "Pufferfish hurts", - "subtitles.entity.puffer_fish.sting": "Pufferfish stings", - "subtitles.entity.rabbit.ambient": "Rabbit squeaks", - "subtitles.entity.rabbit.attack": "Rabbit attacks", - "subtitles.entity.rabbit.death": "Rabbit dies", - "subtitles.entity.rabbit.hurt": "Rabbit hurts", - "subtitles.entity.rabbit.jump": "Rabbit hops", - "subtitles.entity.ravager.ambient": "Ravager grunts", - "subtitles.entity.ravager.attack": "Ravager bites", - "subtitles.entity.ravager.celebrate": "Ravager cheers", - "subtitles.entity.ravager.death": "Ravager dies", - "subtitles.entity.ravager.hurt": "Ravager hurts", - "subtitles.entity.ravager.roar": "Ravager roars", - "subtitles.entity.ravager.step": "Ravager steps", - "subtitles.entity.ravager.stunned": "Ravager stunned", - "subtitles.entity.salmon.death": "Salmon dies", - "subtitles.entity.salmon.flop": "Salmon flops", - "subtitles.entity.salmon.hurt": "Salmon hurts", - "subtitles.entity.sheep.ambient": "Sheep baahs", - "subtitles.entity.sheep.death": "Sheep dies", - "subtitles.entity.sheep.hurt": "Sheep hurts", - "subtitles.entity.shulker.ambient": "Shulker lurks", - "subtitles.entity.shulker.close": "Shulker closes", - "subtitles.entity.shulker.death": "Shulker dies", - "subtitles.entity.shulker.hurt": "Shulker hurts", - "subtitles.entity.shulker.open": "Shulker opens", - "subtitles.entity.shulker.shoot": "Shulker shoots", - "subtitles.entity.shulker.teleport": "Shulker teleports", - "subtitles.entity.shulker_bullet.hit": "Shulker Bullet explodes", - "subtitles.entity.shulker_bullet.hurt": "Shulker Bullet breaks", - "subtitles.entity.silverfish.ambient": "Silverfish hisses", - "subtitles.entity.silverfish.death": "Silverfish dies", - "subtitles.entity.silverfish.hurt": "Silverfish hurts", - "subtitles.entity.skeleton.ambient": "Skeleton rattles", - "subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray", - "subtitles.entity.skeleton.death": "Skeleton dies", - "subtitles.entity.skeleton.hurt": "Skeleton hurts", - "subtitles.entity.skeleton.shoot": "Skeleton shoots", - "subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries", - "subtitles.entity.skeleton_horse.death": "Skeleton Horse dies", - "subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts", - "subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims", - "subtitles.entity.slime.attack": "Slime attacks", - "subtitles.entity.slime.death": "Slime dies", - "subtitles.entity.slime.hurt": "Slime hurts", - "subtitles.entity.slime.squish": "Slime squishes", - "subtitles.entity.snow_golem.death": "Snow Golem dies", - "subtitles.entity.snow_golem.hurt": "Snow Golem hurts", - "subtitles.entity.snowball.throw": "Snowball flies", - "subtitles.entity.spider.ambient": "Spider hisses", - "subtitles.entity.spider.death": "Spider dies", - "subtitles.entity.spider.hurt": "Spider hurts", - "subtitles.entity.squid.ambient": "Squid swims", - "subtitles.entity.squid.death": "Squid dies", - "subtitles.entity.squid.hurt": "Squid hurts", - "subtitles.entity.squid.squirt": "Squid shoots ink", - "subtitles.entity.stray.ambient": "Stray rattles", - "subtitles.entity.stray.death": "Stray dies", - "subtitles.entity.stray.hurt": "Stray hurts", - "subtitles.entity.strider.death": "Strider dies", - "subtitles.entity.strider.eat": "Strider eats", - "subtitles.entity.strider.happy": "Strider warbles", - "subtitles.entity.strider.hurt": "Strider hurts", - "subtitles.entity.strider.idle": "Strider chirps", - "subtitles.entity.strider.retreat": "Strider retreats", - "subtitles.entity.tadpole.death": "Tadpole dies", - "subtitles.entity.tadpole.flop": "Tadpole flops", - "subtitles.entity.tadpole.grow_up": "Tadpole grows up", - "subtitles.entity.tadpole.hurt": "Tadpole hurts", - "subtitles.entity.tnt.primed": "TNT fizzes", - "subtitles.entity.tropical_fish.death": "Tropical Fish dies", - "subtitles.entity.tropical_fish.flop": "Tropical Fish flops", - "subtitles.entity.tropical_fish.hurt": "Tropical Fish hurts", - "subtitles.entity.turtle.ambient_land": "Turtle chirps", - "subtitles.entity.turtle.death": "Turtle dies", - "subtitles.entity.turtle.death_baby": "Turtle baby dies", - "subtitles.entity.turtle.egg_break": "Turtle Egg breaks", - "subtitles.entity.turtle.egg_crack": "Turtle Egg cracks", - "subtitles.entity.turtle.egg_hatch": "Turtle Egg hatches", - "subtitles.entity.turtle.hurt": "Turtle hurts", - "subtitles.entity.turtle.hurt_baby": "Turtle baby hurts", - "subtitles.entity.turtle.lay_egg": "Turtle lays egg", - "subtitles.entity.turtle.shamble": "Turtle shambles", - "subtitles.entity.turtle.shamble_baby": "Turtle baby shambles", - "subtitles.entity.turtle.swim": "Turtle swims", - "subtitles.entity.vex.ambient": "Vex vexes", - "subtitles.entity.vex.charge": "Vex shrieks", - "subtitles.entity.vex.death": "Vex dies", - "subtitles.entity.vex.hurt": "Vex hurts", - "subtitles.entity.villager.ambient": "Villager mumbles", - "subtitles.entity.villager.celebrate": "Villager cheers", - "subtitles.entity.villager.death": "Villager dies", - "subtitles.entity.villager.hurt": "Villager hurts", - "subtitles.entity.villager.no": "Villager disagrees", - "subtitles.entity.villager.trade": "Villager trades", - "subtitles.entity.villager.work_armorer": "Armorer works", - "subtitles.entity.villager.work_butcher": "Butcher works", - "subtitles.entity.villager.work_cartographer": "Cartographer works", - "subtitles.entity.villager.work_cleric": "Cleric works", - "subtitles.entity.villager.work_farmer": "Farmer works", - "subtitles.entity.villager.work_fisherman": "Fisherman works", - "subtitles.entity.villager.work_fletcher": "Fletcher works", - "subtitles.entity.villager.work_leatherworker": "Leatherworker works", - "subtitles.entity.villager.work_librarian": "Librarian works", - "subtitles.entity.villager.work_mason": "Mason works", - "subtitles.entity.villager.work_shepherd": "Shepherd works", - "subtitles.entity.villager.work_toolsmith": "Toolsmith works", - "subtitles.entity.villager.work_weaponsmith": "Weaponsmith works", - "subtitles.entity.villager.yes": "Villager agrees", - "subtitles.entity.vindicator.ambient": "Vindicator mutters", - "subtitles.entity.vindicator.celebrate": "Vindicator cheers", - "subtitles.entity.vindicator.death": "Vindicator dies", - "subtitles.entity.vindicator.hurt": "Vindicator hurts", - "subtitles.entity.wandering_trader.ambient": "Wandering Trader mumbles", - "subtitles.entity.wandering_trader.death": "Wandering Trader dies", - "subtitles.entity.wandering_trader.disappeared": "Wandering Trader disappears", - "subtitles.entity.wandering_trader.drink_milk": "Wandering Trader drinks milk", - "subtitles.entity.wandering_trader.drink_potion": "Wandering Trader drinks potion", - "subtitles.entity.wandering_trader.hurt": "Wandering Trader hurts", - "subtitles.entity.wandering_trader.no": "Wandering Trader disagrees", - "subtitles.entity.wandering_trader.reappeared": "Wandering Trader appears", - "subtitles.entity.wandering_trader.trade": "Wandering Trader trades", - "subtitles.entity.wandering_trader.yes": "Wandering Trader agrees", - "subtitles.entity.warden.roar": "Warden roars", - "subtitles.entity.warden.sniff": "Warden sniffs", - "subtitles.entity.warden.emerge": "Warden emerges", - "subtitles.entity.warden.dig": "Warden digs", - "subtitles.entity.warden.hurt": "Warden hurts", - "subtitles.entity.warden.death": "Warden dies", - "subtitles.entity.warden.step": "Warden steps", - "subtitles.entity.warden.listening": "Warden takes notice", - "subtitles.entity.warden.listening_angry": "Warden takes notice angrily", - "subtitles.entity.warden.heartbeat": "Warden's heart beats", - "subtitles.entity.warden.attack_impact": "Warden lands hit", - "subtitles.entity.warden.tendril_clicks": "Warden's tendrils click", - "subtitles.entity.warden.angry": "Warden rages", - "subtitles.entity.warden.agitated": "Warden groans angrily", - "subtitles.entity.warden.ambient": "Warden whines", - "subtitles.entity.warden.nearby_close": "Warden approaches", - "subtitles.entity.warden.nearby_closer": "Warden advances", - "subtitles.entity.warden.nearby_closest": "Warden draws close", - "subtitles.entity.warden.sonic_charge": "Warden charges", - "subtitles.entity.warden.sonic_boom": "Warden booms", - "subtitles.entity.witch.ambient": "Witch giggles", - "subtitles.entity.witch.celebrate": "Witch cheers", - "subtitles.entity.witch.death": "Witch dies", - "subtitles.entity.witch.drink": "Witch drinks", - "subtitles.entity.witch.hurt": "Witch hurts", - "subtitles.entity.witch.throw": "Witch throws", - "subtitles.entity.wither.ambient": "Wither angers", - "subtitles.entity.wither.death": "Wither dies", - "subtitles.entity.wither.hurt": "Wither hurts", - "subtitles.entity.wither.shoot": "Wither attacks", - "subtitles.entity.wither.spawn": "Wither released", - "subtitles.entity.wither_skeleton.ambient": "Wither Skeleton rattles", - "subtitles.entity.wither_skeleton.death": "Wither Skeleton dies", - "subtitles.entity.wither_skeleton.hurt": "Wither Skeleton hurts", - "subtitles.entity.wolf.ambient": "Wolf pants", - "subtitles.entity.wolf.death": "Wolf dies", - "subtitles.entity.wolf.growl": "Wolf growls", - "subtitles.entity.wolf.hurt": "Wolf hurts", - "subtitles.entity.wolf.shake": "Wolf shakes", - "subtitles.entity.zoglin.ambient": "Zoglin growls", - "subtitles.entity.zoglin.angry": "Zoglin growls angrily", - "subtitles.entity.zoglin.attack": "Zoglin attacks", - "subtitles.entity.zoglin.death": "Zoglin dies", - "subtitles.entity.zoglin.hurt": "Zoglin hurts", - "subtitles.entity.zoglin.step": "Zoglin steps", - "subtitles.entity.zombie.ambient": "Zombie groans", - "subtitles.entity.zombie.attack_wooden_door": "Door shakes", - "subtitles.entity.zombie.converted_to_drowned": "Zombie converts to Drowned", - "subtitles.entity.zombie.break_wooden_door": "Door breaks", - "subtitles.entity.zombie.death": "Zombie dies", - "subtitles.entity.zombie.destroy_egg": "Turtle Egg stomped", - "subtitles.entity.zombie.hurt": "Zombie hurts", - "subtitles.entity.zombie.infect": "Zombie infects", - "subtitles.entity.zombie_horse.ambient": "Zombie Horse cries", - "subtitles.entity.zombie_horse.death": "Zombie Horse dies", - "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", - "subtitles.entity.zombie_villager.ambient": "Zombie Villager groans", - "subtitles.entity.zombie_villager.converted": "Zombie Villager vociferates", - "subtitles.entity.zombie_villager.cure": "Zombie Villager snuffles", - "subtitles.entity.zombie_villager.death": "Zombie Villager dies", - "subtitles.entity.zombie_villager.hurt": "Zombie Villager hurts", - "subtitles.entity.zombified_piglin.ambient": "Zombified Piglin grunts", - "subtitles.entity.zombified_piglin.angry": "Zombified Piglin grunts angrily", - "subtitles.entity.zombified_piglin.death": "Zombified Piglin dies", - "subtitles.entity.zombified_piglin.hurt": "Zombified Piglin hurts", - "subtitles.event.raid.horn": "Ominous horn blares", - "subtitles.item.armor.equip": "Gear equips", - "subtitles.item.armor.equip_chain": "Chain armor jingles", - "subtitles.item.armor.equip_diamond": "Diamond armor clangs", - "subtitles.item.armor.equip_elytra": "Elytra rustle", - "subtitles.item.armor.equip_gold": "Gold armor clinks", - "subtitles.item.armor.equip_iron": "Iron armor clanks", - "subtitles.item.armor.equip_leather": "Leather armor rustles", - "subtitles.item.armor.equip_netherite": "Netherite armor clanks", - "subtitles.item.armor.equip_turtle": "Turtle Shell thunks", - "subtitles.item.axe.strip": "Axe strips", - "subtitles.item.axe.scrape": "Axe scrapes", - "subtitles.item.axe.wax_off": "Wax off", - "subtitles.item.bone_meal.use": "Bone Meal crinkles", - "subtitles.item.book.page_turn": "Page rustles", - "subtitles.item.book.put": "Book thumps", - "subtitles.item.bottle.empty": "Bottle empties", - "subtitles.item.bottle.fill": "Bottle fills", - "subtitles.item.bucket.empty": "Bucket empties", - "subtitles.item.bucket.fill": "Bucket fills", - "subtitles.item.bucket.fill_axolotl": "Axolotl scooped", - "subtitles.item.bucket.fill_fish": "Fish captured", - "subtitles.item.bucket.fill_tadpole": "Tadpole captured", - "subtitles.item.bundle.drop_contents": "Bundle empties", - "subtitles.item.bundle.insert": "Item packed", - "subtitles.item.bundle.remove_one": "Item unpacked", - "subtitles.item.chorus_fruit.teleport": "Player teleports", - "subtitles.item.crop.plant": "Crop planted", - "subtitles.item.crossbow.charge": "Crossbow charges up", - "subtitles.item.crossbow.hit": "Arrow hits", - "subtitles.item.crossbow.load": "Crossbow loads", - "subtitles.item.crossbow.shoot": "Crossbow fires", - "subtitles.item.firecharge.use": "Fireball whooshes", - "subtitles.item.flintandsteel.use": "Flint and Steel click", - "subtitles.item.goat_horn.play": "Goat Horn plays", - "subtitles.item.hoe.till": "Hoe tills", - "subtitles.item.honey_bottle.drink": "Gulping", - "subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone", - "subtitles.item.nether_wart.plant": "Crop planted", - "subtitles.item.shears.shear": "Shears click", - "subtitles.item.shield.block": "Shield blocks", - "subtitles.item.shovel.flatten": "Shovel flattens", - "subtitles.item.totem.use": "Totem activates", - "subtitles.item.trident.hit": "Trident stabs", - "subtitles.item.trident.hit_ground": "Trident vibrates", - "subtitles.item.trident.return": "Trident returns", - "subtitles.item.trident.riptide": "Trident zooms", - "subtitles.item.trident.throw": "Trident clangs", - "subtitles.item.trident.thunder": "Trident thunder cracks", - "subtitles.item.spyglass.use": "Spyglass expands", - "subtitles.item.spyglass.stop_using": "Spyglass retracts", - "subtitles.item.ink_sac.use": "Ink Sac splotches", - "subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches", - "subtitles.item.dye.use": "Dye stains", - "subtitles.particle.soul_escape": "Soul escapes", - "subtitles.ui.cartography_table.take_result": "Map drawn", - "subtitles.ui.loom.take_result": "Loom used", - "subtitles.ui.stonecutter.take_result": "Stonecutter used", - "subtitles.weather.rain": "Rain falls", - "telemetry_info.screen.title": "Telemetry Data Collection", - "telemetry_info.screen.description": "Collecting this data helps us improve Minecraft by guiding us in directions that are relevant to our players.\nYou can also send in additional feedback to help us keep improving Minecraft.", - "telemetry_info.button.show_data": "Open My Data", - "telemetry_info.button.give_feedback": "Give Feedback", - "telemetry_info.property_title": "Included Data", - "telemetry.property.user_id.title": "User ID", - "telemetry.property.client_id.title": "Client ID", - "telemetry.property.minecraft_session_id.title": "Minecraft Session ID", - "telemetry.property.game_version.title": "Game Version", - "telemetry.property.operating_system.title": "Operating System", - "telemetry.property.platform.title": "Platform", - "telemetry.property.client_modded.title": "Client Modded", - "telemetry.property.event_timestamp_utc.title": "Event Timestamp (UTC)", - "telemetry.property.opt_in.title": "Opt-In", - "telemetry.property.world_session_id.title": "World Session ID", - "telemetry.property.server_modded.title": "Server Modded", - "telemetry.property.server_type.title": "Server Type", - "telemetry.property.frame_rate_samples.title": "Frame Rate Samples (FPS)", - "telemetry.property.render_time_samples.title": "Render Time Samples", - "telemetry.property.used_memory_samples.title": "Used Random Access Memory", - "telemetry.property.number_of_samples.title": "Sample Count", - "telemetry.property.render_distance.title": "Render Distance", - "telemetry.property.dedicated_memory_kb.title": "Dedicated Memory (kB)", - "telemetry.property.game_mode.title": "Game Mode", - "telemetry.property.seconds_since_load.title": "Time Since Load (Seconds)", - "telemetry.property.ticks_since_load.title": "Time Since Load (Ticks)", - "telemetry.property.world_load_time_ms.title": "World Load Time (Milliseconds)", - "telemetry.property.new_world.title": "New World", - "telemetry.event.required": "%s (Required)", - "telemetry.event.optional": "%s (Optional)", - "telemetry.event.world_loaded.title": "World Loaded", - "telemetry.event.world_loaded.description": "Knowing how players play Minecraft (such as Game Mode, client or server modded, and game version) allows us to focus game updates to improve the areas that players care about most.\nThe World Loaded event is paired with the World Unloaded event to calculate how long the play session has lasted.", - "telemetry.event.world_unloaded.title": "World Unloaded", - "telemetry.event.world_unloaded.description": "This event is paired with the World Loaded event to calculate how long the world session has lasted.\nThe duration (in seconds and ticks) is measured when a world session has ended (quitting to title, disconnecting from a server).", - "telemetry.event.performance_metrics.title": "Performance Metrics", - "telemetry.event.performance_metrics.description": "Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems. \nGame version is included to help us compare the performance profile for new versions of Minecraft.", - "telemetry.event.world_load_times.title": "World Load Times", - "telemetry.event.world_load_times.description": "It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.", - "debug.prefix": "[Debug]:", - "debug.reload_chunks.help": "F3 + A = Reload chunks", - "debug.show_hitboxes.help": "F3 + B = Show hitboxes", - "debug.clear_chat.help": "F3 + D = Clear chat", - "debug.chunk_boundaries.help": "F3 + G = Show chunk boundaries", - "debug.advanced_tooltips.help": "F3 + H = Advanced tooltips", - "debug.creative_spectator.help": "F3 + N = Cycle previous gamemode <-> spectator", - "debug.pause_focus.help": "F3 + P = Pause on lost focus", - "debug.help.help": "F3 + Q = Show this list", - "debug.reload_resourcepacks.help": "F3 + T = Reload resource packs", - "debug.pause.help": "F3 + Esc = Pause without pause menu (if pausing is possible)", - "debug.copy_location.help": "F3 + C = Copy location as /tp command, hold F3 + C to crash the game", - "debug.inspect.help": "F3 + I = Copy entity or block data to clipboard", - "debug.gamemodes.help": "F3 + F4 = Open game mode switcher", - "debug.profiling.help": "F3 + L = Start/stop profiling", - "debug.copy_location.message": "Copied location to clipboard", - "debug.inspect.server.block": "Copied server-side block data to clipboard", - "debug.inspect.server.entity": "Copied server-side entity data to clipboard", - "debug.inspect.client.block": "Copied client-side block data to clipboard", - "debug.inspect.client.entity": "Copied client-side entity data to clipboard", - "debug.reload_chunks.message": "Reloading all chunks", - "debug.show_hitboxes.on": "Hitboxes: shown", - "debug.show_hitboxes.off": "Hitboxes: hidden", - "debug.chunk_boundaries.on": "Chunk borders: shown", - "debug.chunk_boundaries.off": "Chunk borders: hidden", - "debug.advanced_tooltips.on": "Advanced tooltips: shown", - "debug.advanced_tooltips.off": "Advanced tooltips: hidden", - "debug.creative_spectator.error": "Unable to switch gamemode; no permission", - "debug.gamemodes.error": "Unable to open game mode switcher; no permission", - "debug.pause_focus.on": "Pause on lost focus: enabled", - "debug.pause_focus.off": "Pause on lost focus: disabled", - "debug.help.message": "Key bindings:", - "debug.reload_resourcepacks.message": "Reloaded resource packs", - "debug.crash.message": "F3 + C is held down. This will crash the game unless released.", - "debug.crash.warning": "Crashing in %s...", - "debug.gamemodes.press_f4": "[ F4 ]", - "debug.gamemodes.select_next": "%s Next", - "debug.profiling.start": "Profiling started for %s seconds. Use F3 + L to stop early", - "debug.profiling.stop": "Profiling ended. Saved results to %s", - "resourcepack.downloading": "Downloading Resource Pack", - "resourcepack.requesting": "Making Request...", - "resourcepack.progress": "Downloading file (%s MB)...", - "tutorial.bundleInsert.title": "Use a Bundle", - "tutorial.bundleInsert.description": "Right Click to add items", - "tutorial.move.title": "Move with %s, %s, %s and %s", - "tutorial.move.description": "Jump with %s", - "tutorial.look.title": "Look around", - "tutorial.look.description": "Use your mouse to turn", - "tutorial.find_tree.title": "Find a tree", - "tutorial.find_tree.description": "Punch it to collect wood", - "tutorial.punch_tree.title": "Destroy the tree", - "tutorial.punch_tree.description": "Hold down %s", - "tutorial.open_inventory.title": "Open your inventory", - "tutorial.open_inventory.description": "Press %s", - "tutorial.craft_planks.title": "Craft wooden planks", - "tutorial.craft_planks.description": "The recipe book can help", - "tutorial.socialInteractions.title": "Social Interactions", - "tutorial.socialInteractions.description": "Press %s to open", - "advancements.adventure.adventuring_time.title": "Adventuring Time", - "advancements.adventure.adventuring_time.description": "Discover every biome", - "advancements.adventure.arbalistic.title": "Arbalistic", - "advancements.adventure.arbalistic.description": "Kill five unique mobs with one crossbow shot", - "advancements.adventure.avoid_vibration.title": "Sneak 100", - "advancements.adventure.avoid_vibration.description": "Sneak near a Sculk Sensor or Warden to prevent it from detecting you", - "advancements.adventure.bullseye.title": "Bullseye", - "advancements.adventure.bullseye.description": "Hit the bullseye of a Target block from at least 30 meters away", - "advancements.adventure.craft_decorated_pot_using_only_sherds.title": "Careful Restoration", - "advancements.adventure.craft_decorated_pot_using_only_sherds.description": "Make a Decorated Pot out of 4 Pottery Sherds", - "advancements.adventure.fall_from_world_height.title": "Caves & Cliffs", - "advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive", - "advancements.adventure.kill_mob_near_sculk_catalyst.title": "It Spreads", - "advancements.adventure.kill_mob_near_sculk_catalyst.description": "Kill a mob near a Sculk Catalyst", - "advancements.adventure.walk_on_powder_snow_with_leather_boots.title": "Light as a Rabbit", - "advancements.adventure.walk_on_powder_snow_with_leather_boots.description": "Walk on Powder Snow...without sinking in it", - "advancements.adventure.lightning_rod_with_villager_no_fire.title": "Surge Protector", - "advancements.adventure.lightning_rod_with_villager_no_fire.description": "Protect a Villager from an undesired shock without starting a fire", - "advancements.adventure.spyglass_at_parrot.title": "Is It a Bird?", - "advancements.adventure.spyglass_at_parrot.description": "Look at a Parrot through a Spyglass", - "advancements.adventure.spyglass_at_ghast.title": "Is It a Balloon?", - "advancements.adventure.spyglass_at_ghast.description": "Look at a Ghast through a Spyglass", - "advancements.adventure.spyglass_at_dragon.title": "Is It a Plane?", - "advancements.adventure.spyglass_at_dragon.description": "Look at the Ender Dragon through a Spyglass", - "advancements.adventure.hero_of_the_village.title": "Hero of the Village", - "advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid", - "advancements.adventure.honey_block_slide.title": "Sticky Situation", - "advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall", - "advancements.adventure.kill_all_mobs.title": "Monsters Hunted", - "advancements.adventure.kill_all_mobs.description": "Kill one of every hostile monster", - "advancements.adventure.kill_a_mob.title": "Monster Hunter", - "advancements.adventure.kill_a_mob.description": "Kill any hostile monster", - "advancements.adventure.ol_betsy.title": "Ol' Betsy", - "advancements.adventure.ol_betsy.description": "Shoot a Crossbow", - "advancements.adventure.play_jukebox_in_meadows.title": "Sound of Music", - "advancements.adventure.play_jukebox_in_meadows.description": "Make the Meadows come alive with the sound of music from a Jukebox", - "advancements.adventure.root.title": "Adventure", - "advancements.adventure.root.description": "Adventure, exploration and combat", - "advancements.adventure.read_power_of_chiseled_bookshelf.title": "The Power of Books", - "advancements.adventure.read_power_of_chiseled_bookshelf.description": "Read the power signal of a Chiseled Bookshelf using a Comparator", - "advancements.adventure.salvage_sherd.title": "Respecting the Remnants", - "advancements.adventure.salvage_sherd.description": "Brush a Suspicious block to obtain a Pottery Sherd", - "advancements.adventure.shoot_arrow.title": "Take Aim", - "advancements.adventure.shoot_arrow.description": "Shoot something with an Arrow", - "advancements.adventure.sleep_in_bed.title": "Sweet Dreams", - "advancements.adventure.sleep_in_bed.description": "Sleep in a Bed to change your respawn point", - "advancements.adventure.sniper_duel.title": "Sniper Duel", - "advancements.adventure.sniper_duel.description": "Kill a Skeleton from at least 50 meters away", - "advancements.adventure.summon_iron_golem.title": "Hired Help", - "advancements.adventure.summon_iron_golem.description": "Summon an Iron Golem to help defend a village", - "advancements.adventure.totem_of_undying.title": "Postmortal", - "advancements.adventure.totem_of_undying.description": "Use a Totem of Undying to cheat death", - "advancements.adventure.trade.title": "What a Deal!", - "advancements.adventure.trade.description": "Successfully trade with a Villager", - "advancements.adventure.trade_at_world_height.title": "Star Trader", - "advancements.adventure.trade_at_world_height.description": "Trade with a Villager at the build height limit", - "advancements.adventure.trim_with_all_exclusive_armor_patterns.title": "Smithing with Style", - "advancements.adventure.trim_with_all_exclusive_armor_patterns.description": "Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder", - "advancements.adventure.trim_with_any_armor_pattern.title": "Crafting a New Look", - "advancements.adventure.trim_with_any_armor_pattern.description": "Craft a trimmed armor at a Smithing Table", - "advancements.adventure.throw_trident.title": "A Throwaway Joke", - "advancements.adventure.throw_trident.description": "Throw a Trident at something.\nNote: Throwing away your only weapon is not a good idea.", - "advancements.adventure.two_birds_one_arrow.title": "Two Birds, One Arrow", - "advancements.adventure.two_birds_one_arrow.description": "Kill two Phantoms with a piercing Arrow", - "advancements.adventure.very_very_frightening.title": "Very Very Frightening", - "advancements.adventure.very_very_frightening.description": "Strike a Villager with lightning", - "advancements.adventure.voluntary_exile.title": "Voluntary Exile", - "advancements.adventure.voluntary_exile.description": "Kill a raid captain.\nMaybe consider staying away from villages for the time being...", - "advancements.adventure.whos_the_pillager_now.title": "Who's the Pillager Now?", - "advancements.adventure.whos_the_pillager_now.description": "Give a Pillager a taste of their own medicine", - "advancements.husbandry.root.title": "Husbandry", - "advancements.husbandry.root.description": "The world is full of friends and food", - "advancements.husbandry.breed_an_animal.title": "The Parrots and the Bats", - "advancements.husbandry.breed_an_animal.description": "Breed two animals together", - "advancements.husbandry.fishy_business.title": "Fishy Business", - "advancements.husbandry.fishy_business.description": "Catch a fish", - "advancements.husbandry.make_a_sign_glow.title": "Glow and Behold!", - "advancements.husbandry.make_a_sign_glow.description": "Make the text of any kind of sign glow", - "advancements.husbandry.ride_a_boat_with_a_goat.title": "Whatever Floats Your Goat!", - "advancements.husbandry.ride_a_boat_with_a_goat.description": "Get in a Boat and float with a Goat", - "advancements.husbandry.tactical_fishing.title": "Tactical Fishing", - "advancements.husbandry.tactical_fishing.description": "Catch a Fish... without a Fishing Rod!", - "advancements.husbandry.axolotl_in_a_bucket.title": "The Cutest Predator", - "advancements.husbandry.axolotl_in_a_bucket.description": "Catch an Axolotl in a Bucket", - "advancements.husbandry.froglights.title": "With Our Powers Combined!", - "advancements.husbandry.froglights.description": "Have all Froglights in your inventory", - "advancements.husbandry.tadpole_in_a_bucket.title": "Bukkit Bukkit", - "advancements.husbandry.tadpole_in_a_bucket.description": "Catch a Tadpole in a Bucket", - "advancements.husbandry.leash_all_frog_variants.title": "When the Squad Hops into Town", - "advancements.husbandry.leash_all_frog_variants.description": "Get each Frog variant on a Lead", - "advancements.husbandry.kill_axolotl_target.title": "The Healing Power of Friendship!", - "advancements.husbandry.kill_axolotl_target.description": "Team up with an Axolotl and win a fight", - "advancements.husbandry.breed_all_animals.title": "Two by Two", - "advancements.husbandry.breed_all_animals.description": "Breed all the animals!", - "advancements.husbandry.tame_an_animal.title": "Best Friends Forever", - "advancements.husbandry.tame_an_animal.description": "Tame an animal", - "advancements.husbandry.plant_seed.title": "A Seedy Place", - "advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow", - "advancements.husbandry.netherite_hoe.title": "Serious Dedication", - "advancements.husbandry.netherite_hoe.description": "Use a Netherite Ingot to upgrade a Hoe, and then reevaluate your life choices", - "advancements.husbandry.balanced_diet.title": "A Balanced Diet", - "advancements.husbandry.balanced_diet.description": "Eat everything that is edible, even if it's not good for you", - "advancements.husbandry.complete_catalogue.title": "A Complete Catalogue", - "advancements.husbandry.complete_catalogue.description": "Tame all Cat variants!", - "advancements.husbandry.safely_harvest_honey.title": "Bee Our Guest", - "advancements.husbandry.safely_harvest_honey.description": "Use a Campfire to collect Honey from a Beehive using a Bottle without aggravating the Bees", - "advancements.husbandry.silk_touch_nest.title": "Total Beelocation", - "advancements.husbandry.silk_touch_nest.description": "Move a Bee Nest, with 3 Bees inside, using Silk Touch", - "advancements.husbandry.wax_on.title": "Wax On", - "advancements.husbandry.wax_on.description": "Apply Honeycomb to a Copper block!", - "advancements.husbandry.wax_off.title": "Wax Off", - "advancements.husbandry.wax_off.description": "Scrape Wax off of a Copper block!", - "advancements.husbandry.allay_deliver_item_to_player.title": "You've Got a Friend in Me", - "advancements.husbandry.allay_deliver_item_to_player.description": "Have an Allay deliver items to you", - "advancements.husbandry.allay_deliver_cake_to_note_block.title": "Birthday Song", - "advancements.husbandry.allay_deliver_cake_to_note_block.description": "Have an Allay drop a Cake at a Note Block", - "advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting", - "advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg", - "advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past", - "advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed", - "advancements.husbandry.obtain_netherite_hoe.title": "Serious Dedication", - "advancements.husbandry.obtain_netherite_hoe.description": "Use a Netherite Ingot to upgrade a Hoe, and then reevaluate your life choices", - "advancements.end.dragon_breath.title": "You Need a Mint", - "advancements.end.dragon_breath.description": "Collect Dragon's Breath in a Glass Bottle", - "advancements.end.dragon_egg.title": "The Next Generation", - "advancements.end.dragon_egg.description": "Hold the Dragon Egg", - "advancements.end.elytra.title": "Sky's the Limit", - "advancements.end.elytra.description": "Find Elytra", - "advancements.end.enter_end_gateway.title": "Remote Getaway", - "advancements.end.enter_end_gateway.description": "Escape the island", - "advancements.end.find_end_city.title": "The City at the End of the Game", - "advancements.end.find_end_city.description": "Go on in, what could happen?", - "advancements.end.kill_dragon.title": "Free the End", - "advancements.end.kill_dragon.description": "Good luck", - "advancements.end.levitate.title": "Great View From Up Here", - "advancements.end.levitate.description": "Levitate up 50 blocks from the attacks of a Shulker", - "advancements.end.respawn_dragon.title": "The End... Again...", - "advancements.end.respawn_dragon.description": "Respawn the Ender Dragon", - "advancements.end.root.title": "The End", - "advancements.end.root.description": "Or the beginning?", - "advancements.nether.brew_potion.title": "Local Brewery", - "advancements.nether.brew_potion.description": "Brew a Potion", - "advancements.nether.all_potions.title": "A Furious Cocktail", - "advancements.nether.all_potions.description": "Have every potion effect applied at the same time", - "advancements.nether.all_effects.title": "How Did We Get Here?", - "advancements.nether.all_effects.description": "Have every effect applied at the same time", - "advancements.nether.create_beacon.title": "Bring Home the Beacon", - "advancements.nether.create_beacon.description": "Construct and place a Beacon", - "advancements.nether.create_full_beacon.title": "Beaconator", - "advancements.nether.create_full_beacon.description": "Bring a Beacon to full power", - "advancements.nether.find_fortress.title": "A Terrible Fortress", - "advancements.nether.find_fortress.description": "Break your way into a Nether Fortress", - "advancements.nether.get_wither_skull.title": "Spooky Scary Skeleton", - "advancements.nether.get_wither_skull.description": "Obtain a Wither Skeleton's skull", - "advancements.nether.obtain_blaze_rod.title": "Into Fire", - "advancements.nether.obtain_blaze_rod.description": "Relieve a Blaze of its rod", - "advancements.nether.return_to_sender.title": "Return to Sender", - "advancements.nether.return_to_sender.description": "Destroy a Ghast with a fireball", - "advancements.nether.root.title": "Nether", - "advancements.nether.root.description": "Bring summer clothes", - "advancements.nether.summon_wither.title": "Withering Heights", - "advancements.nether.summon_wither.description": "Summon the Wither", - "advancements.nether.fast_travel.title": "Subspace Bubble", - "advancements.nether.fast_travel.description": "Use the Nether to travel 7 km in the Overworld", - "advancements.nether.uneasy_alliance.title": "Uneasy Alliance", - "advancements.nether.uneasy_alliance.description": "Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it", - "advancements.nether.obtain_ancient_debris.title": "Hidden in the Depths", - "advancements.nether.obtain_ancient_debris.description": "Obtain Ancient Debris", - "advancements.nether.netherite_armor.title": "Cover Me in Debris", - "advancements.nether.netherite_armor.description": "Get a full suit of Netherite armor", - "advancements.nether.use_lodestone.title": "Country Lode, Take Me Home", - "advancements.nether.use_lodestone.description": "Use a Compass on a Lodestone", - "advancements.nether.obtain_crying_obsidian.title": "Who is Cutting Onions?", - "advancements.nether.obtain_crying_obsidian.description": "Obtain Crying Obsidian", - "advancements.nether.charge_respawn_anchor.title": "Not Quite \"Nine\" Lives", - "advancements.nether.charge_respawn_anchor.description": "Charge a Respawn Anchor to the maximum", - "advancements.nether.ride_strider.title": "This Boat Has Legs", - "advancements.nether.ride_strider.description": "Ride a Strider with a Warped Fungus on a Stick", - "advancements.nether.ride_strider_in_overworld_lava.title": "Feels Like Home", - "advancements.nether.ride_strider_in_overworld_lava.description": "Take a Strider for a loooong ride on a lava lake in the Overworld", - "advancements.nether.explore_nether.title": "Hot Tourist Destinations", - "advancements.nether.explore_nether.description": "Explore all Nether biomes", - "advancements.nether.find_bastion.title": "Those Were the Days", - "advancements.nether.find_bastion.description": "Enter a Bastion Remnant", - "advancements.nether.loot_bastion.title": "War Pigs", - "advancements.nether.loot_bastion.description": "Loot a Chest in a Bastion Remnant", - "advancements.nether.distract_piglin.title": "Oh Shiny", - "advancements.nether.distract_piglin.description": "Distract Piglins with gold", - "advancements.story.cure_zombie_villager.title": "Zombie Doctor", - "advancements.story.cure_zombie_villager.description": "Weaken and then cure a Zombie Villager", - "advancements.story.deflect_arrow.title": "Not Today, Thank You", - "advancements.story.deflect_arrow.description": "Deflect a projectile with a Shield", - "advancements.story.enchant_item.title": "Enchanter", - "advancements.story.enchant_item.description": "Enchant an item at an Enchanting Table", - "advancements.story.enter_the_end.title": "The End?", - "advancements.story.enter_the_end.description": "Enter the End Portal", - "advancements.story.enter_the_nether.title": "We Need to Go Deeper", - "advancements.story.enter_the_nether.description": "Build, light and enter a Nether Portal", - "advancements.story.follow_ender_eye.title": "Eye Spy", - "advancements.story.follow_ender_eye.description": "Follow an Eye of Ender", - "advancements.story.form_obsidian.title": "Ice Bucket Challenge", - "advancements.story.form_obsidian.description": "Obtain a block of Obsidian", - "advancements.story.iron_tools.title": "Isn't It Iron Pick", - "advancements.story.iron_tools.description": "Upgrade your Pickaxe", - "advancements.story.lava_bucket.title": "Hot Stuff", - "advancements.story.lava_bucket.description": "Fill a Bucket with lava", - "advancements.story.mine_diamond.title": "Diamonds!", - "advancements.story.mine_diamond.description": "Acquire diamonds", - "advancements.story.mine_stone.title": "Stone Age", - "advancements.story.mine_stone.description": "Mine Stone with your new Pickaxe", - "advancements.story.obtain_armor.title": "Suit Up", - "advancements.story.obtain_armor.description": "Protect yourself with a piece of iron armor", - "advancements.story.root.title": "Minecraft", - "advancements.story.root.description": "The heart and story of the game", - "advancements.story.shiny_gear.title": "Cover Me with Diamonds", - "advancements.story.shiny_gear.description": "Diamond armor saves lives", - "advancements.story.smelt_iron.title": "Acquire Hardware", - "advancements.story.smelt_iron.description": "Smelt an Iron Ingot", - "advancements.story.upgrade_tools.title": "Getting an Upgrade", - "advancements.story.upgrade_tools.description": "Construct a better Pickaxe", - "team.visibility.always": "Always", - "team.visibility.never": "Never", - "team.visibility.hideForOtherTeams": "Hide for other teams", - "team.visibility.hideForOwnTeam": "Hide for own team", - "team.collision.always": "Always", - "team.collision.never": "Never", - "team.collision.pushOtherTeams": "Push other teams", - "team.collision.pushOwnTeam": "Push own team", - "argument.uuid.invalid": "Invalid UUID", - "argument.entity.selector.nearestPlayer": "Nearest player", - "argument.entity.selector.randomPlayer": "Random player", - "argument.entity.selector.allPlayers": "All players", - "argument.entity.selector.allEntities": "All entities", - "argument.entity.selector.self": "Current entity", - "argument.entity.options.name.description": "Entity name", - "argument.entity.options.distance.description": "Distance to entity", - "argument.entity.options.level.description": "Experience level", - "argument.entity.options.x.description": "x position", - "argument.entity.options.y.description": "y position", - "argument.entity.options.z.description": "z position", - "argument.entity.options.dx.description": "Entities between x and x + dx", - "argument.entity.options.dy.description": "Entities between y and y + dy", - "argument.entity.options.dz.description": "Entities between z and z + dz", - "argument.entity.options.x_rotation.description": "Entity's x rotation", - "argument.entity.options.y_rotation.description": "Entity's y rotation", - "argument.entity.options.limit.description": "Maximum number of entities to return", - "argument.entity.options.sort.description": "Sort the entities", - "argument.entity.options.gamemode.description": "Players with gamemode", - "argument.entity.options.team.description": "Entities on team", - "argument.entity.options.type.description": "Entities of type", - "argument.entity.options.tag.description": "Entities with tag", - "argument.entity.options.nbt.description": "Entities with NBT", - "argument.entity.options.scores.description": "Entities with scores", - "argument.entity.options.advancements.description": "Players with advancements", - "argument.entity.options.predicate.description": "Custom predicate", - "argument.resource.not_found": "Can't find element '%s' of type '%s'", - "argument.resource.invalid_type": "Element '%s' has wrong type '%s' (expected '%s')", - "argument.resource_tag.not_found": "Can't find tag '%s' of type '%s'", - "argument.resource_tag.invalid_type": "Tag '%s' has wrong type '%s' (expected '%s')", - "command.failed": "An unexpected error occurred trying to execute that command", - "command.context.here": "<--[HERE]", - "command.context.parse_error": "%s at position %s: %s", - "commands.publish.started": "Local game hosted on port %s", - "commands.publish.failed": "Unable to host local game", - "commands.advancement.advancementNotFound": "No advancement was found by the name '%1$s'", - "commands.advancement.criterionNotFound": "The advancement %1$s does not contain the criterion '%2$s'", - "commands.advancement.grant.one.to.one.success": "Granted the advancement %s to %s", - "commands.advancement.grant.one.to.one.failure": "Couldn't grant advancement %s to %s as they already have it", - "commands.advancement.grant.one.to.many.success": "Granted the advancement %s to %s players", - "commands.advancement.grant.one.to.many.failure": "Couldn't grant advancement %s to %s players as they already have it", - "commands.advancement.grant.many.to.one.success": "Granted %s advancements to %s", - "commands.advancement.grant.many.to.one.failure": "Couldn't grant %s advancements to %s as they already have them", - "commands.advancement.grant.many.to.many.success": "Granted %s advancements to %s players", - "commands.advancement.grant.many.to.many.failure": "Couldn't grant %s advancements to %s players as they already have them", - "commands.advancement.grant.criterion.to.one.success": "Granted criterion '%s' of advancement %s to %s", - "commands.advancement.grant.criterion.to.one.failure": "Couldn't grant criterion '%s' of advancement %s to %s as they already have it", - "commands.advancement.grant.criterion.to.many.success": "Granted criterion '%s' of advancement %s to %s players", - "commands.advancement.grant.criterion.to.many.failure": "Couldn't grant criterion '%s' of advancement %s to %s players as they already have it", - "commands.advancement.revoke.one.to.one.success": "Revoked the advancement %s from %s", - "commands.advancement.revoke.one.to.one.failure": "Couldn't revoke advancement %s from %s as they don't have it", - "commands.advancement.revoke.one.to.many.success": "Revoked the advancement %s from %s players", - "commands.advancement.revoke.one.to.many.failure": "Couldn't revoke advancement %s from %s players as they don't have it", - "commands.advancement.revoke.many.to.one.success": "Revoked %s advancements from %s", - "commands.advancement.revoke.many.to.one.failure": "Couldn't revoke %s advancements from %s as they don't have them", - "commands.advancement.revoke.many.to.many.success": "Revoked %s advancements from %s players", - "commands.advancement.revoke.many.to.many.failure": "Couldn't revoke %s advancements from %s players as they don't have them", - "commands.advancement.revoke.criterion.to.one.success": "Revoked criterion '%s' of advancement %s from %s", - "commands.advancement.revoke.criterion.to.one.failure": "Couldn't revoke criterion '%s' of advancement %s from %s as they don't have it", - "commands.advancement.revoke.criterion.to.many.success": "Revoked criterion '%s' of advancement %s from %s players", - "commands.advancement.revoke.criterion.to.many.failure": "Couldn't revoke criterion '%s' of advancement %s from %s players as they don't have it", - "commands.attribute.failed.entity": "%s is not a valid entity for this command", - "commands.attribute.failed.no_attribute": "Entity %s has no attribute %s", - "commands.attribute.failed.no_modifier": "Attribute %s for entity %s has no modifier %s", - "commands.attribute.failed.modifier_already_present": "Modifier %s is already present on attribute %s for entity %s", - "commands.attribute.value.get.success": "Value of attribute %s for entity %s is %s", - "commands.attribute.base_value.get.success": "Base value of attribute %s for entity %s is %s", - "commands.attribute.base_value.set.success": "Base value for attribute %s for entity %s set to %s", - "commands.attribute.modifier.add.success": "Added modifier %s to attribute %s for entity %s", - "commands.attribute.modifier.remove.success": "Removed modifier %s from attribute %s for entity %s", - "commands.attribute.modifier.value.get.success": "Value of modifier %s on attribute %s for entity %s is %s", - "commands.forceload.added.failure": "No chunks were marked for force loading", - "commands.forceload.added.single": "Marked chunk %s in %s to be force loaded", - "commands.forceload.added.multiple": "Marked %s chunks in %s from %s to %s to be force loaded", - "commands.forceload.query.success": "Chunk at %s in %s is marked for force loading", - "commands.forceload.query.failure": "Chunk at %s in %s is not marked for force loading", - "commands.forceload.list.single": "A force loaded chunk was found in %s at: %s", - "commands.forceload.list.multiple": "%s force loaded chunks were found in %s at: %s", - "commands.forceload.added.none": "No force loaded chunks were found in %s", - "commands.forceload.removed.all": "Unmarked all force loaded chunks in %s", - "commands.forceload.removed.failure": "No chunks were removed from force loading", - "commands.forceload.removed.single": "Unmarked chunk %s in %s for force loading", - "commands.forceload.removed.multiple": "Unmarked %s chunks in %s from %s to %s for force loading", - "commands.forceload.toobig": "Too many chunks in the specified area (maximum %s, specified %s)", - "commands.clear.success.single": "Removed %s items from player %s", - "commands.clear.success.multiple": "Removed %s items from %s players", - "commands.clear.test.single": "Found %s matching items on player %s", - "commands.clear.test.multiple": "Found %s matching items on %s players", - "commands.clone.success": "Successfully cloned %s blocks", - "commands.debug.started": "Started tick profiling", - "commands.debug.stopped": "Stopped tick profiling after %s seconds and %s ticks (%s ticks per second)", - "commands.debug.notRunning": "The tick profiler hasn't started", - "commands.debug.alreadyRunning": "The tick profiler is already started", - "commands.debug.function.success.single": "Traced %s commands from function '%s' to output file %s", - "commands.debug.function.success.multiple": "Traced %s commands from %s functions to output file %s", - "commands.debug.function.noRecursion": "Can't trace from inside of function", - "commands.debug.function.traceFailed": "Failed to trace function", - "commands.defaultgamemode.success": "The default game mode is now %s", - "commands.difficulty.success": "The difficulty has been set to %s", - "commands.difficulty.query": "The difficulty is %s", - "commands.drop.no_held_items": "Entity can't hold any items", - "commands.drop.no_loot_table": "Entity %s has no loot table", - "commands.drop.success.single": "Dropped %s %s", - "commands.drop.success.single_with_table": "Dropped %s %s from loot table %s", - "commands.drop.success.multiple": "Dropped %s items", - "commands.drop.success.multiple_with_table": "Dropped %s items from loot table %s", - "commands.effect.give.success.single": "Applied effect %s to %s", - "commands.effect.give.success.multiple": "Applied effect %s to %s targets", - "commands.effect.clear.everything.success.single": "Removed every effect from %s", - "commands.effect.clear.everything.success.multiple": "Removed every effect from %s targets", - "commands.effect.clear.specific.success.single": "Removed effect %s from %s", - "commands.effect.clear.specific.success.multiple": "Removed effect %s from %s targets", - "commands.enchant.success.single": "Applied enchantment %s to %s's item", - "commands.enchant.success.multiple": "Applied enchantment %s to %s entities", - "commands.experience.add.points.success.single": "Gave %s experience points to %s", - "commands.experience.add.points.success.multiple": "Gave %s experience points to %s players", - "commands.experience.add.levels.success.single": "Gave %s experience levels to %s", - "commands.experience.add.levels.success.multiple": "Gave %s experience levels to %s players", - "commands.experience.set.points.success.single": "Set %s experience points on %s", - "commands.experience.set.points.success.multiple": "Set %s experience points on %s players", - "commands.experience.set.levels.success.single": "Set %s experience levels on %s", - "commands.experience.set.levels.success.multiple": "Set %s experience levels on %s players", - "commands.experience.query.points": "%s has %s experience points", - "commands.experience.query.levels": "%s has %s experience levels", - "commands.fill.success": "Successfully filled %s blocks", - "commands.function.success.single": "Executed %s commands from function '%s'", - "commands.function.success.multiple": "Executed %s commands from %s functions", - "commands.give.failed.toomanyitems": "Can't give more than %s of %s", - "commands.give.success.single": "Gave %s %s to %s", - "commands.give.success.multiple": "Gave %s %s to %s players", - "commands.playsound.success.single": "Played sound %s to %s", - "commands.playsound.success.multiple": "Played sound %s to %s players", - "commands.publish.success": "Multiplayer game is now hosted on port %s", - "commands.list.players": "There are %s of a max of %s players online: %s", - "commands.list.nameAndId": "%s (%s)", - "commands.kill.success.single": "Killed %s", - "commands.kill.success.multiple": "Killed %s entities", - "commands.kick.success": "Kicked %s: %s", - "commands.message.display.outgoing": "You whisper to %s: %s", - "commands.message.display.incoming": "%s whispers to you: %s", - "commands.op.success": "Made %s a server operator", - "commands.deop.success": "Made %s no longer a server operator", - "commands.ban.success": "Banned %s: %s", - "commands.pardon.success": "Unbanned %s", - "commands.particle.success": "Displaying particle %s", - "commands.perf.started": "Started 10 second performance profiling run (use '/perf stop' to stop early)", - "commands.perf.stopped": "Stopped performance profiling after %s seconds and %s ticks (%s ticks per second)", - "commands.perf.reportSaved": "Created debug report in %s", - "commands.perf.reportFailed": "Failed to create debug report", - "commands.perf.notRunning": "The performance profiler hasn't started", - "commands.perf.alreadyRunning": "The performance profiler is already started", - "commands.jfr.started": "JFR profiling started", - "commands.jfr.start.failed": "Failed to start JFR profiling", - "commands.jfr.stopped": "JFR profiling stopped and dumped to %s", - "commands.jfr.dump.failed": "Failed to dump JFR recording: %s", - "commands.seed.success": "Seed: %s", - "commands.stop.stopping": "Stopping the server", - "commands.time.query": "The time is %s", - "commands.time.set": "Set the time to %s", - "commands.schedule.created.function": "Scheduled function '%s' in %s ticks at gametime %s", - "commands.schedule.created.tag": "Scheduled tag '%s' in %s ticks at gametime %s", - "commands.schedule.cleared.success": "Removed %s schedules with id %s", - "commands.schedule.cleared.failure": "No schedules with id %s", - "commands.schedule.same_tick": "Can't schedule for current tick", - "commands.gamemode.success.self": "Set own game mode to %s", - "commands.gamemode.success.other": "Set %s's game mode to %s", - "commands.gamerule.query": "Gamerule %s is currently set to: %s", - "commands.gamerule.set": "Gamerule %s is now set to: %s", - "commands.save.disabled": "Automatic saving is now disabled", - "commands.save.enabled": "Automatic saving is now enabled", - "commands.save.saving": "Saving the game (this may take a moment!)", - "commands.save.success": "Saved the game", - "commands.setidletimeout.success": "The player idle timeout is now %s minutes", - "commands.banlist.none": "There are no bans", - "commands.banlist.list": "There are %s bans:", - "commands.banlist.entry": "%s was banned by %s: %s", - "commands.bossbar.create.success": "Created custom bossbar %s", - "commands.bossbar.remove.success": "Removed custom bossbar %s", - "commands.bossbar.list.bars.none": "There are no custom bossbars active", - "commands.bossbar.list.bars.some": "There are %s custom bossbars active: %s", - "commands.bossbar.set.players.success.none": "Custom bossbar %s no longer has any players", - "commands.bossbar.set.players.success.some": "Custom bossbar %s now has %s players: %s", - "commands.bossbar.set.name.success": "Custom bossbar %s has been renamed", - "commands.bossbar.set.color.success": "Custom bossbar %s has changed color", - "commands.bossbar.set.style.success": "Custom bossbar %s has changed style", - "commands.bossbar.set.value.success": "Custom bossbar %s has changed value to %s", - "commands.bossbar.set.max.success": "Custom bossbar %s has changed maximum to %s", - "commands.bossbar.set.visible.success.visible": "Custom bossbar %s is now visible", - "commands.bossbar.set.visible.success.hidden": "Custom bossbar %s is now hidden", - "commands.bossbar.get.value": "Custom bossbar %s has a value of %s", - "commands.bossbar.get.max": "Custom bossbar %s has a maximum of %s", - "commands.bossbar.get.visible.visible": "Custom bossbar %s is currently shown", - "commands.bossbar.get.visible.hidden": "Custom bossbar %s is currently hidden", - "commands.bossbar.get.players.none": "Custom bossbar %s has no players currently online", - "commands.bossbar.get.players.some": "Custom bossbar %s has %s players currently online: %s", - "commands.recipe.give.success.single": "Unlocked %s recipes for %s", - "commands.recipe.give.success.multiple": "Unlocked %s recipes for %s players", - "commands.recipe.take.success.single": "Took %s recipes from %s", - "commands.recipe.take.success.multiple": "Took %s recipes from %s players", - "commands.summon.success": "Summoned new %s", - "commands.whitelist.enabled": "Whitelist is now turned on", - "commands.whitelist.disabled": "Whitelist is now turned off", - "commands.whitelist.none": "There are no whitelisted players", - "commands.whitelist.list": "There are %s whitelisted players: %s", - "commands.whitelist.add.success": "Added %s to the whitelist", - "commands.whitelist.remove.success": "Removed %s from the whitelist", - "commands.whitelist.reloaded": "Reloaded the whitelist", - "commands.weather.set.clear": "Set the weather to clear", - "commands.weather.set.rain": "Set the weather to rain", - "commands.weather.set.thunder": "Set the weather to rain & thunder", - "commands.spawnpoint.success.single": "Set spawn point to %s, %s, %s [%s] in %s for %s", - "commands.spawnpoint.success.multiple": "Set spawn point to %s, %s, %s [%s] in %s for %s players", - "commands.stopsound.success.source.sound": "Stopped sound '%s' on source '%s'", - "commands.stopsound.success.source.any": "Stopped all '%s' sounds", - "commands.stopsound.success.sourceless.sound": "Stopped sound '%s'", - "commands.stopsound.success.sourceless.any": "Stopped all sounds", - "commands.setworldspawn.success": "Set the world spawn point to %s, %s, %s [%s]", - "commands.spreadplayers.success.teams": "Spread %s teams around %s, %s with an average distance of %s blocks apart", - "commands.spreadplayers.success.entities": "Spread %s players around %s, %s with an average distance of %s blocks apart", - "commands.setblock.success": "Changed the block at %s, %s, %s", - "commands.banip.success": "Banned IP %s: %s", - "commands.banip.info": "This ban affects %s players: %s", - "commands.pardonip.success": "Unbanned IP %s", - "commands.teleport.success.entity.single": "Teleported %s to %s", - "commands.teleport.success.entity.multiple": "Teleported %s entities to %s", - "commands.teleport.success.location.single": "Teleported %s to %s, %s, %s", - "commands.teleport.success.location.multiple": "Teleported %s entities to %s, %s, %s", - "commands.teleport.invalidPosition": "Invalid position for teleport", - "commands.title.cleared.single": "Cleared titles for %s", - "commands.title.cleared.multiple": "Cleared titles for %s players", - "commands.title.reset.single": "Reset title options for %s", - "commands.title.reset.multiple": "Reset title options for %s players", - "commands.title.show.title.single": "Showing new title for %s", - "commands.title.show.title.multiple": "Showing new title for %s players", - "commands.title.show.subtitle.single": "Showing new subtitle for %s", - "commands.title.show.subtitle.multiple": "Showing new subtitle for %s players", - "commands.title.show.actionbar.single": "Showing new actionbar title for %s", - "commands.title.show.actionbar.multiple": "Showing new actionbar title for %s players", - "commands.title.times.single": "Changed title display times for %s", - "commands.title.times.multiple": "Changed title display times for %s players", - "commands.worldborder.set.grow": "Growing the world border to %s blocks wide over %s seconds", - "commands.worldborder.set.shrink": "Shrinking the world border to %s blocks wide over %s seconds", - "commands.worldborder.set.immediate": "Set the world border to %s blocks wide", - "commands.worldborder.center.success": "Set the center of the world border to %s, %s", - "commands.worldborder.get": "The world border is currently %s blocks wide", - "commands.worldborder.damage.buffer.success": "Set the world border damage buffer to %s blocks", - "commands.worldborder.damage.amount.success": "Set the world border damage to %s per block each second", - "commands.worldborder.warning.time.success": "Set the world border warning time to %s seconds", - "commands.worldborder.warning.distance.success": "Set the world border warning distance to %s blocks", - "commands.tag.add.success.single": "Added tag '%s' to %s", - "commands.tag.add.success.multiple": "Added tag '%s' to %s entities", - "commands.tag.remove.success.single": "Removed tag '%s' from %s", - "commands.tag.remove.success.multiple": "Removed tag '%s' from %s entities", - "commands.tag.list.single.empty": "%s has no tags", - "commands.tag.list.single.success": "%s has %s tags: %s", - "commands.tag.list.multiple.empty": "There are no tags on the %s entities", - "commands.tag.list.multiple.success": "The %s entities have %s total tags: %s", - "commands.team.list.members.empty": "There are no members on team %s", - "commands.team.list.members.success": "Team %s has %s members: %s", - "commands.team.list.teams.empty": "There are no teams", - "commands.team.list.teams.success": "There are %s teams: %s", - "commands.team.add.success": "Created team %s", - "commands.team.remove.success": "Removed team %s", - "commands.team.empty.success": "Removed %s members from team %s", - "commands.team.option.color.success": "Updated the color for team %s to %s", - "commands.team.option.name.success": "Updated the name of team %s", - "commands.team.option.friendlyfire.enabled": "Enabled friendly fire for team %s", - "commands.team.option.friendlyfire.disabled": "Disabled friendly fire for team %s", - "commands.team.option.seeFriendlyInvisibles.enabled": "Team %s can now see invisible teammates", - "commands.team.option.seeFriendlyInvisibles.disabled": "Team %s can no longer see invisible teammates", - "commands.team.option.nametagVisibility.success": "Nametag visibility for team %s is now \"%s\"", - "commands.team.option.deathMessageVisibility.success": "Death message visibility for team %s is now \"%s\"", - "commands.team.option.collisionRule.success": "Collision rule for team %s is now \"%s\"", - "commands.team.option.prefix.success": "Team prefix set to %s", - "commands.team.option.suffix.success": "Team suffix set to %s", - "commands.team.join.success.single": "Added %s to team %s", - "commands.team.join.success.multiple": "Added %s members to team %s", - "commands.team.leave.success.single": "Removed %s from any team", - "commands.team.leave.success.multiple": "Removed %s members from any team", - "commands.trigger.simple.success": "Triggered %s", - "commands.trigger.add.success": "Triggered %s (added %s to value)", - "commands.trigger.set.success": "Triggered %s (set value to %s)", - "commands.scoreboard.objectives.list.empty": "There are no objectives", - "commands.scoreboard.objectives.list.success": "There are %s objectives: %s", - "commands.scoreboard.objectives.add.success": "Created new objective %s", - "commands.scoreboard.objectives.remove.success": "Removed objective %s", - "commands.scoreboard.objectives.display.cleared": "Cleared any objectives in display slot %s", - "commands.scoreboard.objectives.display.set": "Set display slot %s to show objective %s", - "commands.scoreboard.objectives.modify.displayname": "Changed the display name of %s to %s", - "commands.scoreboard.objectives.modify.rendertype": "Changed the render type of objective %s", - "commands.scoreboard.players.list.empty": "There are no tracked entities", - "commands.scoreboard.players.list.success": "There are %s tracked entities: %s", - "commands.scoreboard.players.list.entity.empty": "%s has no scores to show", - "commands.scoreboard.players.list.entity.success": "%s has %s scores:", - "commands.scoreboard.players.list.entity.entry": "%s: %s", - "commands.scoreboard.players.set.success.single": "Set %s for %s to %s", - "commands.scoreboard.players.set.success.multiple": "Set %s for %s entities to %s", - "commands.scoreboard.players.add.success.single": "Added %s to %s for %s (now %s)", - "commands.scoreboard.players.add.success.multiple": "Added %s to %s for %s entities", - "commands.scoreboard.players.remove.success.single": "Removed %s from %s for %s (now %s)", - "commands.scoreboard.players.remove.success.multiple": "Removed %s from %s for %s entities", - "commands.scoreboard.players.reset.all.single": "Reset all scores for %s", - "commands.scoreboard.players.reset.all.multiple": "Reset all scores for %s entities", - "commands.scoreboard.players.reset.specific.single": "Reset %s for %s", - "commands.scoreboard.players.reset.specific.multiple": "Reset %s for %s entities", - "commands.scoreboard.players.enable.success.single": "Enabled trigger %s for %s", - "commands.scoreboard.players.enable.success.multiple": "Enabled trigger %s for %s entities", - "commands.scoreboard.players.operation.success.single": "Set %s for %s to %s", - "commands.scoreboard.players.operation.success.multiple": "Updated %s for %s entities", - "commands.scoreboard.players.get.success": "%s has %s %s", - "commands.reload.success": "Reloading!", - "commands.reload.failure": "Reload failed; keeping old data", - "commands.data.entity.modified": "Modified entity data of %s", - "commands.data.entity.query": "%s has the following entity data: %s", - "commands.data.entity.get": "%s on %s after scale factor of %s is %s", - "commands.data.block.modified": "Modified block data of %s, %s, %s", - "commands.data.block.query": "%s, %s, %s has the following block data: %s", - "commands.data.block.get": "%s on block %s, %s, %s after scale factor of %s is %s", - "commands.data.storage.modified": "Modified storage %s", - "commands.data.storage.query": "Storage %s has the following contents: %s", - "commands.data.storage.get": "%s in storage %s after scale factor of %s is %s", - "commands.datapack.list.enabled.success": "There are %s data packs enabled: %s", - "commands.datapack.list.enabled.none": "There are no data packs enabled", - "commands.datapack.list.available.success": "There are %s data packs available: %s", - "commands.datapack.list.available.none": "There are no more data packs available", - "commands.datapack.modify.enable": "Enabling data pack %s", - "commands.datapack.modify.disable": "Disabling data pack %s", - "commands.spectate.success.stopped": "No longer spectating an entity", - "commands.spectate.success.started": "Now spectating %s", - "commands.spectate.not_spectator": "%s is not in spectator mode", - "commands.spectate.self": "Cannot spectate yourself", - "commands.item.target.not_a_container": "Target position %s, %s, %s is not a container", - "commands.item.source.not_a_container": "Source position %s, %s, %s is not a container", - "commands.item.target.no_such_slot": "The target does not have slot %s", - "commands.item.source.no_such_slot": "The source does not have slot %s", - "commands.item.target.no_changes": "No targets accepted item into slot %s", - "commands.item.target.no_changed.known_item": "No targets accepted item %s into slot %s", - "commands.item.block.set.success": "Replaced a slot at %s, %s, %s with %s", - "commands.item.entity.set.success.single": "Replaced a slot on %s with %s", - "commands.item.entity.set.success.multiple": "Replaced a slot on %s entities with %s", - "argument.range.empty": "Expected value or range of values", - "argument.range.ints": "Only whole numbers allowed, not decimals", - "argument.range.swapped": "Min cannot be bigger than max", - "permissions.requires.player": "A player is required to run this command here", - "permissions.requires.entity": "An entity is required to run this command here", + "accessibility.onboarding.accessibility.button": "Accessibility Settings...", + "accessibility.onboarding.screen.narrator": "Press enter to enable the narrator", + "accessibility.onboarding.screen.title": "Welcome to Minecraft!\n\nWould you like to enable the Narrator or visit the Accessibility Settings?", + "addServer.add": "Done", + "addServer.enterIp": "Server Address", + "addServer.enterName": "Server Name", + "addServer.hideAddress": "Hide Address", + "addServer.resourcePack": "Server Resource Packs", + "addServer.resourcePack.disabled": "Disabled", + "addServer.resourcePack.enabled": "Enabled", + "addServer.resourcePack.prompt": "Prompt", + "addServer.title": "Edit Server Info", + "advancement.advancementNotFound": "Unknown advancement: %s", + "advancements.adventure.adventuring_time.description": "Discover every biome", + "advancements.adventure.adventuring_time.title": "Adventuring Time", + "advancements.adventure.arbalistic.description": "Kill five unique mobs with one crossbow shot", + "advancements.adventure.arbalistic.title": "Arbalistic", + "advancements.adventure.avoid_vibration.description": "Sneak near a Sculk Sensor or Warden to prevent it from detecting you", + "advancements.adventure.avoid_vibration.title": "Sneak 100", + "advancements.adventure.bullseye.description": "Hit the bullseye of a Target block from at least 30 meters away", + "advancements.adventure.bullseye.title": "Bullseye", + "advancements.adventure.craft_decorated_pot_using_only_sherds.description": "Make a Decorated Pot out of 4 Pottery Sherds", + "advancements.adventure.craft_decorated_pot_using_only_sherds.title": "Careful Restoration", + "advancements.adventure.fall_from_world_height.description": "Free fall from the top of the world (build limit) to the bottom of the world and survive", + "advancements.adventure.fall_from_world_height.title": "Caves & Cliffs", + "advancements.adventure.hero_of_the_village.description": "Successfully defend a village from a raid", + "advancements.adventure.hero_of_the_village.title": "Hero of the Village", + "advancements.adventure.honey_block_slide.description": "Jump into a Honey Block to break your fall", + "advancements.adventure.honey_block_slide.title": "Sticky Situation", + "advancements.adventure.kill_a_mob.description": "Kill any hostile monster", + "advancements.adventure.kill_a_mob.title": "Monster Hunter", + "advancements.adventure.kill_all_mobs.description": "Kill one of every hostile monster", + "advancements.adventure.kill_all_mobs.title": "Monsters Hunted", + "advancements.adventure.kill_mob_near_sculk_catalyst.description": "Kill a mob near a Sculk Catalyst", + "advancements.adventure.kill_mob_near_sculk_catalyst.title": "It Spreads", + "advancements.adventure.lightning_rod_with_villager_no_fire.description": "Protect a Villager from an undesired shock without starting a fire", + "advancements.adventure.lightning_rod_with_villager_no_fire.title": "Surge Protector", + "advancements.adventure.ol_betsy.description": "Shoot a Crossbow", + "advancements.adventure.ol_betsy.title": "Ol' Betsy", + "advancements.adventure.play_jukebox_in_meadows.description": "Make the Meadows come alive with the sound of music from a Jukebox", + "advancements.adventure.play_jukebox_in_meadows.title": "Sound of Music", + "advancements.adventure.read_power_from_chiseled_bookshelf.description": "Read the power signal of a Chiseled Bookshelf using a Comparator", + "advancements.adventure.read_power_from_chiseled_bookshelf.title": "The Power of Books", + "advancements.adventure.root.description": "Adventure, exploration and combat", + "advancements.adventure.root.title": "Adventure", + "advancements.adventure.salvage_sherd.description": "Brush a Suspicious block to obtain a Pottery Sherd", + "advancements.adventure.salvage_sherd.title": "Respecting the Remnants", + "advancements.adventure.shoot_arrow.description": "Shoot something with an Arrow", + "advancements.adventure.shoot_arrow.title": "Take Aim", + "advancements.adventure.sleep_in_bed.description": "Sleep in a Bed to change your respawn point", + "advancements.adventure.sleep_in_bed.title": "Sweet Dreams", + "advancements.adventure.sniper_duel.description": "Kill a Skeleton from at least 50 meters away", + "advancements.adventure.sniper_duel.title": "Sniper Duel", + "advancements.adventure.spyglass_at_dragon.description": "Look at the Ender Dragon through a Spyglass", + "advancements.adventure.spyglass_at_dragon.title": "Is It a Plane?", + "advancements.adventure.spyglass_at_ghast.description": "Look at a Ghast through a Spyglass", + "advancements.adventure.spyglass_at_ghast.title": "Is It a Balloon?", + "advancements.adventure.spyglass_at_parrot.description": "Look at a Parrot through a Spyglass", + "advancements.adventure.spyglass_at_parrot.title": "Is It a Bird?", + "advancements.adventure.summon_iron_golem.description": "Summon an Iron Golem to help defend a village", + "advancements.adventure.summon_iron_golem.title": "Hired Help", + "advancements.adventure.throw_trident.description": "Throw a Trident at something.\nNote: Throwing away your only weapon is not a good idea.", + "advancements.adventure.throw_trident.title": "A Throwaway Joke", + "advancements.adventure.totem_of_undying.description": "Use a Totem of Undying to cheat death", + "advancements.adventure.totem_of_undying.title": "Postmortal", + "advancements.adventure.trade_at_world_height.description": "Trade with a Villager at the build height limit", + "advancements.adventure.trade_at_world_height.title": "Star Trader", + "advancements.adventure.trade.description": "Successfully trade with a Villager", + "advancements.adventure.trade.title": "What a Deal!", + "advancements.adventure.trim_with_all_exclusive_armor_patterns.description": "Apply these smithing templates at least once: Spire, Snout, Rib, Ward, Silence, Vex, Tide, Wayfinder", + "advancements.adventure.trim_with_all_exclusive_armor_patterns.title": "Smithing with Style", + "advancements.adventure.trim_with_any_armor_pattern.description": "Craft a trimmed armor at a Smithing Table", + "advancements.adventure.trim_with_any_armor_pattern.title": "Crafting a New Look", + "advancements.adventure.two_birds_one_arrow.description": "Kill two Phantoms with a piercing Arrow", + "advancements.adventure.two_birds_one_arrow.title": "Two Birds, One Arrow", + "advancements.adventure.very_very_frightening.description": "Strike a Villager with lightning", + "advancements.adventure.very_very_frightening.title": "Very Very Frightening", + "advancements.adventure.voluntary_exile.description": "Kill a raid captain.\nMaybe consider staying away from villages for the time being...", + "advancements.adventure.voluntary_exile.title": "Voluntary Exile", + "advancements.adventure.walk_on_powder_snow_with_leather_boots.description": "Walk on Powder Snow... without sinking in it", + "advancements.adventure.walk_on_powder_snow_with_leather_boots.title": "Light as a Rabbit", + "advancements.adventure.whos_the_pillager_now.description": "Give a Pillager a taste of their own medicine", + "advancements.adventure.whos_the_pillager_now.title": "Who's the Pillager Now?", + "advancements.empty": "There doesn't seem to be anything here...", + "advancements.end.dragon_breath.description": "Collect Dragon's Breath in a Glass Bottle", + "advancements.end.dragon_breath.title": "You Need a Mint", + "advancements.end.dragon_egg.description": "Hold the Dragon Egg", + "advancements.end.dragon_egg.title": "The Next Generation", + "advancements.end.elytra.description": "Find Elytra", + "advancements.end.elytra.title": "Sky's the Limit", + "advancements.end.enter_end_gateway.description": "Escape the island", + "advancements.end.enter_end_gateway.title": "Remote Getaway", + "advancements.end.find_end_city.description": "Go on in, what could happen?", + "advancements.end.find_end_city.title": "The City at the End of the Game", + "advancements.end.kill_dragon.description": "Good luck", + "advancements.end.kill_dragon.title": "Free the End", + "advancements.end.levitate.description": "Levitate up 50 blocks from the attacks of a Shulker", + "advancements.end.levitate.title": "Great View From Up Here", + "advancements.end.respawn_dragon.description": "Respawn the Ender Dragon", + "advancements.end.respawn_dragon.title": "The End... Again...", + "advancements.end.root.description": "Or the beginning?", + "advancements.end.root.title": "The End", + "advancements.husbandry.allay_deliver_cake_to_note_block.description": "Have an Allay drop a Cake at a Note Block", + "advancements.husbandry.allay_deliver_cake_to_note_block.title": "Birthday Song", + "advancements.husbandry.allay_deliver_item_to_player.description": "Have an Allay deliver items to you", + "advancements.husbandry.allay_deliver_item_to_player.title": "You've Got a Friend in Me", + "advancements.husbandry.axolotl_in_a_bucket.description": "Catch an Axolotl in a Bucket", + "advancements.husbandry.axolotl_in_a_bucket.title": "The Cutest Predator", + "advancements.husbandry.balanced_diet.description": "Eat everything that is edible, even if it's not good for you", + "advancements.husbandry.balanced_diet.title": "A Balanced Diet", + "advancements.husbandry.breed_all_animals.description": "Breed all the animals!", + "advancements.husbandry.breed_all_animals.title": "Two by Two", + "advancements.husbandry.breed_an_animal.description": "Breed two animals together", + "advancements.husbandry.breed_an_animal.title": "The Parrots and the Bats", + "advancements.husbandry.complete_catalogue.description": "Tame all Cat variants!", + "advancements.husbandry.complete_catalogue.title": "A Complete Catalogue", + "advancements.husbandry.feed_snifflet.description": "Feed a Snifflet", + "advancements.husbandry.feed_snifflet.title": "Little Sniffs", + "advancements.husbandry.fishy_business.description": "Catch a fish", + "advancements.husbandry.fishy_business.title": "Fishy Business", + "advancements.husbandry.froglights.description": "Have all Froglights in your inventory", + "advancements.husbandry.froglights.title": "With Our Powers Combined!", + "advancements.husbandry.kill_axolotl_target.description": "Team up with an Axolotl and win a fight", + "advancements.husbandry.kill_axolotl_target.title": "The Healing Power of Friendship!", + "advancements.husbandry.leash_all_frog_variants.description": "Get each Frog variant on a Lead", + "advancements.husbandry.leash_all_frog_variants.title": "When the Squad Hops into Town", + "advancements.husbandry.make_a_sign_glow.description": "Make the text of any kind of sign glow", + "advancements.husbandry.make_a_sign_glow.title": "Glow and Behold!", + "advancements.husbandry.netherite_hoe.description": "Use a Netherite Ingot to upgrade a Hoe, and then reevaluate your life choices", + "advancements.husbandry.netherite_hoe.title": "Serious Dedication", + "advancements.husbandry.obtain_sniffer_egg.description": "Obtain a Sniffer Egg", + "advancements.husbandry.obtain_sniffer_egg.title": "Smells Interesting", + "advancements.husbandry.plant_any_sniffer_seed.description": "Plant any Sniffer seed", + "advancements.husbandry.plant_any_sniffer_seed.title": "Planting the Past", + "advancements.husbandry.plant_seed.description": "Plant a seed and watch it grow", + "advancements.husbandry.plant_seed.title": "A Seedy Place", + "advancements.husbandry.ride_a_boat_with_a_goat.description": "Get in a Boat and float with a Goat", + "advancements.husbandry.ride_a_boat_with_a_goat.title": "Whatever Floats Your Goat!", + "advancements.husbandry.root.description": "The world is full of friends and food", + "advancements.husbandry.root.title": "Husbandry", + "advancements.husbandry.safely_harvest_honey.description": "Use a Campfire to collect Honey from a Beehive using a Glass Bottle without aggravating the Bees", + "advancements.husbandry.safely_harvest_honey.title": "Bee Our Guest", + "advancements.husbandry.silk_touch_nest.description": "Move a Bee Nest, with 3 Bees inside, using Silk Touch", + "advancements.husbandry.silk_touch_nest.title": "Total Beelocation", + "advancements.husbandry.tactical_fishing.description": "Catch a Fish... without a Fishing Rod!", + "advancements.husbandry.tactical_fishing.title": "Tactical Fishing", + "advancements.husbandry.tadpole_in_a_bucket.description": "Catch a Tadpole in a Bucket", + "advancements.husbandry.tadpole_in_a_bucket.title": "Bukkit Bukkit", + "advancements.husbandry.tame_an_animal.description": "Tame an animal", + "advancements.husbandry.tame_an_animal.title": "Best Friends Forever", + "advancements.husbandry.wax_off.description": "Scrape Wax off of a Copper block!", + "advancements.husbandry.wax_off.title": "Wax Off", + "advancements.husbandry.wax_on.description": "Apply Honeycomb to a Copper block!", + "advancements.husbandry.wax_on.title": "Wax On", + "advancements.nether.all_effects.description": "Have every effect applied at the same time", + "advancements.nether.all_effects.title": "How Did We Get Here?", + "advancements.nether.all_potions.description": "Have every potion effect applied at the same time", + "advancements.nether.all_potions.title": "A Furious Cocktail", + "advancements.nether.brew_potion.description": "Brew a Potion", + "advancements.nether.brew_potion.title": "Local Brewery", + "advancements.nether.charge_respawn_anchor.description": "Charge a Respawn Anchor to the maximum", + "advancements.nether.charge_respawn_anchor.title": "Not Quite \"Nine\" Lives", + "advancements.nether.create_beacon.description": "Construct and place a Beacon", + "advancements.nether.create_beacon.title": "Bring Home the Beacon", + "advancements.nether.create_full_beacon.description": "Bring a Beacon to full power", + "advancements.nether.create_full_beacon.title": "Beaconator", + "advancements.nether.distract_piglin.description": "Distract Piglins with gold", + "advancements.nether.distract_piglin.title": "Oh Shiny", + "advancements.nether.explore_nether.description": "Explore all Nether biomes", + "advancements.nether.explore_nether.title": "Hot Tourist Destinations", + "advancements.nether.fast_travel.description": "Use the Nether to travel 7 km in the Overworld", + "advancements.nether.fast_travel.title": "Subspace Bubble", + "advancements.nether.find_bastion.description": "Enter a Bastion Remnant", + "advancements.nether.find_bastion.title": "Those Were the Days", + "advancements.nether.find_fortress.description": "Break your way into a Nether Fortress", + "advancements.nether.find_fortress.title": "A Terrible Fortress", + "advancements.nether.get_wither_skull.description": "Obtain a Wither Skeleton's skull", + "advancements.nether.get_wither_skull.title": "Spooky Scary Skeleton", + "advancements.nether.loot_bastion.description": "Loot a Chest in a Bastion Remnant", + "advancements.nether.loot_bastion.title": "War Pigs", + "advancements.nether.netherite_armor.description": "Get a full suit of Netherite armor", + "advancements.nether.netherite_armor.title": "Cover Me in Debris", + "advancements.nether.obtain_ancient_debris.description": "Obtain Ancient Debris", + "advancements.nether.obtain_ancient_debris.title": "Hidden in the Depths", + "advancements.nether.obtain_blaze_rod.description": "Relieve a Blaze of its rod", + "advancements.nether.obtain_blaze_rod.title": "Into Fire", + "advancements.nether.obtain_crying_obsidian.description": "Obtain Crying Obsidian", + "advancements.nether.obtain_crying_obsidian.title": "Who is Cutting Onions?", + "advancements.nether.return_to_sender.description": "Destroy a Ghast with a fireball", + "advancements.nether.return_to_sender.title": "Return to Sender", + "advancements.nether.ride_strider_in_overworld_lava.description": "Take a Strider for a loooong ride on a lava lake in the Overworld", + "advancements.nether.ride_strider_in_overworld_lava.title": "Feels Like Home", + "advancements.nether.ride_strider.description": "Ride a Strider with a Warped Fungus on a Stick", + "advancements.nether.ride_strider.title": "This Boat Has Legs", + "advancements.nether.root.description": "Bring summer clothes", + "advancements.nether.root.title": "Nether", + "advancements.nether.summon_wither.description": "Summon the Wither", + "advancements.nether.summon_wither.title": "Withering Heights", + "advancements.nether.uneasy_alliance.description": "Rescue a Ghast from the Nether, bring it safely home to the Overworld... and then kill it", + "advancements.nether.uneasy_alliance.title": "Uneasy Alliance", + "advancements.nether.use_lodestone.description": "Use a Compass on a Lodestone", + "advancements.nether.use_lodestone.title": "Country Lode, Take Me Home", + "advancements.progress": "%s/%s", + "advancements.sad_label": ":(", + "advancements.story.cure_zombie_villager.description": "Weaken and then cure a Zombie Villager", + "advancements.story.cure_zombie_villager.title": "Zombie Doctor", + "advancements.story.deflect_arrow.description": "Deflect a projectile with a Shield", + "advancements.story.deflect_arrow.title": "Not Today, Thank You", + "advancements.story.enchant_item.description": "Enchant an item at an Enchanting Table", + "advancements.story.enchant_item.title": "Enchanter", + "advancements.story.enter_the_end.description": "Enter the End Portal", + "advancements.story.enter_the_end.title": "The End?", + "advancements.story.enter_the_nether.description": "Build, light and enter a Nether Portal", + "advancements.story.enter_the_nether.title": "We Need to Go Deeper", + "advancements.story.follow_ender_eye.description": "Follow an Eye of Ender", + "advancements.story.follow_ender_eye.title": "Eye Spy", + "advancements.story.form_obsidian.description": "Obtain a block of Obsidian", + "advancements.story.form_obsidian.title": "Ice Bucket Challenge", + "advancements.story.iron_tools.description": "Upgrade your Pickaxe", + "advancements.story.iron_tools.title": "Isn't It Iron Pick", + "advancements.story.lava_bucket.description": "Fill a Bucket with lava", + "advancements.story.lava_bucket.title": "Hot Stuff", + "advancements.story.mine_diamond.description": "Acquire diamonds", + "advancements.story.mine_diamond.title": "Diamonds!", + "advancements.story.mine_stone.description": "Mine Stone with your new Pickaxe", + "advancements.story.mine_stone.title": "Stone Age", + "advancements.story.obtain_armor.description": "Protect yourself with a piece of iron armor", + "advancements.story.obtain_armor.title": "Suit Up", + "advancements.story.root.description": "The heart and story of the game", + "advancements.story.root.title": "Minecraft", + "advancements.story.shiny_gear.description": "Diamond armor saves lives", + "advancements.story.shiny_gear.title": "Cover Me with Diamonds", + "advancements.story.smelt_iron.description": "Smelt an Iron Ingot", + "advancements.story.smelt_iron.title": "Acquire Hardware", + "advancements.story.upgrade_tools.description": "Construct a better Pickaxe", + "advancements.story.upgrade_tools.title": "Getting an Upgrade", + "advancements.toast.challenge": "Challenge Complete!", + "advancements.toast.goal": "Goal Reached!", + "advancements.toast.task": "Advancement Made!", + "advMode.allEntities": "Use \"@e\" to target all entities", + "advMode.allPlayers": "Use \"@a\" to target all players", + "advMode.command": "Console Command", + "advMode.mode": "Mode", + "advMode.mode.auto": "Repeat", + "advMode.mode.autoexec.bat": "Always Active", + "advMode.mode.conditional": "Conditional", + "advMode.mode.redstone": "Impulse", + "advMode.mode.redstoneTriggered": "Needs Redstone", + "advMode.mode.sequence": "Chain", + "advMode.mode.unconditional": "Unconditional", + "advMode.nearestPlayer": "Use \"@p\" to target nearest player", + "advMode.notAllowed": "Must be an opped player in creative mode", + "advMode.notEnabled": "Command blocks are not enabled on this server", + "advMode.previousOutput": "Previous Output", + "advMode.randomPlayer": "Use \"@r\" to target random player", + "advMode.self": "Use \"@s\" to target the executing entity", + "advMode.setCommand": "Set Console Command for Block", + "advMode.setCommand.success": "Command set: %s", + "advMode.trackOutput": "Track output", + "advMode.triggering": "Triggering", + "advMode.type": "Type", + "argument.anchor.invalid": "Invalid entity anchor position %s", "argument.angle.incomplete": "Incomplete (expected 1 angle)", "argument.angle.invalid": "Invalid angle", - "argument.entity.toomany": "Only one entity is allowed, but the provided selector allows more than one", - "argument.player.toomany": "Only one player is allowed, but the provided selector allows more than one", - "argument.player.entities": "Only players may be affected by this command, but the provided selector includes entities", + "argument.block.id.invalid": "Unknown block type '%s'", + "argument.block.property.duplicate": "Property '%s' can only be set once for block %s", + "argument.block.property.invalid": "Block %s does not accept '%s' for %s property", + "argument.block.property.novalue": "Expected value for property '%s' on block %s", + "argument.block.property.unclosed": "Expected closing ] for block state properties", + "argument.block.property.unknown": "Block %s does not have property '%s'", + "argument.block.tag.disallowed": "Tags aren't allowed here, only actual blocks", + "argument.color.invalid": "Unknown color '%s'", + "argument.component.invalid": "Invalid chat component: %s", + "argument.criteria.invalid": "Unknown criterion '%s'", + "argument.dimension.invalid": "Unknown dimension '%s'", + "argument.double.big": "Double must not be more than %s, found %s", + "argument.double.low": "Double must not be less than %s, found %s", + "argument.entity.invalid": "Invalid name or UUID", "argument.entity.notfound.entity": "No entity was found", "argument.entity.notfound.player": "No player was found", + "argument.entity.options.advancements.description": "Players with advancements", + "argument.entity.options.distance.description": "Distance to entity", + "argument.entity.options.distance.negative": "Distance cannot be negative", + "argument.entity.options.dx.description": "Entities between x and x + dx", + "argument.entity.options.dy.description": "Entities between y and y + dy", + "argument.entity.options.dz.description": "Entities between z and z + dz", + "argument.entity.options.gamemode.description": "Players with game mode", + "argument.entity.options.inapplicable": "Option '%s' isn't applicable here", + "argument.entity.options.level.description": "Experience level", + "argument.entity.options.level.negative": "Level shouldn't be negative", + "argument.entity.options.limit.description": "Maximum number of entities to return", + "argument.entity.options.limit.toosmall": "Limit must be at least 1", + "argument.entity.options.mode.invalid": "Invalid or unknown game mode '%s'", + "argument.entity.options.name.description": "Entity name", + "argument.entity.options.nbt.description": "Entities with NBT", + "argument.entity.options.predicate.description": "Custom predicate", + "argument.entity.options.scores.description": "Entities with scores", + "argument.entity.options.sort.description": "Sort the entities", + "argument.entity.options.sort.irreversible": "Invalid or unknown sort type '%s'", + "argument.entity.options.tag.description": "Entities with tag", + "argument.entity.options.team.description": "Entities on team", + "argument.entity.options.type.description": "Entities of type", + "argument.entity.options.type.invalid": "Invalid or unknown entity type '%s'", + "argument.entity.options.unknown": "Unknown option '%s'", + "argument.entity.options.unterminated": "Expected end of options", + "argument.entity.options.valueless": "Expected value for option '%s'", + "argument.entity.options.x_rotation.description": "Entity's x rotation", + "argument.entity.options.x.description": "x position", + "argument.entity.options.y_rotation.description": "Entity's y rotation", + "argument.entity.options.y.description": "y position", + "argument.entity.options.z.description": "z position", + "argument.entity.selector.allEntities": "All entities", + "argument.entity.selector.allPlayers": "All players", + "argument.entity.selector.missing": "Missing selector type", + "argument.entity.selector.nearestPlayer": "Nearest player", + "argument.entity.selector.not_allowed": "Selector not allowed", + "argument.entity.selector.randomPlayer": "Random player", + "argument.entity.selector.self": "Current entity", + "argument.entity.selector.unknown": "Unknown selector type '%s'", + "argument.entity.toomany": "Only one entity is allowed, but the provided selector allows more than one", + "argument.enum.invalid": "Invalid value \"%s\"", + "argument.float.big": "Float must not be more than %s, found %s", + "argument.float.low": "Float must not be less than %s, found %s", + "argument.gamemode.invalid": "Unknown game mode: %s", + "argument.id.invalid": "Invalid ID", + "argument.id.unknown": "Unknown ID: %s", + "argument.integer.big": "Integer must not be more than %s, found %s", + "argument.integer.low": "Integer must not be less than %s, found %s", + "argument.item.id.invalid": "Unknown item '%s'", + "argument.item.tag.disallowed": "Tags aren't allowed here, only actual items", + "argument.literal.incorrect": "Expected literal %s", + "argument.long.big": "Long must not be more than %s, found %s", + "argument.long.low": "Long must not be less than %s, found %s", + "argument.nbt.array.invalid": "Invalid array type '%s'", + "argument.nbt.array.mixed": "Can't insert %s into %s", + "argument.nbt.expected.key": "Expected key", + "argument.nbt.expected.value": "Expected value", + "argument.nbt.list.mixed": "Can't insert %s into list of %s", + "argument.nbt.trailing": "Unexpected trailing data", + "argument.player.entities": "Only players may be affected by this command, but the provided selector includes entities", + "argument.player.toomany": "Only one player is allowed, but the provided selector allows more than one", "argument.player.unknown": "That player does not exist", + "argument.pos.missing.double": "Expected a coordinate", + "argument.pos.missing.int": "Expected a block position", + "argument.pos.mixed": "Cannot mix world & local coordinates (everything must either use ^ or not)", + "argument.pos.outofbounds": "That position is outside the allowed boundaries.", + "argument.pos.outofworld": "That position is out of this world!", + "argument.pos.unloaded": "That position is not loaded", + "argument.pos2d.incomplete": "Incomplete (expected 2 coordinates)", + "argument.pos3d.incomplete": "Incomplete (expected 3 coordinates)", + "argument.range.empty": "Expected value or range of values", + "argument.range.ints": "Only whole numbers allowed, not decimals", + "argument.range.swapped": "Min cannot be bigger than max", + "argument.resource_tag.invalid_type": "Tag '%s' has wrong type '%s' (expected '%s')", + "argument.resource_tag.not_found": "Can't find tag '%s' of type '%s'", + "argument.resource.invalid_type": "Element '%s' has wrong type '%s' (expected '%s')", + "argument.resource.not_found": "Can't find element '%s' of type '%s'", + "argument.rotation.incomplete": "Incomplete (expected 2 coordinates)", + "argument.scoreboardDisplaySlot.invalid": "Unknown display slot '%s'", + "argument.scoreHolder.empty": "No relevant score holders could be found", + "argument.style.invalid": "Invalid style: %s", + "argument.time.invalid_tick_count": "Tick count must be non-negative", + "argument.time.invalid_unit": "Invalid unit", + "argument.time.tick_count_too_low": "Tick count must not be less than %s, found %s", + "argument.uuid.invalid": "Invalid UUID", + "arguments.block.tag.unknown": "Unknown block tag '%s'", + "arguments.function.tag.unknown": "Unknown function tag '%s'", + "arguments.function.unknown": "Unknown function %s", + "arguments.item.overstacked": "%s can only stack up to %s", + "arguments.item.tag.unknown": "Unknown item tag '%s'", "arguments.nbtpath.node.invalid": "Invalid NBT path element", + "arguments.nbtpath.nothing_found": "Found no elements matching %s", "arguments.nbtpath.too_deep": "Resulting NBT too deeply nested", "arguments.nbtpath.too_large": "Resulting NBT too large", - "arguments.nbtpath.nothing_found": "Found no elements matching %s", - "arguments.operation.invalid": "Invalid operation", + "arguments.objective.notFound": "Unknown scoreboard objective '%s'", + "arguments.objective.readonly": "Scoreboard objective '%s' is read-only", "arguments.operation.div0": "Cannot divide by zero", - "argument.scoreHolder.empty": "No relevant score holders could be found", - "argument.block.tag.disallowed": "Tags aren't allowed here, only actual blocks", - "argument.block.property.unclosed": "Expected closing ] for block state properties", - "argument.pos.unloaded": "That position is not loaded", - "argument.pos.outofworld": "That position is out of this world!", - "argument.pos.outofbounds": "That position is outside the allowed boundaries.", - "argument.rotation.incomplete": "Incomplete (expected 2 coordinates)", + "arguments.operation.invalid": "Invalid operation", "arguments.swizzle.invalid": "Invalid swizzle, expected combination of 'x', 'y' and 'z'", - "argument.pos2d.incomplete": "Incomplete (expected 2 coordinates)", - "argument.pos3d.incomplete": "Incomplete (expected 3 coordinates)", - "argument.pos.mixed": "Cannot mix world & local coordinates (everything must either use ^ or not)", - "argument.pos.missing.double": "Expected a coordinate", - "argument.pos.missing.int": "Expected a block position", - "argument.item.tag.disallowed": "Tags aren't allowed here, only actual items", - "argument.entity.invalid": "Invalid name or UUID", - "argument.entity.selector.missing": "Missing selector type", - "argument.entity.selector.not_allowed": "Selector not allowed", - "argument.entity.options.unterminated": "Expected end of options", - "argument.entity.options.distance.negative": "Distance cannot be negative", - "argument.entity.options.level.negative": "Level shouldn't be negative", - "argument.entity.options.limit.toosmall": "Limit must be at least 1", - "argument.nbt.trailing": "Unexpected trailing data", - "argument.nbt.expected.key": "Expected key", - "argument.nbt.expected.value": "Expected value", - "argument.id.invalid": "Invalid ID", - "argument.time.invalid_unit": "Invalid unit", - "argument.time.invalid_tick_count": "Tick count must be non-negative", - "argument.enum.invalid": "Invalid value \"%s\"", - "commands.banip.invalid": "Invalid IP address or unknown player", - "commands.banip.failed": "Nothing changed. That IP is already banned", + "attribute.modifier.equals.0": "%s %s", + "attribute.modifier.equals.1": "%s%% %s", + "attribute.modifier.equals.2": "%s%% %s", + "attribute.modifier.plus.0": "+%s %s", + "attribute.modifier.plus.1": "+%s%% %s", + "attribute.modifier.plus.2": "+%s%% %s", + "attribute.modifier.take.0": "-%s %s", + "attribute.modifier.take.1": "-%s%% %s", + "attribute.modifier.take.2": "-%s%% %s", + "attribute.name.generic.armor": "Armor", + "attribute.name.generic.armor_toughness": "Armor Toughness", + "attribute.name.generic.attack_damage": "Attack Damage", + "attribute.name.generic.attack_knockback": "Attack Knockback", + "attribute.name.generic.attack_speed": "Attack Speed", + "attribute.name.generic.flying_speed": "Flying Speed", + "attribute.name.generic.follow_range": "Mob Follow Range", + "attribute.name.generic.knockback_resistance": "Knockback Resistance", + "attribute.name.generic.luck": "Luck", + "attribute.name.generic.max_absorption": "Max Absorption", + "attribute.name.generic.max_health": "Max Health", + "attribute.name.generic.movement_speed": "Speed", + "attribute.name.horse.jump_strength": "Horse Jump Strength", + "attribute.name.zombie.spawn_reinforcements": "Zombie Reinforcements", + "biome.minecraft.badlands": "Badlands", + "biome.minecraft.bamboo_jungle": "Bamboo Jungle", + "biome.minecraft.basalt_deltas": "Basalt Deltas", + "biome.minecraft.beach": "Beach", + "biome.minecraft.birch_forest": "Birch Forest", + "biome.minecraft.cherry_grove": "Cherry Grove", + "biome.minecraft.cold_ocean": "Cold Ocean", + "biome.minecraft.crimson_forest": "Crimson Forest", + "biome.minecraft.dark_forest": "Dark Forest", + "biome.minecraft.deep_cold_ocean": "Deep Cold Ocean", + "biome.minecraft.deep_dark": "Deep Dark", + "biome.minecraft.deep_frozen_ocean": "Deep Frozen Ocean", + "biome.minecraft.deep_lukewarm_ocean": "Deep Lukewarm Ocean", + "biome.minecraft.deep_ocean": "Deep Ocean", + "biome.minecraft.desert": "Desert", + "biome.minecraft.dripstone_caves": "Dripstone Caves", + "biome.minecraft.end_barrens": "End Barrens", + "biome.minecraft.end_highlands": "End Highlands", + "biome.minecraft.end_midlands": "End Midlands", + "biome.minecraft.eroded_badlands": "Eroded Badlands", + "biome.minecraft.flower_forest": "Flower Forest", + "biome.minecraft.forest": "Forest", + "biome.minecraft.frozen_ocean": "Frozen Ocean", + "biome.minecraft.frozen_peaks": "Frozen Peaks", + "biome.minecraft.frozen_river": "Frozen River", + "biome.minecraft.grove": "Grove", + "biome.minecraft.ice_spikes": "Ice Spikes", + "biome.minecraft.jagged_peaks": "Jagged Peaks", + "biome.minecraft.jungle": "Jungle", + "biome.minecraft.lukewarm_ocean": "Lukewarm Ocean", + "biome.minecraft.lush_caves": "Lush Caves", + "biome.minecraft.mangrove_swamp": "Mangrove Swamp", + "biome.minecraft.meadow": "Meadow", + "biome.minecraft.mushroom_fields": "Mushroom Fields", + "biome.minecraft.nether_wastes": "Nether Wastes", + "biome.minecraft.ocean": "Ocean", + "biome.minecraft.old_growth_birch_forest": "Old Growth Birch Forest", + "biome.minecraft.old_growth_pine_taiga": "Old Growth Pine Taiga", + "biome.minecraft.old_growth_spruce_taiga": "Old Growth Spruce Taiga", + "biome.minecraft.plains": "Plains", + "biome.minecraft.river": "River", + "biome.minecraft.savanna": "Savanna", + "biome.minecraft.savanna_plateau": "Savanna Plateau", + "biome.minecraft.small_end_islands": "Small End Islands", + "biome.minecraft.snowy_beach": "Snowy Beach", + "biome.minecraft.snowy_plains": "Snowy Plains", + "biome.minecraft.snowy_slopes": "Snowy Slopes", + "biome.minecraft.snowy_taiga": "Snowy Taiga", + "biome.minecraft.soul_sand_valley": "Soul Sand Valley", + "biome.minecraft.sparse_jungle": "Sparse Jungle", + "biome.minecraft.stony_peaks": "Stony Peaks", + "biome.minecraft.stony_shore": "Stony Shore", + "biome.minecraft.sunflower_plains": "Sunflower Plains", + "biome.minecraft.swamp": "Swamp", + "biome.minecraft.taiga": "Taiga", + "biome.minecraft.the_end": "The End", + "biome.minecraft.the_void": "The Void", + "biome.minecraft.warm_ocean": "Warm Ocean", + "biome.minecraft.warped_forest": "Warped Forest", + "biome.minecraft.windswept_forest": "Windswept Forest", + "biome.minecraft.windswept_gravelly_hills": "Windswept Gravelly Hills", + "biome.minecraft.windswept_hills": "Windswept Hills", + "biome.minecraft.windswept_savanna": "Windswept Savanna", + "biome.minecraft.wooded_badlands": "Wooded Badlands", + "block.minecraft.acacia_button": "Acacia Button", + "block.minecraft.acacia_door": "Acacia Door", + "block.minecraft.acacia_fence": "Acacia Fence", + "block.minecraft.acacia_fence_gate": "Acacia Fence Gate", + "block.minecraft.acacia_hanging_sign": "Acacia Hanging Sign", + "block.minecraft.acacia_leaves": "Acacia Leaves", + "block.minecraft.acacia_log": "Acacia Log", + "block.minecraft.acacia_planks": "Acacia Planks", + "block.minecraft.acacia_pressure_plate": "Acacia Pressure Plate", + "block.minecraft.acacia_sapling": "Acacia Sapling", + "block.minecraft.acacia_sign": "Acacia Sign", + "block.minecraft.acacia_slab": "Acacia Slab", + "block.minecraft.acacia_stairs": "Acacia Stairs", + "block.minecraft.acacia_trapdoor": "Acacia Trapdoor", + "block.minecraft.acacia_wall_hanging_sign": "Acacia Wall Hanging Sign", + "block.minecraft.acacia_wall_sign": "Acacia Wall Sign", + "block.minecraft.acacia_wood": "Acacia Wood", + "block.minecraft.activator_rail": "Activator Rail", + "block.minecraft.air": "Air", + "block.minecraft.allium": "Allium", + "block.minecraft.amethyst_block": "Block of Amethyst", + "block.minecraft.amethyst_cluster": "Amethyst Cluster", + "block.minecraft.ancient_debris": "Ancient Debris", + "block.minecraft.andesite": "Andesite", + "block.minecraft.andesite_slab": "Andesite Slab", + "block.minecraft.andesite_stairs": "Andesite Stairs", + "block.minecraft.andesite_wall": "Andesite Wall", + "block.minecraft.anvil": "Anvil", + "block.minecraft.attached_melon_stem": "Attached Melon Stem", + "block.minecraft.attached_pumpkin_stem": "Attached Pumpkin Stem", + "block.minecraft.azalea": "Azalea", + "block.minecraft.azalea_leaves": "Azalea Leaves", + "block.minecraft.azure_bluet": "Azure Bluet", + "block.minecraft.bamboo": "Bamboo", + "block.minecraft.bamboo_block": "Block of Bamboo", + "block.minecraft.bamboo_button": "Bamboo Button", + "block.minecraft.bamboo_door": "Bamboo Door", + "block.minecraft.bamboo_fence": "Bamboo Fence", + "block.minecraft.bamboo_fence_gate": "Bamboo Fence Gate", + "block.minecraft.bamboo_hanging_sign": "Bamboo Hanging Sign", + "block.minecraft.bamboo_mosaic": "Bamboo Mosaic", + "block.minecraft.bamboo_mosaic_slab": "Bamboo Mosaic Slab", + "block.minecraft.bamboo_mosaic_stairs": "Bamboo Mosaic Stairs", + "block.minecraft.bamboo_planks": "Bamboo Planks", + "block.minecraft.bamboo_pressure_plate": "Bamboo Pressure Plate", + "block.minecraft.bamboo_sapling": "Bamboo Shoot", + "block.minecraft.bamboo_sign": "Bamboo Sign", + "block.minecraft.bamboo_slab": "Bamboo Slab", + "block.minecraft.bamboo_stairs": "Bamboo Stairs", + "block.minecraft.bamboo_trapdoor": "Bamboo Trapdoor", + "block.minecraft.bamboo_wall_hanging_sign": "Bamboo Wall Hanging Sign", + "block.minecraft.bamboo_wall_sign": "Bamboo Wall Sign", + "block.minecraft.banner.base.black": "Fully Black Field", + "block.minecraft.banner.base.blue": "Fully Blue Field", + "block.minecraft.banner.base.brown": "Fully Brown Field", + "block.minecraft.banner.base.cyan": "Fully Cyan Field", + "block.minecraft.banner.base.gray": "Fully Gray Field", + "block.minecraft.banner.base.green": "Fully Green Field", + "block.minecraft.banner.base.light_blue": "Fully Light Blue Field", + "block.minecraft.banner.base.light_gray": "Fully Light Gray Field", + "block.minecraft.banner.base.lime": "Fully Lime Field", + "block.minecraft.banner.base.magenta": "Fully Magenta Field", + "block.minecraft.banner.base.orange": "Fully Orange Field", + "block.minecraft.banner.base.pink": "Fully Pink Field", + "block.minecraft.banner.base.purple": "Fully Purple Field", + "block.minecraft.banner.base.red": "Fully Red Field", + "block.minecraft.banner.base.white": "Fully White Field", + "block.minecraft.banner.base.yellow": "Fully Yellow Field", + "block.minecraft.banner.border.black": "Black Bordure", + "block.minecraft.banner.border.blue": "Blue Bordure", + "block.minecraft.banner.border.brown": "Brown Bordure", + "block.minecraft.banner.border.cyan": "Cyan Bordure", + "block.minecraft.banner.border.gray": "Gray Bordure", + "block.minecraft.banner.border.green": "Green Bordure", + "block.minecraft.banner.border.light_blue": "Light Blue Bordure", + "block.minecraft.banner.border.light_gray": "Light Gray Bordure", + "block.minecraft.banner.border.lime": "Lime Bordure", + "block.minecraft.banner.border.magenta": "Magenta Bordure", + "block.minecraft.banner.border.orange": "Orange Bordure", + "block.minecraft.banner.border.pink": "Pink Bordure", + "block.minecraft.banner.border.purple": "Purple Bordure", + "block.minecraft.banner.border.red": "Red Bordure", + "block.minecraft.banner.border.white": "White Bordure", + "block.minecraft.banner.border.yellow": "Yellow Bordure", + "block.minecraft.banner.bricks.black": "Black Field Masoned", + "block.minecraft.banner.bricks.blue": "Blue Field Masoned", + "block.minecraft.banner.bricks.brown": "Brown Field Masoned", + "block.minecraft.banner.bricks.cyan": "Cyan Field Masoned", + "block.minecraft.banner.bricks.gray": "Gray Field Masoned", + "block.minecraft.banner.bricks.green": "Green Field Masoned", + "block.minecraft.banner.bricks.light_blue": "Light Blue Field Masoned", + "block.minecraft.banner.bricks.light_gray": "Light Gray Field Masoned", + "block.minecraft.banner.bricks.lime": "Lime Field Masoned", + "block.minecraft.banner.bricks.magenta": "Magenta Field Masoned", + "block.minecraft.banner.bricks.orange": "Orange Field Masoned", + "block.minecraft.banner.bricks.pink": "Pink Field Masoned", + "block.minecraft.banner.bricks.purple": "Purple Field Masoned", + "block.minecraft.banner.bricks.red": "Red Field Masoned", + "block.minecraft.banner.bricks.white": "White Field Masoned", + "block.minecraft.banner.bricks.yellow": "Yellow Field Masoned", + "block.minecraft.banner.circle.black": "Black Roundel", + "block.minecraft.banner.circle.blue": "Blue Roundel", + "block.minecraft.banner.circle.brown": "Brown Roundel", + "block.minecraft.banner.circle.cyan": "Cyan Roundel", + "block.minecraft.banner.circle.gray": "Gray Roundel", + "block.minecraft.banner.circle.green": "Green Roundel", + "block.minecraft.banner.circle.light_blue": "Light Blue Roundel", + "block.minecraft.banner.circle.light_gray": "Light Gray Roundel", + "block.minecraft.banner.circle.lime": "Lime Roundel", + "block.minecraft.banner.circle.magenta": "Magenta Roundel", + "block.minecraft.banner.circle.orange": "Orange Roundel", + "block.minecraft.banner.circle.pink": "Pink Roundel", + "block.minecraft.banner.circle.purple": "Purple Roundel", + "block.minecraft.banner.circle.red": "Red Roundel", + "block.minecraft.banner.circle.white": "White Roundel", + "block.minecraft.banner.circle.yellow": "Yellow Roundel", + "block.minecraft.banner.creeper.black": "Black Creeper Charge", + "block.minecraft.banner.creeper.blue": "Blue Creeper Charge", + "block.minecraft.banner.creeper.brown": "Brown Creeper Charge", + "block.minecraft.banner.creeper.cyan": "Cyan Creeper Charge", + "block.minecraft.banner.creeper.gray": "Gray Creeper Charge", + "block.minecraft.banner.creeper.green": "Green Creeper Charge", + "block.minecraft.banner.creeper.light_blue": "Light Blue Creeper Charge", + "block.minecraft.banner.creeper.light_gray": "Light Gray Creeper Charge", + "block.minecraft.banner.creeper.lime": "Lime Creeper Charge", + "block.minecraft.banner.creeper.magenta": "Magenta Creeper Charge", + "block.minecraft.banner.creeper.orange": "Orange Creeper Charge", + "block.minecraft.banner.creeper.pink": "Pink Creeper Charge", + "block.minecraft.banner.creeper.purple": "Purple Creeper Charge", + "block.minecraft.banner.creeper.red": "Red Creeper Charge", + "block.minecraft.banner.creeper.white": "White Creeper Charge", + "block.minecraft.banner.creeper.yellow": "Yellow Creeper Charge", + "block.minecraft.banner.cross.black": "Black Saltire", + "block.minecraft.banner.cross.blue": "Blue Saltire", + "block.minecraft.banner.cross.brown": "Brown Saltire", + "block.minecraft.banner.cross.cyan": "Cyan Saltire", + "block.minecraft.banner.cross.gray": "Gray Saltire", + "block.minecraft.banner.cross.green": "Green Saltire", + "block.minecraft.banner.cross.light_blue": "Light Blue Saltire", + "block.minecraft.banner.cross.light_gray": "Light Gray Saltire", + "block.minecraft.banner.cross.lime": "Lime Saltire", + "block.minecraft.banner.cross.magenta": "Magenta Saltire", + "block.minecraft.banner.cross.orange": "Orange Saltire", + "block.minecraft.banner.cross.pink": "Pink Saltire", + "block.minecraft.banner.cross.purple": "Purple Saltire", + "block.minecraft.banner.cross.red": "Red Saltire", + "block.minecraft.banner.cross.white": "White Saltire", + "block.minecraft.banner.cross.yellow": "Yellow Saltire", + "block.minecraft.banner.curly_border.black": "Black Bordure Indented", + "block.minecraft.banner.curly_border.blue": "Blue Bordure Indented", + "block.minecraft.banner.curly_border.brown": "Brown Bordure Indented", + "block.minecraft.banner.curly_border.cyan": "Cyan Bordure Indented", + "block.minecraft.banner.curly_border.gray": "Gray Bordure Indented", + "block.minecraft.banner.curly_border.green": "Green Bordure Indented", + "block.minecraft.banner.curly_border.light_blue": "Light Blue Bordure Indented", + "block.minecraft.banner.curly_border.light_gray": "Light Gray Bordure Indented", + "block.minecraft.banner.curly_border.lime": "Lime Bordure Indented", + "block.minecraft.banner.curly_border.magenta": "Magenta Bordure Indented", + "block.minecraft.banner.curly_border.orange": "Orange Bordure Indented", + "block.minecraft.banner.curly_border.pink": "Pink Bordure Indented", + "block.minecraft.banner.curly_border.purple": "Purple Bordure Indented", + "block.minecraft.banner.curly_border.red": "Red Bordure Indented", + "block.minecraft.banner.curly_border.white": "White Bordure Indented", + "block.minecraft.banner.curly_border.yellow": "Yellow Bordure Indented", + "block.minecraft.banner.diagonal_left.black": "Black Per Bend Sinister", + "block.minecraft.banner.diagonal_left.blue": "Blue Per Bend Sinister", + "block.minecraft.banner.diagonal_left.brown": "Brown Per Bend Sinister", + "block.minecraft.banner.diagonal_left.cyan": "Cyan Per Bend Sinister", + "block.minecraft.banner.diagonal_left.gray": "Gray Per Bend Sinister", + "block.minecraft.banner.diagonal_left.green": "Green Per Bend Sinister", + "block.minecraft.banner.diagonal_left.light_blue": "Light Blue Per Bend Sinister", + "block.minecraft.banner.diagonal_left.light_gray": "Light Gray Per Bend Sinister", + "block.minecraft.banner.diagonal_left.lime": "Lime Per Bend Sinister", + "block.minecraft.banner.diagonal_left.magenta": "Magenta Per Bend Sinister", + "block.minecraft.banner.diagonal_left.orange": "Orange Per Bend Sinister", + "block.minecraft.banner.diagonal_left.pink": "Pink Per Bend Sinister", + "block.minecraft.banner.diagonal_left.purple": "Purple Per Bend Sinister", + "block.minecraft.banner.diagonal_left.red": "Red Per Bend Sinister", + "block.minecraft.banner.diagonal_left.white": "White Per Bend Sinister", + "block.minecraft.banner.diagonal_left.yellow": "Yellow Per Bend Sinister", + "block.minecraft.banner.diagonal_right.black": "Black Per Bend", + "block.minecraft.banner.diagonal_right.blue": "Blue Per Bend", + "block.minecraft.banner.diagonal_right.brown": "Brown Per Bend", + "block.minecraft.banner.diagonal_right.cyan": "Cyan Per Bend", + "block.minecraft.banner.diagonal_right.gray": "Gray Per Bend", + "block.minecraft.banner.diagonal_right.green": "Green Per Bend", + "block.minecraft.banner.diagonal_right.light_blue": "Light Blue Per Bend", + "block.minecraft.banner.diagonal_right.light_gray": "Light Gray Per Bend", + "block.minecraft.banner.diagonal_right.lime": "Lime Per Bend", + "block.minecraft.banner.diagonal_right.magenta": "Magenta Per Bend", + "block.minecraft.banner.diagonal_right.orange": "Orange Per Bend", + "block.minecraft.banner.diagonal_right.pink": "Pink Per Bend", + "block.minecraft.banner.diagonal_right.purple": "Purple Per Bend", + "block.minecraft.banner.diagonal_right.red": "Red Per Bend", + "block.minecraft.banner.diagonal_right.white": "White Per Bend", + "block.minecraft.banner.diagonal_right.yellow": "Yellow Per Bend", + "block.minecraft.banner.diagonal_up_left.black": "Black Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.blue": "Blue Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.brown": "Brown Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.cyan": "Cyan Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.gray": "Gray Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.green": "Green Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.light_blue": "Light Blue Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.light_gray": "Light Gray Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.lime": "Lime Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.magenta": "Magenta Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.orange": "Orange Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.pink": "Pink Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.purple": "Purple Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.red": "Red Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.white": "White Per Bend Inverted", + "block.minecraft.banner.diagonal_up_left.yellow": "Yellow Per Bend Inverted", + "block.minecraft.banner.diagonal_up_right.black": "Black Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.blue": "Blue Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.brown": "Brown Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.cyan": "Cyan Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.gray": "Gray Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.green": "Green Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.light_blue": "Light Blue Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.light_gray": "Light Gray Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.lime": "Lime Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.magenta": "Magenta Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.orange": "Orange Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.pink": "Pink Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.purple": "Purple Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.red": "Red Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.white": "White Per Bend Sinister Inverted", + "block.minecraft.banner.diagonal_up_right.yellow": "Yellow Per Bend Sinister Inverted", + "block.minecraft.banner.flower.black": "Black Flower Charge", + "block.minecraft.banner.flower.blue": "Blue Flower Charge", + "block.minecraft.banner.flower.brown": "Brown Flower Charge", + "block.minecraft.banner.flower.cyan": "Cyan Flower Charge", + "block.minecraft.banner.flower.gray": "Gray Flower Charge", + "block.minecraft.banner.flower.green": "Green Flower Charge", + "block.minecraft.banner.flower.light_blue": "Light Blue Flower Charge", + "block.minecraft.banner.flower.light_gray": "Light Gray Flower Charge", + "block.minecraft.banner.flower.lime": "Lime Flower Charge", + "block.minecraft.banner.flower.magenta": "Magenta Flower Charge", + "block.minecraft.banner.flower.orange": "Orange Flower Charge", + "block.minecraft.banner.flower.pink": "Pink Flower Charge", + "block.minecraft.banner.flower.purple": "Purple Flower Charge", + "block.minecraft.banner.flower.red": "Red Flower Charge", + "block.minecraft.banner.flower.white": "White Flower Charge", + "block.minecraft.banner.flower.yellow": "Yellow Flower Charge", + "block.minecraft.banner.globe.black": "Black Globe", + "block.minecraft.banner.globe.blue": "Blue Globe", + "block.minecraft.banner.globe.brown": "Brown Globe", + "block.minecraft.banner.globe.cyan": "Cyan Globe", + "block.minecraft.banner.globe.gray": "Gray Globe", + "block.minecraft.banner.globe.green": "Green Globe", + "block.minecraft.banner.globe.light_blue": "Light Blue Globe", + "block.minecraft.banner.globe.light_gray": "Light Gray Globe", + "block.minecraft.banner.globe.lime": "Lime Globe", + "block.minecraft.banner.globe.magenta": "Magenta Globe", + "block.minecraft.banner.globe.orange": "Orange Globe", + "block.minecraft.banner.globe.pink": "Pink Globe", + "block.minecraft.banner.globe.purple": "Purple Globe", + "block.minecraft.banner.globe.red": "Red Globe", + "block.minecraft.banner.globe.white": "White Globe", + "block.minecraft.banner.globe.yellow": "Yellow Globe", + "block.minecraft.banner.gradient_up.black": "Black Base Gradient", + "block.minecraft.banner.gradient_up.blue": "Blue Base Gradient", + "block.minecraft.banner.gradient_up.brown": "Brown Base Gradient", + "block.minecraft.banner.gradient_up.cyan": "Cyan Base Gradient", + "block.minecraft.banner.gradient_up.gray": "Gray Base Gradient", + "block.minecraft.banner.gradient_up.green": "Green Base Gradient", + "block.minecraft.banner.gradient_up.light_blue": "Light Blue Base Gradient", + "block.minecraft.banner.gradient_up.light_gray": "Light Gray Base Gradient", + "block.minecraft.banner.gradient_up.lime": "Lime Base Gradient", + "block.minecraft.banner.gradient_up.magenta": "Magenta Base Gradient", + "block.minecraft.banner.gradient_up.orange": "Orange Base Gradient", + "block.minecraft.banner.gradient_up.pink": "Pink Base Gradient", + "block.minecraft.banner.gradient_up.purple": "Purple Base Gradient", + "block.minecraft.banner.gradient_up.red": "Red Base Gradient", + "block.minecraft.banner.gradient_up.white": "White Base Gradient", + "block.minecraft.banner.gradient_up.yellow": "Yellow Base Gradient", + "block.minecraft.banner.gradient.black": "Black Gradient", + "block.minecraft.banner.gradient.blue": "Blue Gradient", + "block.minecraft.banner.gradient.brown": "Brown Gradient", + "block.minecraft.banner.gradient.cyan": "Cyan Gradient", + "block.minecraft.banner.gradient.gray": "Gray Gradient", + "block.minecraft.banner.gradient.green": "Green Gradient", + "block.minecraft.banner.gradient.light_blue": "Light Blue Gradient", + "block.minecraft.banner.gradient.light_gray": "Light Gray Gradient", + "block.minecraft.banner.gradient.lime": "Lime Gradient", + "block.minecraft.banner.gradient.magenta": "Magenta Gradient", + "block.minecraft.banner.gradient.orange": "Orange Gradient", + "block.minecraft.banner.gradient.pink": "Pink Gradient", + "block.minecraft.banner.gradient.purple": "Purple Gradient", + "block.minecraft.banner.gradient.red": "Red Gradient", + "block.minecraft.banner.gradient.white": "White Gradient", + "block.minecraft.banner.gradient.yellow": "Yellow Gradient", + "block.minecraft.banner.half_horizontal_bottom.black": "Black Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.blue": "Blue Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.brown": "Brown Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.cyan": "Cyan Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.gray": "Gray Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.green": "Green Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.light_blue": "Light Blue Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.light_gray": "Light Gray Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.lime": "Lime Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.magenta": "Magenta Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.orange": "Orange Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.pink": "Pink Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.purple": "Purple Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.red": "Red Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.white": "White Per Fess Inverted", + "block.minecraft.banner.half_horizontal_bottom.yellow": "Yellow Per Fess Inverted", + "block.minecraft.banner.half_horizontal.black": "Black Per Fess", + "block.minecraft.banner.half_horizontal.blue": "Blue Per Fess", + "block.minecraft.banner.half_horizontal.brown": "Brown Per Fess", + "block.minecraft.banner.half_horizontal.cyan": "Cyan Per Fess", + "block.minecraft.banner.half_horizontal.gray": "Gray Per Fess", + "block.minecraft.banner.half_horizontal.green": "Green Per Fess", + "block.minecraft.banner.half_horizontal.light_blue": "Light Blue Per Fess", + "block.minecraft.banner.half_horizontal.light_gray": "Light Gray Per Fess", + "block.minecraft.banner.half_horizontal.lime": "Lime Per Fess", + "block.minecraft.banner.half_horizontal.magenta": "Magenta Per Fess", + "block.minecraft.banner.half_horizontal.orange": "Orange Per Fess", + "block.minecraft.banner.half_horizontal.pink": "Pink Per Fess", + "block.minecraft.banner.half_horizontal.purple": "Purple Per Fess", + "block.minecraft.banner.half_horizontal.red": "Red Per Fess", + "block.minecraft.banner.half_horizontal.white": "White Per Fess", + "block.minecraft.banner.half_horizontal.yellow": "Yellow Per Fess", + "block.minecraft.banner.half_vertical_right.black": "Black Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.blue": "Blue Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.brown": "Brown Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.cyan": "Cyan Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.gray": "Gray Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.green": "Green Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.light_blue": "Light Blue Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.light_gray": "Light Gray Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.lime": "Lime Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.magenta": "Magenta Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.orange": "Orange Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.pink": "Pink Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.purple": "Purple Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.red": "Red Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.white": "White Per Pale Inverted", + "block.minecraft.banner.half_vertical_right.yellow": "Yellow Per Pale Inverted", + "block.minecraft.banner.half_vertical.black": "Black Per Pale", + "block.minecraft.banner.half_vertical.blue": "Blue Per Pale", + "block.minecraft.banner.half_vertical.brown": "Brown Per Pale", + "block.minecraft.banner.half_vertical.cyan": "Cyan Per Pale", + "block.minecraft.banner.half_vertical.gray": "Gray Per Pale", + "block.minecraft.banner.half_vertical.green": "Green Per Pale", + "block.minecraft.banner.half_vertical.light_blue": "Light Blue Per Pale", + "block.minecraft.banner.half_vertical.light_gray": "Light Gray Per Pale", + "block.minecraft.banner.half_vertical.lime": "Lime Per Pale", + "block.minecraft.banner.half_vertical.magenta": "Magenta Per Pale", + "block.minecraft.banner.half_vertical.orange": "Orange Per Pale", + "block.minecraft.banner.half_vertical.pink": "Pink Per Pale", + "block.minecraft.banner.half_vertical.purple": "Purple Per Pale", + "block.minecraft.banner.half_vertical.red": "Red Per Pale", + "block.minecraft.banner.half_vertical.white": "White Per Pale", + "block.minecraft.banner.half_vertical.yellow": "Yellow Per Pale", + "block.minecraft.banner.mojang.black": "Black Thing", + "block.minecraft.banner.mojang.blue": "Blue Thing", + "block.minecraft.banner.mojang.brown": "Brown Thing", + "block.minecraft.banner.mojang.cyan": "Cyan Thing", + "block.minecraft.banner.mojang.gray": "Gray Thing", + "block.minecraft.banner.mojang.green": "Green Thing", + "block.minecraft.banner.mojang.light_blue": "Light Blue Thing", + "block.minecraft.banner.mojang.light_gray": "Light Gray Thing", + "block.minecraft.banner.mojang.lime": "Lime Thing", + "block.minecraft.banner.mojang.magenta": "Magenta Thing", + "block.minecraft.banner.mojang.orange": "Orange Thing", + "block.minecraft.banner.mojang.pink": "Pink Thing", + "block.minecraft.banner.mojang.purple": "Purple Thing", + "block.minecraft.banner.mojang.red": "Red Thing", + "block.minecraft.banner.mojang.white": "White Thing", + "block.minecraft.banner.mojang.yellow": "Yellow Thing", + "block.minecraft.banner.piglin.black": "Black Snout", + "block.minecraft.banner.piglin.blue": "Blue Snout", + "block.minecraft.banner.piglin.brown": "Brown Snout", + "block.minecraft.banner.piglin.cyan": "Cyan Snout", + "block.minecraft.banner.piglin.gray": "Gray Snout", + "block.minecraft.banner.piglin.green": "Green Snout", + "block.minecraft.banner.piglin.light_blue": "Light Blue Snout", + "block.minecraft.banner.piglin.light_gray": "Light Gray Snout", + "block.minecraft.banner.piglin.lime": "Lime Snout", + "block.minecraft.banner.piglin.magenta": "Magenta Snout", + "block.minecraft.banner.piglin.orange": "Orange Snout", + "block.minecraft.banner.piglin.pink": "Pink Snout", + "block.minecraft.banner.piglin.purple": "Purple Snout", + "block.minecraft.banner.piglin.red": "Red Snout", + "block.minecraft.banner.piglin.white": "White Snout", + "block.minecraft.banner.piglin.yellow": "Yellow Snout", + "block.minecraft.banner.rhombus.black": "Black Lozenge", + "block.minecraft.banner.rhombus.blue": "Blue Lozenge", + "block.minecraft.banner.rhombus.brown": "Brown Lozenge", + "block.minecraft.banner.rhombus.cyan": "Cyan Lozenge", + "block.minecraft.banner.rhombus.gray": "Gray Lozenge", + "block.minecraft.banner.rhombus.green": "Green Lozenge", + "block.minecraft.banner.rhombus.light_blue": "Light Blue Lozenge", + "block.minecraft.banner.rhombus.light_gray": "Light Gray Lozenge", + "block.minecraft.banner.rhombus.lime": "Lime Lozenge", + "block.minecraft.banner.rhombus.magenta": "Magenta Lozenge", + "block.minecraft.banner.rhombus.orange": "Orange Lozenge", + "block.minecraft.banner.rhombus.pink": "Pink Lozenge", + "block.minecraft.banner.rhombus.purple": "Purple Lozenge", + "block.minecraft.banner.rhombus.red": "Red Lozenge", + "block.minecraft.banner.rhombus.white": "White Lozenge", + "block.minecraft.banner.rhombus.yellow": "Yellow Lozenge", + "block.minecraft.banner.skull.black": "Black Skull Charge", + "block.minecraft.banner.skull.blue": "Blue Skull Charge", + "block.minecraft.banner.skull.brown": "Brown Skull Charge", + "block.minecraft.banner.skull.cyan": "Cyan Skull Charge", + "block.minecraft.banner.skull.gray": "Gray Skull Charge", + "block.minecraft.banner.skull.green": "Green Skull Charge", + "block.minecraft.banner.skull.light_blue": "Light Blue Skull Charge", + "block.minecraft.banner.skull.light_gray": "Light Gray Skull Charge", + "block.minecraft.banner.skull.lime": "Lime Skull Charge", + "block.minecraft.banner.skull.magenta": "Magenta Skull Charge", + "block.minecraft.banner.skull.orange": "Orange Skull Charge", + "block.minecraft.banner.skull.pink": "Pink Skull Charge", + "block.minecraft.banner.skull.purple": "Purple Skull Charge", + "block.minecraft.banner.skull.red": "Red Skull Charge", + "block.minecraft.banner.skull.white": "White Skull Charge", + "block.minecraft.banner.skull.yellow": "Yellow Skull Charge", + "block.minecraft.banner.small_stripes.black": "Black Paly", + "block.minecraft.banner.small_stripes.blue": "Blue Paly", + "block.minecraft.banner.small_stripes.brown": "Brown Paly", + "block.minecraft.banner.small_stripes.cyan": "Cyan Paly", + "block.minecraft.banner.small_stripes.gray": "Gray Paly", + "block.minecraft.banner.small_stripes.green": "Green Paly", + "block.minecraft.banner.small_stripes.light_blue": "Light Blue Paly", + "block.minecraft.banner.small_stripes.light_gray": "Light Gray Paly", + "block.minecraft.banner.small_stripes.lime": "Lime Paly", + "block.minecraft.banner.small_stripes.magenta": "Magenta Paly", + "block.minecraft.banner.small_stripes.orange": "Orange Paly", + "block.minecraft.banner.small_stripes.pink": "Pink Paly", + "block.minecraft.banner.small_stripes.purple": "Purple Paly", + "block.minecraft.banner.small_stripes.red": "Red Paly", + "block.minecraft.banner.small_stripes.white": "White Paly", + "block.minecraft.banner.small_stripes.yellow": "Yellow Paly", + "block.minecraft.banner.square_bottom_left.black": "Black Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.blue": "Blue Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.brown": "Brown Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.cyan": "Cyan Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.gray": "Gray Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.green": "Green Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.light_blue": "Light Blue Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.light_gray": "Light Gray Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.lime": "Lime Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.magenta": "Magenta Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.orange": "Orange Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.pink": "Pink Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.purple": "Purple Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.red": "Red Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.white": "White Base Dexter Canton", + "block.minecraft.banner.square_bottom_left.yellow": "Yellow Base Dexter Canton", + "block.minecraft.banner.square_bottom_right.black": "Black Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.blue": "Blue Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.brown": "Brown Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.cyan": "Cyan Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.gray": "Gray Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.green": "Green Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.light_blue": "Light Blue Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.light_gray": "Light Gray Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.lime": "Lime Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.magenta": "Magenta Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.orange": "Orange Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.pink": "Pink Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.purple": "Purple Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.red": "Red Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.white": "White Base Sinister Canton", + "block.minecraft.banner.square_bottom_right.yellow": "Yellow Base Sinister Canton", + "block.minecraft.banner.square_top_left.black": "Black Chief Dexter Canton", + "block.minecraft.banner.square_top_left.blue": "Blue Chief Dexter Canton", + "block.minecraft.banner.square_top_left.brown": "Brown Chief Dexter Canton", + "block.minecraft.banner.square_top_left.cyan": "Cyan Chief Dexter Canton", + "block.minecraft.banner.square_top_left.gray": "Gray Chief Dexter Canton", + "block.minecraft.banner.square_top_left.green": "Green Chief Dexter Canton", + "block.minecraft.banner.square_top_left.light_blue": "Light Blue Chief Dexter Canton", + "block.minecraft.banner.square_top_left.light_gray": "Light Gray Chief Dexter Canton", + "block.minecraft.banner.square_top_left.lime": "Lime Chief Dexter Canton", + "block.minecraft.banner.square_top_left.magenta": "Magenta Chief Dexter Canton", + "block.minecraft.banner.square_top_left.orange": "Orange Chief Dexter Canton", + "block.minecraft.banner.square_top_left.pink": "Pink Chief Dexter Canton", + "block.minecraft.banner.square_top_left.purple": "Purple Chief Dexter Canton", + "block.minecraft.banner.square_top_left.red": "Red Chief Dexter Canton", + "block.minecraft.banner.square_top_left.white": "White Chief Dexter Canton", + "block.minecraft.banner.square_top_left.yellow": "Yellow Chief Dexter Canton", + "block.minecraft.banner.square_top_right.black": "Black Chief Sinister Canton", + "block.minecraft.banner.square_top_right.blue": "Blue Chief Sinister Canton", + "block.minecraft.banner.square_top_right.brown": "Brown Chief Sinister Canton", + "block.minecraft.banner.square_top_right.cyan": "Cyan Chief Sinister Canton", + "block.minecraft.banner.square_top_right.gray": "Gray Chief Sinister Canton", + "block.minecraft.banner.square_top_right.green": "Green Chief Sinister Canton", + "block.minecraft.banner.square_top_right.light_blue": "Light Blue Chief Sinister Canton", + "block.minecraft.banner.square_top_right.light_gray": "Light Gray Chief Sinister Canton", + "block.minecraft.banner.square_top_right.lime": "Lime Chief Sinister Canton", + "block.minecraft.banner.square_top_right.magenta": "Magenta Chief Sinister Canton", + "block.minecraft.banner.square_top_right.orange": "Orange Chief Sinister Canton", + "block.minecraft.banner.square_top_right.pink": "Pink Chief Sinister Canton", + "block.minecraft.banner.square_top_right.purple": "Purple Chief Sinister Canton", + "block.minecraft.banner.square_top_right.red": "Red Chief Sinister Canton", + "block.minecraft.banner.square_top_right.white": "White Chief Sinister Canton", + "block.minecraft.banner.square_top_right.yellow": "Yellow Chief Sinister Canton", + "block.minecraft.banner.straight_cross.black": "Black Cross", + "block.minecraft.banner.straight_cross.blue": "Blue Cross", + "block.minecraft.banner.straight_cross.brown": "Brown Cross", + "block.minecraft.banner.straight_cross.cyan": "Cyan Cross", + "block.minecraft.banner.straight_cross.gray": "Gray Cross", + "block.minecraft.banner.straight_cross.green": "Green Cross", + "block.minecraft.banner.straight_cross.light_blue": "Light Blue Cross", + "block.minecraft.banner.straight_cross.light_gray": "Light Gray Cross", + "block.minecraft.banner.straight_cross.lime": "Lime Cross", + "block.minecraft.banner.straight_cross.magenta": "Magenta Cross", + "block.minecraft.banner.straight_cross.orange": "Orange Cross", + "block.minecraft.banner.straight_cross.pink": "Pink Cross", + "block.minecraft.banner.straight_cross.purple": "Purple Cross", + "block.minecraft.banner.straight_cross.red": "Red Cross", + "block.minecraft.banner.straight_cross.white": "White Cross", + "block.minecraft.banner.straight_cross.yellow": "Yellow Cross", + "block.minecraft.banner.stripe_bottom.black": "Black Base", + "block.minecraft.banner.stripe_bottom.blue": "Blue Base", + "block.minecraft.banner.stripe_bottom.brown": "Brown Base", + "block.minecraft.banner.stripe_bottom.cyan": "Cyan Base", + "block.minecraft.banner.stripe_bottom.gray": "Gray Base", + "block.minecraft.banner.stripe_bottom.green": "Green Base", + "block.minecraft.banner.stripe_bottom.light_blue": "Light Blue Base", + "block.minecraft.banner.stripe_bottom.light_gray": "Light Gray Base", + "block.minecraft.banner.stripe_bottom.lime": "Lime Base", + "block.minecraft.banner.stripe_bottom.magenta": "Magenta Base", + "block.minecraft.banner.stripe_bottom.orange": "Orange Base", + "block.minecraft.banner.stripe_bottom.pink": "Pink Base", + "block.minecraft.banner.stripe_bottom.purple": "Purple Base", + "block.minecraft.banner.stripe_bottom.red": "Red Base", + "block.minecraft.banner.stripe_bottom.white": "White Base", + "block.minecraft.banner.stripe_bottom.yellow": "Yellow Base", + "block.minecraft.banner.stripe_center.black": "Black Pale", + "block.minecraft.banner.stripe_center.blue": "Blue Pale", + "block.minecraft.banner.stripe_center.brown": "Brown Pale", + "block.minecraft.banner.stripe_center.cyan": "Cyan Pale", + "block.minecraft.banner.stripe_center.gray": "Gray Pale", + "block.minecraft.banner.stripe_center.green": "Green Pale", + "block.minecraft.banner.stripe_center.light_blue": "Light Blue Pale", + "block.minecraft.banner.stripe_center.light_gray": "Light Gray Pale", + "block.minecraft.banner.stripe_center.lime": "Lime Pale", + "block.minecraft.banner.stripe_center.magenta": "Magenta Pale", + "block.minecraft.banner.stripe_center.orange": "Orange Pale", + "block.minecraft.banner.stripe_center.pink": "Pink Pale", + "block.minecraft.banner.stripe_center.purple": "Purple Pale", + "block.minecraft.banner.stripe_center.red": "Red Pale", + "block.minecraft.banner.stripe_center.white": "White Pale", + "block.minecraft.banner.stripe_center.yellow": "Yellow Pale", + "block.minecraft.banner.stripe_downleft.black": "Black Bend Sinister", + "block.minecraft.banner.stripe_downleft.blue": "Blue Bend Sinister", + "block.minecraft.banner.stripe_downleft.brown": "Brown Bend Sinister", + "block.minecraft.banner.stripe_downleft.cyan": "Cyan Bend Sinister", + "block.minecraft.banner.stripe_downleft.gray": "Gray Bend Sinister", + "block.minecraft.banner.stripe_downleft.green": "Green Bend Sinister", + "block.minecraft.banner.stripe_downleft.light_blue": "Light Blue Bend Sinister", + "block.minecraft.banner.stripe_downleft.light_gray": "Light Gray Bend Sinister", + "block.minecraft.banner.stripe_downleft.lime": "Lime Bend Sinister", + "block.minecraft.banner.stripe_downleft.magenta": "Magenta Bend Sinister", + "block.minecraft.banner.stripe_downleft.orange": "Orange Bend Sinister", + "block.minecraft.banner.stripe_downleft.pink": "Pink Bend Sinister", + "block.minecraft.banner.stripe_downleft.purple": "Purple Bend Sinister", + "block.minecraft.banner.stripe_downleft.red": "Red Bend Sinister", + "block.minecraft.banner.stripe_downleft.white": "White Bend Sinister", + "block.minecraft.banner.stripe_downleft.yellow": "Yellow Bend Sinister", + "block.minecraft.banner.stripe_downright.black": "Black Bend", + "block.minecraft.banner.stripe_downright.blue": "Blue Bend", + "block.minecraft.banner.stripe_downright.brown": "Brown Bend", + "block.minecraft.banner.stripe_downright.cyan": "Cyan Bend", + "block.minecraft.banner.stripe_downright.gray": "Gray Bend", + "block.minecraft.banner.stripe_downright.green": "Green Bend", + "block.minecraft.banner.stripe_downright.light_blue": "Light Blue Bend", + "block.minecraft.banner.stripe_downright.light_gray": "Light Gray Bend", + "block.minecraft.banner.stripe_downright.lime": "Lime Bend", + "block.minecraft.banner.stripe_downright.magenta": "Magenta Bend", + "block.minecraft.banner.stripe_downright.orange": "Orange Bend", + "block.minecraft.banner.stripe_downright.pink": "Pink Bend", + "block.minecraft.banner.stripe_downright.purple": "Purple Bend", + "block.minecraft.banner.stripe_downright.red": "Red Bend", + "block.minecraft.banner.stripe_downright.white": "White Bend", + "block.minecraft.banner.stripe_downright.yellow": "Yellow Bend", + "block.minecraft.banner.stripe_left.black": "Black Pale Dexter", + "block.minecraft.banner.stripe_left.blue": "Blue Pale Dexter", + "block.minecraft.banner.stripe_left.brown": "Brown Pale Dexter", + "block.minecraft.banner.stripe_left.cyan": "Cyan Pale Dexter", + "block.minecraft.banner.stripe_left.gray": "Gray Pale Dexter", + "block.minecraft.banner.stripe_left.green": "Green Pale Dexter", + "block.minecraft.banner.stripe_left.light_blue": "Light Blue Pale Dexter", + "block.minecraft.banner.stripe_left.light_gray": "Light Gray Pale Dexter", + "block.minecraft.banner.stripe_left.lime": "Lime Pale Dexter", + "block.minecraft.banner.stripe_left.magenta": "Magenta Pale Dexter", + "block.minecraft.banner.stripe_left.orange": "Orange Pale Dexter", + "block.minecraft.banner.stripe_left.pink": "Pink Pale Dexter", + "block.minecraft.banner.stripe_left.purple": "Purple Pale Dexter", + "block.minecraft.banner.stripe_left.red": "Red Pale Dexter", + "block.minecraft.banner.stripe_left.white": "White Pale Dexter", + "block.minecraft.banner.stripe_left.yellow": "Yellow Pale Dexter", + "block.minecraft.banner.stripe_middle.black": "Black Fess", + "block.minecraft.banner.stripe_middle.blue": "Blue Fess", + "block.minecraft.banner.stripe_middle.brown": "Brown Fess", + "block.minecraft.banner.stripe_middle.cyan": "Cyan Fess", + "block.minecraft.banner.stripe_middle.gray": "Gray Fess", + "block.minecraft.banner.stripe_middle.green": "Green Fess", + "block.minecraft.banner.stripe_middle.light_blue": "Light Blue Fess", + "block.minecraft.banner.stripe_middle.light_gray": "Light Gray Fess", + "block.minecraft.banner.stripe_middle.lime": "Lime Fess", + "block.minecraft.banner.stripe_middle.magenta": "Magenta Fess", + "block.minecraft.banner.stripe_middle.orange": "Orange Fess", + "block.minecraft.banner.stripe_middle.pink": "Pink Fess", + "block.minecraft.banner.stripe_middle.purple": "Purple Fess", + "block.minecraft.banner.stripe_middle.red": "Red Fess", + "block.minecraft.banner.stripe_middle.white": "White Fess", + "block.minecraft.banner.stripe_middle.yellow": "Yellow Fess", + "block.minecraft.banner.stripe_right.black": "Black Pale Sinister", + "block.minecraft.banner.stripe_right.blue": "Blue Pale Sinister", + "block.minecraft.banner.stripe_right.brown": "Brown Pale Sinister", + "block.minecraft.banner.stripe_right.cyan": "Cyan Pale Sinister", + "block.minecraft.banner.stripe_right.gray": "Gray Pale Sinister", + "block.minecraft.banner.stripe_right.green": "Green Pale Sinister", + "block.minecraft.banner.stripe_right.light_blue": "Light Blue Pale Sinister", + "block.minecraft.banner.stripe_right.light_gray": "Light Gray Pale Sinister", + "block.minecraft.banner.stripe_right.lime": "Lime Pale Sinister", + "block.minecraft.banner.stripe_right.magenta": "Magenta Pale Sinister", + "block.minecraft.banner.stripe_right.orange": "Orange Pale Sinister", + "block.minecraft.banner.stripe_right.pink": "Pink Pale Sinister", + "block.minecraft.banner.stripe_right.purple": "Purple Pale Sinister", + "block.minecraft.banner.stripe_right.red": "Red Pale Sinister", + "block.minecraft.banner.stripe_right.white": "White Pale Sinister", + "block.minecraft.banner.stripe_right.yellow": "Yellow Pale Sinister", + "block.minecraft.banner.stripe_top.black": "Black Chief", + "block.minecraft.banner.stripe_top.blue": "Blue Chief", + "block.minecraft.banner.stripe_top.brown": "Brown Chief", + "block.minecraft.banner.stripe_top.cyan": "Cyan Chief", + "block.minecraft.banner.stripe_top.gray": "Gray Chief", + "block.minecraft.banner.stripe_top.green": "Green Chief", + "block.minecraft.banner.stripe_top.light_blue": "Light Blue Chief", + "block.minecraft.banner.stripe_top.light_gray": "Light Gray Chief", + "block.minecraft.banner.stripe_top.lime": "Lime Chief", + "block.minecraft.banner.stripe_top.magenta": "Magenta Chief", + "block.minecraft.banner.stripe_top.orange": "Orange Chief", + "block.minecraft.banner.stripe_top.pink": "Pink Chief", + "block.minecraft.banner.stripe_top.purple": "Purple Chief", + "block.minecraft.banner.stripe_top.red": "Red Chief", + "block.minecraft.banner.stripe_top.white": "White Chief", + "block.minecraft.banner.stripe_top.yellow": "Yellow Chief", + "block.minecraft.banner.triangle_bottom.black": "Black Chevron", + "block.minecraft.banner.triangle_bottom.blue": "Blue Chevron", + "block.minecraft.banner.triangle_bottom.brown": "Brown Chevron", + "block.minecraft.banner.triangle_bottom.cyan": "Cyan Chevron", + "block.minecraft.banner.triangle_bottom.gray": "Gray Chevron", + "block.minecraft.banner.triangle_bottom.green": "Green Chevron", + "block.minecraft.banner.triangle_bottom.light_blue": "Light Blue Chevron", + "block.minecraft.banner.triangle_bottom.light_gray": "Light Gray Chevron", + "block.minecraft.banner.triangle_bottom.lime": "Lime Chevron", + "block.minecraft.banner.triangle_bottom.magenta": "Magenta Chevron", + "block.minecraft.banner.triangle_bottom.orange": "Orange Chevron", + "block.minecraft.banner.triangle_bottom.pink": "Pink Chevron", + "block.minecraft.banner.triangle_bottom.purple": "Purple Chevron", + "block.minecraft.banner.triangle_bottom.red": "Red Chevron", + "block.minecraft.banner.triangle_bottom.white": "White Chevron", + "block.minecraft.banner.triangle_bottom.yellow": "Yellow Chevron", + "block.minecraft.banner.triangle_top.black": "Black Inverted Chevron", + "block.minecraft.banner.triangle_top.blue": "Blue Inverted Chevron", + "block.minecraft.banner.triangle_top.brown": "Brown Inverted Chevron", + "block.minecraft.banner.triangle_top.cyan": "Cyan Inverted Chevron", + "block.minecraft.banner.triangle_top.gray": "Gray Inverted Chevron", + "block.minecraft.banner.triangle_top.green": "Green Inverted Chevron", + "block.minecraft.banner.triangle_top.light_blue": "Light Blue Inverted Chevron", + "block.minecraft.banner.triangle_top.light_gray": "Light Gray Inverted Chevron", + "block.minecraft.banner.triangle_top.lime": "Lime Inverted Chevron", + "block.minecraft.banner.triangle_top.magenta": "Magenta Inverted Chevron", + "block.minecraft.banner.triangle_top.orange": "Orange Inverted Chevron", + "block.minecraft.banner.triangle_top.pink": "Pink Inverted Chevron", + "block.minecraft.banner.triangle_top.purple": "Purple Inverted Chevron", + "block.minecraft.banner.triangle_top.red": "Red Inverted Chevron", + "block.minecraft.banner.triangle_top.white": "White Inverted Chevron", + "block.minecraft.banner.triangle_top.yellow": "Yellow Inverted Chevron", + "block.minecraft.banner.triangles_bottom.black": "Black Base Indented", + "block.minecraft.banner.triangles_bottom.blue": "Blue Base Indented", + "block.minecraft.banner.triangles_bottom.brown": "Brown Base Indented", + "block.minecraft.banner.triangles_bottom.cyan": "Cyan Base Indented", + "block.minecraft.banner.triangles_bottom.gray": "Gray Base Indented", + "block.minecraft.banner.triangles_bottom.green": "Green Base Indented", + "block.minecraft.banner.triangles_bottom.light_blue": "Light Blue Base Indented", + "block.minecraft.banner.triangles_bottom.light_gray": "Light Gray Base Indented", + "block.minecraft.banner.triangles_bottom.lime": "Lime Base Indented", + "block.minecraft.banner.triangles_bottom.magenta": "Magenta Base Indented", + "block.minecraft.banner.triangles_bottom.orange": "Orange Base Indented", + "block.minecraft.banner.triangles_bottom.pink": "Pink Base Indented", + "block.minecraft.banner.triangles_bottom.purple": "Purple Base Indented", + "block.minecraft.banner.triangles_bottom.red": "Red Base Indented", + "block.minecraft.banner.triangles_bottom.white": "White Base Indented", + "block.minecraft.banner.triangles_bottom.yellow": "Yellow Base Indented", + "block.minecraft.banner.triangles_top.black": "Black Chief Indented", + "block.minecraft.banner.triangles_top.blue": "Blue Chief Indented", + "block.minecraft.banner.triangles_top.brown": "Brown Chief Indented", + "block.minecraft.banner.triangles_top.cyan": "Cyan Chief Indented", + "block.minecraft.banner.triangles_top.gray": "Gray Chief Indented", + "block.minecraft.banner.triangles_top.green": "Green Chief Indented", + "block.minecraft.banner.triangles_top.light_blue": "Light Blue Chief Indented", + "block.minecraft.banner.triangles_top.light_gray": "Light Gray Chief Indented", + "block.minecraft.banner.triangles_top.lime": "Lime Chief Indented", + "block.minecraft.banner.triangles_top.magenta": "Magenta Chief Indented", + "block.minecraft.banner.triangles_top.orange": "Orange Chief Indented", + "block.minecraft.banner.triangles_top.pink": "Pink Chief Indented", + "block.minecraft.banner.triangles_top.purple": "Purple Chief Indented", + "block.minecraft.banner.triangles_top.red": "Red Chief Indented", + "block.minecraft.banner.triangles_top.white": "White Chief Indented", + "block.minecraft.banner.triangles_top.yellow": "Yellow Chief Indented", + "block.minecraft.barrel": "Barrel", + "block.minecraft.barrier": "Barrier", + "block.minecraft.basalt": "Basalt", + "block.minecraft.beacon": "Beacon", + "block.minecraft.beacon.primary": "Primary Power", + "block.minecraft.beacon.secondary": "Secondary Power", + "block.minecraft.bed.no_sleep": "You can sleep only at night or during thunderstorms", + "block.minecraft.bed.not_safe": "You may not rest now; there are monsters nearby", + "block.minecraft.bed.obstructed": "This bed is obstructed", + "block.minecraft.bed.occupied": "This bed is occupied", + "block.minecraft.bed.too_far_away": "You may not rest now; the bed is too far away", + "block.minecraft.bedrock": "Bedrock", + "block.minecraft.bee_nest": "Bee Nest", + "block.minecraft.beehive": "Beehive", + "block.minecraft.beetroots": "Beetroots", + "block.minecraft.bell": "Bell", + "block.minecraft.big_dripleaf": "Big Dripleaf", + "block.minecraft.big_dripleaf_stem": "Big Dripleaf Stem", + "block.minecraft.birch_button": "Birch Button", + "block.minecraft.birch_door": "Birch Door", + "block.minecraft.birch_fence": "Birch Fence", + "block.minecraft.birch_fence_gate": "Birch Fence Gate", + "block.minecraft.birch_hanging_sign": "Birch Hanging Sign", + "block.minecraft.birch_leaves": "Birch Leaves", + "block.minecraft.birch_log": "Birch Log", + "block.minecraft.birch_planks": "Birch Planks", + "block.minecraft.birch_pressure_plate": "Birch Pressure Plate", + "block.minecraft.birch_sapling": "Birch Sapling", + "block.minecraft.birch_sign": "Birch Sign", + "block.minecraft.birch_slab": "Birch Slab", + "block.minecraft.birch_stairs": "Birch Stairs", + "block.minecraft.birch_trapdoor": "Birch Trapdoor", + "block.minecraft.birch_wall_hanging_sign": "Birch Wall Hanging Sign", + "block.minecraft.birch_wall_sign": "Birch Wall Sign", + "block.minecraft.birch_wood": "Birch Wood", + "block.minecraft.black_banner": "Black Banner", + "block.minecraft.black_bed": "Black Bed", + "block.minecraft.black_candle": "Black Candle", + "block.minecraft.black_candle_cake": "Cake with Black Candle", + "block.minecraft.black_carpet": "Black Carpet", + "block.minecraft.black_concrete": "Black Concrete", + "block.minecraft.black_concrete_powder": "Black Concrete Powder", + "block.minecraft.black_glazed_terracotta": "Black Glazed Terracotta", + "block.minecraft.black_shulker_box": "Black Shulker Box", + "block.minecraft.black_stained_glass": "Black Stained Glass", + "block.minecraft.black_stained_glass_pane": "Black Stained Glass Pane", + "block.minecraft.black_terracotta": "Black Terracotta", + "block.minecraft.black_wool": "Black Wool", + "block.minecraft.blackstone": "Blackstone", + "block.minecraft.blackstone_slab": "Blackstone Slab", + "block.minecraft.blackstone_stairs": "Blackstone Stairs", + "block.minecraft.blackstone_wall": "Blackstone Wall", + "block.minecraft.blast_furnace": "Blast Furnace", + "block.minecraft.blue_banner": "Blue Banner", + "block.minecraft.blue_bed": "Blue Bed", + "block.minecraft.blue_candle": "Blue Candle", + "block.minecraft.blue_candle_cake": "Cake with Blue Candle", + "block.minecraft.blue_carpet": "Blue Carpet", + "block.minecraft.blue_concrete": "Blue Concrete", + "block.minecraft.blue_concrete_powder": "Blue Concrete Powder", + "block.minecraft.blue_glazed_terracotta": "Blue Glazed Terracotta", + "block.minecraft.blue_ice": "Blue Ice", + "block.minecraft.blue_orchid": "Blue Orchid", + "block.minecraft.blue_shulker_box": "Blue Shulker Box", + "block.minecraft.blue_stained_glass": "Blue Stained Glass", + "block.minecraft.blue_stained_glass_pane": "Blue Stained Glass Pane", + "block.minecraft.blue_terracotta": "Blue Terracotta", + "block.minecraft.blue_wool": "Blue Wool", + "block.minecraft.bone_block": "Bone Block", + "block.minecraft.bookshelf": "Bookshelf", + "block.minecraft.brain_coral": "Brain Coral", + "block.minecraft.brain_coral_block": "Brain Coral Block", + "block.minecraft.brain_coral_fan": "Brain Coral Fan", + "block.minecraft.brain_coral_wall_fan": "Brain Coral Wall Fan", + "block.minecraft.brewing_stand": "Brewing Stand", + "block.minecraft.brick_slab": "Brick Slab", + "block.minecraft.brick_stairs": "Brick Stairs", + "block.minecraft.brick_wall": "Brick Wall", + "block.minecraft.bricks": "Bricks", + "block.minecraft.brown_banner": "Brown Banner", + "block.minecraft.brown_bed": "Brown Bed", + "block.minecraft.brown_candle": "Brown Candle", + "block.minecraft.brown_candle_cake": "Cake with Brown Candle", + "block.minecraft.brown_carpet": "Brown Carpet", + "block.minecraft.brown_concrete": "Brown Concrete", + "block.minecraft.brown_concrete_powder": "Brown Concrete Powder", + "block.minecraft.brown_glazed_terracotta": "Brown Glazed Terracotta", + "block.minecraft.brown_mushroom": "Brown Mushroom", + "block.minecraft.brown_mushroom_block": "Brown Mushroom Block", + "block.minecraft.brown_shulker_box": "Brown Shulker Box", + "block.minecraft.brown_stained_glass": "Brown Stained Glass", + "block.minecraft.brown_stained_glass_pane": "Brown Stained Glass Pane", + "block.minecraft.brown_terracotta": "Brown Terracotta", + "block.minecraft.brown_wool": "Brown Wool", + "block.minecraft.bubble_column": "Bubble Column", + "block.minecraft.bubble_coral": "Bubble Coral", + "block.minecraft.bubble_coral_block": "Bubble Coral Block", + "block.minecraft.bubble_coral_fan": "Bubble Coral Fan", + "block.minecraft.bubble_coral_wall_fan": "Bubble Coral Wall Fan", + "block.minecraft.budding_amethyst": "Budding Amethyst", + "block.minecraft.cactus": "Cactus", + "block.minecraft.cake": "Cake", + "block.minecraft.calcite": "Calcite", + "block.minecraft.calibrated_sculk_sensor": "Calibrated Sculk Sensor", + "block.minecraft.campfire": "Campfire", + "block.minecraft.candle": "Candle", + "block.minecraft.candle_cake": "Cake with Candle", + "block.minecraft.carrots": "Carrots", + "block.minecraft.cartography_table": "Cartography Table", + "block.minecraft.carved_pumpkin": "Carved Pumpkin", + "block.minecraft.cauldron": "Cauldron", + "block.minecraft.cave_air": "Cave Air", + "block.minecraft.cave_vines": "Cave Vines", + "block.minecraft.cave_vines_plant": "Cave Vines Plant", + "block.minecraft.chain": "Chain", + "block.minecraft.chain_command_block": "Chain Command Block", + "block.minecraft.cherry_button": "Cherry Button", + "block.minecraft.cherry_door": "Cherry Door", + "block.minecraft.cherry_fence": "Cherry Fence", + "block.minecraft.cherry_fence_gate": "Cherry Fence Gate", + "block.minecraft.cherry_hanging_sign": "Cherry Hanging Sign", + "block.minecraft.cherry_leaves": "Cherry Leaves", + "block.minecraft.cherry_log": "Cherry Log", + "block.minecraft.cherry_planks": "Cherry Planks", + "block.minecraft.cherry_pressure_plate": "Cherry Pressure Plate", + "block.minecraft.cherry_sapling": "Cherry Sapling", + "block.minecraft.cherry_sign": "Cherry Sign", + "block.minecraft.cherry_slab": "Cherry Slab", + "block.minecraft.cherry_stairs": "Cherry Stairs", + "block.minecraft.cherry_trapdoor": "Cherry Trapdoor", + "block.minecraft.cherry_wall_hanging_sign": "Cherry Wall Hanging Sign", + "block.minecraft.cherry_wall_sign": "Cherry Wall Sign", + "block.minecraft.cherry_wood": "Cherry Wood", + "block.minecraft.chest": "Chest", + "block.minecraft.chipped_anvil": "Chipped Anvil", + "block.minecraft.chiseled_bookshelf": "Chiseled Bookshelf", + "block.minecraft.chiseled_copper": "Chiseled Copper", + "block.minecraft.chiseled_deepslate": "Chiseled Deepslate", + "block.minecraft.chiseled_nether_bricks": "Chiseled Nether Bricks", + "block.minecraft.chiseled_polished_blackstone": "Chiseled Polished Blackstone", + "block.minecraft.chiseled_quartz_block": "Chiseled Quartz Block", + "block.minecraft.chiseled_red_sandstone": "Chiseled Red Sandstone", + "block.minecraft.chiseled_sandstone": "Chiseled Sandstone", + "block.minecraft.chiseled_stone_bricks": "Chiseled Stone Bricks", + "block.minecraft.chiseled_tuff": "Chiseled Tuff", + "block.minecraft.chiseled_tuff_bricks": "Chiseled Tuff Bricks", + "block.minecraft.chorus_flower": "Chorus Flower", + "block.minecraft.chorus_plant": "Chorus Plant", + "block.minecraft.clay": "Clay", + "block.minecraft.coal_block": "Block of Coal", + "block.minecraft.coal_ore": "Coal Ore", + "block.minecraft.coarse_dirt": "Coarse Dirt", + "block.minecraft.cobbled_deepslate": "Cobbled Deepslate", + "block.minecraft.cobbled_deepslate_slab": "Cobbled Deepslate Slab", + "block.minecraft.cobbled_deepslate_stairs": "Cobbled Deepslate Stairs", + "block.minecraft.cobbled_deepslate_wall": "Cobbled Deepslate Wall", + "block.minecraft.cobblestone": "Cobblestone", + "block.minecraft.cobblestone_slab": "Cobblestone Slab", + "block.minecraft.cobblestone_stairs": "Cobblestone Stairs", + "block.minecraft.cobblestone_wall": "Cobblestone Wall", + "block.minecraft.cobweb": "Cobweb", + "block.minecraft.cocoa": "Cocoa", + "block.minecraft.command_block": "Command Block", + "block.minecraft.comparator": "Redstone Comparator", + "block.minecraft.composter": "Composter", + "block.minecraft.conduit": "Conduit", + "block.minecraft.copper_block": "Block of Copper", + "block.minecraft.copper_bulb": "Copper Bulb", + "block.minecraft.copper_door": "Copper Door", + "block.minecraft.copper_grate": "Copper Grate", + "block.minecraft.copper_ore": "Copper Ore", + "block.minecraft.copper_trapdoor": "Copper Trapdoor", + "block.minecraft.cornflower": "Cornflower", + "block.minecraft.cracked_deepslate_bricks": "Cracked Deepslate Bricks", + "block.minecraft.cracked_deepslate_tiles": "Cracked Deepslate Tiles", + "block.minecraft.cracked_nether_bricks": "Cracked Nether Bricks", + "block.minecraft.cracked_polished_blackstone_bricks": "Cracked Polished Blackstone Bricks", + "block.minecraft.cracked_stone_bricks": "Cracked Stone Bricks", + "block.minecraft.crafter": "Crafter", + "block.minecraft.crafting_table": "Crafting Table", + "block.minecraft.creeper_head": "Creeper Head", + "block.minecraft.creeper_wall_head": "Creeper Wall Head", + "block.minecraft.crimson_button": "Crimson Button", + "block.minecraft.crimson_door": "Crimson Door", + "block.minecraft.crimson_fence": "Crimson Fence", + "block.minecraft.crimson_fence_gate": "Crimson Fence Gate", + "block.minecraft.crimson_fungus": "Crimson Fungus", + "block.minecraft.crimson_hanging_sign": "Crimson Hanging Sign", + "block.minecraft.crimson_hyphae": "Crimson Hyphae", + "block.minecraft.crimson_nylium": "Crimson Nylium", + "block.minecraft.crimson_planks": "Crimson Planks", + "block.minecraft.crimson_pressure_plate": "Crimson Pressure Plate", + "block.minecraft.crimson_roots": "Crimson Roots", + "block.minecraft.crimson_sign": "Crimson Sign", + "block.minecraft.crimson_slab": "Crimson Slab", + "block.minecraft.crimson_stairs": "Crimson Stairs", + "block.minecraft.crimson_stem": "Crimson Stem", + "block.minecraft.crimson_trapdoor": "Crimson Trapdoor", + "block.minecraft.crimson_wall_hanging_sign": "Crimson Wall Hanging Sign", + "block.minecraft.crimson_wall_sign": "Crimson Wall Sign", + "block.minecraft.crying_obsidian": "Crying Obsidian", + "block.minecraft.cut_copper": "Cut Copper", + "block.minecraft.cut_copper_slab": "Cut Copper Slab", + "block.minecraft.cut_copper_stairs": "Cut Copper Stairs", + "block.minecraft.cut_red_sandstone": "Cut Red Sandstone", + "block.minecraft.cut_red_sandstone_slab": "Cut Red Sandstone Slab", + "block.minecraft.cut_sandstone": "Cut Sandstone", + "block.minecraft.cut_sandstone_slab": "Cut Sandstone Slab", + "block.minecraft.cyan_banner": "Cyan Banner", + "block.minecraft.cyan_bed": "Cyan Bed", + "block.minecraft.cyan_candle": "Cyan Candle", + "block.minecraft.cyan_candle_cake": "Cake with Cyan Candle", + "block.minecraft.cyan_carpet": "Cyan Carpet", + "block.minecraft.cyan_concrete": "Cyan Concrete", + "block.minecraft.cyan_concrete_powder": "Cyan Concrete Powder", + "block.minecraft.cyan_glazed_terracotta": "Cyan Glazed Terracotta", + "block.minecraft.cyan_shulker_box": "Cyan Shulker Box", + "block.minecraft.cyan_stained_glass": "Cyan Stained Glass", + "block.minecraft.cyan_stained_glass_pane": "Cyan Stained Glass Pane", + "block.minecraft.cyan_terracotta": "Cyan Terracotta", + "block.minecraft.cyan_wool": "Cyan Wool", + "block.minecraft.damaged_anvil": "Damaged Anvil", + "block.minecraft.dandelion": "Dandelion", + "block.minecraft.dark_oak_button": "Dark Oak Button", + "block.minecraft.dark_oak_door": "Dark Oak Door", + "block.minecraft.dark_oak_fence": "Dark Oak Fence", + "block.minecraft.dark_oak_fence_gate": "Dark Oak Fence Gate", + "block.minecraft.dark_oak_hanging_sign": "Dark Oak Hanging Sign", + "block.minecraft.dark_oak_leaves": "Dark Oak Leaves", + "block.minecraft.dark_oak_log": "Dark Oak Log", + "block.minecraft.dark_oak_planks": "Dark Oak Planks", + "block.minecraft.dark_oak_pressure_plate": "Dark Oak Pressure Plate", + "block.minecraft.dark_oak_sapling": "Dark Oak Sapling", + "block.minecraft.dark_oak_sign": "Dark Oak Sign", + "block.minecraft.dark_oak_slab": "Dark Oak Slab", + "block.minecraft.dark_oak_stairs": "Dark Oak Stairs", + "block.minecraft.dark_oak_trapdoor": "Dark Oak Trapdoor", + "block.minecraft.dark_oak_wall_hanging_sign": "Dark Oak Wall Hanging Sign", + "block.minecraft.dark_oak_wall_sign": "Dark Oak Wall Sign", + "block.minecraft.dark_oak_wood": "Dark Oak Wood", + "block.minecraft.dark_prismarine": "Dark Prismarine", + "block.minecraft.dark_prismarine_slab": "Dark Prismarine Slab", + "block.minecraft.dark_prismarine_stairs": "Dark Prismarine Stairs", + "block.minecraft.daylight_detector": "Daylight Detector", + "block.minecraft.dead_brain_coral": "Dead Brain Coral", + "block.minecraft.dead_brain_coral_block": "Dead Brain Coral Block", + "block.minecraft.dead_brain_coral_fan": "Dead Brain Coral Fan", + "block.minecraft.dead_brain_coral_wall_fan": "Dead Brain Coral Wall Fan", + "block.minecraft.dead_bubble_coral": "Dead Bubble Coral", + "block.minecraft.dead_bubble_coral_block": "Dead Bubble Coral Block", + "block.minecraft.dead_bubble_coral_fan": "Dead Bubble Coral Fan", + "block.minecraft.dead_bubble_coral_wall_fan": "Dead Bubble Coral Wall Fan", + "block.minecraft.dead_bush": "Dead Bush", + "block.minecraft.dead_fire_coral": "Dead Fire Coral", + "block.minecraft.dead_fire_coral_block": "Dead Fire Coral Block", + "block.minecraft.dead_fire_coral_fan": "Dead Fire Coral Fan", + "block.minecraft.dead_fire_coral_wall_fan": "Dead Fire Coral Wall Fan", + "block.minecraft.dead_horn_coral": "Dead Horn Coral", + "block.minecraft.dead_horn_coral_block": "Dead Horn Coral Block", + "block.minecraft.dead_horn_coral_fan": "Dead Horn Coral Fan", + "block.minecraft.dead_horn_coral_wall_fan": "Dead Horn Coral Wall Fan", + "block.minecraft.dead_tube_coral": "Dead Tube Coral", + "block.minecraft.dead_tube_coral_block": "Dead Tube Coral Block", + "block.minecraft.dead_tube_coral_fan": "Dead Tube Coral Fan", + "block.minecraft.dead_tube_coral_wall_fan": "Dead Tube Coral Wall Fan", + "block.minecraft.decorated_pot": "Decorated Pot", + "block.minecraft.deepslate": "Deepslate", + "block.minecraft.deepslate_brick_slab": "Deepslate Brick Slab", + "block.minecraft.deepslate_brick_stairs": "Deepslate Brick Stairs", + "block.minecraft.deepslate_brick_wall": "Deepslate Brick Wall", + "block.minecraft.deepslate_bricks": "Deepslate Bricks", + "block.minecraft.deepslate_coal_ore": "Deepslate Coal Ore", + "block.minecraft.deepslate_copper_ore": "Deepslate Copper Ore", + "block.minecraft.deepslate_diamond_ore": "Deepslate Diamond Ore", + "block.minecraft.deepslate_emerald_ore": "Deepslate Emerald Ore", + "block.minecraft.deepslate_gold_ore": "Deepslate Gold Ore", + "block.minecraft.deepslate_iron_ore": "Deepslate Iron Ore", + "block.minecraft.deepslate_lapis_ore": "Deepslate Lapis Lazuli Ore", + "block.minecraft.deepslate_redstone_ore": "Deepslate Redstone Ore", + "block.minecraft.deepslate_tile_slab": "Deepslate Tile Slab", + "block.minecraft.deepslate_tile_stairs": "Deepslate Tile Stairs", + "block.minecraft.deepslate_tile_wall": "Deepslate Tile Wall", + "block.minecraft.deepslate_tiles": "Deepslate Tiles", + "block.minecraft.detector_rail": "Detector Rail", + "block.minecraft.diamond_block": "Block of Diamond", + "block.minecraft.diamond_ore": "Diamond Ore", + "block.minecraft.diorite": "Diorite", + "block.minecraft.diorite_slab": "Diorite Slab", + "block.minecraft.diorite_stairs": "Diorite Stairs", + "block.minecraft.diorite_wall": "Diorite Wall", + "block.minecraft.dirt": "Dirt", + "block.minecraft.dirt_path": "Dirt Path", + "block.minecraft.dispenser": "Dispenser", + "block.minecraft.dragon_egg": "Dragon Egg", + "block.minecraft.dragon_head": "Dragon Head", + "block.minecraft.dragon_wall_head": "Dragon Wall Head", + "block.minecraft.dried_kelp_block": "Dried Kelp Block", + "block.minecraft.dripstone_block": "Dripstone Block", + "block.minecraft.dropper": "Dropper", + "block.minecraft.emerald_block": "Block of Emerald", + "block.minecraft.emerald_ore": "Emerald Ore", + "block.minecraft.enchanting_table": "Enchanting Table", + "block.minecraft.end_gateway": "End Gateway", + "block.minecraft.end_portal": "End Portal", + "block.minecraft.end_portal_frame": "End Portal Frame", + "block.minecraft.end_rod": "End Rod", + "block.minecraft.end_stone": "End Stone", + "block.minecraft.end_stone_brick_slab": "End Stone Brick Slab", + "block.minecraft.end_stone_brick_stairs": "End Stone Brick Stairs", + "block.minecraft.end_stone_brick_wall": "End Stone Brick Wall", + "block.minecraft.end_stone_bricks": "End Stone Bricks", + "block.minecraft.ender_chest": "Ender Chest", + "block.minecraft.exposed_chiseled_copper": "Exposed Chiseled Copper", + "block.minecraft.exposed_copper": "Exposed Copper", + "block.minecraft.exposed_copper_bulb": "Exposed Copper Bulb", + "block.minecraft.exposed_copper_door": "Exposed Copper Door", + "block.minecraft.exposed_copper_grate": "Exposed Copper Grate", + "block.minecraft.exposed_copper_trapdoor": "Exposed Copper Trapdoor", + "block.minecraft.exposed_cut_copper": "Exposed Cut Copper", + "block.minecraft.exposed_cut_copper_slab": "Exposed Cut Copper Slab", + "block.minecraft.exposed_cut_copper_stairs": "Exposed Cut Copper Stairs", + "block.minecraft.farmland": "Farmland", + "block.minecraft.fern": "Fern", + "block.minecraft.fire": "Fire", + "block.minecraft.fire_coral": "Fire Coral", + "block.minecraft.fire_coral_block": "Fire Coral Block", + "block.minecraft.fire_coral_fan": "Fire Coral Fan", + "block.minecraft.fire_coral_wall_fan": "Fire Coral Wall Fan", + "block.minecraft.fletching_table": "Fletching Table", + "block.minecraft.flower_pot": "Flower Pot", + "block.minecraft.flowering_azalea": "Flowering Azalea", + "block.minecraft.flowering_azalea_leaves": "Flowering Azalea Leaves", + "block.minecraft.frogspawn": "Frogspawn", + "block.minecraft.frosted_ice": "Frosted Ice", + "block.minecraft.furnace": "Furnace", + "block.minecraft.gilded_blackstone": "Gilded Blackstone", + "block.minecraft.glass": "Glass", + "block.minecraft.glass_pane": "Glass Pane", + "block.minecraft.glow_lichen": "Glow Lichen", + "block.minecraft.glowstone": "Glowstone", + "block.minecraft.gold_block": "Block of Gold", + "block.minecraft.gold_ore": "Gold Ore", + "block.minecraft.granite": "Granite", + "block.minecraft.granite_slab": "Granite Slab", + "block.minecraft.granite_stairs": "Granite Stairs", + "block.minecraft.granite_wall": "Granite Wall", + "block.minecraft.grass": "Grass", + "block.minecraft.grass_block": "Grass Block", + "block.minecraft.gravel": "Gravel", + "block.minecraft.gray_banner": "Gray Banner", + "block.minecraft.gray_bed": "Gray Bed", + "block.minecraft.gray_candle": "Gray Candle", + "block.minecraft.gray_candle_cake": "Cake with Gray Candle", + "block.minecraft.gray_carpet": "Gray Carpet", + "block.minecraft.gray_concrete": "Gray Concrete", + "block.minecraft.gray_concrete_powder": "Gray Concrete Powder", + "block.minecraft.gray_glazed_terracotta": "Gray Glazed Terracotta", + "block.minecraft.gray_shulker_box": "Gray Shulker Box", + "block.minecraft.gray_stained_glass": "Gray Stained Glass", + "block.minecraft.gray_stained_glass_pane": "Gray Stained Glass Pane", + "block.minecraft.gray_terracotta": "Gray Terracotta", + "block.minecraft.gray_wool": "Gray Wool", + "block.minecraft.green_banner": "Green Banner", + "block.minecraft.green_bed": "Green Bed", + "block.minecraft.green_candle": "Green Candle", + "block.minecraft.green_candle_cake": "Cake with Green Candle", + "block.minecraft.green_carpet": "Green Carpet", + "block.minecraft.green_concrete": "Green Concrete", + "block.minecraft.green_concrete_powder": "Green Concrete Powder", + "block.minecraft.green_glazed_terracotta": "Green Glazed Terracotta", + "block.minecraft.green_shulker_box": "Green Shulker Box", + "block.minecraft.green_stained_glass": "Green Stained Glass", + "block.minecraft.green_stained_glass_pane": "Green Stained Glass Pane", + "block.minecraft.green_terracotta": "Green Terracotta", + "block.minecraft.green_wool": "Green Wool", + "block.minecraft.grindstone": "Grindstone", + "block.minecraft.hanging_roots": "Hanging Roots", + "block.minecraft.hay_block": "Hay Bale", + "block.minecraft.heavy_weighted_pressure_plate": "Heavy Weighted Pressure Plate", + "block.minecraft.honey_block": "Honey Block", + "block.minecraft.honeycomb_block": "Honeycomb Block", + "block.minecraft.hopper": "Hopper", + "block.minecraft.horn_coral": "Horn Coral", + "block.minecraft.horn_coral_block": "Horn Coral Block", + "block.minecraft.horn_coral_fan": "Horn Coral Fan", + "block.minecraft.horn_coral_wall_fan": "Horn Coral Wall Fan", + "block.minecraft.ice": "Ice", + "block.minecraft.infested_chiseled_stone_bricks": "Infested Chiseled Stone Bricks", + "block.minecraft.infested_cobblestone": "Infested Cobblestone", + "block.minecraft.infested_cracked_stone_bricks": "Infested Cracked Stone Bricks", + "block.minecraft.infested_deepslate": "Infested Deepslate", + "block.minecraft.infested_mossy_stone_bricks": "Infested Mossy Stone Bricks", + "block.minecraft.infested_stone": "Infested Stone", + "block.minecraft.infested_stone_bricks": "Infested Stone Bricks", + "block.minecraft.iron_bars": "Iron Bars", + "block.minecraft.iron_block": "Block of Iron", + "block.minecraft.iron_door": "Iron Door", + "block.minecraft.iron_ore": "Iron Ore", + "block.minecraft.iron_trapdoor": "Iron Trapdoor", + "block.minecraft.jack_o_lantern": "Jack o'Lantern", + "block.minecraft.jigsaw": "Jigsaw Block", + "block.minecraft.jukebox": "Jukebox", + "block.minecraft.jungle_button": "Jungle Button", + "block.minecraft.jungle_door": "Jungle Door", + "block.minecraft.jungle_fence": "Jungle Fence", + "block.minecraft.jungle_fence_gate": "Jungle Fence Gate", + "block.minecraft.jungle_hanging_sign": "Jungle Hanging Sign", + "block.minecraft.jungle_leaves": "Jungle Leaves", + "block.minecraft.jungle_log": "Jungle Log", + "block.minecraft.jungle_planks": "Jungle Planks", + "block.minecraft.jungle_pressure_plate": "Jungle Pressure Plate", + "block.minecraft.jungle_sapling": "Jungle Sapling", + "block.minecraft.jungle_sign": "Jungle Sign", + "block.minecraft.jungle_slab": "Jungle Slab", + "block.minecraft.jungle_stairs": "Jungle Stairs", + "block.minecraft.jungle_trapdoor": "Jungle Trapdoor", + "block.minecraft.jungle_wall_hanging_sign": "Jungle Wall Hanging Sign", + "block.minecraft.jungle_wall_sign": "Jungle Wall Sign", + "block.minecraft.jungle_wood": "Jungle Wood", + "block.minecraft.kelp": "Kelp", + "block.minecraft.kelp_plant": "Kelp Plant", + "block.minecraft.ladder": "Ladder", + "block.minecraft.lantern": "Lantern", + "block.minecraft.lapis_block": "Block of Lapis Lazuli", + "block.minecraft.lapis_ore": "Lapis Lazuli Ore", + "block.minecraft.large_amethyst_bud": "Large Amethyst Bud", + "block.minecraft.large_fern": "Large Fern", + "block.minecraft.lava": "Lava", + "block.minecraft.lava_cauldron": "Lava Cauldron", + "block.minecraft.lectern": "Lectern", + "block.minecraft.lever": "Lever", + "block.minecraft.light": "Light", + "block.minecraft.light_blue_banner": "Light Blue Banner", + "block.minecraft.light_blue_bed": "Light Blue Bed", + "block.minecraft.light_blue_candle": "Light Blue Candle", + "block.minecraft.light_blue_candle_cake": "Cake with Light Blue Candle", + "block.minecraft.light_blue_carpet": "Light Blue Carpet", + "block.minecraft.light_blue_concrete": "Light Blue Concrete", + "block.minecraft.light_blue_concrete_powder": "Light Blue Concrete Powder", + "block.minecraft.light_blue_glazed_terracotta": "Light Blue Glazed Terracotta", + "block.minecraft.light_blue_shulker_box": "Light Blue Shulker Box", + "block.minecraft.light_blue_stained_glass": "Light Blue Stained Glass", + "block.minecraft.light_blue_stained_glass_pane": "Light Blue Stained Glass Pane", + "block.minecraft.light_blue_terracotta": "Light Blue Terracotta", + "block.minecraft.light_blue_wool": "Light Blue Wool", + "block.minecraft.light_gray_banner": "Light Gray Banner", + "block.minecraft.light_gray_bed": "Light Gray Bed", + "block.minecraft.light_gray_candle": "Light Gray Candle", + "block.minecraft.light_gray_candle_cake": "Cake with Light Gray Candle", + "block.minecraft.light_gray_carpet": "Light Gray Carpet", + "block.minecraft.light_gray_concrete": "Light Gray Concrete", + "block.minecraft.light_gray_concrete_powder": "Light Gray Concrete Powder", + "block.minecraft.light_gray_glazed_terracotta": "Light Gray Glazed Terracotta", + "block.minecraft.light_gray_shulker_box": "Light Gray Shulker Box", + "block.minecraft.light_gray_stained_glass": "Light Gray Stained Glass", + "block.minecraft.light_gray_stained_glass_pane": "Light Gray Stained Glass Pane", + "block.minecraft.light_gray_terracotta": "Light Gray Terracotta", + "block.minecraft.light_gray_wool": "Light Gray Wool", + "block.minecraft.light_weighted_pressure_plate": "Light Weighted Pressure Plate", + "block.minecraft.lightning_rod": "Lightning Rod", + "block.minecraft.lilac": "Lilac", + "block.minecraft.lily_of_the_valley": "Lily of the Valley", + "block.minecraft.lily_pad": "Lily Pad", + "block.minecraft.lime_banner": "Lime Banner", + "block.minecraft.lime_bed": "Lime Bed", + "block.minecraft.lime_candle": "Lime Candle", + "block.minecraft.lime_candle_cake": "Cake with Lime Candle", + "block.minecraft.lime_carpet": "Lime Carpet", + "block.minecraft.lime_concrete": "Lime Concrete", + "block.minecraft.lime_concrete_powder": "Lime Concrete Powder", + "block.minecraft.lime_glazed_terracotta": "Lime Glazed Terracotta", + "block.minecraft.lime_shulker_box": "Lime Shulker Box", + "block.minecraft.lime_stained_glass": "Lime Stained Glass", + "block.minecraft.lime_stained_glass_pane": "Lime Stained Glass Pane", + "block.minecraft.lime_terracotta": "Lime Terracotta", + "block.minecraft.lime_wool": "Lime Wool", + "block.minecraft.lodestone": "Lodestone", + "block.minecraft.loom": "Loom", + "block.minecraft.magenta_banner": "Magenta Banner", + "block.minecraft.magenta_bed": "Magenta Bed", + "block.minecraft.magenta_candle": "Magenta Candle", + "block.minecraft.magenta_candle_cake": "Cake with Magenta Candle", + "block.minecraft.magenta_carpet": "Magenta Carpet", + "block.minecraft.magenta_concrete": "Magenta Concrete", + "block.minecraft.magenta_concrete_powder": "Magenta Concrete Powder", + "block.minecraft.magenta_glazed_terracotta": "Magenta Glazed Terracotta", + "block.minecraft.magenta_shulker_box": "Magenta Shulker Box", + "block.minecraft.magenta_stained_glass": "Magenta Stained Glass", + "block.minecraft.magenta_stained_glass_pane": "Magenta Stained Glass Pane", + "block.minecraft.magenta_terracotta": "Magenta Terracotta", + "block.minecraft.magenta_wool": "Magenta Wool", + "block.minecraft.magma_block": "Magma Block", + "block.minecraft.mangrove_button": "Mangrove Button", + "block.minecraft.mangrove_door": "Mangrove Door", + "block.minecraft.mangrove_fence": "Mangrove Fence", + "block.minecraft.mangrove_fence_gate": "Mangrove Fence Gate", + "block.minecraft.mangrove_hanging_sign": "Mangrove Hanging Sign", + "block.minecraft.mangrove_leaves": "Mangrove Leaves", + "block.minecraft.mangrove_log": "Mangrove Log", + "block.minecraft.mangrove_planks": "Mangrove Planks", + "block.minecraft.mangrove_pressure_plate": "Mangrove Pressure Plate", + "block.minecraft.mangrove_propagule": "Mangrove Propagule", + "block.minecraft.mangrove_roots": "Mangrove Roots", + "block.minecraft.mangrove_sign": "Mangrove Sign", + "block.minecraft.mangrove_slab": "Mangrove Slab", + "block.minecraft.mangrove_stairs": "Mangrove Stairs", + "block.minecraft.mangrove_trapdoor": "Mangrove Trapdoor", + "block.minecraft.mangrove_wall_hanging_sign": "Mangrove Wall Hanging Sign", + "block.minecraft.mangrove_wall_sign": "Mangrove Wall Sign", + "block.minecraft.mangrove_wood": "Mangrove Wood", + "block.minecraft.medium_amethyst_bud": "Medium Amethyst Bud", + "block.minecraft.melon": "Melon", + "block.minecraft.melon_stem": "Melon Stem", + "block.minecraft.moss_block": "Moss Block", + "block.minecraft.moss_carpet": "Moss Carpet", + "block.minecraft.mossy_cobblestone": "Mossy Cobblestone", + "block.minecraft.mossy_cobblestone_slab": "Mossy Cobblestone Slab", + "block.minecraft.mossy_cobblestone_stairs": "Mossy Cobblestone Stairs", + "block.minecraft.mossy_cobblestone_wall": "Mossy Cobblestone Wall", + "block.minecraft.mossy_stone_brick_slab": "Mossy Stone Brick Slab", + "block.minecraft.mossy_stone_brick_stairs": "Mossy Stone Brick Stairs", + "block.minecraft.mossy_stone_brick_wall": "Mossy Stone Brick Wall", + "block.minecraft.mossy_stone_bricks": "Mossy Stone Bricks", + "block.minecraft.moving_piston": "Moving Piston", + "block.minecraft.mud": "Mud", + "block.minecraft.mud_brick_slab": "Mud Brick Slab", + "block.minecraft.mud_brick_stairs": "Mud Brick Stairs", + "block.minecraft.mud_brick_wall": "Mud Brick Wall", + "block.minecraft.mud_bricks": "Mud Bricks", + "block.minecraft.muddy_mangrove_roots": "Muddy Mangrove Roots", + "block.minecraft.mushroom_stem": "Mushroom Stem", + "block.minecraft.mycelium": "Mycelium", + "block.minecraft.nether_brick_fence": "Nether Brick Fence", + "block.minecraft.nether_brick_slab": "Nether Brick Slab", + "block.minecraft.nether_brick_stairs": "Nether Brick Stairs", + "block.minecraft.nether_brick_wall": "Nether Brick Wall", + "block.minecraft.nether_bricks": "Nether Bricks", + "block.minecraft.nether_gold_ore": "Nether Gold Ore", + "block.minecraft.nether_portal": "Nether Portal", + "block.minecraft.nether_quartz_ore": "Nether Quartz Ore", + "block.minecraft.nether_sprouts": "Nether Sprouts", + "block.minecraft.nether_wart": "Nether Wart", + "block.minecraft.nether_wart_block": "Nether Wart Block", + "block.minecraft.netherite_block": "Block of Netherite", + "block.minecraft.netherrack": "Netherrack", + "block.minecraft.note_block": "Note Block", + "block.minecraft.oak_button": "Oak Button", + "block.minecraft.oak_door": "Oak Door", + "block.minecraft.oak_fence": "Oak Fence", + "block.minecraft.oak_fence_gate": "Oak Fence Gate", + "block.minecraft.oak_hanging_sign": "Oak Hanging Sign", + "block.minecraft.oak_leaves": "Oak Leaves", + "block.minecraft.oak_log": "Oak Log", + "block.minecraft.oak_planks": "Oak Planks", + "block.minecraft.oak_pressure_plate": "Oak Pressure Plate", + "block.minecraft.oak_sapling": "Oak Sapling", + "block.minecraft.oak_sign": "Oak Sign", + "block.minecraft.oak_slab": "Oak Slab", + "block.minecraft.oak_stairs": "Oak Stairs", + "block.minecraft.oak_trapdoor": "Oak Trapdoor", + "block.minecraft.oak_wall_hanging_sign": "Oak Wall Hanging Sign", + "block.minecraft.oak_wall_sign": "Oak Wall Sign", + "block.minecraft.oak_wood": "Oak Wood", + "block.minecraft.observer": "Observer", + "block.minecraft.obsidian": "Obsidian", + "block.minecraft.ochre_froglight": "Ochre Froglight", + "block.minecraft.ominous_banner": "Ominous Banner", + "block.minecraft.orange_banner": "Orange Banner", + "block.minecraft.orange_bed": "Orange Bed", + "block.minecraft.orange_candle": "Orange Candle", + "block.minecraft.orange_candle_cake": "Cake with Orange Candle", + "block.minecraft.orange_carpet": "Orange Carpet", + "block.minecraft.orange_concrete": "Orange Concrete", + "block.minecraft.orange_concrete_powder": "Orange Concrete Powder", + "block.minecraft.orange_glazed_terracotta": "Orange Glazed Terracotta", + "block.minecraft.orange_shulker_box": "Orange Shulker Box", + "block.minecraft.orange_stained_glass": "Orange Stained Glass", + "block.minecraft.orange_stained_glass_pane": "Orange Stained Glass Pane", + "block.minecraft.orange_terracotta": "Orange Terracotta", + "block.minecraft.orange_tulip": "Orange Tulip", + "block.minecraft.orange_wool": "Orange Wool", + "block.minecraft.oxeye_daisy": "Oxeye Daisy", + "block.minecraft.oxidized_chiseled_copper": "Oxidized Chiseled Copper", + "block.minecraft.oxidized_copper": "Oxidized Copper", + "block.minecraft.oxidized_copper_bulb": "Oxidized Copper Bulb", + "block.minecraft.oxidized_copper_door": "Oxidized Copper Door", + "block.minecraft.oxidized_copper_grate": "Oxidized Copper Grate", + "block.minecraft.oxidized_copper_trapdoor": "Oxidized Copper Trapdoor", + "block.minecraft.oxidized_cut_copper": "Oxidized Cut Copper", + "block.minecraft.oxidized_cut_copper_slab": "Oxidized Cut Copper Slab", + "block.minecraft.oxidized_cut_copper_stairs": "Oxidized Cut Copper Stairs", + "block.minecraft.packed_ice": "Packed Ice", + "block.minecraft.packed_mud": "Packed Mud", + "block.minecraft.pearlescent_froglight": "Pearlescent Froglight", + "block.minecraft.peony": "Peony", + "block.minecraft.petrified_oak_slab": "Petrified Oak Slab", + "block.minecraft.piglin_head": "Piglin Head", + "block.minecraft.piglin_wall_head": "Piglin Wall Head", + "block.minecraft.pink_banner": "Pink Banner", + "block.minecraft.pink_bed": "Pink Bed", + "block.minecraft.pink_candle": "Pink Candle", + "block.minecraft.pink_candle_cake": "Cake with Pink Candle", + "block.minecraft.pink_carpet": "Pink Carpet", + "block.minecraft.pink_concrete": "Pink Concrete", + "block.minecraft.pink_concrete_powder": "Pink Concrete Powder", + "block.minecraft.pink_glazed_terracotta": "Pink Glazed Terracotta", + "block.minecraft.pink_petals": "Pink Petals", + "block.minecraft.pink_shulker_box": "Pink Shulker Box", + "block.minecraft.pink_stained_glass": "Pink Stained Glass", + "block.minecraft.pink_stained_glass_pane": "Pink Stained Glass Pane", + "block.minecraft.pink_terracotta": "Pink Terracotta", + "block.minecraft.pink_tulip": "Pink Tulip", + "block.minecraft.pink_wool": "Pink Wool", + "block.minecraft.piston": "Piston", + "block.minecraft.piston_head": "Piston Head", + "block.minecraft.pitcher_crop": "Pitcher Crop", + "block.minecraft.pitcher_plant": "Pitcher Plant", + "block.minecraft.player_head": "Player Head", + "block.minecraft.player_head.named": "%s's Head", + "block.minecraft.player_wall_head": "Player Wall Head", + "block.minecraft.podzol": "Podzol", + "block.minecraft.pointed_dripstone": "Pointed Dripstone", + "block.minecraft.polished_andesite": "Polished Andesite", + "block.minecraft.polished_andesite_slab": "Polished Andesite Slab", + "block.minecraft.polished_andesite_stairs": "Polished Andesite Stairs", + "block.minecraft.polished_basalt": "Polished Basalt", + "block.minecraft.polished_blackstone": "Polished Blackstone", + "block.minecraft.polished_blackstone_brick_slab": "Polished Blackstone Brick Slab", + "block.minecraft.polished_blackstone_brick_stairs": "Polished Blackstone Brick Stairs", + "block.minecraft.polished_blackstone_brick_wall": "Polished Blackstone Brick Wall", + "block.minecraft.polished_blackstone_bricks": "Polished Blackstone Bricks", + "block.minecraft.polished_blackstone_button": "Polished Blackstone Button", + "block.minecraft.polished_blackstone_pressure_plate": "Polished Blackstone Pressure Plate", + "block.minecraft.polished_blackstone_slab": "Polished Blackstone Slab", + "block.minecraft.polished_blackstone_stairs": "Polished Blackstone Stairs", + "block.minecraft.polished_blackstone_wall": "Polished Blackstone Wall", + "block.minecraft.polished_deepslate": "Polished Deepslate", + "block.minecraft.polished_deepslate_slab": "Polished Deepslate Slab", + "block.minecraft.polished_deepslate_stairs": "Polished Deepslate Stairs", + "block.minecraft.polished_deepslate_wall": "Polished Deepslate Wall", + "block.minecraft.polished_diorite": "Polished Diorite", + "block.minecraft.polished_diorite_slab": "Polished Diorite Slab", + "block.minecraft.polished_diorite_stairs": "Polished Diorite Stairs", + "block.minecraft.polished_granite": "Polished Granite", + "block.minecraft.polished_granite_slab": "Polished Granite Slab", + "block.minecraft.polished_granite_stairs": "Polished Granite Stairs", + "block.minecraft.polished_tuff": "Polished Tuff", + "block.minecraft.polished_tuff_slab": "Polished Tuff Slab", + "block.minecraft.polished_tuff_stairs": "Polished Tuff Stairs", + "block.minecraft.polished_tuff_wall": "Polished Tuff Wall", + "block.minecraft.poppy": "Poppy", + "block.minecraft.potatoes": "Potatoes", + "block.minecraft.potted_acacia_sapling": "Potted Acacia Sapling", + "block.minecraft.potted_allium": "Potted Allium", + "block.minecraft.potted_azalea_bush": "Potted Azalea", + "block.minecraft.potted_azure_bluet": "Potted Azure Bluet", + "block.minecraft.potted_bamboo": "Potted Bamboo", + "block.minecraft.potted_birch_sapling": "Potted Birch Sapling", + "block.minecraft.potted_blue_orchid": "Potted Blue Orchid", + "block.minecraft.potted_brown_mushroom": "Potted Brown Mushroom", + "block.minecraft.potted_cactus": "Potted Cactus", + "block.minecraft.potted_cherry_sapling": "Potted Cherry Sapling", + "block.minecraft.potted_cornflower": "Potted Cornflower", + "block.minecraft.potted_crimson_fungus": "Potted Crimson Fungus", + "block.minecraft.potted_crimson_roots": "Potted Crimson Roots", + "block.minecraft.potted_dandelion": "Potted Dandelion", + "block.minecraft.potted_dark_oak_sapling": "Potted Dark Oak Sapling", + "block.minecraft.potted_dead_bush": "Potted Dead Bush", + "block.minecraft.potted_fern": "Potted Fern", + "block.minecraft.potted_flowering_azalea_bush": "Potted Flowering Azalea", + "block.minecraft.potted_jungle_sapling": "Potted Jungle Sapling", + "block.minecraft.potted_lily_of_the_valley": "Potted Lily of the Valley", + "block.minecraft.potted_mangrove_propagule": "Potted Mangrove Propagule", + "block.minecraft.potted_oak_sapling": "Potted Oak Sapling", + "block.minecraft.potted_orange_tulip": "Potted Orange Tulip", + "block.minecraft.potted_oxeye_daisy": "Potted Oxeye Daisy", + "block.minecraft.potted_pink_tulip": "Potted Pink Tulip", + "block.minecraft.potted_poppy": "Potted Poppy", + "block.minecraft.potted_red_mushroom": "Potted Red Mushroom", + "block.minecraft.potted_red_tulip": "Potted Red Tulip", + "block.minecraft.potted_spruce_sapling": "Potted Spruce Sapling", + "block.minecraft.potted_torchflower": "Potted Torchflower", + "block.minecraft.potted_warped_fungus": "Potted Warped Fungus", + "block.minecraft.potted_warped_roots": "Potted Warped Roots", + "block.minecraft.potted_white_tulip": "Potted White Tulip", + "block.minecraft.potted_wither_rose": "Potted Wither Rose", + "block.minecraft.powder_snow": "Powder Snow", + "block.minecraft.powder_snow_cauldron": "Powder Snow Cauldron", + "block.minecraft.powered_rail": "Powered Rail", + "block.minecraft.prismarine": "Prismarine", + "block.minecraft.prismarine_brick_slab": "Prismarine Brick Slab", + "block.minecraft.prismarine_brick_stairs": "Prismarine Brick Stairs", + "block.minecraft.prismarine_bricks": "Prismarine Bricks", + "block.minecraft.prismarine_slab": "Prismarine Slab", + "block.minecraft.prismarine_stairs": "Prismarine Stairs", + "block.minecraft.prismarine_wall": "Prismarine Wall", + "block.minecraft.pumpkin": "Pumpkin", + "block.minecraft.pumpkin_stem": "Pumpkin Stem", + "block.minecraft.purple_banner": "Purple Banner", + "block.minecraft.purple_bed": "Purple Bed", + "block.minecraft.purple_candle": "Purple Candle", + "block.minecraft.purple_candle_cake": "Cake with Purple Candle", + "block.minecraft.purple_carpet": "Purple Carpet", + "block.minecraft.purple_concrete": "Purple Concrete", + "block.minecraft.purple_concrete_powder": "Purple Concrete Powder", + "block.minecraft.purple_glazed_terracotta": "Purple Glazed Terracotta", + "block.minecraft.purple_shulker_box": "Purple Shulker Box", + "block.minecraft.purple_stained_glass": "Purple Stained Glass", + "block.minecraft.purple_stained_glass_pane": "Purple Stained Glass Pane", + "block.minecraft.purple_terracotta": "Purple Terracotta", + "block.minecraft.purple_wool": "Purple Wool", + "block.minecraft.purpur_block": "Purpur Block", + "block.minecraft.purpur_pillar": "Purpur Pillar", + "block.minecraft.purpur_slab": "Purpur Slab", + "block.minecraft.purpur_stairs": "Purpur Stairs", + "block.minecraft.quartz_block": "Block of Quartz", + "block.minecraft.quartz_bricks": "Quartz Bricks", + "block.minecraft.quartz_pillar": "Quartz Pillar", + "block.minecraft.quartz_slab": "Quartz Slab", + "block.minecraft.quartz_stairs": "Quartz Stairs", + "block.minecraft.rail": "Rail", + "block.minecraft.raw_copper_block": "Block of Raw Copper", + "block.minecraft.raw_gold_block": "Block of Raw Gold", + "block.minecraft.raw_iron_block": "Block of Raw Iron", + "block.minecraft.red_banner": "Red Banner", + "block.minecraft.red_bed": "Red Bed", + "block.minecraft.red_candle": "Red Candle", + "block.minecraft.red_candle_cake": "Cake with Red Candle", + "block.minecraft.red_carpet": "Red Carpet", + "block.minecraft.red_concrete": "Red Concrete", + "block.minecraft.red_concrete_powder": "Red Concrete Powder", + "block.minecraft.red_glazed_terracotta": "Red Glazed Terracotta", + "block.minecraft.red_mushroom": "Red Mushroom", + "block.minecraft.red_mushroom_block": "Red Mushroom Block", + "block.minecraft.red_nether_brick_slab": "Red Nether Brick Slab", + "block.minecraft.red_nether_brick_stairs": "Red Nether Brick Stairs", + "block.minecraft.red_nether_brick_wall": "Red Nether Brick Wall", + "block.minecraft.red_nether_bricks": "Red Nether Bricks", + "block.minecraft.red_sand": "Red Sand", + "block.minecraft.red_sandstone": "Red Sandstone", + "block.minecraft.red_sandstone_slab": "Red Sandstone Slab", + "block.minecraft.red_sandstone_stairs": "Red Sandstone Stairs", + "block.minecraft.red_sandstone_wall": "Red Sandstone Wall", + "block.minecraft.red_shulker_box": "Red Shulker Box", + "block.minecraft.red_stained_glass": "Red Stained Glass", + "block.minecraft.red_stained_glass_pane": "Red Stained Glass Pane", + "block.minecraft.red_terracotta": "Red Terracotta", + "block.minecraft.red_tulip": "Red Tulip", + "block.minecraft.red_wool": "Red Wool", + "block.minecraft.redstone_block": "Block of Redstone", + "block.minecraft.redstone_lamp": "Redstone Lamp", + "block.minecraft.redstone_ore": "Redstone Ore", + "block.minecraft.redstone_torch": "Redstone Torch", + "block.minecraft.redstone_wall_torch": "Redstone Wall Torch", + "block.minecraft.redstone_wire": "Redstone Wire", + "block.minecraft.reinforced_deepslate": "Reinforced Deepslate", + "block.minecraft.repeater": "Redstone Repeater", + "block.minecraft.repeating_command_block": "Repeating Command Block", + "block.minecraft.respawn_anchor": "Respawn Anchor", + "block.minecraft.rooted_dirt": "Rooted Dirt", + "block.minecraft.rose_bush": "Rose Bush", + "block.minecraft.sand": "Sand", + "block.minecraft.sandstone": "Sandstone", + "block.minecraft.sandstone_slab": "Sandstone Slab", + "block.minecraft.sandstone_stairs": "Sandstone Stairs", + "block.minecraft.sandstone_wall": "Sandstone Wall", + "block.minecraft.scaffolding": "Scaffolding", + "block.minecraft.sculk": "Sculk", + "block.minecraft.sculk_catalyst": "Sculk Catalyst", + "block.minecraft.sculk_sensor": "Sculk Sensor", + "block.minecraft.sculk_shrieker": "Sculk Shrieker", + "block.minecraft.sculk_vein": "Sculk Vein", + "block.minecraft.sea_lantern": "Sea Lantern", + "block.minecraft.sea_pickle": "Sea Pickle", + "block.minecraft.seagrass": "Seagrass", + "block.minecraft.set_spawn": "Respawn point set", + "block.minecraft.short_grass": "Short Grass", + "block.minecraft.shroomlight": "Shroomlight", + "block.minecraft.shulker_box": "Shulker Box", + "block.minecraft.skeleton_skull": "Skeleton Skull", + "block.minecraft.skeleton_wall_skull": "Skeleton Wall Skull", + "block.minecraft.slime_block": "Slime Block", + "block.minecraft.small_amethyst_bud": "Small Amethyst Bud", + "block.minecraft.small_dripleaf": "Small Dripleaf", + "block.minecraft.smithing_table": "Smithing Table", + "block.minecraft.smoker": "Smoker", + "block.minecraft.smooth_basalt": "Smooth Basalt", + "block.minecraft.smooth_quartz": "Smooth Quartz Block", + "block.minecraft.smooth_quartz_slab": "Smooth Quartz Slab", + "block.minecraft.smooth_quartz_stairs": "Smooth Quartz Stairs", + "block.minecraft.smooth_red_sandstone": "Smooth Red Sandstone", + "block.minecraft.smooth_red_sandstone_slab": "Smooth Red Sandstone Slab", + "block.minecraft.smooth_red_sandstone_stairs": "Smooth Red Sandstone Stairs", + "block.minecraft.smooth_sandstone": "Smooth Sandstone", + "block.minecraft.smooth_sandstone_slab": "Smooth Sandstone Slab", + "block.minecraft.smooth_sandstone_stairs": "Smooth Sandstone Stairs", + "block.minecraft.smooth_stone": "Smooth Stone", + "block.minecraft.smooth_stone_slab": "Smooth Stone Slab", + "block.minecraft.sniffer_egg": "Sniffer Egg", + "block.minecraft.snow": "Snow", + "block.minecraft.snow_block": "Snow Block", + "block.minecraft.soul_campfire": "Soul Campfire", + "block.minecraft.soul_fire": "Soul Fire", + "block.minecraft.soul_lantern": "Soul Lantern", + "block.minecraft.soul_sand": "Soul Sand", + "block.minecraft.soul_soil": "Soul Soil", + "block.minecraft.soul_torch": "Soul Torch", + "block.minecraft.soul_wall_torch": "Soul Wall Torch", + "block.minecraft.spawn.not_valid": "You have no home bed or charged respawn anchor, or it was obstructed", + "block.minecraft.spawner": "Monster Spawner", + "block.minecraft.spawner.desc1": "Interact with Spawn Egg:", + "block.minecraft.spawner.desc2": "Sets Mob Type", + "block.minecraft.sponge": "Sponge", + "block.minecraft.spore_blossom": "Spore Blossom", + "block.minecraft.spruce_button": "Spruce Button", + "block.minecraft.spruce_door": "Spruce Door", + "block.minecraft.spruce_fence": "Spruce Fence", + "block.minecraft.spruce_fence_gate": "Spruce Fence Gate", + "block.minecraft.spruce_hanging_sign": "Spruce Hanging Sign", + "block.minecraft.spruce_leaves": "Spruce Leaves", + "block.minecraft.spruce_log": "Spruce Log", + "block.minecraft.spruce_planks": "Spruce Planks", + "block.minecraft.spruce_pressure_plate": "Spruce Pressure Plate", + "block.minecraft.spruce_sapling": "Spruce Sapling", + "block.minecraft.spruce_sign": "Spruce Sign", + "block.minecraft.spruce_slab": "Spruce Slab", + "block.minecraft.spruce_stairs": "Spruce Stairs", + "block.minecraft.spruce_trapdoor": "Spruce Trapdoor", + "block.minecraft.spruce_wall_hanging_sign": "Spruce Wall Hanging Sign", + "block.minecraft.spruce_wall_sign": "Spruce Wall Sign", + "block.minecraft.spruce_wood": "Spruce Wood", + "block.minecraft.sticky_piston": "Sticky Piston", + "block.minecraft.stone": "Stone", + "block.minecraft.stone_brick_slab": "Stone Brick Slab", + "block.minecraft.stone_brick_stairs": "Stone Brick Stairs", + "block.minecraft.stone_brick_wall": "Stone Brick Wall", + "block.minecraft.stone_bricks": "Stone Bricks", + "block.minecraft.stone_button": "Stone Button", + "block.minecraft.stone_pressure_plate": "Stone Pressure Plate", + "block.minecraft.stone_slab": "Stone Slab", + "block.minecraft.stone_stairs": "Stone Stairs", + "block.minecraft.stonecutter": "Stonecutter", + "block.minecraft.stripped_acacia_log": "Stripped Acacia Log", + "block.minecraft.stripped_acacia_wood": "Stripped Acacia Wood", + "block.minecraft.stripped_bamboo_block": "Block of Stripped Bamboo", + "block.minecraft.stripped_birch_log": "Stripped Birch Log", + "block.minecraft.stripped_birch_wood": "Stripped Birch Wood", + "block.minecraft.stripped_cherry_log": "Stripped Cherry Log", + "block.minecraft.stripped_cherry_wood": "Stripped Cherry Wood", + "block.minecraft.stripped_crimson_hyphae": "Stripped Crimson Hyphae", + "block.minecraft.stripped_crimson_stem": "Stripped Crimson Stem", + "block.minecraft.stripped_dark_oak_log": "Stripped Dark Oak Log", + "block.minecraft.stripped_dark_oak_wood": "Stripped Dark Oak Wood", + "block.minecraft.stripped_jungle_log": "Stripped Jungle Log", + "block.minecraft.stripped_jungle_wood": "Stripped Jungle Wood", + "block.minecraft.stripped_mangrove_log": "Stripped Mangrove Log", + "block.minecraft.stripped_mangrove_wood": "Stripped Mangrove Wood", + "block.minecraft.stripped_oak_log": "Stripped Oak Log", + "block.minecraft.stripped_oak_wood": "Stripped Oak Wood", + "block.minecraft.stripped_spruce_log": "Stripped Spruce Log", + "block.minecraft.stripped_spruce_wood": "Stripped Spruce Wood", + "block.minecraft.stripped_warped_hyphae": "Stripped Warped Hyphae", + "block.minecraft.stripped_warped_stem": "Stripped Warped Stem", + "block.minecraft.structure_block": "Structure Block", + "block.minecraft.structure_void": "Structure Void", + "block.minecraft.sugar_cane": "Sugar Cane", + "block.minecraft.sunflower": "Sunflower", + "block.minecraft.suspicious_gravel": "Suspicious Gravel", + "block.minecraft.suspicious_sand": "Suspicious Sand", + "block.minecraft.sweet_berry_bush": "Sweet Berry Bush", + "block.minecraft.tall_grass": "Tall Grass", + "block.minecraft.tall_seagrass": "Tall Seagrass", + "block.minecraft.target": "Target", + "block.minecraft.terracotta": "Terracotta", + "block.minecraft.tinted_glass": "Tinted Glass", + "block.minecraft.tnt": "TNT", + "block.minecraft.torch": "Torch", + "block.minecraft.torchflower": "Torchflower", + "block.minecraft.torchflower_crop": "Torchflower Crop", + "block.minecraft.trapped_chest": "Trapped Chest", + "block.minecraft.trial_spawner": "Trial Spawner", + "block.minecraft.tripwire": "Tripwire", + "block.minecraft.tripwire_hook": "Tripwire Hook", + "block.minecraft.tube_coral": "Tube Coral", + "block.minecraft.tube_coral_block": "Tube Coral Block", + "block.minecraft.tube_coral_fan": "Tube Coral Fan", + "block.minecraft.tube_coral_wall_fan": "Tube Coral Wall Fan", + "block.minecraft.tuff": "Tuff", + "block.minecraft.tuff_brick_slab": "Tuff Brick Slab", + "block.minecraft.tuff_brick_stairs": "Tuff Brick Stairs", + "block.minecraft.tuff_brick_wall": "Tuff Brick Wall", + "block.minecraft.tuff_bricks": "Tuff Bricks", + "block.minecraft.tuff_slab": "Tuff Slab", + "block.minecraft.tuff_stairs": "Tuff Stairs", + "block.minecraft.tuff_wall": "Tuff Wall", + "block.minecraft.turtle_egg": "Turtle Egg", + "block.minecraft.twisting_vines": "Twisting Vines", + "block.minecraft.twisting_vines_plant": "Twisting Vines Plant", + "block.minecraft.verdant_froglight": "Verdant Froglight", + "block.minecraft.vine": "Vines", + "block.minecraft.void_air": "Void Air", + "block.minecraft.wall_torch": "Wall Torch", + "block.minecraft.warped_button": "Warped Button", + "block.minecraft.warped_door": "Warped Door", + "block.minecraft.warped_fence": "Warped Fence", + "block.minecraft.warped_fence_gate": "Warped Fence Gate", + "block.minecraft.warped_fungus": "Warped Fungus", + "block.minecraft.warped_hanging_sign": "Warped Hanging Sign", + "block.minecraft.warped_hyphae": "Warped Hyphae", + "block.minecraft.warped_nylium": "Warped Nylium", + "block.minecraft.warped_planks": "Warped Planks", + "block.minecraft.warped_pressure_plate": "Warped Pressure Plate", + "block.minecraft.warped_roots": "Warped Roots", + "block.minecraft.warped_sign": "Warped Sign", + "block.minecraft.warped_slab": "Warped Slab", + "block.minecraft.warped_stairs": "Warped Stairs", + "block.minecraft.warped_stem": "Warped Stem", + "block.minecraft.warped_trapdoor": "Warped Trapdoor", + "block.minecraft.warped_wall_hanging_sign": "Warped Wall Hanging Sign", + "block.minecraft.warped_wall_sign": "Warped Wall Sign", + "block.minecraft.warped_wart_block": "Warped Wart Block", + "block.minecraft.water": "Water", + "block.minecraft.water_cauldron": "Water Cauldron", + "block.minecraft.waxed_chiseled_copper": "Waxed Chiseled Copper", + "block.minecraft.waxed_copper_block": "Waxed Block of Copper", + "block.minecraft.waxed_copper_bulb": "Waxed Copper Bulb", + "block.minecraft.waxed_copper_door": "Waxed Copper Door", + "block.minecraft.waxed_copper_grate": "Waxed Copper Grate", + "block.minecraft.waxed_copper_trapdoor": "Waxed Copper Trapdoor", + "block.minecraft.waxed_cut_copper": "Waxed Cut Copper", + "block.minecraft.waxed_cut_copper_slab": "Waxed Cut Copper Slab", + "block.minecraft.waxed_cut_copper_stairs": "Waxed Cut Copper Stairs", + "block.minecraft.waxed_exposed_chiseled_copper": "Waxed Exposed Chiseled Copper", + "block.minecraft.waxed_exposed_copper": "Waxed Exposed Copper", + "block.minecraft.waxed_exposed_copper_bulb": "Waxed Exposed Copper Bulb", + "block.minecraft.waxed_exposed_copper_door": "Waxed Exposed Copper Door", + "block.minecraft.waxed_exposed_copper_grate": "Waxed Exposed Copper Grate", + "block.minecraft.waxed_exposed_copper_trapdoor": "Waxed Exposed Copper Trapdoor", + "block.minecraft.waxed_exposed_cut_copper": "Waxed Exposed Cut Copper", + "block.minecraft.waxed_exposed_cut_copper_slab": "Waxed Exposed Cut Copper Slab", + "block.minecraft.waxed_exposed_cut_copper_stairs": "Waxed Exposed Cut Copper Stairs", + "block.minecraft.waxed_oxidized_chiseled_copper": "Waxed Oxidized Chiseled Copper", + "block.minecraft.waxed_oxidized_copper": "Waxed Oxidized Copper", + "block.minecraft.waxed_oxidized_copper_bulb": "Waxed Oxidized Copper Bulb", + "block.minecraft.waxed_oxidized_copper_door": "Waxed Oxidized Copper Door", + "block.minecraft.waxed_oxidized_copper_grate": "Waxed Oxidized Copper Grate", + "block.minecraft.waxed_oxidized_copper_trapdoor": "Waxed Oxidized Copper Trapdoor", + "block.minecraft.waxed_oxidized_cut_copper": "Waxed Oxidized Cut Copper", + "block.minecraft.waxed_oxidized_cut_copper_slab": "Waxed Oxidized Cut Copper Slab", + "block.minecraft.waxed_oxidized_cut_copper_stairs": "Waxed Oxidized Cut Copper Stairs", + "block.minecraft.waxed_weathered_chiseled_copper": "Waxed Weathered Chiseled Copper", + "block.minecraft.waxed_weathered_copper": "Waxed Weathered Copper", + "block.minecraft.waxed_weathered_copper_bulb": "Waxed Weathered Copper Bulb", + "block.minecraft.waxed_weathered_copper_door": "Waxed Weathered Copper Door", + "block.minecraft.waxed_weathered_copper_grate": "Waxed Weathered Copper Grate", + "block.minecraft.waxed_weathered_copper_trapdoor": "Waxed Weathered Copper Trapdoor", + "block.minecraft.waxed_weathered_cut_copper": "Waxed Weathered Cut Copper", + "block.minecraft.waxed_weathered_cut_copper_slab": "Waxed Weathered Cut Copper Slab", + "block.minecraft.waxed_weathered_cut_copper_stairs": "Waxed Weathered Cut Copper Stairs", + "block.minecraft.weathered_chiseled_copper": "Weathered Chiseled Copper", + "block.minecraft.weathered_copper": "Weathered Copper", + "block.minecraft.weathered_copper_bulb": "Weathered Copper Bulb", + "block.minecraft.weathered_copper_door": "Weathered Copper Door", + "block.minecraft.weathered_copper_grate": "Weathered Copper Grate", + "block.minecraft.weathered_copper_trapdoor": "Weathered Copper Trapdoor", + "block.minecraft.weathered_cut_copper": "Weathered Cut Copper", + "block.minecraft.weathered_cut_copper_slab": "Weathered Cut Copper Slab", + "block.minecraft.weathered_cut_copper_stairs": "Weathered Cut Copper Stairs", + "block.minecraft.weeping_vines": "Weeping Vines", + "block.minecraft.weeping_vines_plant": "Weeping Vines Plant", + "block.minecraft.wet_sponge": "Wet Sponge", + "block.minecraft.wheat": "Wheat Crops", + "block.minecraft.white_banner": "White Banner", + "block.minecraft.white_bed": "White Bed", + "block.minecraft.white_candle": "White Candle", + "block.minecraft.white_candle_cake": "Cake with White Candle", + "block.minecraft.white_carpet": "White Carpet", + "block.minecraft.white_concrete": "White Concrete", + "block.minecraft.white_concrete_powder": "White Concrete Powder", + "block.minecraft.white_glazed_terracotta": "White Glazed Terracotta", + "block.minecraft.white_shulker_box": "White Shulker Box", + "block.minecraft.white_stained_glass": "White Stained Glass", + "block.minecraft.white_stained_glass_pane": "White Stained Glass Pane", + "block.minecraft.white_terracotta": "White Terracotta", + "block.minecraft.white_tulip": "White Tulip", + "block.minecraft.white_wool": "White Wool", + "block.minecraft.wither_rose": "Wither Rose", + "block.minecraft.wither_skeleton_skull": "Wither Skeleton Skull", + "block.minecraft.wither_skeleton_wall_skull": "Wither Skeleton Wall Skull", + "block.minecraft.yellow_banner": "Yellow Banner", + "block.minecraft.yellow_bed": "Yellow Bed", + "block.minecraft.yellow_candle": "Yellow Candle", + "block.minecraft.yellow_candle_cake": "Cake with Yellow Candle", + "block.minecraft.yellow_carpet": "Yellow Carpet", + "block.minecraft.yellow_concrete": "Yellow Concrete", + "block.minecraft.yellow_concrete_powder": "Yellow Concrete Powder", + "block.minecraft.yellow_glazed_terracotta": "Yellow Glazed Terracotta", + "block.minecraft.yellow_shulker_box": "Yellow Shulker Box", + "block.minecraft.yellow_stained_glass": "Yellow Stained Glass", + "block.minecraft.yellow_stained_glass_pane": "Yellow Stained Glass Pane", + "block.minecraft.yellow_terracotta": "Yellow Terracotta", + "block.minecraft.yellow_wool": "Yellow Wool", + "block.minecraft.zombie_head": "Zombie Head", + "block.minecraft.zombie_wall_head": "Zombie Wall Head", + "book.byAuthor": "by %1$s", + "book.editTitle": "Enter Book Title:", + "book.finalizeButton": "Sign and Close", + "book.finalizeWarning": "Note! When you sign the book, it will no longer be editable.", + "book.generation.0": "Original", + "book.generation.1": "Copy of original", + "book.generation.2": "Copy of a copy", + "book.generation.3": "Tattered", + "book.invalid.tag": "* Invalid book tag *", + "book.pageIndicator": "Page %1$s of %2$s", + "book.signButton": "Sign", + "build.tooHigh": "Height limit for building is %s", + "chat_screen.message": "Message to send: %s", + "chat_screen.title": "Chat screen", + "chat_screen.usage": "Input message and press Enter to send", + "chat.cannotSend": "Cannot send chat message", + "chat.coordinates": "%s, %s, %s", + "chat.coordinates.tooltip": "Click to teleport", + "chat.copy": "Copy to Clipboard", + "chat.copy.click": "Click to Copy to Clipboard", + "chat.deleted_marker": "This chat message has been deleted by the server.", + "chat.disabled.chain_broken": "Chat disabled due to broken chain. Please try reconnecting.", + "chat.disabled.expiredProfileKey": "Chat disabled due to expired profile public key. Please try reconnecting.", + "chat.disabled.launcher": "Chat disabled by launcher option. Cannot send message.", + "chat.disabled.missingProfileKey": "Chat disabled due to missing profile public key. Please try reconnecting.", + "chat.disabled.options": "Chat disabled in client options.", + "chat.disabled.profile": "Chat not allowed by account settings. Press '%s' again for more information.", + "chat.disabled.profile.moreInfo": "Chat not allowed by account settings. Cannot send or view messages.", + "chat.editBox": "chat", + "chat.filtered": "Filtered by the server.", + "chat.filtered_full": "The server has hidden your message for some players.", + "chat.link.confirm": "Are you sure you want to open the following website?", + "chat.link.confirmTrusted": "Do you want to open this link or copy it to your clipboard?", + "chat.link.open": "Open in Browser", + "chat.link.warning": "Never open links from people that you don't trust!", + "chat.queue": "[+%s pending lines]", + "chat.square_brackets": "[%s]", + "chat.tag.error": "Server sent invalid message.", + "chat.tag.modified": "Message modified by the server. Original:", + "chat.tag.not_secure": "Unverified message. Cannot be reported.", + "chat.tag.system": "Server message. Cannot be reported.", + "chat.tag.system_single_player": "Server message.", + "chat.type.admin": "[%s: %s]", + "chat.type.advancement.challenge": "%s has completed the challenge %s", + "chat.type.advancement.goal": "%s has reached the goal %s", + "chat.type.advancement.task": "%s has made the advancement %s", + "chat.type.announcement": "[%s] %s", + "chat.type.emote": "* %s %s", + "chat.type.team.hover": "Message Team", + "chat.type.team.sent": "-> %s <%s> %s", + "chat.type.team.text": "%s <%s> %s", + "chat.type.text": "<%s> %s", + "chat.type.text.narrate": "%s says %s", + "chat.validation_error": "Chat validation error", + "clear.failed.multiple": "No items were found on %s players", + "clear.failed.single": "No items were found on player %s", + "color.minecraft.black": "Black", + "color.minecraft.blue": "Blue", + "color.minecraft.brown": "Brown", + "color.minecraft.cyan": "Cyan", + "color.minecraft.gray": "Gray", + "color.minecraft.green": "Green", + "color.minecraft.light_blue": "Light Blue", + "color.minecraft.light_gray": "Light Gray", + "color.minecraft.lime": "Lime", + "color.minecraft.magenta": "Magenta", + "color.minecraft.orange": "Orange", + "color.minecraft.pink": "Pink", + "color.minecraft.purple": "Purple", + "color.minecraft.red": "Red", + "color.minecraft.white": "White", + "color.minecraft.yellow": "Yellow", + "command.context.here": "<--[HERE]", + "command.context.parse_error": "%s at position %s: %s", + "command.exception": "Could not parse command: %s", + "command.expected.separator": "Expected whitespace to end one argument, but found trailing data", + "command.failed": "An unexpected error occurred trying to execute that command", + "command.forkLimit": "Maximum number of contexts (%s) reached", + "command.unknown.argument": "Incorrect argument for command", + "command.unknown.command": "Unknown or incomplete command, see below for error", + "commands.advancement.advancementNotFound": "No advancement was found by the name '%1$s'", + "commands.advancement.criterionNotFound": "The advancement %1$s does not contain the criterion '%2$s'", + "commands.advancement.grant.criterion.to.many.failure": "Couldn't grant criterion '%s' of advancement %s to %s players as they already have it", + "commands.advancement.grant.criterion.to.many.success": "Granted criterion '%s' of advancement %s to %s players", + "commands.advancement.grant.criterion.to.one.failure": "Couldn't grant criterion '%s' of advancement %s to %s as they already have it", + "commands.advancement.grant.criterion.to.one.success": "Granted criterion '%s' of advancement %s to %s", + "commands.advancement.grant.many.to.many.failure": "Couldn't grant %s advancements to %s players as they already have them", + "commands.advancement.grant.many.to.many.success": "Granted %s advancements to %s players", + "commands.advancement.grant.many.to.one.failure": "Couldn't grant %s advancements to %s as they already have them", + "commands.advancement.grant.many.to.one.success": "Granted %s advancements to %s", + "commands.advancement.grant.one.to.many.failure": "Couldn't grant advancement %s to %s players as they already have it", + "commands.advancement.grant.one.to.many.success": "Granted the advancement %s to %s players", + "commands.advancement.grant.one.to.one.failure": "Couldn't grant advancement %s to %s as they already have it", + "commands.advancement.grant.one.to.one.success": "Granted the advancement %s to %s", + "commands.advancement.revoke.criterion.to.many.failure": "Couldn't revoke criterion '%s' of advancement %s from %s players as they don't have it", + "commands.advancement.revoke.criterion.to.many.success": "Revoked criterion '%s' of advancement %s from %s players", + "commands.advancement.revoke.criterion.to.one.failure": "Couldn't revoke criterion '%s' of advancement %s from %s as they don't have it", + "commands.advancement.revoke.criterion.to.one.success": "Revoked criterion '%s' of advancement %s from %s", + "commands.advancement.revoke.many.to.many.failure": "Couldn't revoke %s advancements from %s players as they don't have them", + "commands.advancement.revoke.many.to.many.success": "Revoked %s advancements from %s players", + "commands.advancement.revoke.many.to.one.failure": "Couldn't revoke %s advancements from %s as they don't have them", + "commands.advancement.revoke.many.to.one.success": "Revoked %s advancements from %s", + "commands.advancement.revoke.one.to.many.failure": "Couldn't revoke advancement %s from %s players as they don't have it", + "commands.advancement.revoke.one.to.many.success": "Revoked the advancement %s from %s players", + "commands.advancement.revoke.one.to.one.failure": "Couldn't revoke advancement %s from %s as they don't have it", + "commands.advancement.revoke.one.to.one.success": "Revoked the advancement %s from %s", + "commands.attribute.base_value.get.success": "Base value of attribute %s for entity %s is %s", + "commands.attribute.base_value.set.success": "Base value for attribute %s for entity %s set to %s", + "commands.attribute.failed.entity": "%s is not a valid entity for this command", + "commands.attribute.failed.modifier_already_present": "Modifier %s is already present on attribute %s for entity %s", + "commands.attribute.failed.no_attribute": "Entity %s has no attribute %s", + "commands.attribute.failed.no_modifier": "Attribute %s for entity %s has no modifier %s", + "commands.attribute.modifier.add.success": "Added modifier %s to attribute %s for entity %s", + "commands.attribute.modifier.remove.success": "Removed modifier %s from attribute %s for entity %s", + "commands.attribute.modifier.value.get.success": "Value of modifier %s on attribute %s for entity %s is %s", + "commands.attribute.value.get.success": "Value of attribute %s for entity %s is %s", "commands.ban.failed": "Nothing changed. The player is already banned", - "commands.bossbar.set.players.unchanged": "Nothing changed. Those players are already on the bossbar with nobody to add or remove", - "commands.bossbar.set.name.unchanged": "Nothing changed. That's already the name of this bossbar", + "commands.ban.success": "Banned %s: %s", + "commands.banip.failed": "Nothing changed. That IP is already banned", + "commands.banip.info": "This ban affects %s player(s): %s", + "commands.banip.invalid": "Invalid IP address or unknown player", + "commands.banip.success": "Banned IP %s: %s", + "commands.banlist.entry": "%s was banned by %s: %s", + "commands.banlist.entry.unknown": "(Unknown)", + "commands.banlist.list": "There are %s ban(s):", + "commands.banlist.none": "There are no bans", + "commands.bossbar.create.failed": "A bossbar already exists with the ID '%s'", + "commands.bossbar.create.success": "Created custom bossbar %s", + "commands.bossbar.get.max": "Custom bossbar %s has a maximum of %s", + "commands.bossbar.get.players.none": "Custom bossbar %s has no players currently online", + "commands.bossbar.get.players.some": "Custom bossbar %s has %s player(s) currently online: %s", + "commands.bossbar.get.value": "Custom bossbar %s has a value of %s", + "commands.bossbar.get.visible.hidden": "Custom bossbar %s is currently hidden", + "commands.bossbar.get.visible.visible": "Custom bossbar %s is currently shown", + "commands.bossbar.list.bars.none": "There are no custom bossbars active", + "commands.bossbar.list.bars.some": "There are %s custom bossbar(s) active: %s", + "commands.bossbar.remove.success": "Removed custom bossbar %s", + "commands.bossbar.set.color.success": "Custom bossbar %s has changed color", "commands.bossbar.set.color.unchanged": "Nothing changed. That's already the color of this bossbar", + "commands.bossbar.set.max.success": "Custom bossbar %s has changed maximum to %s", + "commands.bossbar.set.max.unchanged": "Nothing changed. That's already the max of this bossbar", + "commands.bossbar.set.name.success": "Custom bossbar %s has been renamed", + "commands.bossbar.set.name.unchanged": "Nothing changed. That's already the name of this bossbar", + "commands.bossbar.set.players.success.none": "Custom bossbar %s no longer has any players", + "commands.bossbar.set.players.success.some": "Custom bossbar %s now has %s player(s): %s", + "commands.bossbar.set.players.unchanged": "Nothing changed. Those players are already on the bossbar with nobody to add or remove", + "commands.bossbar.set.style.success": "Custom bossbar %s has changed style", "commands.bossbar.set.style.unchanged": "Nothing changed. That's already the style of this bossbar", + "commands.bossbar.set.value.success": "Custom bossbar %s has changed value to %s", "commands.bossbar.set.value.unchanged": "Nothing changed. That's already the value of this bossbar", - "commands.bossbar.set.max.unchanged": "Nothing changed. That's already the max of this bossbar", "commands.bossbar.set.visibility.unchanged.hidden": "Nothing changed. The bossbar is already hidden", "commands.bossbar.set.visibility.unchanged.visible": "Nothing changed. The bossbar is already visible", - "commands.clone.overlap": "The source and destination areas cannot overlap", + "commands.bossbar.set.visible.success.hidden": "Custom bossbar %s is now hidden", + "commands.bossbar.set.visible.success.visible": "Custom bossbar %s is now visible", + "commands.bossbar.unknown": "No bossbar exists with the ID '%s'", + "commands.clear.success.multiple": "Removed %s item(s) from %s players", + "commands.clear.success.single": "Removed %s item(s) from player %s", + "commands.clear.test.multiple": "Found %s matching item(s) on %s players", + "commands.clear.test.single": "Found %s matching item(s) on player %s", "commands.clone.failed": "No blocks were cloned", + "commands.clone.overlap": "The source and destination areas cannot overlap", + "commands.clone.success": "Successfully cloned %s block(s)", + "commands.clone.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.damage.invulnerable": "Target is invulnerable to the given damage type", + "commands.damage.success": "Applied %s damage to %s", + "commands.data.block.get": "%s on block %s, %s, %s after scale factor of %s is %s", + "commands.data.block.invalid": "The target block is not a block entity", + "commands.data.block.modified": "Modified block data of %s, %s, %s", + "commands.data.block.query": "%s, %s, %s has the following block data: %s", + "commands.data.entity.get": "%s on %s after scale factor of %s is %s", + "commands.data.entity.invalid": "Unable to modify player data", + "commands.data.entity.modified": "Modified entity data of %s", + "commands.data.entity.query": "%s has the following entity data: %s", + "commands.data.get.invalid": "Can't get %s; only numeric tags are allowed", + "commands.data.get.multiple": "This argument accepts a single NBT value", + "commands.data.get.unknown": "Can't get %s; tag doesn't exist", + "commands.data.merge.failed": "Nothing changed. The specified properties already have these values", + "commands.data.modify.expected_list": "Expected list, got: %s", + "commands.data.modify.expected_object": "Expected object, got: %s", + "commands.data.modify.expected_value": "Expected value, got: %s", + "commands.data.modify.invalid_index": "Invalid list index: %s", + "commands.data.modify.invalid_substring": "Invalid substring indices: %s to %s", + "commands.data.storage.get": "%s in storage %s after scale factor of %s is %s", + "commands.data.storage.modified": "Modified storage %s", + "commands.data.storage.query": "Storage %s has the following contents: %s", + "commands.datapack.disable.failed": "Pack '%s' is not enabled!", + "commands.datapack.enable.failed": "Pack '%s' is already enabled!", + "commands.datapack.enable.failed.no_flags": "Pack '%s' cannot be enabled, since required flags are not enabled in this world: %s!", + "commands.datapack.list.available.none": "There are no more data packs available", + "commands.datapack.list.available.success": "There are %s data pack(s) available: %s", + "commands.datapack.list.enabled.none": "There are no data packs enabled", + "commands.datapack.list.enabled.success": "There are %s data pack(s) enabled: %s", + "commands.datapack.modify.disable": "Disabling data pack %s", + "commands.datapack.modify.enable": "Enabling data pack %s", + "commands.datapack.unknown": "Unknown data pack '%s'", + "commands.debug.alreadyRunning": "The tick profiler is already started", + "commands.debug.function.noRecursion": "Can't trace from inside of function", + "commands.debug.function.noReturnRun": "Tracing can't be used with return run", + "commands.debug.function.success.multiple": "Traced %s command(s) from %s functions to output file %s", + "commands.debug.function.success.single": "Traced %s command(s) from function '%s' to output file %s", + "commands.debug.function.traceFailed": "Failed to trace function", + "commands.debug.notRunning": "The tick profiler hasn't started", + "commands.debug.started": "Started tick profiling", + "commands.debug.stopped": "Stopped tick profiling after %s seconds and %s ticks (%s ticks per second)", + "commands.defaultgamemode.success": "The default game mode is now %s", "commands.deop.failed": "Nothing changed. The player is not an operator", - "commands.effect.give.failed": "Unable to apply this effect (target is either immune to effects, or has something stronger)", + "commands.deop.success": "Made %s no longer a server operator", + "commands.difficulty.failure": "The difficulty did not change; it is already set to %s", + "commands.difficulty.query": "The difficulty is %s", + "commands.difficulty.success": "The difficulty has been set to %s", + "commands.drop.no_held_items": "Entity can't hold any items", + "commands.drop.no_loot_table": "Entity %s has no loot table", + "commands.drop.success.multiple": "Dropped %s items", + "commands.drop.success.multiple_with_table": "Dropped %s items from loot table %s", + "commands.drop.success.single": "Dropped %s %s", + "commands.drop.success.single_with_table": "Dropped %s %s from loot table %s", "commands.effect.clear.everything.failed": "Target has no effects to remove", + "commands.effect.clear.everything.success.multiple": "Removed every effect from %s targets", + "commands.effect.clear.everything.success.single": "Removed every effect from %s", "commands.effect.clear.specific.failed": "Target doesn't have the requested effect", + "commands.effect.clear.specific.success.multiple": "Removed effect %s from %s targets", + "commands.effect.clear.specific.success.single": "Removed effect %s from %s", + "commands.effect.give.failed": "Unable to apply this effect (target is either immune to effects, or has something stronger)", + "commands.effect.give.success.multiple": "Applied effect %s to %s targets", + "commands.effect.give.success.single": "Applied effect %s to %s", "commands.enchant.failed": "Nothing changed. Targets either have no item in their hands or the enchantment could not be applied", + "commands.enchant.failed.entity": "%s is not a valid entity for this command", + "commands.enchant.failed.incompatible": "%s cannot support that enchantment", + "commands.enchant.failed.itemless": "%s is not holding any item", + "commands.enchant.failed.level": "%s is higher than the maximum level of %s supported by that enchantment", + "commands.enchant.success.multiple": "Applied enchantment %s to %s entities", + "commands.enchant.success.single": "Applied enchantment %s to %s's item", + "commands.execute.blocks.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.execute.conditional.fail": "Test failed", + "commands.execute.conditional.fail_count": "Test failed, count: %s", + "commands.execute.conditional.pass": "Test passed", + "commands.execute.conditional.pass_count": "Test passed, count: %s", + "commands.execute.function.instantiationFailure": "Failed to instantiate function %s: %s", + "commands.experience.add.levels.success.multiple": "Gave %s experience levels to %s players", + "commands.experience.add.levels.success.single": "Gave %s experience levels to %s", + "commands.experience.add.points.success.multiple": "Gave %s experience points to %s players", + "commands.experience.add.points.success.single": "Gave %s experience points to %s", + "commands.experience.query.levels": "%s has %s experience levels", + "commands.experience.query.points": "%s has %s experience points", + "commands.experience.set.levels.success.multiple": "Set %s experience levels on %s players", + "commands.experience.set.levels.success.single": "Set %s experience levels on %s", "commands.experience.set.points.invalid": "Cannot set experience points above the maximum points for the player's current level", + "commands.experience.set.points.success.multiple": "Set %s experience points on %s players", + "commands.experience.set.points.success.single": "Set %s experience points on %s", "commands.fill.failed": "No blocks were filled", - "argument.gamemode.invalid": "Unknown gamemode: %s", + "commands.fill.success": "Successfully filled %s block(s)", + "commands.fill.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", + "commands.fillbiome.success": "Biomes set between %s, %s, %s and %s, %s, %s", + "commands.fillbiome.success.count": "%s biome entry/entries set between %s, %s, %s and %s, %s, %s", + "commands.fillbiome.toobig": "Too many blocks in the specified volume (maximum %s, specified %s)", + "commands.forceload.added.failure": "No chunks were marked for force loading", + "commands.forceload.added.multiple": "Marked %s chunks in %s from %s to %s to be force loaded", + "commands.forceload.added.none": "No force loaded chunks were found in %s", + "commands.forceload.added.single": "Marked chunk %s in %s to be force loaded", + "commands.forceload.list.multiple": "%s force loaded chunks were found in %s at: %s", + "commands.forceload.list.single": "A force loaded chunk was found in %s at: %s", + "commands.forceload.query.failure": "Chunk at %s in %s is not marked for force loading", + "commands.forceload.query.success": "Chunk at %s in %s is marked for force loading", + "commands.forceload.removed.all": "Unmarked all force loaded chunks in %s", + "commands.forceload.removed.failure": "No chunks were removed from force loading", + "commands.forceload.removed.multiple": "Unmarked %s chunks in %s from %s to %s for force loading", + "commands.forceload.removed.single": "Unmarked chunk %s in %s for force loading", + "commands.forceload.toobig": "Too many chunks in the specified area (maximum %s, specified %s)", + "commands.function.error.argument_not_compound": "Invalid argument type: %s, expected Compound", + "commands.function.error.missing_argument": "Missing argument %2$s to function %1$s", + "commands.function.error.missing_arguments": "Missing arguments to function %s", + "commands.function.error.parse": "While instantiating macro %s: Command '%s' caused error: %s", + "commands.function.instantiationFailure": "Failed to instantiate function %s: %s", + "commands.function.result": "Function %s returned %s", + "commands.function.scheduled.multiple": "Running functions %s", + "commands.function.scheduled.no_functions": "Can't find any functions for name %s", + "commands.function.scheduled.single": "Running function %s", + "commands.function.success.multiple": "Executed %s command(s) from %s functions", + "commands.function.success.multiple.result": "Executed %s functions", + "commands.function.success.single": "Executed %s command(s) from function '%s'", + "commands.function.success.single.result": "Function '%2$s' returned %1$s", + "commands.gamemode.success.other": "Set %s's game mode to %s", + "commands.gamemode.success.self": "Set own game mode to %s", + "commands.gamerule.query": "Gamerule %s is currently set to: %s", + "commands.gamerule.set": "Gamerule %s is now set to: %s", + "commands.give.failed.toomanyitems": "Can't give more than %s of %s", + "commands.give.success.multiple": "Gave %s %s to %s players", + "commands.give.success.single": "Gave %s %s to %s", "commands.help.failed": "Unknown command or insufficient permissions", - "commands.locate.structure.success": "The nearest %s is at %s (%s blocks away)", - "commands.locate.structure.not_found": "Could not find a structure of type \"%s\" nearby", - "commands.locate.structure.invalid": "There is no structure with type \"%s\"", - "commands.locate.biome.success": "The nearest %s is at %s (%s blocks away)", + "commands.item.block.set.success": "Replaced a slot at %s, %s, %s with %s", + "commands.item.entity.set.success.multiple": "Replaced a slot on %s entities with %s", + "commands.item.entity.set.success.single": "Replaced a slot on %s with %s", + "commands.item.source.no_such_slot": "The source does not have slot %s", + "commands.item.source.not_a_container": "Source position %s, %s, %s is not a container", + "commands.item.target.no_changed.known_item": "No targets accepted item %s into slot %s", + "commands.item.target.no_changes": "No targets accepted item into slot %s", + "commands.item.target.no_such_slot": "The target does not have slot %s", + "commands.item.target.not_a_container": "Target position %s, %s, %s is not a container", + "commands.jfr.dump.failed": "Failed to dump JFR recording: %s", + "commands.jfr.start.failed": "Failed to start JFR profiling", + "commands.jfr.started": "JFR profiling started", + "commands.jfr.stopped": "JFR profiling stopped and dumped to %s", + "commands.kick.owner.failed": "Cannot kick server owner in LAN game", + "commands.kick.singleplayer.failed": "Cannot kick in an offline singleplayer game", + "commands.kick.success": "Kicked %s: %s", + "commands.kill.success.multiple": "Killed %s entities", + "commands.kill.success.single": "Killed %s", + "commands.list.nameAndId": "%s (%s)", + "commands.list.players": "There are %s of a max of %s players online: %s", "commands.locate.biome.not_found": "Could not find a biome of type \"%s\" within reasonable distance", - "commands.locate.poi.success": "The nearest %s is at %s (%s blocks away)", + "commands.locate.biome.success": "The nearest %s is at %s (%s blocks away)", "commands.locate.poi.not_found": "Could not find a point of interest of type \"%s\" within reasonable distance", + "commands.locate.poi.success": "The nearest %s is at %s (%s blocks away)", + "commands.locate.structure.invalid": "There is no structure with type \"%s\"", + "commands.locate.structure.not_found": "Could not find a structure of type \"%s\" nearby", + "commands.locate.structure.success": "The nearest %s is at %s (%s blocks away)", + "commands.message.display.incoming": "%s whispers to you: %s", + "commands.message.display.outgoing": "You whisper to %s: %s", "commands.op.failed": "Nothing changed. The player already is an operator", + "commands.op.success": "Made %s a server operator", "commands.pardon.failed": "Nothing changed. The player isn't banned", - "commands.pardonip.invalid": "Invalid IP address", + "commands.pardon.success": "Unbanned %s", "commands.pardonip.failed": "Nothing changed. That IP isn't banned", + "commands.pardonip.invalid": "Invalid IP address", + "commands.pardonip.success": "Unbanned IP %s", "commands.particle.failed": "The particle was not visible for anybody", + "commands.particle.success": "Displaying particle %s", + "commands.perf.alreadyRunning": "The performance profiler is already started", + "commands.perf.notRunning": "The performance profiler hasn't started", + "commands.perf.reportFailed": "Failed to create debug report", + "commands.perf.reportSaved": "Created debug report in %s", + "commands.perf.started": "Started 10 second performance profiling run (use '/perf stop' to stop early)", + "commands.perf.stopped": "Stopped performance profiling after %s second(s) and %s tick(s) (%s tick(s) per second)", "commands.place.feature.failed": "Failed to place feature", "commands.place.feature.invalid": "There is no feature with type \"%s\"", "commands.place.feature.success": "Placed \"%s\" at %s, %s, %s", @@ -5287,239 +2523,899 @@ "commands.place.template.invalid": "There is no template with id \"%s\"", "commands.place.template.success": "Loaded template \"%s\" at %s, %s, %s", "commands.playsound.failed": "The sound is too far away to be heard", + "commands.playsound.success.multiple": "Played sound %s to %s players", + "commands.playsound.success.single": "Played sound %s to %s", + "commands.publish.alreadyPublished": "Multiplayer game is already hosted on port %s", + "commands.publish.failed": "Unable to host local game", + "commands.publish.started": "Local game hosted on port %s", + "commands.publish.success": "Multiplayer game is now hosted on port %s", + "commands.random.error.range_too_large": "The range of the random value must be at most 2147483646", + "commands.random.error.range_too_small": "The range of the random value must be at least 2", + "commands.random.reset.all.success": "Reset %s random sequence(s)", + "commands.random.reset.success": "Reset random sequence %s", + "commands.random.roll": "%s rolled %s (from %s to %s)", + "commands.random.sample.success": "Randomized value: %s", "commands.recipe.give.failed": "No new recipes were learned", + "commands.recipe.give.success.multiple": "Unlocked %s recipes for %s players", + "commands.recipe.give.success.single": "Unlocked %s recipes for %s", "commands.recipe.take.failed": "No recipes could be forgotten", - "commands.save.failed": "Unable to save the game (is there enough disk space?)", + "commands.recipe.take.success.multiple": "Took %s recipes from %s players", + "commands.recipe.take.success.single": "Took %s recipes from %s", + "commands.reload.failure": "Reload failed; keeping old data", + "commands.reload.success": "Reloading!", + "commands.ride.already_riding": "%s is already riding %s", + "commands.ride.dismount.success": "%s stopped riding %s", + "commands.ride.mount.failure.cant_ride_players": "Players can't be ridden", + "commands.ride.mount.failure.generic": "%s couldn't start riding %s", + "commands.ride.mount.failure.loop": "Can't mount entity on itself or any of its passengers", + "commands.ride.mount.failure.wrong_dimension": "Can't mount entity in different dimension", + "commands.ride.mount.success": "%s started riding %s", + "commands.ride.not_riding": "%s is not riding any vehicle", "commands.save.alreadyOff": "Saving is already turned off", "commands.save.alreadyOn": "Saving is already turned on", + "commands.save.disabled": "Automatic saving is now disabled", + "commands.save.enabled": "Automatic saving is now enabled", + "commands.save.failed": "Unable to save the game (is there enough disk space?)", + "commands.save.saving": "Saving the game (this may take a moment!)", + "commands.save.success": "Saved the game", + "commands.schedule.cleared.failure": "No schedules with id %s", + "commands.schedule.cleared.success": "Removed %s schedule(s) with id %s", + "commands.schedule.created.function": "Scheduled function '%s' in %s tick(s) at gametime %s", + "commands.schedule.created.tag": "Scheduled tag '%s' in %s ticks at gametime %s", + "commands.schedule.same_tick": "Can't schedule for current tick", "commands.scoreboard.objectives.add.duplicate": "An objective already exists by that name", + "commands.scoreboard.objectives.add.success": "Created new objective %s", "commands.scoreboard.objectives.display.alreadyEmpty": "Nothing changed. That display slot is already empty", "commands.scoreboard.objectives.display.alreadySet": "Nothing changed. That display slot is already showing that objective", + "commands.scoreboard.objectives.display.cleared": "Cleared any objectives in display slot %s", + "commands.scoreboard.objectives.display.set": "Set display slot %s to show objective %s", + "commands.scoreboard.objectives.list.empty": "There are no objectives", + "commands.scoreboard.objectives.list.success": "There are %s objective(s): %s", + "commands.scoreboard.objectives.modify.displayAutoUpdate.disable": "Disabled display auto-update for objective %s", + "commands.scoreboard.objectives.modify.displayAutoUpdate.enable": "Enabled display auto-update for objective %s", + "commands.scoreboard.objectives.modify.displayname": "Changed the display name of %s to %s", + "commands.scoreboard.objectives.modify.objectiveFormat.clear": "Cleared default number format of objective %s", + "commands.scoreboard.objectives.modify.objectiveFormat.set": "Changed default number format of objective %s", + "commands.scoreboard.objectives.modify.rendertype": "Changed the render type of objective %s", + "commands.scoreboard.objectives.remove.success": "Removed objective %s", + "commands.scoreboard.players.add.success.multiple": "Added %s to %s for %s entities", + "commands.scoreboard.players.add.success.single": "Added %s to %s for %s (now %s)", + "commands.scoreboard.players.display.name.clear.success.multiple": "Cleared display name for %s entities in %s", + "commands.scoreboard.players.display.name.clear.success.single": "Cleared display name for %s in %s", + "commands.scoreboard.players.display.name.set.success.multiple": "Changed display name to %s for %s entities in %s", + "commands.scoreboard.players.display.name.set.success.single": "Changed display name to %s for %s in %s", + "commands.scoreboard.players.display.numberFormat.clear.success.multiple": "Cleared number format for %s entities in %s", + "commands.scoreboard.players.display.numberFormat.clear.success.single": "Cleared number format for %s in %s", + "commands.scoreboard.players.display.numberFormat.set.success.multiple": "Changed number format for %s entities in %s", + "commands.scoreboard.players.display.numberFormat.set.success.single": "Changed number format for %s in %s", "commands.scoreboard.players.enable.failed": "Nothing changed. That trigger is already enabled", "commands.scoreboard.players.enable.invalid": "Enable only works on trigger-objectives", + "commands.scoreboard.players.enable.success.multiple": "Enabled trigger %s for %s entities", + "commands.scoreboard.players.enable.success.single": "Enabled trigger %s for %s", + "commands.scoreboard.players.get.null": "Can't get value of %s for %s; none is set", + "commands.scoreboard.players.get.success": "%s has %s %s", + "commands.scoreboard.players.list.empty": "There are no tracked entities", + "commands.scoreboard.players.list.entity.empty": "%s has no scores to show", + "commands.scoreboard.players.list.entity.entry": "%s: %s", + "commands.scoreboard.players.list.entity.success": "%s has %s score(s):", + "commands.scoreboard.players.list.success": "There are %s tracked entity/entities: %s", + "commands.scoreboard.players.operation.success.multiple": "Updated %s for %s entities", + "commands.scoreboard.players.operation.success.single": "Set %s for %s to %s", + "commands.scoreboard.players.remove.success.multiple": "Removed %s from %s for %s entities", + "commands.scoreboard.players.remove.success.single": "Removed %s from %s for %s (now %s)", + "commands.scoreboard.players.reset.all.multiple": "Reset all scores for %s entities", + "commands.scoreboard.players.reset.all.single": "Reset all scores for %s", + "commands.scoreboard.players.reset.specific.multiple": "Reset %s for %s entities", + "commands.scoreboard.players.reset.specific.single": "Reset %s for %s", + "commands.scoreboard.players.set.success.multiple": "Set %s for %s entities to %s", + "commands.scoreboard.players.set.success.single": "Set %s for %s to %s", + "commands.seed.success": "Seed: %s", "commands.setblock.failed": "Could not set the block", + "commands.setblock.success": "Changed the block at %s, %s, %s", + "commands.setidletimeout.success": "The player idle timeout is now %s minute(s)", + "commands.setworldspawn.success": "Set the world spawn point to %s, %s, %s [%s]", + "commands.spawnpoint.success.multiple": "Set spawn point to %s, %s, %s [%s] in %s for %s players", + "commands.spawnpoint.success.single": "Set spawn point to %s, %s, %s [%s] in %s for %s", + "commands.spectate.not_spectator": "%s is not in spectator mode", + "commands.spectate.self": "Cannot spectate yourself", + "commands.spectate.success.started": "Now spectating %s", + "commands.spectate.success.stopped": "No longer spectating an entity", + "commands.spreadplayers.failed.entities": "Could not spread %s entity/entities around %s, %s (too many entities for space - try using spread of at most %s)", + "commands.spreadplayers.failed.invalid.height": "Invalid maxHeight %s; expected higher than world minimum %s", + "commands.spreadplayers.failed.teams": "Could not spread %s team(s) around %s, %s (too many entities for space - try using spread of at most %s)", + "commands.spreadplayers.success.entities": "Spread %s player(s) around %s, %s with an average distance of %s blocks apart", + "commands.spreadplayers.success.teams": "Spread %s team(s) around %s, %s with an average distance of %s blocks apart", + "commands.stop.stopping": "Stopping the server", + "commands.stopsound.success.source.any": "Stopped all '%s' sounds", + "commands.stopsound.success.source.sound": "Stopped sound '%s' on source '%s'", + "commands.stopsound.success.sourceless.any": "Stopped all sounds", + "commands.stopsound.success.sourceless.sound": "Stopped sound '%s'", "commands.summon.failed": "Unable to summon entity", "commands.summon.failed.uuid": "Unable to summon entity due to duplicate UUIDs", "commands.summon.invalidPosition": "Invalid position for summon", + "commands.summon.success": "Summoned new %s", "commands.tag.add.failed": "Target either already has the tag or has too many tags", + "commands.tag.add.success.multiple": "Added tag '%s' to %s entities", + "commands.tag.add.success.single": "Added tag '%s' to %s", + "commands.tag.list.multiple.empty": "There are no tags on the %s entities", + "commands.tag.list.multiple.success": "The %s entities have %s total tags: %s", + "commands.tag.list.single.empty": "%s has no tags", + "commands.tag.list.single.success": "%s has %s tags: %s", "commands.tag.remove.failed": "Target does not have this tag", + "commands.tag.remove.success.multiple": "Removed tag '%s' from %s entities", + "commands.tag.remove.success.single": "Removed tag '%s' from %s", "commands.team.add.duplicate": "A team already exists by that name", + "commands.team.add.success": "Created team %s", + "commands.team.empty.success": "Removed %s member(s) from team %s", "commands.team.empty.unchanged": "Nothing changed. That team is already empty", - "commands.team.option.color.unchanged": "Nothing changed. That team already has that color", - "commands.team.option.name.unchanged": "Nothing changed. That team already has that name", - "commands.team.option.friendlyfire.alreadyEnabled": "Nothing changed. Friendly fire is already enabled for that team", - "commands.team.option.friendlyfire.alreadyDisabled": "Nothing changed. Friendly fire is already disabled for that team", - "commands.team.option.seeFriendlyInvisibles.alreadyEnabled": "Nothing changed. That team can already see invisible teammates", - "commands.team.option.seeFriendlyInvisibles.alreadyDisabled": "Nothing changed. That team already can't see invisible teammates", - "commands.team.option.nametagVisibility.unchanged": "Nothing changed. Nametag visibility is already that value", - "commands.team.option.deathMessageVisibility.unchanged": "Nothing changed. Death message visibility is already that value", - "commands.team.option.collisionRule.unchanged": "Nothing changed. Collision rule is already that value", - "commands.trigger.failed.unprimed": "You cannot trigger this objective yet", - "commands.trigger.failed.invalid": "You can only trigger objectives that are 'trigger' type", - "commands.whitelist.alreadyOn": "Whitelist is already turned on", - "commands.whitelist.alreadyOff": "Whitelist is already turned off", - "commands.whitelist.add.failed": "Player is already whitelisted", - "commands.whitelist.remove.failed": "Player is not whitelisted", - "commands.worldborder.center.failed": "Nothing changed. The world border is already centered there", - "commands.worldborder.set.failed.nochange": "Nothing changed. The world border is already that size", - "commands.worldborder.set.failed.small": "World border cannot be smaller than 1 block wide", - "commands.worldborder.set.failed.big": "World border cannot be bigger than %s blocks wide", - "commands.worldborder.set.failed.far": "World border cannot be further out than %s blocks", - "commands.worldborder.warning.time.failed": "Nothing changed. The world border warning is already that amount of time", - "commands.worldborder.warning.distance.failed": "Nothing changed. The world border warning is already that distance", - "commands.worldborder.damage.buffer.failed": "Nothing changed. The world border damage buffer is already that distance", - "commands.worldborder.damage.amount.failed": "Nothing changed. The world border damage is already that amount", - "commands.data.block.invalid": "The target block is not a block entity", - "commands.data.merge.failed": "Nothing changed. The specified properties already have these values", - "commands.data.modify.expected_list": "Expected list, got: %s", - "commands.data.modify.expected_object": "Expected object, got: %s", - "commands.data.modify.invalid_index": "Invalid list index: %s", - "commands.data.get.multiple": "This argument accepts a single NBT value", - "commands.data.entity.invalid": "Unable to modify player data", - "commands.teammsg.failed.noteam": "You must be on a team to message your team", - "argument.color.invalid": "Unknown color '%s'", - "argument.dimension.invalid": "Unknown dimension '%s'", - "argument.component.invalid": "Invalid chat component: %s", - "argument.anchor.invalid": "Invalid entity anchor position %s", - "lectern.take_book": "Take Book", - "arguments.objective.notFound": "Unknown scoreboard objective '%s'", - "arguments.objective.readonly": "Scoreboard objective '%s' is read-only", - "argument.criteria.invalid": "Unknown criterion '%s'", - "particle.notFound": "Unknown particle: %s", - "argument.id.unknown": "Unknown ID: %s", - "advancement.advancementNotFound": "Unknown advancement: %s", - "recipe.notFound": "Unknown recipe: %s", - "entity.not_summonable": "Can't summon entity of type %s", - "predicate.unknown": "Unknown predicate: %s", - "item_modifier.unknown": "Unknown item modifier: %s", - "argument.scoreboardDisplaySlot.invalid": "Unknown display slot '%s'", - "slot.unknown": "Unknown slot '%s'", - "team.notFound": "Unknown team '%s'", - "arguments.block.tag.unknown": "Unknown block tag '%s'", - "argument.block.id.invalid": "Unknown block type '%s'", - "argument.block.property.unknown": "Block %s does not have property '%s'", - "argument.block.property.duplicate": "Property '%s' can only be set once for block %s", - "argument.block.property.invalid": "Block %s does not accept '%s' for %s property", - "argument.block.property.novalue": "Expected value for property '%s' on block %s", - "arguments.function.tag.unknown": "Unknown function tag '%s'", - "arguments.function.unknown": "Unknown function %s", - "arguments.item.overstacked": "%s can only stack up to %s", - "argument.item.id.invalid": "Unknown item '%s'", - "arguments.item.tag.unknown": "Unknown item tag '%s'", - "argument.entity.selector.unknown": "Unknown selector type '%s'", - "argument.entity.options.valueless": "Expected value for option '%s'", - "argument.entity.options.unknown": "Unknown option '%s'", - "argument.entity.options.inapplicable": "Option '%s' isn't applicable here", - "argument.entity.options.sort.irreversible": "Invalid or unknown sort type '%s'", - "argument.entity.options.mode.invalid": "Invalid or unknown game mode '%s'", - "argument.entity.options.type.invalid": "Invalid or unknown entity type '%s'", - "argument.nbt.list.mixed": "Can't insert %s into list of %s", - "argument.nbt.array.mixed": "Can't insert %s into %s", - "argument.nbt.array.invalid": "Invalid array type '%s'", - "commands.bossbar.create.failed": "A bossbar already exists with the ID '%s'", - "commands.bossbar.unknown": "No bossbar exists with the ID '%s'", - "clear.failed.single": "No items were found on player %s", - "clear.failed.multiple": "No items were found on %s players", - "commands.clone.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", - "commands.datapack.unknown": "Unknown data pack '%s'", - "commands.datapack.enable.failed": "Pack '%s' is already enabled!", - "commands.datapack.enable.failed.no_flags": "Pack '%s' cannot be enabled, since required flags are not enabled in this world: %s!", - "commands.datapack.disable.failed": "Pack '%s' is not enabled!", - "commands.difficulty.failure": "The difficulty did not change; it is already set to %s", - "commands.enchant.failed.entity": "%s is not a valid entity for this command", - "commands.enchant.failed.itemless": "%s is not holding any item", - "commands.enchant.failed.incompatible": "%s cannot support that enchantment", - "commands.enchant.failed.level": "%s is higher than the maximum level of %s supported by that enchantment", - "commands.execute.blocks.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", - "commands.execute.conditional.pass": "Test passed", - "commands.execute.conditional.pass_count": "Test passed, count: %s", - "commands.execute.conditional.fail": "Test failed", - "commands.execute.conditional.fail_count": "Test failed, count: %s", - "commands.fill.toobig": "Too many blocks in the specified area (maximum %s, specified %s)", - "commands.fillbiome.toobig": "Too many blocks in the specified volume (maximum %s, specified %s)", - "commands.fillbiome.success": "Biomes set between %s, %s, %s and %s, %s, %s", - "commands.fillbiome.success.count": "%s biome entries set between %s, %s, %s and %s, %s, %s", - "commands.publish.alreadyPublished": "Multiplayer game is already hosted on port %s", - "commands.scoreboard.players.get.null": "Can't get value of %s for %s; none is set", - "commands.spreadplayers.failed.teams": "Could not spread %s teams around %s, %s (too many entities for space - try using spread of at most %s)", - "commands.spreadplayers.failed.entities": "Could not spread %s entities around %s, %s (too many entities for space - try using spread of at most %s)", - "commands.spreadplayers.failed.invalid.height": "Invalid maxHeight %s; expected higher than world minimum %s", - "commands.data.get.invalid": "Can't get %s; only numeric tags are allowed", - "commands.data.get.unknown": "Can't get %s; tag doesn't exist", - "argument.double.low": "Double must not be less than %s, found %s", - "argument.double.big": "Double must not be more than %s, found %s", - "argument.float.low": "Float must not be less than %s, found %s", - "argument.float.big": "Float must not be more than %s, found %s", - "argument.integer.low": "Integer must not be less than %s, found %s", - "argument.integer.big": "Integer must not be more than %s, found %s", - "argument.long.low": "Long must not be less than %s, found %s", - "argument.long.big": "Long must not be more than %s, found %s", - "argument.literal.incorrect": "Expected literal %s", - "parsing.quote.expected.start": "Expected quote to start a string", - "parsing.quote.expected.end": "Unclosed quoted string", - "parsing.quote.escape": "Invalid escape sequence '\\%s' in quoted string", - "parsing.bool.invalid": "Invalid boolean, expected 'true' or 'false' but found '%s'", - "parsing.int.invalid": "Invalid integer '%s'", - "parsing.int.expected": "Expected integer", - "parsing.long.invalid": "Invalid long '%s'", - "parsing.long.expected": "Expected long", - "command.exception": "Could not parse command: %s", - "parsing.double.invalid": "Invalid double '%s'", - "parsing.double.expected": "Expected double", - "parsing.float.invalid": "Invalid float '%s'", - "parsing.float.expected": "Expected float", - "parsing.bool.expected": "Expected boolean", - "parsing.expected": "Expected '%s'", - "command.unknown.command": "Unknown or incomplete command, see below for error", - "command.unknown.argument": "Incorrect argument for command", - "command.expected.separator": "Expected whitespace to end one argument, but found trailing data", - "biome.minecraft.badlands": "Badlands", - "biome.minecraft.bamboo_jungle": "Bamboo Jungle", - "biome.minecraft.basalt_deltas": "Basalt Deltas", - "biome.minecraft.beach": "Beach", - "biome.minecraft.birch_forest": "Birch Forest", - "biome.minecraft.cold_ocean": "Cold Ocean", - "biome.minecraft.crimson_forest": "Crimson Forest", - "biome.minecraft.dark_forest": "Dark Forest", - "biome.minecraft.deep_cold_ocean": "Deep Cold Ocean", - "biome.minecraft.deep_dark": "Deep Dark", - "biome.minecraft.deep_frozen_ocean": "Deep Frozen Ocean", - "biome.minecraft.deep_lukewarm_ocean": "Deep Lukewarm Ocean", - "biome.minecraft.deep_ocean": "Deep Ocean", - "biome.minecraft.desert": "Desert", - "biome.minecraft.dripstone_caves": "Dripstone Caves", - "biome.minecraft.old_growth_birch_forest": "Old Growth Birch Forest", - "biome.minecraft.old_growth_pine_taiga": "Old Growth Pine Taiga", - "biome.minecraft.old_growth_spruce_taiga": "Old Growth Spruce Taiga", - "biome.minecraft.end_barrens": "End Barrens", - "biome.minecraft.end_highlands": "End Highlands", - "biome.minecraft.end_midlands": "End Midlands", - "biome.minecraft.eroded_badlands": "Eroded Badlands", - "biome.minecraft.flower_forest": "Flower Forest", - "biome.minecraft.forest": "Forest", - "biome.minecraft.frozen_ocean": "Frozen Ocean", - "biome.minecraft.frozen_peaks": "Frozen Peaks", - "biome.minecraft.frozen_river": "Frozen River", - "biome.minecraft.grove": "Grove", - "biome.minecraft.ice_spikes": "Ice Spikes", - "biome.minecraft.jagged_peaks": "Jagged Peaks", - "biome.minecraft.jungle": "Jungle", - "biome.minecraft.lukewarm_ocean": "Lukewarm Ocean", - "biome.minecraft.lush_caves": "Lush Caves", - "biome.minecraft.mangrove_swamp": "Mangrove Swamp", - "biome.minecraft.meadow": "Meadow", - "biome.minecraft.mushroom_fields": "Mushroom Fields", - "biome.minecraft.nether_wastes": "Nether Wastes", - "biome.minecraft.ocean": "Ocean", - "biome.minecraft.plains": "Plains", - "biome.minecraft.river": "River", - "biome.minecraft.savanna_plateau": "Savanna Plateau", - "biome.minecraft.savanna": "Savanna", - "biome.minecraft.small_end_islands": "Small End Islands", - "biome.minecraft.snowy_beach": "Snowy Beach", - "biome.minecraft.snowy_plains": "Snowy Plains", - "biome.minecraft.snowy_slopes": "Snowy Slopes", - "biome.minecraft.snowy_taiga": "Snowy Taiga", - "biome.minecraft.soul_sand_valley": "Soul Sand Valley", - "biome.minecraft.sparse_jungle": "Sparse Jungle", - "biome.minecraft.stony_peaks": "Stony Peaks", - "biome.minecraft.stony_shore": "Stony Shore", - "biome.minecraft.sunflower_plains": "Sunflower Plains", - "biome.minecraft.swamp": "Swamp", - "biome.minecraft.taiga": "Taiga", - "biome.minecraft.the_end": "The End", - "biome.minecraft.the_void": "The Void", - "biome.minecraft.warm_ocean": "Warm Ocean", - "biome.minecraft.warped_forest": "Warped Forest", - "biome.minecraft.windswept_forest": "Windswept Forest", - "biome.minecraft.windswept_gravelly_hills": "Windswept Gravelly Hills", - "biome.minecraft.windswept_hills": "Windswept Hills", - "biome.minecraft.windswept_savanna": "Windswept Savanna", - "biome.minecraft.wooded_badlands": "Wooded Badlands", - "realms.missing.module.error.text": "Realms could not be opened right now, please try again later", - "realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots", - "color.minecraft.white": "White", - "color.minecraft.orange": "Orange", - "color.minecraft.magenta": "Magenta", - "color.minecraft.light_blue": "Light Blue", - "color.minecraft.yellow": "Yellow", - "color.minecraft.lime": "Lime", - "color.minecraft.pink": "Pink", - "color.minecraft.gray": "Gray", - "color.minecraft.light_gray": "Light Gray", - "color.minecraft.cyan": "Cyan", - "color.minecraft.purple": "Purple", - "color.minecraft.blue": "Blue", - "color.minecraft.brown": "Brown", - "color.minecraft.green": "Green", - "color.minecraft.red": "Red", - "color.minecraft.black": "Black", - "title.singleplayer": "Singleplayer", - "title.multiplayer.realms": "Multiplayer (Realms)", - "title.multiplayer.lan": "Multiplayer (LAN)", - "title.multiplayer.other": "Multiplayer (3rd-party Server)", + "commands.team.join.success.multiple": "Added %s members to team %s", + "commands.team.join.success.single": "Added %s to team %s", + "commands.team.leave.success.multiple": "Removed %s members from any team", + "commands.team.leave.success.single": "Removed %s from any team", + "commands.team.list.members.empty": "There are no members on team %s", + "commands.team.list.members.success": "Team %s has %s member(s): %s", + "commands.team.list.teams.empty": "There are no teams", + "commands.team.list.teams.success": "There are %s team(s): %s", + "commands.team.option.collisionRule.success": "Collision rule for team %s is now \"%s\"", + "commands.team.option.collisionRule.unchanged": "Nothing changed. Collision rule is already that value", + "commands.team.option.color.success": "Updated the color for team %s to %s", + "commands.team.option.color.unchanged": "Nothing changed. That team already has that color", + "commands.team.option.deathMessageVisibility.success": "Death message visibility for team %s is now \"%s\"", + "commands.team.option.deathMessageVisibility.unchanged": "Nothing changed. Death message visibility is already that value", + "commands.team.option.friendlyfire.alreadyDisabled": "Nothing changed. Friendly fire is already disabled for that team", + "commands.team.option.friendlyfire.alreadyEnabled": "Nothing changed. Friendly fire is already enabled for that team", + "commands.team.option.friendlyfire.disabled": "Disabled friendly fire for team %s", + "commands.team.option.friendlyfire.enabled": "Enabled friendly fire for team %s", + "commands.team.option.name.success": "Updated the name of team %s", + "commands.team.option.name.unchanged": "Nothing changed. That team already has that name", + "commands.team.option.nametagVisibility.success": "Nametag visibility for team %s is now \"%s\"", + "commands.team.option.nametagVisibility.unchanged": "Nothing changed. Nametag visibility is already that value", + "commands.team.option.prefix.success": "Team prefix set to %s", + "commands.team.option.seeFriendlyInvisibles.alreadyDisabled": "Nothing changed. That team already can't see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.alreadyEnabled": "Nothing changed. That team can already see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.disabled": "Team %s can no longer see invisible teammates", + "commands.team.option.seeFriendlyInvisibles.enabled": "Team %s can now see invisible teammates", + "commands.team.option.suffix.success": "Team suffix set to %s", + "commands.team.remove.success": "Removed team %s", + "commands.teammsg.failed.noteam": "You must be on a team to message your team", + "commands.teleport.invalidPosition": "Invalid position for teleport", + "commands.teleport.success.entity.multiple": "Teleported %s entities to %s", + "commands.teleport.success.entity.single": "Teleported %s to %s", + "commands.teleport.success.location.multiple": "Teleported %s entities to %s, %s, %s", + "commands.teleport.success.location.single": "Teleported %s to %s, %s, %s", + "commands.tick.query.percentiles": "Percentiles: P50: %sms P95: %sms P99: %sms, sample: %s", + "commands.tick.query.rate.running": "Target tick rate: %s per second.\nAverage time per tick: %sms (Target: %sms)", + "commands.tick.query.rate.sprinting": "Target tick rate: %s per second (ignored, reference only).\nAverage time per tick: %sms", + "commands.tick.rate.success": "Set the target tick rate to %s per second", + "commands.tick.sprint.report": "Sprint completed with %s ticks per second, or %s ms per tick", + "commands.tick.sprint.stop.fail": "No tick sprint in progress", + "commands.tick.sprint.stop.success": "A tick sprint interrupted", + "commands.tick.status.frozen": "The game is frozen", + "commands.tick.status.lagging": "The game is running, but can't keep up with the target tick rate", + "commands.tick.status.running": "The game runs normally", + "commands.tick.status.sprinting": "The game is sprinting", + "commands.tick.step.fail": "Unable to step the game - the game must be frozen first", + "commands.tick.step.stop.fail": "No tick step in progress", + "commands.tick.step.stop.success": "A tick step interrupted", + "commands.tick.step.success": "Stepping %s tick(s)", + "commands.time.query": "The time is %s", + "commands.time.set": "Set the time to %s", + "commands.title.cleared.multiple": "Cleared titles for %s players", + "commands.title.cleared.single": "Cleared titles for %s", + "commands.title.reset.multiple": "Reset title options for %s players", + "commands.title.reset.single": "Reset title options for %s", + "commands.title.show.actionbar.multiple": "Showing new actionbar title for %s players", + "commands.title.show.actionbar.single": "Showing new actionbar title for %s", + "commands.title.show.subtitle.multiple": "Showing new subtitle for %s players", + "commands.title.show.subtitle.single": "Showing new subtitle for %s", + "commands.title.show.title.multiple": "Showing new title for %s players", + "commands.title.show.title.single": "Showing new title for %s", + "commands.title.times.multiple": "Changed title display times for %s players", + "commands.title.times.single": "Changed title display times for %s", + "commands.trigger.add.success": "Triggered %s (added %s to value)", + "commands.trigger.failed.invalid": "You can only trigger objectives that are 'trigger' type", + "commands.trigger.failed.unprimed": "You cannot trigger this objective yet", + "commands.trigger.set.success": "Triggered %s (set value to %s)", + "commands.trigger.simple.success": "Triggered %s", + "commands.weather.set.clear": "Set the weather to clear", + "commands.weather.set.rain": "Set the weather to rain", + "commands.weather.set.thunder": "Set the weather to rain & thunder", + "commands.whitelist.add.failed": "Player is already whitelisted", + "commands.whitelist.add.success": "Added %s to the whitelist", + "commands.whitelist.alreadyOff": "Whitelist is already turned off", + "commands.whitelist.alreadyOn": "Whitelist is already turned on", + "commands.whitelist.disabled": "Whitelist is now turned off", + "commands.whitelist.enabled": "Whitelist is now turned on", + "commands.whitelist.list": "There are %s whitelisted player(s): %s", + "commands.whitelist.none": "There are no whitelisted players", + "commands.whitelist.reloaded": "Reloaded the whitelist", + "commands.whitelist.remove.failed": "Player is not whitelisted", + "commands.whitelist.remove.success": "Removed %s from the whitelist", + "commands.worldborder.center.failed": "Nothing changed. The world border is already centered there", + "commands.worldborder.center.success": "Set the center of the world border to %s, %s", + "commands.worldborder.damage.amount.failed": "Nothing changed. The world border damage is already that amount", + "commands.worldborder.damage.amount.success": "Set the world border damage to %s per block each second", + "commands.worldborder.damage.buffer.failed": "Nothing changed. The world border damage buffer is already that distance", + "commands.worldborder.damage.buffer.success": "Set the world border damage buffer to %s block(s)", + "commands.worldborder.get": "The world border is currently %s block(s) wide", + "commands.worldborder.set.failed.big": "World border cannot be bigger than %s blocks wide", + "commands.worldborder.set.failed.far": "World border cannot be further out than %s blocks", + "commands.worldborder.set.failed.nochange": "Nothing changed. The world border is already that size", + "commands.worldborder.set.failed.small": "World border cannot be smaller than 1 block wide", + "commands.worldborder.set.grow": "Growing the world border to %s blocks wide over %s seconds", + "commands.worldborder.set.immediate": "Set the world border to %s block(s) wide", + "commands.worldborder.set.shrink": "Shrinking the world border to %s block(s) wide over %s second(s)", + "commands.worldborder.warning.distance.failed": "Nothing changed. The world border warning is already that distance", + "commands.worldborder.warning.distance.success": "Set the world border warning distance to %s block(s)", + "commands.worldborder.warning.time.failed": "Nothing changed. The world border warning is already that amount of time", + "commands.worldborder.warning.time.success": "Set the world border warning time to %s second(s)", + "compliance.playtime.greaterThan24Hours": "You've been playing for greater than 24 hours", + "compliance.playtime.hours": "You've been playing for %s hour(s)", + "compliance.playtime.message": "Excessive gaming may interfere with normal daily life", + "connect.aborted": "Aborted", + "connect.authorizing": "Logging in...", + "connect.connecting": "Connecting to the server...", + "connect.encrypting": "Encrypting...", + "connect.failed": "Failed to connect to the server", + "connect.joining": "Joining world...", + "connect.negotiating": "Negotiating...", + "connect.reconfiging": "Reconfiguring...", + "connect.reconfiguring": "Reconfiguring...", + "container.barrel": "Barrel", + "container.beacon": "Beacon", + "container.blast_furnace": "Blast Furnace", + "container.brewing": "Brewing Stand", + "container.cartography_table": "Cartography Table", + "container.chest": "Chest", + "container.chestDouble": "Large Chest", + "container.crafter": "Crafter", + "container.crafting": "Crafting", + "container.creative": "Item Selection", + "container.dispenser": "Dispenser", + "container.dropper": "Dropper", + "container.enchant": "Enchant", + "container.enchant.clue": "%s . . . ?", + "container.enchant.lapis.many": "%s Lapis Lazuli", + "container.enchant.lapis.one": "1 Lapis Lazuli", + "container.enchant.level.many": "%s Enchantment Levels", + "container.enchant.level.one": "1 Enchantment Level", + "container.enchant.level.requirement": "Level Requirement: %s", + "container.enderchest": "Ender Chest", + "container.furnace": "Furnace", + "container.grindstone_title": "Repair & Disenchant", + "container.hopper": "Item Hopper", + "container.inventory": "Inventory", + "container.isLocked": "%s is locked!", + "container.lectern": "Lectern", + "container.loom": "Loom", + "container.repair": "Repair & Name", + "container.repair.cost": "Enchantment Cost: %1$s", + "container.repair.expensive": "Too Expensive!", + "container.shulkerBox": "Shulker Box", + "container.shulkerBox.itemCount": "%s x%s", + "container.shulkerBox.more": "and %s more...", + "container.shulkerBox.unknownContents": "???????", + "container.smoker": "Smoker", + "container.spectatorCantOpen": "Unable to open. Loot not generated yet.", + "container.stonecutter": "Stonecutter", + "container.upgrade": "Upgrade Gear", + "container.upgrade.error_tooltip": "Item can't be upgraded this way", + "container.upgrade.missing_template_tooltip": "Add Smithing Template", + "controls.keybinds": "Key Binds...", + "controls.keybinds.duplicateKeybinds": "This key is also used for:\n%s", + "controls.keybinds.title": "Key Binds", + "controls.reset": "Reset", + "controls.resetAll": "Reset Keys", + "controls.title": "Controls", + "createWorld.customize.buffet.biome": "Please select a biome", + "createWorld.customize.buffet.title": "Buffet world customization", + "createWorld.customize.custom.baseSize": "Depth Base Size", + "createWorld.customize.custom.biomeDepthOffset": "Biome Depth Offset", + "createWorld.customize.custom.biomeDepthWeight": "Biome Depth Weight", + "createWorld.customize.custom.biomeScaleOffset": "Biome Scale Offset", + "createWorld.customize.custom.biomeScaleWeight": "Biome Scale Weight", + "createWorld.customize.custom.biomeSize": "Biome Size", + "createWorld.customize.custom.center": "Center Height", + "createWorld.customize.custom.confirm1": "This will overwrite your current", + "createWorld.customize.custom.confirm2": "settings and cannot be undone.", + "createWorld.customize.custom.confirmTitle": "Warning!", + "createWorld.customize.custom.coordinateScale": "Coordinate Scale", + "createWorld.customize.custom.count": "Spawn Tries", + "createWorld.customize.custom.defaults": "Defaults", + "createWorld.customize.custom.depthNoiseScaleExponent": "Depth Noise Exponent", + "createWorld.customize.custom.depthNoiseScaleX": "Depth Noise Scale X", + "createWorld.customize.custom.depthNoiseScaleZ": "Depth Noise Scale Z", + "createWorld.customize.custom.dungeonChance": "Dungeon Count", + "createWorld.customize.custom.fixedBiome": "Biome", + "createWorld.customize.custom.heightScale": "Height Scale", + "createWorld.customize.custom.lavaLakeChance": "Lava Lake Rarity", + "createWorld.customize.custom.lowerLimitScale": "Lower Limit Scale", + "createWorld.customize.custom.mainNoiseScaleX": "Main Noise Scale X", + "createWorld.customize.custom.mainNoiseScaleY": "Main Noise Scale Y", + "createWorld.customize.custom.mainNoiseScaleZ": "Main Noise Scale Z", + "createWorld.customize.custom.maxHeight": "Max. Height", + "createWorld.customize.custom.minHeight": "Min. Height", + "createWorld.customize.custom.next": "Next Page", + "createWorld.customize.custom.page0": "Basic Settings", + "createWorld.customize.custom.page1": "Ore Settings", + "createWorld.customize.custom.page2": "Advanced Settings (Expert Users Only!)", + "createWorld.customize.custom.page3": "Extra Advanced Settings (Expert Users Only!)", + "createWorld.customize.custom.preset.caveChaos": "Caves of Chaos", + "createWorld.customize.custom.preset.caveDelight": "Caver's Delight", + "createWorld.customize.custom.preset.drought": "Drought", + "createWorld.customize.custom.preset.goodLuck": "Good Luck", + "createWorld.customize.custom.preset.isleLand": "Isle Land", + "createWorld.customize.custom.preset.mountains": "Mountain Madness", + "createWorld.customize.custom.preset.waterWorld": "Water World", + "createWorld.customize.custom.presets": "Presets", + "createWorld.customize.custom.presets.title": "Customize World Presets", + "createWorld.customize.custom.prev": "Previous Page", + "createWorld.customize.custom.randomize": "Randomize", + "createWorld.customize.custom.riverSize": "River Size", + "createWorld.customize.custom.seaLevel": "Sea Level", + "createWorld.customize.custom.size": "Spawn Size", + "createWorld.customize.custom.spread": "Spread Height", + "createWorld.customize.custom.stretchY": "Height Stretch", + "createWorld.customize.custom.upperLimitScale": "Upper Limit Scale", + "createWorld.customize.custom.useCaves": "Caves", + "createWorld.customize.custom.useDungeons": "Dungeons", + "createWorld.customize.custom.useLavaLakes": "Lava Lakes", + "createWorld.customize.custom.useLavaOceans": "Lava Oceans", + "createWorld.customize.custom.useMansions": "Woodland Mansions", + "createWorld.customize.custom.useMineShafts": "Mineshafts", + "createWorld.customize.custom.useMonuments": "Ocean Monuments", + "createWorld.customize.custom.useOceanRuins": "Ocean Ruins", + "createWorld.customize.custom.useRavines": "Ravines", + "createWorld.customize.custom.useStrongholds": "Strongholds", + "createWorld.customize.custom.useTemples": "Temples", + "createWorld.customize.custom.useVillages": "Villages", + "createWorld.customize.custom.useWaterLakes": "Water Lakes", + "createWorld.customize.custom.waterLakeChance": "Water Lake Rarity", + "createWorld.customize.flat.height": "Height", + "createWorld.customize.flat.layer": "%s", + "createWorld.customize.flat.layer.bottom": "Bottom - %s", + "createWorld.customize.flat.layer.top": "Top - %s", + "createWorld.customize.flat.removeLayer": "Remove Layer", + "createWorld.customize.flat.tile": "Layer Material", + "createWorld.customize.flat.title": "Superflat Customization", + "createWorld.customize.presets": "Presets", + "createWorld.customize.presets.list": "Alternatively, here's some we made earlier!", + "createWorld.customize.presets.select": "Use Preset", + "createWorld.customize.presets.share": "Want to share your preset with someone? Use the box below!", + "createWorld.customize.presets.title": "Select a Preset", + "createWorld.preparing": "Preparing for world creation...", + "createWorld.tab.game.title": "Game", + "createWorld.tab.more.title": "More", + "createWorld.tab.world.title": "World", + "credits_and_attribution.button.attribution": "Attribution", + "credits_and_attribution.button.credits": "Credits", + "credits_and_attribution.button.licenses": "Licenses", + "credits_and_attribution.screen.title": "Credits and Attribution", + "dataPack.bundle.description": "Enables experimental Bundle item", + "dataPack.bundle.name": "Bundles", + "dataPack.title": "Select Data Packs", + "dataPack.trade_rebalance.description": "Updated trades for Villagers", + "dataPack.trade_rebalance.name": "Villager Trade Rebalance", + "dataPack.update_1_20.description": "New features and content for Minecraft 1.20", + "dataPack.update_1_20.name": "Update 1.20", + "dataPack.update_1_21.description": "New features and content for Minecraft 1.21", + "dataPack.update_1_21.name": "Update 1.21", + "dataPack.validation.back": "Go Back", + "dataPack.validation.failed": "Data pack validation failed!", + "dataPack.validation.reset": "Reset to Default", + "dataPack.validation.working": "Validating selected data packs...", + "dataPack.vanilla.description": "The default data for Minecraft", + "dataPack.vanilla.name": "Default", + "datapackFailure.safeMode": "Safe Mode", + "datapackFailure.safeMode.failed.description": "This world contains invalid or corrupted save data.", + "datapackFailure.safeMode.failed.title": "Failed to load world in Safe Mode.", + "datapackFailure.title": "Errors in currently selected data packs prevented the world from loading.\nYou can either try to load it with only the vanilla data pack (\"safe mode\"), or go back to the title screen and fix it manually.", + "death.attack.anvil": "%1$s was squashed by a falling anvil", + "death.attack.anvil.player": "%1$s was squashed by a falling anvil while fighting %2$s", + "death.attack.arrow": "%1$s was shot by %2$s", + "death.attack.arrow.item": "%1$s was shot by %2$s using %3$s", + "death.attack.badRespawnPoint.link": "Intentional Game Design", + "death.attack.badRespawnPoint.message": "%1$s was killed by %2$s", + "death.attack.cactus": "%1$s was pricked to death", + "death.attack.cactus.player": "%1$s walked into a cactus while trying to escape %2$s", + "death.attack.cramming": "%1$s was squished too much", + "death.attack.cramming.player": "%1$s was squashed by %2$s", + "death.attack.dragonBreath": "%1$s was roasted in dragon's breath", + "death.attack.dragonBreath.player": "%1$s was roasted in dragon's breath by %2$s", + "death.attack.drown": "%1$s drowned", + "death.attack.drown.player": "%1$s drowned while trying to escape %2$s", + "death.attack.dryout": "%1$s died from dehydration", + "death.attack.dryout.player": "%1$s died from dehydration while trying to escape %2$s", + "death.attack.even_more_magic": "%1$s was killed by even more magic", + "death.attack.explosion": "%1$s blew up", + "death.attack.explosion.player": "%1$s was blown up by %2$s", + "death.attack.explosion.player.item": "%1$s was blown up by %2$s using %3$s", + "death.attack.fall": "%1$s hit the ground too hard", + "death.attack.fall.player": "%1$s hit the ground too hard while trying to escape %2$s", + "death.attack.fallingBlock": "%1$s was squashed by a falling block", + "death.attack.fallingBlock.player": "%1$s was squashed by a falling block while fighting %2$s", + "death.attack.fallingStalactite": "%1$s was skewered by a falling stalactite", + "death.attack.fallingStalactite.player": "%1$s was skewered by a falling stalactite while fighting %2$s", + "death.attack.fireball": "%1$s was fireballed by %2$s", + "death.attack.fireball.item": "%1$s was fireballed by %2$s using %3$s", + "death.attack.fireworks": "%1$s went off with a bang", + "death.attack.fireworks.item": "%1$s went off with a bang due to a firework fired from %3$s by %2$s", + "death.attack.fireworks.player": "%1$s went off with a bang while fighting %2$s", + "death.attack.flyIntoWall": "%1$s experienced kinetic energy", + "death.attack.flyIntoWall.player": "%1$s experienced kinetic energy while trying to escape %2$s", + "death.attack.freeze": "%1$s froze to death", + "death.attack.freeze.player": "%1$s was frozen to death by %2$s", + "death.attack.generic": "%1$s died", + "death.attack.generic.player": "%1$s died because of %2$s", + "death.attack.genericKill": "%1$s was killed", + "death.attack.genericKill.player": "%1$s was killed while fighting %2$s", + "death.attack.hotFloor": "%1$s discovered the floor was lava", + "death.attack.hotFloor.player": "%1$s walked into the danger zone due to %2$s", + "death.attack.indirectMagic": "%1$s was killed by %2$s using magic", + "death.attack.indirectMagic.item": "%1$s was killed by %2$s using %3$s", + "death.attack.inFire": "%1$s went up in flames", + "death.attack.inFire.player": "%1$s walked into fire while fighting %2$s", + "death.attack.inWall": "%1$s suffocated in a wall", + "death.attack.inWall.player": "%1$s suffocated in a wall while fighting %2$s", + "death.attack.lava": "%1$s tried to swim in lava", + "death.attack.lava.player": "%1$s tried to swim in lava to escape %2$s", + "death.attack.lightningBolt": "%1$s was struck by lightning", + "death.attack.lightningBolt.player": "%1$s was struck by lightning while fighting %2$s", + "death.attack.magic": "%1$s was killed by magic", + "death.attack.magic.player": "%1$s was killed by magic while trying to escape %2$s", + "death.attack.message_too_long": "Actually, the message was too long to deliver fully. Sorry! Here's a stripped version: %s", + "death.attack.mob": "%1$s was slain by %2$s", + "death.attack.mob.item": "%1$s was slain by %2$s using %3$s", + "death.attack.onFire": "%1$s burned to death", + "death.attack.onFire.item": "%1$s was burned to a crisp while fighting %2$s wielding %3$s", + "death.attack.onFire.player": "%1$s was burned to a crisp while fighting %2$s", + "death.attack.outOfWorld": "%1$s fell out of the world", + "death.attack.outOfWorld.player": "%1$s didn't want to live in the same world as %2$s", + "death.attack.outsideBorder": "%1$s left the confines of this world", + "death.attack.outsideBorder.player": "%1$s left the confines of this world while fighting %2$s", + "death.attack.player": "%1$s was slain by %2$s", + "death.attack.player.item": "%1$s was slain by %2$s using %3$s", + "death.attack.sonic_boom": "%1$s was obliterated by a sonically-charged shriek", + "death.attack.sonic_boom.item": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s wielding %3$s", + "death.attack.sonic_boom.player": "%1$s was obliterated by a sonically-charged shriek while trying to escape %2$s", + "death.attack.stalagmite": "%1$s was impaled on a stalagmite", + "death.attack.stalagmite.player": "%1$s was impaled on a stalagmite while fighting %2$s", + "death.attack.starve": "%1$s starved to death", + "death.attack.starve.player": "%1$s starved to death while fighting %2$s", + "death.attack.sting": "%1$s was stung to death", + "death.attack.sting.item": "%1$s was stung to death by %2$s using %3$s", + "death.attack.sting.player": "%1$s was stung to death by %2$s", + "death.attack.sweetBerryBush": "%1$s was poked to death by a sweet berry bush", + "death.attack.sweetBerryBush.player": "%1$s was poked to death by a sweet berry bush while trying to escape %2$s", + "death.attack.thorns": "%1$s was killed while trying to hurt %2$s", + "death.attack.thorns.item": "%1$s was killed by %3$s while trying to hurt %2$s", + "death.attack.thrown": "%1$s was pummeled by %2$s", + "death.attack.thrown.item": "%1$s was pummeled by %2$s using %3$s", + "death.attack.trident": "%1$s was impaled by %2$s", + "death.attack.trident.item": "%1$s was impaled by %2$s with %3$s", + "death.attack.wither": "%1$s withered away", + "death.attack.wither.player": "%1$s withered away while fighting %2$s", + "death.attack.witherSkull": "%1$s was shot by a skull from %2$s", + "death.attack.witherSkull.item": "%1$s was shot by a skull from %2$s using %3$s", + "death.fell.accident.generic": "%1$s fell from a high place", + "death.fell.accident.ladder": "%1$s fell off a ladder", + "death.fell.accident.other_climbable": "%1$s fell while climbing", + "death.fell.accident.scaffolding": "%1$s fell off scaffolding", + "death.fell.accident.twisting_vines": "%1$s fell off some twisting vines", + "death.fell.accident.vines": "%1$s fell off some vines", + "death.fell.accident.weeping_vines": "%1$s fell off some weeping vines", + "death.fell.assist": "%1$s was doomed to fall by %2$s", + "death.fell.assist.item": "%1$s was doomed to fall by %2$s using %3$s", + "death.fell.finish": "%1$s fell too far and was finished by %2$s", + "death.fell.finish.item": "%1$s fell too far and was finished by %2$s using %3$s", + "death.fell.killer": "%1$s was doomed to fall", + "deathScreen.quit.confirm": "Are you sure you want to quit?", + "deathScreen.respawn": "Respawn", + "deathScreen.score": "Score", + "deathScreen.score.value": "Score: %s", + "deathScreen.spectate": "Spectate World", + "deathScreen.title": "You Died!", + "deathScreen.title.hardcore": "Game Over!", + "deathScreen.titleScreen": "Title Screen", + "debug.advanced_tooltips.help": "F3 + H = Advanced tooltips", + "debug.advanced_tooltips.off": "Advanced tooltips: hidden", + "debug.advanced_tooltips.on": "Advanced tooltips: shown", + "debug.chunk_boundaries.help": "F3 + G = Show chunk boundaries", + "debug.chunk_boundaries.off": "Chunk borders: hidden", + "debug.chunk_boundaries.on": "Chunk borders: shown", + "debug.clear_chat.help": "F3 + D = Clear chat", + "debug.copy_location.help": "F3 + C = Copy location as /tp command, hold F3 + C to crash the game", + "debug.copy_location.message": "Copied location to clipboard", + "debug.crash.message": "F3 + C is held down. This will crash the game unless released.", + "debug.crash.warning": "Crashing in %s...", + "debug.creative_spectator.error": "Unable to switch game mode; no permission", + "debug.creative_spectator.help": "F3 + N = Cycle previous game mode <-> spectator", + "debug.dump_dynamic_textures": "Saved dynamic textures to %s", + "debug.dump_dynamic_textures.help": "F3 + S = Dump dynamic textures", + "debug.gamemodes.error": "Unable to open game mode switcher; no permission", + "debug.gamemodes.help": "F3 + F4 = Open game mode switcher", + "debug.gamemodes.press_f4": "[ F4 ]", + "debug.gamemodes.select_next": "%s Next", + "debug.help.help": "F3 + Q = Show this list", + "debug.help.message": "Key bindings:", + "debug.inspect.client.block": "Copied client-side block data to clipboard", + "debug.inspect.client.entity": "Copied client-side entity data to clipboard", + "debug.inspect.help": "F3 + I = Copy entity or block data to clipboard", + "debug.inspect.server.block": "Copied server-side block data to clipboard", + "debug.inspect.server.entity": "Copied server-side entity data to clipboard", + "debug.pause_focus.help": "F3 + P = Pause on lost focus", + "debug.pause_focus.off": "Pause on lost focus: disabled", + "debug.pause_focus.on": "Pause on lost focus: enabled", + "debug.pause.help": "F3 + Esc = Pause without pause menu (if pausing is possible)", + "debug.prefix": "[Debug]:", + "debug.profiling.help": "F3 + L = Start/stop profiling", + "debug.profiling.start": "Profiling started for %s seconds. Use F3 + L to stop early", + "debug.profiling.stop": "Profiling ended. Saved results to %s", + "debug.reload_chunks.help": "F3 + A = Reload chunks", + "debug.reload_chunks.message": "Reloading all chunks", + "debug.reload_resourcepacks.help": "F3 + T = Reload resource packs", + "debug.reload_resourcepacks.message": "Reloaded resource packs", + "debug.show_hitboxes.help": "F3 + B = Show hitboxes", + "debug.show_hitboxes.off": "Hitboxes: hidden", + "debug.show_hitboxes.on": "Hitboxes: shown", + "demo.day.1": "This demo will last five game days. Do your best!", + "demo.day.2": "Day Two", + "demo.day.3": "Day Three", + "demo.day.4": "Day Four", + "demo.day.5": "This is your last day!", + "demo.day.6": "You have passed your fifth day. Use %s to save a screenshot of your creation.", + "demo.day.warning": "Your time is almost up!", + "demo.demoExpired": "Demo time's up!", + "demo.help.buy": "Purchase Now!", + "demo.help.fullWrapped": "This demo will last 5 in-game days (about 1 hour and 40 minutes of real time). Check the advancements for hints! Have fun!", + "demo.help.inventory": "Use the %1$s key to open your inventory", + "demo.help.jump": "Jump by pressing the %1$s key", + "demo.help.later": "Continue Playing!", + "demo.help.movement": "Use the %1$s, %2$s, %3$s, %4$s keys and the mouse to move around", + "demo.help.movementMouse": "Look around using the mouse", + "demo.help.movementShort": "Move by pressing the %1$s, %2$s, %3$s, %4$s keys", + "demo.help.title": "Minecraft Demo Mode", + "demo.remainingTime": "Remaining time: %s", + "demo.reminder": "The demo time has expired. Buy the game to continue or start a new world!", + "difficulty.lock.question": "Are you sure you want to lock the difficulty of this world? This will set this world to always be %1$s, and you will never be able to change that again.", + "difficulty.lock.title": "Lock World Difficulty", + "disconnect.closed": "Connection closed", + "disconnect.disconnected": "Disconnected by Server", + "disconnect.endOfStream": "End of stream", + "disconnect.exceeded_packet_rate": "Kicked for exceeding packet rate limit", + "disconnect.genericReason": "%s", + "disconnect.ignoring_status_request": "Ignoring status request", + "disconnect.kicked": "Was kicked from the game", + "disconnect.loginFailed": "Failed to log in", + "disconnect.loginFailedInfo": "Failed to log in: %s", + "disconnect.loginFailedInfo.insufficientPrivileges": "Multiplayer is disabled. Please check your Microsoft account settings.", + "disconnect.loginFailedInfo.invalidSession": "Invalid session (Try restarting your game and the launcher)", + "disconnect.loginFailedInfo.serversUnavailable": "The authentication servers are currently not reachable. Please try again.", + "disconnect.loginFailedInfo.userBanned": "You are banned from playing online", + "disconnect.lost": "Connection Lost", + "disconnect.overflow": "Buffer overflow", + "disconnect.quitting": "Quitting", + "disconnect.spam": "Kicked for spamming", + "disconnect.timeout": "Timed out", + "disconnect.unknownHost": "Unknown host", + "download.pack.failed": "%s out of %s packs failed to download", + "download.pack.progress.bytes": "Progress: %s (total size unknown)", + "download.pack.progress.percent": "Progress: %s%%", + "download.pack.title": "Downloading resource pack %s/%s", + "editGamerule.default": "Default: %s", + "editGamerule.title": "Edit Game Rules", + "effect.duration.infinite": "∞", + "effect.minecraft.absorption": "Absorption", + "effect.minecraft.bad_omen": "Bad Omen", + "effect.minecraft.blindness": "Blindness", + "effect.minecraft.conduit_power": "Conduit Power", + "effect.minecraft.darkness": "Darkness", + "effect.minecraft.dolphins_grace": "Dolphin's Grace", + "effect.minecraft.fire_resistance": "Fire Resistance", + "effect.minecraft.glowing": "Glowing", + "effect.minecraft.haste": "Haste", + "effect.minecraft.health_boost": "Health Boost", + "effect.minecraft.hero_of_the_village": "Hero of the Village", + "effect.minecraft.hunger": "Hunger", + "effect.minecraft.instant_damage": "Instant Damage", + "effect.minecraft.instant_health": "Instant Health", + "effect.minecraft.invisibility": "Invisibility", + "effect.minecraft.jump_boost": "Jump Boost", + "effect.minecraft.levitation": "Levitation", + "effect.minecraft.luck": "Luck", + "effect.minecraft.mining_fatigue": "Mining Fatigue", + "effect.minecraft.nausea": "Nausea", + "effect.minecraft.night_vision": "Night Vision", + "effect.minecraft.poison": "Poison", + "effect.minecraft.regeneration": "Regeneration", + "effect.minecraft.resistance": "Resistance", + "effect.minecraft.saturation": "Saturation", + "effect.minecraft.slow_falling": "Slow Falling", + "effect.minecraft.slowness": "Slowness", + "effect.minecraft.speed": "Speed", + "effect.minecraft.strength": "Strength", + "effect.minecraft.unluck": "Bad Luck", + "effect.minecraft.water_breathing": "Water Breathing", + "effect.minecraft.weakness": "Weakness", + "effect.minecraft.wither": "Wither", + "effect.none": "No Effects", + "enchantment.level.1": "I", + "enchantment.level.2": "II", + "enchantment.level.3": "III", + "enchantment.level.4": "IV", + "enchantment.level.5": "V", + "enchantment.level.6": "VI", + "enchantment.level.7": "VII", + "enchantment.level.8": "VIII", + "enchantment.level.9": "IX", + "enchantment.level.10": "X", + "enchantment.minecraft.aqua_affinity": "Aqua Affinity", + "enchantment.minecraft.bane_of_arthropods": "Bane of Arthropods", + "enchantment.minecraft.binding_curse": "Curse of Binding", + "enchantment.minecraft.blast_protection": "Blast Protection", + "enchantment.minecraft.channeling": "Channeling", + "enchantment.minecraft.depth_strider": "Depth Strider", + "enchantment.minecraft.efficiency": "Efficiency", + "enchantment.minecraft.feather_falling": "Feather Falling", + "enchantment.minecraft.fire_aspect": "Fire Aspect", + "enchantment.minecraft.fire_protection": "Fire Protection", + "enchantment.minecraft.flame": "Flame", + "enchantment.minecraft.fortune": "Fortune", + "enchantment.minecraft.frost_walker": "Frost Walker", + "enchantment.minecraft.impaling": "Impaling", + "enchantment.minecraft.infinity": "Infinity", + "enchantment.minecraft.knockback": "Knockback", + "enchantment.minecraft.looting": "Looting", + "enchantment.minecraft.loyalty": "Loyalty", + "enchantment.minecraft.luck_of_the_sea": "Luck of the Sea", + "enchantment.minecraft.lure": "Lure", + "enchantment.minecraft.mending": "Mending", + "enchantment.minecraft.multishot": "Multishot", + "enchantment.minecraft.piercing": "Piercing", + "enchantment.minecraft.power": "Power", + "enchantment.minecraft.projectile_protection": "Projectile Protection", + "enchantment.minecraft.protection": "Protection", + "enchantment.minecraft.punch": "Punch", + "enchantment.minecraft.quick_charge": "Quick Charge", + "enchantment.minecraft.respiration": "Respiration", + "enchantment.minecraft.riptide": "Riptide", + "enchantment.minecraft.sharpness": "Sharpness", + "enchantment.minecraft.silk_touch": "Silk Touch", + "enchantment.minecraft.smite": "Smite", + "enchantment.minecraft.soul_speed": "Soul Speed", + "enchantment.minecraft.sweeping": "Sweeping Edge", + "enchantment.minecraft.swift_sneak": "Swift Sneak", + "enchantment.minecraft.thorns": "Thorns", + "enchantment.minecraft.unbreaking": "Unbreaking", + "enchantment.minecraft.vanishing_curse": "Curse of Vanishing", + "entity.minecraft.allay": "Allay", + "entity.minecraft.area_effect_cloud": "Area Effect Cloud", + "entity.minecraft.armor_stand": "Armor Stand", + "entity.minecraft.arrow": "Arrow", + "entity.minecraft.axolotl": "Axolotl", + "entity.minecraft.bat": "Bat", + "entity.minecraft.bee": "Bee", + "entity.minecraft.blaze": "Blaze", + "entity.minecraft.block_display": "Block Display", + "entity.minecraft.boat": "Boat", + "entity.minecraft.breeze": "Breeze", + "entity.minecraft.camel": "Camel", + "entity.minecraft.cat": "Cat", + "entity.minecraft.cave_spider": "Cave Spider", + "entity.minecraft.chest_boat": "Boat with Chest", + "entity.minecraft.chest_minecart": "Minecart with Chest", + "entity.minecraft.chicken": "Chicken", + "entity.minecraft.cod": "Cod", + "entity.minecraft.command_block_minecart": "Minecart with Command Block", + "entity.minecraft.cow": "Cow", + "entity.minecraft.creeper": "Creeper", + "entity.minecraft.dolphin": "Dolphin", + "entity.minecraft.donkey": "Donkey", + "entity.minecraft.dragon_fireball": "Dragon Fireball", + "entity.minecraft.drowned": "Drowned", + "entity.minecraft.egg": "Thrown Egg", + "entity.minecraft.elder_guardian": "Elder Guardian", + "entity.minecraft.end_crystal": "End Crystal", + "entity.minecraft.ender_dragon": "Ender Dragon", + "entity.minecraft.ender_pearl": "Thrown Ender Pearl", + "entity.minecraft.enderman": "Enderman", + "entity.minecraft.endermite": "Endermite", + "entity.minecraft.evoker": "Evoker", + "entity.minecraft.evoker_fangs": "Evoker Fangs", + "entity.minecraft.experience_bottle": "Thrown Bottle o' Enchanting", + "entity.minecraft.experience_orb": "Experience Orb", + "entity.minecraft.eye_of_ender": "Eye of Ender", + "entity.minecraft.falling_block": "Falling Block", + "entity.minecraft.falling_block_type": "Falling %s", + "entity.minecraft.fireball": "Fireball", + "entity.minecraft.firework_rocket": "Firework Rocket", + "entity.minecraft.fishing_bobber": "Fishing Bobber", + "entity.minecraft.fox": "Fox", + "entity.minecraft.frog": "Frog", + "entity.minecraft.furnace_minecart": "Minecart with Furnace", + "entity.minecraft.ghast": "Ghast", + "entity.minecraft.giant": "Giant", + "entity.minecraft.glow_item_frame": "Glow Item Frame", + "entity.minecraft.glow_squid": "Glow Squid", + "entity.minecraft.goat": "Goat", + "entity.minecraft.guardian": "Guardian", + "entity.minecraft.hoglin": "Hoglin", + "entity.minecraft.hopper_minecart": "Minecart with Hopper", + "entity.minecraft.horse": "Horse", + "entity.minecraft.husk": "Husk", + "entity.minecraft.illusioner": "Illusioner", + "entity.minecraft.interaction": "Interaction", + "entity.minecraft.iron_golem": "Iron Golem", + "entity.minecraft.item": "Item", + "entity.minecraft.item_display": "Item Display", + "entity.minecraft.item_frame": "Item Frame", + "entity.minecraft.killer_bunny": "The Killer Bunny", + "entity.minecraft.leash_knot": "Leash Knot", + "entity.minecraft.lightning_bolt": "Lightning Bolt", + "entity.minecraft.llama": "Llama", + "entity.minecraft.llama_spit": "Llama Spit", + "entity.minecraft.magma_cube": "Magma Cube", + "entity.minecraft.marker": "Marker", + "entity.minecraft.minecart": "Minecart", + "entity.minecraft.mooshroom": "Mooshroom", + "entity.minecraft.mule": "Mule", + "entity.minecraft.ocelot": "Ocelot", + "entity.minecraft.painting": "Painting", + "entity.minecraft.panda": "Panda", + "entity.minecraft.parrot": "Parrot", + "entity.minecraft.phantom": "Phantom", + "entity.minecraft.pig": "Pig", + "entity.minecraft.piglin": "Piglin", + "entity.minecraft.piglin_brute": "Piglin Brute", + "entity.minecraft.pillager": "Pillager", + "entity.minecraft.player": "Player", + "entity.minecraft.polar_bear": "Polar Bear", + "entity.minecraft.potion": "Potion", + "entity.minecraft.pufferfish": "Pufferfish", + "entity.minecraft.rabbit": "Rabbit", + "entity.minecraft.ravager": "Ravager", + "entity.minecraft.salmon": "Salmon", + "entity.minecraft.sheep": "Sheep", + "entity.minecraft.shulker": "Shulker", + "entity.minecraft.shulker_bullet": "Shulker Bullet", + "entity.minecraft.silverfish": "Silverfish", + "entity.minecraft.skeleton": "Skeleton", + "entity.minecraft.skeleton_horse": "Skeleton Horse", + "entity.minecraft.slime": "Slime", + "entity.minecraft.small_fireball": "Small Fireball", + "entity.minecraft.sniffer": "Sniffer", + "entity.minecraft.snow_golem": "Snow Golem", + "entity.minecraft.snowball": "Snowball", + "entity.minecraft.spawner_minecart": "Minecart with Monster Spawner", + "entity.minecraft.spectral_arrow": "Spectral Arrow", + "entity.minecraft.spider": "Spider", + "entity.minecraft.squid": "Squid", + "entity.minecraft.stray": "Stray", + "entity.minecraft.strider": "Strider", + "entity.minecraft.tadpole": "Tadpole", + "entity.minecraft.text_display": "Text Display", + "entity.minecraft.tnt": "Primed TNT", + "entity.minecraft.tnt_minecart": "Minecart with TNT", + "entity.minecraft.trader_llama": "Trader Llama", + "entity.minecraft.trident": "Trident", + "entity.minecraft.tropical_fish": "Tropical Fish", + "entity.minecraft.tropical_fish.predefined.0": "Anemone", + "entity.minecraft.tropical_fish.predefined.1": "Black Tang", + "entity.minecraft.tropical_fish.predefined.2": "Blue Tang", + "entity.minecraft.tropical_fish.predefined.3": "Butterflyfish", + "entity.minecraft.tropical_fish.predefined.4": "Cichlid", + "entity.minecraft.tropical_fish.predefined.5": "Clownfish", + "entity.minecraft.tropical_fish.predefined.6": "Cotton Candy Betta", + "entity.minecraft.tropical_fish.predefined.7": "Dottyback", + "entity.minecraft.tropical_fish.predefined.8": "Emperor Red Snapper", + "entity.minecraft.tropical_fish.predefined.9": "Goatfish", + "entity.minecraft.tropical_fish.predefined.10": "Moorish Idol", + "entity.minecraft.tropical_fish.predefined.11": "Ornate Butterflyfish", + "entity.minecraft.tropical_fish.predefined.12": "Parrotfish", + "entity.minecraft.tropical_fish.predefined.13": "Queen Angelfish", + "entity.minecraft.tropical_fish.predefined.14": "Red Cichlid", + "entity.minecraft.tropical_fish.predefined.15": "Red Lipped Blenny", + "entity.minecraft.tropical_fish.predefined.16": "Red Snapper", + "entity.minecraft.tropical_fish.predefined.17": "Threadfin", + "entity.minecraft.tropical_fish.predefined.18": "Tomato Clownfish", + "entity.minecraft.tropical_fish.predefined.19": "Triggerfish", + "entity.minecraft.tropical_fish.predefined.20": "Yellowtail Parrotfish", + "entity.minecraft.tropical_fish.predefined.21": "Yellow Tang", + "entity.minecraft.tropical_fish.type.betty": "Betty", + "entity.minecraft.tropical_fish.type.blockfish": "Blockfish", + "entity.minecraft.tropical_fish.type.brinely": "Brinely", + "entity.minecraft.tropical_fish.type.clayfish": "Clayfish", + "entity.minecraft.tropical_fish.type.dasher": "Dasher", + "entity.minecraft.tropical_fish.type.flopper": "Flopper", + "entity.minecraft.tropical_fish.type.glitter": "Glitter", + "entity.minecraft.tropical_fish.type.kob": "Kob", + "entity.minecraft.tropical_fish.type.snooper": "Snooper", + "entity.minecraft.tropical_fish.type.spotty": "Spotty", + "entity.minecraft.tropical_fish.type.stripey": "Stripey", + "entity.minecraft.tropical_fish.type.sunstreak": "Sunstreak", + "entity.minecraft.turtle": "Turtle", + "entity.minecraft.vex": "Vex", + "entity.minecraft.villager": "Villager", + "entity.minecraft.villager.armorer": "Armorer", + "entity.minecraft.villager.butcher": "Butcher", + "entity.minecraft.villager.cartographer": "Cartographer", + "entity.minecraft.villager.cleric": "Cleric", + "entity.minecraft.villager.farmer": "Farmer", + "entity.minecraft.villager.fisherman": "Fisherman", + "entity.minecraft.villager.fletcher": "Fletcher", + "entity.minecraft.villager.leatherworker": "Leatherworker", + "entity.minecraft.villager.librarian": "Librarian", + "entity.minecraft.villager.mason": "Mason", + "entity.minecraft.villager.nitwit": "Nitwit", + "entity.minecraft.villager.none": "Villager", + "entity.minecraft.villager.shepherd": "Shepherd", + "entity.minecraft.villager.toolsmith": "Toolsmith", + "entity.minecraft.villager.weaponsmith": "Weaponsmith", + "entity.minecraft.vindicator": "Vindicator", + "entity.minecraft.wandering_trader": "Wandering Trader", + "entity.minecraft.warden": "Warden", + "entity.minecraft.wind_charge": "Wind Charge", + "entity.minecraft.witch": "Witch", + "entity.minecraft.wither": "Wither", + "entity.minecraft.wither_skeleton": "Wither Skeleton", + "entity.minecraft.wither_skull": "Wither Skull", + "entity.minecraft.wolf": "Wolf", + "entity.minecraft.zoglin": "Zoglin", + "entity.minecraft.zombie": "Zombie", + "entity.minecraft.zombie_horse": "Zombie Horse", + "entity.minecraft.zombie_villager": "Zombie Villager", + "entity.minecraft.zombified_piglin": "Zombified Piglin", + "entity.not_summonable": "Can't summon entity of type %s", + "event.minecraft.raid": "Raid", + "event.minecraft.raid.defeat": "Defeat", + "event.minecraft.raid.defeat.full": "Raid - Defeat", + "event.minecraft.raid.raiders_remaining": "Raiders Remaining: %s", + "event.minecraft.raid.victory": "Victory", + "event.minecraft.raid.victory.full": "Raid - Victory", + "filled_map.buried_treasure": "Buried Treasure Map", + "filled_map.explorer_jungle": "Jungle Explorer Map", + "filled_map.explorer_swamp": "Swamp Explorer Map", + "filled_map.id": "Id #%s", + "filled_map.level": "(Level %s/%s)", + "filled_map.locked": "Locked", + "filled_map.mansion": "Woodland Explorer Map", + "filled_map.monument": "Ocean Explorer Map", + "filled_map.scale": "Scaling at 1:%s", + "filled_map.unknown": "Unknown Map", + "filled_map.village_desert": "Desert Village Map", + "filled_map.village_plains": "Plains Village Map", + "filled_map.village_savanna": "Savanna Village Map", + "filled_map.village_snowy": "Snowy Village Map", + "filled_map.village_taiga": "Taiga Village Map", + "flat_world_preset.minecraft.bottomless_pit": "Bottomless Pit", + "flat_world_preset.minecraft.classic_flat": "Classic Flat", + "flat_world_preset.minecraft.desert": "Desert", + "flat_world_preset.minecraft.overworld": "Overworld", + "flat_world_preset.minecraft.redstone_ready": "Redstone Ready", + "flat_world_preset.minecraft.snowy_kingdom": "Snowy Kingdom", + "flat_world_preset.minecraft.the_void": "The Void", + "flat_world_preset.minecraft.tunnelers_dream": "Tunnelers' Dream", + "flat_world_preset.minecraft.water_world": "Water World", + "flat_world_preset.unknown": "???", + "gameMode.adventure": "Adventure Mode", + "gameMode.changed": "Your game mode has been updated to %s", + "gameMode.creative": "Creative Mode", + "gameMode.hardcore": "Hardcore Mode!", + "gameMode.spectator": "Spectator Mode", + "gameMode.survival": "Survival Mode", "gamerule.announceAdvancements": "Announce advancements", + "gamerule.blockExplosionDropDecay": "In block interaction explosions, some blocks won't drop their loot", + "gamerule.blockExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by block interactions are lost in the explosion.", + "gamerule.category.chat": "Chat", + "gamerule.category.drops": "Drops", + "gamerule.category.misc": "Miscellaneous", + "gamerule.category.mobs": "Mobs", + "gamerule.category.player": "Player", + "gamerule.category.spawning": "Spawning", + "gamerule.category.updates": "World Updates", "gamerule.commandBlockOutput": "Broadcast command block output", + "gamerule.commandModificationBlockLimit": "Command modification block limit", + "gamerule.commandModificationBlockLimit.description": "Number of blocks that can be changed at once by one command, such as fill or clone.", "gamerule.disableElytraMovementCheck": "Disable elytra movement check", "gamerule.disableRaids": "Disable raids", "gamerule.doDaylightCycle": "Advance time of day", @@ -5529,310 +3425,3118 @@ "gamerule.doImmediateRespawn": "Respawn immediately", "gamerule.doInsomnia": "Spawn phantoms", "gamerule.doLimitedCrafting": "Require recipe for crafting", - "gamerule.doLimitedCrafting.description": "If enabled, players will be able to craft only unlocked recipes", + "gamerule.doLimitedCrafting.description": "If enabled, players will be able to craft only unlocked recipes.", "gamerule.doMobLoot": "Drop mob loot", - "gamerule.doMobLoot.description": "Controls resource drops from mobs, including experience orbs", + "gamerule.doMobLoot.description": "Controls resource drops from mobs, including experience orbs.", "gamerule.doMobSpawning": "Spawn mobs", - "gamerule.doMobSpawning.description": "Some entities might have separate rules", + "gamerule.doMobSpawning.description": "Some entities might have separate rules.", "gamerule.doPatrolSpawning": "Spawn pillager patrols", "gamerule.doTileDrops": "Drop blocks", - "gamerule.doTileDrops.description": "Controls resource drops from blocks, including experience orbs", + "gamerule.doTileDrops.description": "Controls resource drops from blocks, including experience orbs.", "gamerule.doTraderSpawning": "Spawn Wandering Traders", + "gamerule.doVinesSpread": "Vines spread", + "gamerule.doVinesSpread.description": "Controls whether or not the Vines block spreads randomly to adjacent blocks. Does not affect other type of vine blocks such as Weeping Vines, Twisting Vines, etc.", "gamerule.doWardenSpawning": "Spawn Wardens", "gamerule.doWeatherCycle": "Update weather", "gamerule.drowningDamage": "Deal drowning damage", + "gamerule.enderPearlsVanishOnDeath": "Thrown ender pearls vanish on death", + "gamerule.enderPearlsVanishOnDeath.description": "Whether ender pearls thrown by a player vanish when that player dies.", "gamerule.fallDamage": "Deal fall damage", "gamerule.fireDamage": "Deal fire damage", - "gamerule.freezeDamage": "Deal freeze damage", "gamerule.forgiveDeadPlayers": "Forgive dead players", "gamerule.forgiveDeadPlayers.description": "Angered neutral mobs stop being angry when the targeted player dies nearby.", + "gamerule.freezeDamage": "Deal freeze damage", + "gamerule.globalSoundEvents": "Global sound events", + "gamerule.globalSoundEvents.description": "When certain game events happen, like a boss spawning, the sound is heard everywhere.", "gamerule.keepInventory": "Keep inventory after death", + "gamerule.lavaSourceConversion": "Lava converts to source", + "gamerule.lavaSourceConversion.description": "When flowing lava is surrounded on two sides by lava sources it converts into a source.", "gamerule.logAdminCommands": "Broadcast admin commands", "gamerule.maxCommandChainLength": "Command chain size limit", - "gamerule.maxCommandChainLength.description": "Applies to command block chains and functions", + "gamerule.maxCommandChainLength.description": "Applies to command block chains and functions.", + "gamerule.maxCommandForkCount": "Command context limit", + "gamerule.maxCommandForkCount.description": "Maximum number of contexts that can be used by commands like 'execute as'.", "gamerule.maxEntityCramming": "Entity cramming threshold", + "gamerule.mobExplosionDropDecay": "In mob explosions, some blocks won't drop their loot", + "gamerule.mobExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by mobs are lost in the explosion.", "gamerule.mobGriefing": "Allow destructive mob actions", "gamerule.naturalRegeneration": "Regenerate health", + "gamerule.playersNetherPortalCreativeDelay": "Player's Nether portal delay in creative mode", + "gamerule.playersNetherPortalCreativeDelay.description": "Time (in ticks) that a creative mode player needs to stand in a Nether portal before changing dimensions.", + "gamerule.playersNetherPortalDefaultDelay": "Player's Nether portal delay in non-creative mode", + "gamerule.playersNetherPortalDefaultDelay.description": "Time (in ticks) that a non-creative mode player needs to stand in a Nether portal before changing dimensions.", + "gamerule.playersSleepingPercentage": "Sleep percentage", + "gamerule.playersSleepingPercentage.description": "The percentage of players who must be sleeping to skip the night.", + "gamerule.projectilesCanBreakBlocks": "Projectiles can break blocks", + "gamerule.projectilesCanBreakBlocks.description": "Controls whether impact projectiles will destroy blocks that are destructible by them.", "gamerule.randomTickSpeed": "Random tick speed rate", "gamerule.reducedDebugInfo": "Reduce debug info", - "gamerule.reducedDebugInfo.description": "Limits contents of debug screen", + "gamerule.reducedDebugInfo.description": "Limits contents of debug screen.", "gamerule.sendCommandFeedback": "Send command feedback", "gamerule.showDeathMessages": "Show death messages", - "gamerule.playersSleepingPercentage": "Sleep percentage", - "gamerule.playersSleepingPercentage.description": "The percentage of players who must be sleeping to skip the night.", + "gamerule.snowAccumulationHeight": "Snow accumulation height", + "gamerule.snowAccumulationHeight.description": "When it snows, layers of snow form on the ground up to at most this number of layers.", "gamerule.spawnRadius": "Respawn location radius", "gamerule.spectatorsGenerateChunks": "Allow spectators to generate terrain", - "gamerule.universalAnger": "Universal anger", - "gamerule.universalAnger.description": "Angered neutral mobs attack any nearby player, not just the player that angered them. Works best if forgiveDeadPlayers is disabled.", - "gamerule.blockExplosionDropDecay": "In block interaction explosions, some blocks won't drop their loot", - "gamerule.blockExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by block interactions are lost in the explosion.", - "gamerule.mobExplosionDropDecay": "In mob explosions, some blocks won't drop their loot", - "gamerule.mobExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by mobs are lost in the explosion.", "gamerule.tntExplosionDropDecay": "In TNT explosions, some blocks won't drop their loot", "gamerule.tntExplosionDropDecay.description": "Some of the drops from blocks destroyed by explosions caused by TNT are lost in the explosion.", - "gamerule.snowAccumulationHeight": "Snow accumulation height", - "gamerule.snowAccumulationHeight.description": "When it snows, layers of snow form on the ground up to at most this number of layers.", + "gamerule.universalAnger": "Universal anger", + "gamerule.universalAnger.description": "Angered neutral mobs attack any nearby player, not just the player that angered them. Works best if forgiveDeadPlayers is disabled.", "gamerule.waterSourceConversion": "Water converts to source", "gamerule.waterSourceConversion.description": "When flowing water is surrounded on two sides by water sources it converts into a source.", - "gamerule.lavaSourceConversion": "Lava converts to source", - "gamerule.lavaSourceConversion.description": "When flowing lava is surrounded on two sides by lava sources it converts into a source.", - "gamerule.globalSoundEvents": "Global sound events", - "gamerule.globalSoundEvents.description": "When certain game events happen, like a boss spawning, the sound is heard everywhere.", - "gamerule.category.chat": "Chat", - "gamerule.category.spawning": "Spawning", - "gamerule.category.updates": "World Updates", - "gamerule.category.drops": "Drops", - "gamerule.category.mobs": "Mobs", - "gamerule.category.player": "Player", - "gamerule.category.misc": "Miscellaneous", - "pack.source.builtin": "built-in", - "pack.source.feature": "feature", - "pack.source.world": "world", - "pack.source.local": "local", - "pack.source.server": "server", - "mirror.none": "|", - "mirror.left_right": "\u2190 \u2192", - "mirror.front_back": "\u2191 \u2193", - "sleep.not_possible": "No amount of rest can pass this night", - "sleep.players_sleeping": "%s/%s players sleeping", - "sleep.skipping_night": "Sleeping through this night", - "compliance.playtime.greaterThan24Hours": "You've been playing for greater than 24 hours", - "compliance.playtime.message": "Excessive gaming may interfere with normal daily life", - "compliance.playtime.hours": "You've been playing for %s hour(s)", - "outOfMemory.title": "Out of memory!", - "outOfMemory.message": "Minecraft has run out of memory.\n\nThis could be caused by a bug in the game or by the Java Virtual Machine not being allocated enough memory.\n\nTo prevent level corruption, the current game has quit. We've tried to free up enough memory to let you go back to the main menu and back to playing, but this may not have worked.\n\nPlease restart the game if you see this message again.", - "mco.gui.ok": "Ok", - "mco.gui.button": "Button", - "mco.terms.buttons.agree": "Agree", - "mco.terms.buttons.disagree": "Don't agree", - "mco.terms.title": "Realms Terms of Service", - "mco.terms.sentence.1": "I agree to the Minecraft Realms", - "mco.terms.sentence.2": "Terms of Service", - "mco.selectServer.play": "Play", - "mco.selectServer.configure": "Configure", - "mco.selectServer.configureRealm": "Configure realm", - "mco.selectServer.leave": "Leave realm", - "mco.selectServer.create": "Create realm", - "mco.selectServer.purchase": "Add Realm", - "mco.selectServer.buy": "Buy a realm!", - "mco.selectServer.trial": "Get a trial!", - "mco.selectServer.close": "Close", - "mco.selectServer.expiredTrial": "Your trial has ended", - "mco.selectServer.expiredList": "Your subscription has expired", - "mco.selectServer.expiredSubscribe": "Subscribe", - "mco.selectServer.expiredRenew": "Renew", - "mco.selectServer.expired": "Expired realm", - "mco.selectServer.open": "Open realm", - "mco.selectServer.closed": "Closed realm", - "mco.selectServer.openserver": "Open realm", - "mco.selectServer.closeserver": "Close realm", - "mco.selectServer.minigame": "Minigame:", - "mco.selectServer.uninitialized": "Click to start your new realm!", - "mco.selectServer.expires.days": "Expires in %s days", - "mco.selectServer.expires.day": "Expires in a day", - "mco.selectServer.expires.soon": "Expires soon", - "mco.selectServer.note": "Note:", - "mco.selectServer.mapOnlySupportedForVersion": "This map is unsupported in %s", - "mco.selectServer.minigameNotSupportedInVersion": "Can't play this minigame in %s", - "mco.selectServer.popup": "Realms is a safe, simple way to enjoy an online Minecraft world with up to ten friends at a time. It supports loads of minigames and plenty of custom worlds! Only the owner of the realm needs to pay.", - "mco.configure.world.settings.title": "Settings", - "mco.configure.world.title": "Configure realm:", - "mco.configure.worlds.title": "Worlds", - "mco.configure.world.name": "Realm name", - "mco.configure.world.description": "Realm description", - "mco.configure.world.location": "Location", - "mco.configure.world.invited": "Invited", - "mco.configure.world.invite.narration": "You have %s new invites", - "mco.configure.world.buttons.edit": "Settings", - "mco.configure.world.buttons.done": "Done", - "mco.configure.world.buttons.delete": "Delete", - "mco.configure.world.buttons.open": "Open realm", - "mco.configure.world.buttons.close": "Close realm", - "mco.configure.world.buttons.invite": "Invite player", - "mco.configure.world.buttons.activity": "Player activity", + "generator.custom": "Custom", + "generator.customized": "Old Customized", + "generator.minecraft.amplified": "AMPLIFIED", + "generator.minecraft.amplified.info": "Notice: Just for fun! Requires a beefy computer.", + "generator.minecraft.debug_all_block_states": "Debug Mode", + "generator.minecraft.flat": "Superflat", + "generator.minecraft.large_biomes": "Large Biomes", + "generator.minecraft.normal": "Default", + "generator.minecraft.single_biome_surface": "Single Biome", + "generator.single_biome_caves": "Caves", + "generator.single_biome_floating_islands": "Floating Islands", + "gui.abuseReport.comments": "Comments", + "gui.abuseReport.describe": "Sharing details will help us make a well-informed decision.", + "gui.abuseReport.discard.content": "If you leave, you'll lose this report and your comments.\nAre you sure you want to leave?", + "gui.abuseReport.discard.discard": "Leave and Discard Report", + "gui.abuseReport.discard.draft": "Save as Draft", + "gui.abuseReport.discard.return": "Continue Editing", + "gui.abuseReport.discard.title": "Discard report and comments?", + "gui.abuseReport.draft.content": "Would you like to continue editing the existing report or discard it and create a new one?", + "gui.abuseReport.draft.discard": "Discard", + "gui.abuseReport.draft.edit": "Continue Editing", + "gui.abuseReport.draft.quittotitle.content": "Would you like to continue editing it or discard it?", + "gui.abuseReport.draft.quittotitle.title": "You have a draft chat report that will be lost if you quit", + "gui.abuseReport.draft.title": "Edit draft chat report?", + "gui.abuseReport.error.title": "Problem sending your report", + "gui.abuseReport.message": "Where did you observe the bad behavior?\nThis will help us in researching your case.", + "gui.abuseReport.more_comments": "Please describe what happened:", + "gui.abuseReport.name.reporting": "You are reporting \"%s\".", + "gui.abuseReport.name.title": "Report Player Name", + "gui.abuseReport.observed_what": "Why are you reporting this?", + "gui.abuseReport.read_info": "Learn About Reporting", + "gui.abuseReport.reason.alcohol_tobacco_drugs": "Drugs or alcohol", + "gui.abuseReport.reason.alcohol_tobacco_drugs.description": "Someone is encouraging others to partake in illegal drug related activities or encouraging underage drinking.", + "gui.abuseReport.reason.child_sexual_exploitation_or_abuse": "Child sexual exploitation or abuse", + "gui.abuseReport.reason.child_sexual_exploitation_or_abuse.description": "Someone is talking about or otherwise promoting indecent behavior involving children.", + "gui.abuseReport.reason.defamation_impersonation_false_information": "Defamation", + "gui.abuseReport.reason.defamation_impersonation_false_information.description": "Someone is damaging your or someone else's reputation, for example sharing false information with the aim to exploit or mislead others.", + "gui.abuseReport.reason.description": "Description:", + "gui.abuseReport.reason.false_reporting": "False Reporting", + "gui.abuseReport.reason.generic": "I want to report them", + "gui.abuseReport.reason.generic.description": "I'm annoyed with them / they have done something I do not like.", + "gui.abuseReport.reason.harassment_or_bullying": "Harassment or bullying", + "gui.abuseReport.reason.harassment_or_bullying.description": "Someone is shaming, attacking, or bullying you or someone else. This includes when someone is repeatedly trying to contact you or someone else without consent or posting private personal information about you or someone else without consent (\"doxing\").", + "gui.abuseReport.reason.hate_speech": "Hate speech", + "gui.abuseReport.reason.hate_speech.description": "Someone is attacking you or another player based on characteristics of their identity, like religion, race, or sexuality.", + "gui.abuseReport.reason.imminent_harm": "Threat of harm to others", + "gui.abuseReport.reason.imminent_harm.description": "Someone is threatening to harm you or someone else in real life.", + "gui.abuseReport.reason.narration": "%s: %s", + "gui.abuseReport.reason.non_consensual_intimate_imagery": "Non-consensual intimate imagery", + "gui.abuseReport.reason.non_consensual_intimate_imagery.description": "Someone is talking about, sharing, or otherwise promoting private and intimate images.", + "gui.abuseReport.reason.self_harm_or_suicide": "Self-harm or suicide", + "gui.abuseReport.reason.self_harm_or_suicide.description": "Someone is threatening to harm themselves in real life or talking about harming themselves in real life.", + "gui.abuseReport.reason.terrorism_or_violent_extremism": "Terrorism or violent extremism", + "gui.abuseReport.reason.terrorism_or_violent_extremism.description": "Someone is talking about, promoting, or threatening to commit acts of terrorism or violent extremism for political, religious, ideological, or other reasons.", + "gui.abuseReport.reason.title": "Select Report Category", + "gui.abuseReport.report_sent_msg": "We’ve successfully received your report. Thank you!\n\nOur team will review it as soon as possible.", + "gui.abuseReport.select_reason": "Select Report Category", + "gui.abuseReport.send": "Send Report", + "gui.abuseReport.send.comment_too_long": "Please shorten the comment", + "gui.abuseReport.send.error_message": "An error was returned while sending your report:\n'%s'", + "gui.abuseReport.send.generic_error": "Encountered an unexpected error while sending your report.", + "gui.abuseReport.send.http_error": "An unexpected HTTP error occurred while sending your report.", + "gui.abuseReport.send.json_error": "Encountered malformed payload while sending your report.", + "gui.abuseReport.send.no_reason": "Please select a report category", + "gui.abuseReport.send.service_unavailable": "Unable to reach the Abuse Reporting service. Please make sure you are connected to the internet and try again.", + "gui.abuseReport.sending.title": "Sending your report...", + "gui.abuseReport.sent.title": "Report sent", + "gui.abuseReport.skin.title": "Report Player Skin", + "gui.abuseReport.title": "Report Player", + "gui.abuseReport.type.chat": "Chat Messages", + "gui.abuseReport.type.name": "Player Name", + "gui.abuseReport.type.skin": "Player Skin", + "gui.acknowledge": "Acknowledge", + "gui.advancements": "Advancements", + "gui.all": "All", + "gui.back": "Back", + "gui.banned.description": "%s\n\n%s\n\nLearn more at the following link: %s", + "gui.banned.description.permanent": "Your account is permanently banned, which means you can’t play online or join Realms.", + "gui.banned.description.reason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified it as %s, which goes against the Minecraft Community Standards.", + "gui.banned.description.reason_id": "Code: %s", + "gui.banned.description.reason_id_message": "Code: %s - %s", + "gui.banned.description.temporary": "%s Until then, you can’t play online or join Realms.", + "gui.banned.description.temporary.duration": "Your account is temporarily suspended and will be reactivated in %s.", + "gui.banned.description.unknownreason": "We recently received a report for bad behavior by your account. Our moderators have now reviewed your case and identified that it goes against the Minecraft Community Standards.", + "gui.banned.name.description": "Your current name - \"%s\" - violates our Community Standards. You can play singleplayer, but will need to change your name to play online.\n\nLearn more or submit a case review at the following link: %s", + "gui.banned.name.title": "Name Not Allowed in Multiplayer", + "gui.banned.reason.defamation_impersonation_false_information": "Impersonation or sharing information to exploit or mislead others", + "gui.banned.reason.drugs": "References to illegal drugs", + "gui.banned.reason.extreme_violence_or_gore": "Depictions of real-life excessive violence or gore", + "gui.banned.reason.false_reporting": "Excessive false or inaccurate reports", + "gui.banned.reason.fraud": "Fraudulent acquisition or use of content", + "gui.banned.reason.generic_violation": "Violating Community Standards", + "gui.banned.reason.harassment_or_bullying": "Abusive language used in a directed, harmful manner", + "gui.banned.reason.hate_speech": "Hate speech or discrimination", + "gui.banned.reason.hate_terrorism_notorious_figure": "References to hate groups, terrorist organizations, or notorious figures", + "gui.banned.reason.imminent_harm_to_person_or_property": "Intent to cause real-life harm to persons or property", + "gui.banned.reason.nudity_or_pornography": "Displaying lewd or pornographic material", + "gui.banned.reason.sexually_inappropriate": "Topics or content of a sexual nature", + "gui.banned.reason.spam_or_advertising": "Spam or advertising", + "gui.banned.skin.description": "Your current skin violates our Community Standards. You can still play with a default skin, or select a new one.\n\nLearn more or submit a case review at the following link: %s", + "gui.banned.skin.title": "Skin Not Allowed", + "gui.banned.title.permanent": "Account permanently banned", + "gui.banned.title.temporary": "Account temporarily suspended", + "gui.cancel": "Cancel", + "gui.chatReport.comments": "Comments", + "gui.chatReport.describe": "Sharing details will help us make a well-informed decision.", + "gui.chatReport.discard.content": "If you leave, you'll lose this report and your comments.\nAre you sure you want to leave?", + "gui.chatReport.discard.discard": "Leave and Discard Report", + "gui.chatReport.discard.draft": "Save as Draft", + "gui.chatReport.discard.return": "Continue Editing", + "gui.chatReport.discard.title": "Discard report and comments?", + "gui.chatReport.draft.content": "Would you like to continue editing the existing report or discard it and create a new one?", + "gui.chatReport.draft.discard": "Discard", + "gui.chatReport.draft.edit": "Continue Editing", + "gui.chatReport.draft.quittotitle.content": "Would you like to continue editing it or discard it?", + "gui.chatReport.draft.quittotitle.title": "You have a draft chat report that will be lost if you quit", + "gui.chatReport.draft.title": "Edit draft chat report?", + "gui.chatReport.more_comments": "Please describe what happened:", + "gui.chatReport.observed_what": "Why are you reporting this?", + "gui.chatReport.read_info": "Learn About Reporting", + "gui.chatReport.report_sent_msg": "We’ve successfully received your report. Thank you!\n\nOur team will review it as soon as possible.", + "gui.chatReport.select_chat": "Select Chat Messages to Report", + "gui.chatReport.select_reason": "Select Report Category", + "gui.chatReport.selected_chat": "%s Chat Message(s) Selected to Report", + "gui.chatReport.send": "Send Report", + "gui.chatReport.send.comments_too_long": "Please shorten the comment", + "gui.chatReport.send.no_reason": "Please select a report category", + "gui.chatReport.send.no_reported_messages": "Please select at least one chat message to report", + "gui.chatReport.send.too_many_messages": "Trying to include too many messages in the report", + "gui.chatReport.title": "Report Player Chat", + "gui.chatSelection.context": "Messages surrounding this selection will be included to provide additional context", + "gui.chatSelection.fold": "%s message(s) hidden", + "gui.chatSelection.heading": "%s %s", + "gui.chatSelection.join": "%s joined the chat", + "gui.chatSelection.message.narrate": "%s said: %s at %s", + "gui.chatSelection.selected": "%s/%s message(s) selected", + "gui.chatSelection.title": "Select Chat Messages to Report", + "gui.continue": "Continue", + "gui.copy_link_to_clipboard": "Copy Link to Clipboard", + "gui.days": "%s day(s)", + "gui.done": "Done", + "gui.down": "Down", + "gui.entity_tooltip.type": "Type: %s", + "gui.hours": "%s hour(s)", + "gui.loadingMinecraft": "Loading Minecraft", + "gui.minutes": "%s minute(s)", + "gui.multiLineEditBox.character_limit": "%s/%s", + "gui.narrate.button": "%s button", + "gui.narrate.editBox": "%s edit box: %s", + "gui.narrate.slider": "%s slider", + "gui.narrate.tab": "%s tab", + "gui.no": "No", + "gui.none": "None", + "gui.ok": "Ok", + "gui.proceed": "Proceed", + "gui.recipebook.moreRecipes": "Right Click for More", + "gui.recipebook.page": "%s/%s", + "gui.recipebook.search_hint": "Search...", + "gui.recipebook.toggleRecipes.all": "Showing All", + "gui.recipebook.toggleRecipes.blastable": "Showing Blastable", + "gui.recipebook.toggleRecipes.craftable": "Showing Craftable", + "gui.recipebook.toggleRecipes.smeltable": "Showing Smeltable", + "gui.recipebook.toggleRecipes.smokable": "Showing Smokable", + "gui.socialInteractions.blocking_hint": "Manage with Microsoft account", + "gui.socialInteractions.empty_blocked": "No blocked players in chat", + "gui.socialInteractions.empty_hidden": "No players hidden in chat", + "gui.socialInteractions.hidden_in_chat": "Chat messages from %s will be hidden", + "gui.socialInteractions.hide": "Hide in Chat", + "gui.socialInteractions.narration.hide": "Hide messages from %s", + "gui.socialInteractions.narration.report": "Report player %s", + "gui.socialInteractions.narration.show": "Show messages from %s", + "gui.socialInteractions.report": "Report", + "gui.socialInteractions.search_empty": "Couldn't find any players with that name", + "gui.socialInteractions.search_hint": "Search...", + "gui.socialInteractions.server_label.multiple": "%s - %s players", + "gui.socialInteractions.server_label.single": "%s - %s player", + "gui.socialInteractions.show": "Show in Chat", + "gui.socialInteractions.shown_in_chat": "Chat messages from %s will be shown", + "gui.socialInteractions.status_blocked": "Blocked", + "gui.socialInteractions.status_blocked_offline": "Blocked - Offline", + "gui.socialInteractions.status_hidden": "Hidden", + "gui.socialInteractions.status_hidden_offline": "Hidden - Offline", + "gui.socialInteractions.status_offline": "Offline", + "gui.socialInteractions.tab_all": "All", + "gui.socialInteractions.tab_blocked": "Blocked", + "gui.socialInteractions.tab_hidden": "Hidden", + "gui.socialInteractions.title": "Social Interactions", + "gui.socialInteractions.tooltip.hide": "Hide messages", + "gui.socialInteractions.tooltip.report": "Report player", + "gui.socialInteractions.tooltip.report.disabled": "The reporting service is unavailable", + "gui.socialInteractions.tooltip.report.no_messages": "No reportable messages from player %s", + "gui.socialInteractions.tooltip.report.not_reportable": "This player can't be reported, because their chat messages can't be verified on this server", + "gui.socialInteractions.tooltip.show": "Show messages", + "gui.stats": "Statistics", + "gui.togglable_slot": "Click to disable slot", + "gui.toMenu": "Back to Server List", + "gui.toRealms": "Back to Realms List", + "gui.toTitle": "Back to Title Screen", + "gui.toWorld": "Back to World List", + "gui.up": "Up", + "gui.yes": "Yes", + "hanging_sign.edit": "Edit Hanging Sign Message", + "instrument.minecraft.admire_goat_horn": "Admire", + "instrument.minecraft.call_goat_horn": "Call", + "instrument.minecraft.dream_goat_horn": "Dream", + "instrument.minecraft.feel_goat_horn": "Feel", + "instrument.minecraft.ponder_goat_horn": "Ponder", + "instrument.minecraft.seek_goat_horn": "Seek", + "instrument.minecraft.sing_goat_horn": "Sing", + "instrument.minecraft.yearn_goat_horn": "Yearn", + "inventory.binSlot": "Destroy Item", + "inventory.hotbarInfo": "Save hotbar with %1$s+%2$s", + "inventory.hotbarSaved": "Item hotbar saved (restore with %1$s+%2$s)", + "item_modifier.unknown": "Unknown item modifier: %s", + "item.canBreak": "Can break:", + "item.canPlace": "Can be placed on:", + "item.color": "Color: %s", + "item.disabled": "Disabled item", + "item.durability": "Durability: %s / %s", + "item.dyed": "Dyed", + "item.minecraft.acacia_boat": "Acacia Boat", + "item.minecraft.acacia_chest_boat": "Acacia Boat with Chest", + "item.minecraft.allay_spawn_egg": "Allay Spawn Egg", + "item.minecraft.amethyst_shard": "Amethyst Shard", + "item.minecraft.angler_pottery_shard": "Angler Pottery Shard", + "item.minecraft.angler_pottery_sherd": "Angler Pottery Sherd", + "item.minecraft.apple": "Apple", + "item.minecraft.archer_pottery_shard": "Archer Pottery Shard", + "item.minecraft.archer_pottery_sherd": "Archer Pottery Sherd", + "item.minecraft.armor_stand": "Armor Stand", + "item.minecraft.arms_up_pottery_shard": "Arms Up Pottery Shard", + "item.minecraft.arms_up_pottery_sherd": "Arms Up Pottery Sherd", + "item.minecraft.arrow": "Arrow", + "item.minecraft.axolotl_bucket": "Bucket of Axolotl", + "item.minecraft.axolotl_spawn_egg": "Axolotl Spawn Egg", + "item.minecraft.baked_potato": "Baked Potato", + "item.minecraft.bamboo_chest_raft": "Bamboo Raft with Chest", + "item.minecraft.bamboo_raft": "Bamboo Raft", + "item.minecraft.bat_spawn_egg": "Bat Spawn Egg", + "item.minecraft.bee_spawn_egg": "Bee Spawn Egg", + "item.minecraft.beef": "Raw Beef", + "item.minecraft.beetroot": "Beetroot", + "item.minecraft.beetroot_seeds": "Beetroot Seeds", + "item.minecraft.beetroot_soup": "Beetroot Soup", + "item.minecraft.birch_boat": "Birch Boat", + "item.minecraft.birch_chest_boat": "Birch Boat with Chest", + "item.minecraft.black_dye": "Black Dye", + "item.minecraft.blade_pottery_shard": "Blade Pottery Shard", + "item.minecraft.blade_pottery_sherd": "Blade Pottery Sherd", + "item.minecraft.blaze_powder": "Blaze Powder", + "item.minecraft.blaze_rod": "Blaze Rod", + "item.minecraft.blaze_spawn_egg": "Blaze Spawn Egg", + "item.minecraft.blue_dye": "Blue Dye", + "item.minecraft.bone": "Bone", + "item.minecraft.bone_meal": "Bone Meal", + "item.minecraft.book": "Book", + "item.minecraft.bow": "Bow", + "item.minecraft.bowl": "Bowl", + "item.minecraft.bread": "Bread", + "item.minecraft.breeze_spawn_egg": "Breeze Spawn Egg", + "item.minecraft.brewer_pottery_shard": "Brewer Pottery Shard", + "item.minecraft.brewer_pottery_sherd": "Brewer Pottery Sherd", + "item.minecraft.brewing_stand": "Brewing Stand", + "item.minecraft.brick": "Brick", + "item.minecraft.brown_dye": "Brown Dye", + "item.minecraft.brush": "Brush", + "item.minecraft.bucket": "Bucket", + "item.minecraft.bundle": "Bundle", + "item.minecraft.bundle.fullness": "%s/%s", + "item.minecraft.burn_pottery_shard": "Burn Pottery Shard", + "item.minecraft.burn_pottery_sherd": "Burn Pottery Sherd", + "item.minecraft.camel_spawn_egg": "Camel Spawn Egg", + "item.minecraft.carrot": "Carrot", + "item.minecraft.carrot_on_a_stick": "Carrot on a Stick", + "item.minecraft.cat_spawn_egg": "Cat Spawn Egg", + "item.minecraft.cauldron": "Cauldron", + "item.minecraft.cave_spider_spawn_egg": "Cave Spider Spawn Egg", + "item.minecraft.chainmail_boots": "Chainmail Boots", + "item.minecraft.chainmail_chestplate": "Chainmail Chestplate", + "item.minecraft.chainmail_helmet": "Chainmail Helmet", + "item.minecraft.chainmail_leggings": "Chainmail Leggings", + "item.minecraft.charcoal": "Charcoal", + "item.minecraft.cherry_boat": "Cherry Boat", + "item.minecraft.cherry_chest_boat": "Cherry Boat with Chest", + "item.minecraft.chest_minecart": "Minecart with Chest", + "item.minecraft.chicken": "Raw Chicken", + "item.minecraft.chicken_spawn_egg": "Chicken Spawn Egg", + "item.minecraft.chorus_fruit": "Chorus Fruit", + "item.minecraft.clay_ball": "Clay Ball", + "item.minecraft.clock": "Clock", + "item.minecraft.coal": "Coal", + "item.minecraft.coast_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.cocoa_beans": "Cocoa Beans", + "item.minecraft.cod": "Raw Cod", + "item.minecraft.cod_bucket": "Bucket of Cod", + "item.minecraft.cod_spawn_egg": "Cod Spawn Egg", + "item.minecraft.command_block_minecart": "Minecart with Command Block", + "item.minecraft.compass": "Compass", + "item.minecraft.cooked_beef": "Steak", + "item.minecraft.cooked_chicken": "Cooked Chicken", + "item.minecraft.cooked_cod": "Cooked Cod", + "item.minecraft.cooked_mutton": "Cooked Mutton", + "item.minecraft.cooked_porkchop": "Cooked Porkchop", + "item.minecraft.cooked_rabbit": "Cooked Rabbit", + "item.minecraft.cooked_salmon": "Cooked Salmon", + "item.minecraft.cookie": "Cookie", + "item.minecraft.copper_ingot": "Copper Ingot", + "item.minecraft.cow_spawn_egg": "Cow Spawn Egg", + "item.minecraft.creeper_banner_pattern": "Banner Pattern", + "item.minecraft.creeper_banner_pattern.desc": "Creeper Charge", + "item.minecraft.creeper_spawn_egg": "Creeper Spawn Egg", + "item.minecraft.crossbow": "Crossbow", + "item.minecraft.crossbow.projectile": "Projectile:", + "item.minecraft.cyan_dye": "Cyan Dye", + "item.minecraft.danger_pottery_shard": "Danger Pottery Shard", + "item.minecraft.danger_pottery_sherd": "Danger Pottery Sherd", + "item.minecraft.dark_oak_boat": "Dark Oak Boat", + "item.minecraft.dark_oak_chest_boat": "Dark Oak Boat with Chest", + "item.minecraft.debug_stick": "Debug Stick", + "item.minecraft.debug_stick.empty": "%s has no properties", + "item.minecraft.debug_stick.select": "selected \"%s\" (%s)", + "item.minecraft.debug_stick.update": "\"%s\" to %s", + "item.minecraft.diamond": "Diamond", + "item.minecraft.diamond_axe": "Diamond Axe", + "item.minecraft.diamond_boots": "Diamond Boots", + "item.minecraft.diamond_chestplate": "Diamond Chestplate", + "item.minecraft.diamond_helmet": "Diamond Helmet", + "item.minecraft.diamond_hoe": "Diamond Hoe", + "item.minecraft.diamond_horse_armor": "Diamond Horse Armor", + "item.minecraft.diamond_leggings": "Diamond Leggings", + "item.minecraft.diamond_pickaxe": "Diamond Pickaxe", + "item.minecraft.diamond_shovel": "Diamond Shovel", + "item.minecraft.diamond_sword": "Diamond Sword", + "item.minecraft.disc_fragment_5": "Disc Fragment", + "item.minecraft.disc_fragment_5.desc": "Music Disc - 5", + "item.minecraft.dolphin_spawn_egg": "Dolphin Spawn Egg", + "item.minecraft.donkey_spawn_egg": "Donkey Spawn Egg", + "item.minecraft.dragon_breath": "Dragon's Breath", + "item.minecraft.dried_kelp": "Dried Kelp", + "item.minecraft.drowned_spawn_egg": "Drowned Spawn Egg", + "item.minecraft.dune_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.echo_shard": "Echo Shard", + "item.minecraft.egg": "Egg", + "item.minecraft.elder_guardian_spawn_egg": "Elder Guardian Spawn Egg", + "item.minecraft.elytra": "Elytra", + "item.minecraft.emerald": "Emerald", + "item.minecraft.enchanted_book": "Enchanted Book", + "item.minecraft.enchanted_golden_apple": "Enchanted Golden Apple", + "item.minecraft.end_crystal": "End Crystal", + "item.minecraft.ender_dragon_spawn_egg": "Ender Dragon Spawn Egg", + "item.minecraft.ender_eye": "Eye of Ender", + "item.minecraft.ender_pearl": "Ender Pearl", + "item.minecraft.enderman_spawn_egg": "Enderman Spawn Egg", + "item.minecraft.endermite_spawn_egg": "Endermite Spawn Egg", + "item.minecraft.evoker_spawn_egg": "Evoker Spawn Egg", + "item.minecraft.experience_bottle": "Bottle o' Enchanting", + "item.minecraft.explorer_pottery_shard": "Explorer Pottery Shard", + "item.minecraft.explorer_pottery_sherd": "Explorer Pottery Sherd", + "item.minecraft.eye_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.feather": "Feather", + "item.minecraft.fermented_spider_eye": "Fermented Spider Eye", + "item.minecraft.filled_map": "Map", + "item.minecraft.fire_charge": "Fire Charge", + "item.minecraft.firework_rocket": "Firework Rocket", + "item.minecraft.firework_rocket.flight": "Flight Duration:", + "item.minecraft.firework_star": "Firework Star", + "item.minecraft.firework_star.black": "Black", + "item.minecraft.firework_star.blue": "Blue", + "item.minecraft.firework_star.brown": "Brown", + "item.minecraft.firework_star.custom_color": "Custom", + "item.minecraft.firework_star.cyan": "Cyan", + "item.minecraft.firework_star.fade_to": "Fade to", + "item.minecraft.firework_star.flicker": "Twinkle", + "item.minecraft.firework_star.gray": "Gray", + "item.minecraft.firework_star.green": "Green", + "item.minecraft.firework_star.light_blue": "Light Blue", + "item.minecraft.firework_star.light_gray": "Light Gray", + "item.minecraft.firework_star.lime": "Lime", + "item.minecraft.firework_star.magenta": "Magenta", + "item.minecraft.firework_star.orange": "Orange", + "item.minecraft.firework_star.pink": "Pink", + "item.minecraft.firework_star.purple": "Purple", + "item.minecraft.firework_star.red": "Red", + "item.minecraft.firework_star.shape": "Unknown Shape", + "item.minecraft.firework_star.shape.burst": "Burst", + "item.minecraft.firework_star.shape.creeper": "Creeper-shaped", + "item.minecraft.firework_star.shape.large_ball": "Large Ball", + "item.minecraft.firework_star.shape.small_ball": "Small Ball", + "item.minecraft.firework_star.shape.star": "Star-shaped", + "item.minecraft.firework_star.trail": "Trail", + "item.minecraft.firework_star.white": "White", + "item.minecraft.firework_star.yellow": "Yellow", + "item.minecraft.fishing_rod": "Fishing Rod", + "item.minecraft.flint": "Flint", + "item.minecraft.flint_and_steel": "Flint and Steel", + "item.minecraft.flower_banner_pattern": "Banner Pattern", + "item.minecraft.flower_banner_pattern.desc": "Flower Charge", + "item.minecraft.flower_pot": "Flower Pot", + "item.minecraft.fox_spawn_egg": "Fox Spawn Egg", + "item.minecraft.friend_pottery_shard": "Friend Pottery Shard", + "item.minecraft.friend_pottery_sherd": "Friend Pottery Sherd", + "item.minecraft.frog_spawn_egg": "Frog Spawn Egg", + "item.minecraft.furnace_minecart": "Minecart with Furnace", + "item.minecraft.ghast_spawn_egg": "Ghast Spawn Egg", + "item.minecraft.ghast_tear": "Ghast Tear", + "item.minecraft.glass_bottle": "Glass Bottle", + "item.minecraft.glistering_melon_slice": "Glistering Melon Slice", + "item.minecraft.globe_banner_pattern": "Banner Pattern", + "item.minecraft.globe_banner_pattern.desc": "Globe", + "item.minecraft.glow_berries": "Glow Berries", + "item.minecraft.glow_ink_sac": "Glow Ink Sac", + "item.minecraft.glow_item_frame": "Glow Item Frame", + "item.minecraft.glow_squid_spawn_egg": "Glow Squid Spawn Egg", + "item.minecraft.glowstone_dust": "Glowstone Dust", + "item.minecraft.goat_horn": "Goat Horn", + "item.minecraft.goat_spawn_egg": "Goat Spawn Egg", + "item.minecraft.gold_ingot": "Gold Ingot", + "item.minecraft.gold_nugget": "Gold Nugget", + "item.minecraft.golden_apple": "Golden Apple", + "item.minecraft.golden_axe": "Golden Axe", + "item.minecraft.golden_boots": "Golden Boots", + "item.minecraft.golden_carrot": "Golden Carrot", + "item.minecraft.golden_chestplate": "Golden Chestplate", + "item.minecraft.golden_helmet": "Golden Helmet", + "item.minecraft.golden_hoe": "Golden Hoe", + "item.minecraft.golden_horse_armor": "Golden Horse Armor", + "item.minecraft.golden_leggings": "Golden Leggings", + "item.minecraft.golden_pickaxe": "Golden Pickaxe", + "item.minecraft.golden_shovel": "Golden Shovel", + "item.minecraft.golden_sword": "Golden Sword", + "item.minecraft.gray_dye": "Gray Dye", + "item.minecraft.green_dye": "Green Dye", + "item.minecraft.guardian_spawn_egg": "Guardian Spawn Egg", + "item.minecraft.gunpowder": "Gunpowder", + "item.minecraft.heart_of_the_sea": "Heart of the Sea", + "item.minecraft.heart_pottery_shard": "Heart Pottery Shard", + "item.minecraft.heart_pottery_sherd": "Heart Pottery Sherd", + "item.minecraft.heartbreak_pottery_shard": "Heartbreak Pottery Shard", + "item.minecraft.heartbreak_pottery_sherd": "Heartbreak Pottery Sherd", + "item.minecraft.hoglin_spawn_egg": "Hoglin Spawn Egg", + "item.minecraft.honey_bottle": "Honey Bottle", + "item.minecraft.honeycomb": "Honeycomb", + "item.minecraft.hopper_minecart": "Minecart with Hopper", + "item.minecraft.horse_spawn_egg": "Horse Spawn Egg", + "item.minecraft.host_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.howl_pottery_shard": "Howl Pottery Shard", + "item.minecraft.howl_pottery_sherd": "Howl Pottery Sherd", + "item.minecraft.husk_spawn_egg": "Husk Spawn Egg", + "item.minecraft.ink_sac": "Ink Sac", + "item.minecraft.iron_axe": "Iron Axe", + "item.minecraft.iron_boots": "Iron Boots", + "item.minecraft.iron_chestplate": "Iron Chestplate", + "item.minecraft.iron_golem_spawn_egg": "Iron Golem Spawn Egg", + "item.minecraft.iron_helmet": "Iron Helmet", + "item.minecraft.iron_hoe": "Iron Hoe", + "item.minecraft.iron_horse_armor": "Iron Horse Armor", + "item.minecraft.iron_ingot": "Iron Ingot", + "item.minecraft.iron_leggings": "Iron Leggings", + "item.minecraft.iron_nugget": "Iron Nugget", + "item.minecraft.iron_pickaxe": "Iron Pickaxe", + "item.minecraft.iron_shovel": "Iron Shovel", + "item.minecraft.iron_sword": "Iron Sword", + "item.minecraft.item_frame": "Item Frame", + "item.minecraft.jungle_boat": "Jungle Boat", + "item.minecraft.jungle_chest_boat": "Jungle Boat with Chest", + "item.minecraft.knowledge_book": "Knowledge Book", + "item.minecraft.lapis_lazuli": "Lapis Lazuli", + "item.minecraft.lava_bucket": "Lava Bucket", + "item.minecraft.lead": "Lead", + "item.minecraft.leather": "Leather", + "item.minecraft.leather_boots": "Leather Boots", + "item.minecraft.leather_chestplate": "Leather Tunic", + "item.minecraft.leather_helmet": "Leather Cap", + "item.minecraft.leather_horse_armor": "Leather Horse Armor", + "item.minecraft.leather_leggings": "Leather Pants", + "item.minecraft.light_blue_dye": "Light Blue Dye", + "item.minecraft.light_gray_dye": "Light Gray Dye", + "item.minecraft.lime_dye": "Lime Dye", + "item.minecraft.lingering_potion": "Lingering Potion", + "item.minecraft.lingering_potion.effect.awkward": "Awkward Lingering Potion", + "item.minecraft.lingering_potion.effect.empty": "Lingering Uncraftable Potion", + "item.minecraft.lingering_potion.effect.fire_resistance": "Lingering Potion of Fire Resistance", + "item.minecraft.lingering_potion.effect.harming": "Lingering Potion of Harming", + "item.minecraft.lingering_potion.effect.healing": "Lingering Potion of Healing", + "item.minecraft.lingering_potion.effect.invisibility": "Lingering Potion of Invisibility", + "item.minecraft.lingering_potion.effect.leaping": "Lingering Potion of Leaping", + "item.minecraft.lingering_potion.effect.levitation": "Lingering Potion of Levitation", + "item.minecraft.lingering_potion.effect.luck": "Lingering Potion of Luck", + "item.minecraft.lingering_potion.effect.mundane": "Mundane Lingering Potion", + "item.minecraft.lingering_potion.effect.night_vision": "Lingering Potion of Night Vision", + "item.minecraft.lingering_potion.effect.poison": "Lingering Potion of Poison", + "item.minecraft.lingering_potion.effect.regeneration": "Lingering Potion of Regeneration", + "item.minecraft.lingering_potion.effect.slow_falling": "Lingering Potion of Slow Falling", + "item.minecraft.lingering_potion.effect.slowness": "Lingering Potion of Slowness", + "item.minecraft.lingering_potion.effect.strength": "Lingering Potion of Strength", + "item.minecraft.lingering_potion.effect.swiftness": "Lingering Potion of Swiftness", + "item.minecraft.lingering_potion.effect.thick": "Thick Lingering Potion", + "item.minecraft.lingering_potion.effect.turtle_master": "Lingering Potion of the Turtle Master", + "item.minecraft.lingering_potion.effect.water": "Lingering Water Bottle", + "item.minecraft.lingering_potion.effect.water_breathing": "Lingering Potion of Water Breathing", + "item.minecraft.lingering_potion.effect.weakness": "Lingering Potion of Weakness", + "item.minecraft.llama_spawn_egg": "Llama Spawn Egg", + "item.minecraft.lodestone_compass": "Lodestone Compass", + "item.minecraft.magenta_dye": "Magenta Dye", + "item.minecraft.magma_cream": "Magma Cream", + "item.minecraft.magma_cube_spawn_egg": "Magma Cube Spawn Egg", + "item.minecraft.mangrove_boat": "Mangrove Boat", + "item.minecraft.mangrove_chest_boat": "Mangrove Boat with Chest", + "item.minecraft.map": "Empty Map", + "item.minecraft.melon_seeds": "Melon Seeds", + "item.minecraft.melon_slice": "Melon Slice", + "item.minecraft.milk_bucket": "Milk Bucket", + "item.minecraft.minecart": "Minecart", + "item.minecraft.miner_pottery_shard": "Miner Pottery Shard", + "item.minecraft.miner_pottery_sherd": "Miner Pottery Sherd", + "item.minecraft.mojang_banner_pattern": "Banner Pattern", + "item.minecraft.mojang_banner_pattern.desc": "Thing", + "item.minecraft.mooshroom_spawn_egg": "Mooshroom Spawn Egg", + "item.minecraft.mourner_pottery_shard": "Mourner Pottery Shard", + "item.minecraft.mourner_pottery_sherd": "Mourner Pottery Sherd", + "item.minecraft.mule_spawn_egg": "Mule Spawn Egg", + "item.minecraft.mushroom_stew": "Mushroom Stew", + "item.minecraft.music_disc_5": "Music Disc", + "item.minecraft.music_disc_5.desc": "Samuel Åberg - 5", + "item.minecraft.music_disc_11": "Music Disc", + "item.minecraft.music_disc_11.desc": "C418 - 11", + "item.minecraft.music_disc_13": "Music Disc", + "item.minecraft.music_disc_13.desc": "C418 - 13", + "item.minecraft.music_disc_blocks": "Music Disc", + "item.minecraft.music_disc_blocks.desc": "C418 - blocks", + "item.minecraft.music_disc_cat": "Music Disc", + "item.minecraft.music_disc_cat.desc": "C418 - cat", + "item.minecraft.music_disc_chirp": "Music Disc", + "item.minecraft.music_disc_chirp.desc": "C418 - chirp", + "item.minecraft.music_disc_far": "Music Disc", + "item.minecraft.music_disc_far.desc": "C418 - far", + "item.minecraft.music_disc_mall": "Music Disc", + "item.minecraft.music_disc_mall.desc": "C418 - mall", + "item.minecraft.music_disc_mellohi": "Music Disc", + "item.minecraft.music_disc_mellohi.desc": "C418 - mellohi", + "item.minecraft.music_disc_otherside": "Music Disc", + "item.minecraft.music_disc_otherside.desc": "Lena Raine - otherside", + "item.minecraft.music_disc_pigstep": "Music Disc", + "item.minecraft.music_disc_pigstep.desc": "Lena Raine - Pigstep", + "item.minecraft.music_disc_relic": "Music Disc", + "item.minecraft.music_disc_relic.desc": "Aaron Cherof - Relic", + "item.minecraft.music_disc_stal": "Music Disc", + "item.minecraft.music_disc_stal.desc": "C418 - stal", + "item.minecraft.music_disc_strad": "Music Disc", + "item.minecraft.music_disc_strad.desc": "C418 - strad", + "item.minecraft.music_disc_wait": "Music Disc", + "item.minecraft.music_disc_wait.desc": "C418 - wait", + "item.minecraft.music_disc_ward": "Music Disc", + "item.minecraft.music_disc_ward.desc": "C418 - ward", + "item.minecraft.mutton": "Raw Mutton", + "item.minecraft.name_tag": "Name Tag", + "item.minecraft.nautilus_shell": "Nautilus Shell", + "item.minecraft.nether_brick": "Nether Brick", + "item.minecraft.nether_star": "Nether Star", + "item.minecraft.nether_wart": "Nether Wart", + "item.minecraft.netherite_axe": "Netherite Axe", + "item.minecraft.netherite_boots": "Netherite Boots", + "item.minecraft.netherite_chestplate": "Netherite Chestplate", + "item.minecraft.netherite_helmet": "Netherite Helmet", + "item.minecraft.netherite_hoe": "Netherite Hoe", + "item.minecraft.netherite_ingot": "Netherite Ingot", + "item.minecraft.netherite_leggings": "Netherite Leggings", + "item.minecraft.netherite_pickaxe": "Netherite Pickaxe", + "item.minecraft.netherite_scrap": "Netherite Scrap", + "item.minecraft.netherite_shovel": "Netherite Shovel", + "item.minecraft.netherite_sword": "Netherite Sword", + "item.minecraft.netherite_upgrade_smithing_template": "Smithing Template", + "item.minecraft.oak_boat": "Oak Boat", + "item.minecraft.oak_chest_boat": "Oak Boat with Chest", + "item.minecraft.ocelot_spawn_egg": "Ocelot Spawn Egg", + "item.minecraft.orange_dye": "Orange Dye", + "item.minecraft.painting": "Painting", + "item.minecraft.panda_spawn_egg": "Panda Spawn Egg", + "item.minecraft.paper": "Paper", + "item.minecraft.parrot_spawn_egg": "Parrot Spawn Egg", + "item.minecraft.phantom_membrane": "Phantom Membrane", + "item.minecraft.phantom_spawn_egg": "Phantom Spawn Egg", + "item.minecraft.pig_spawn_egg": "Pig Spawn Egg", + "item.minecraft.piglin_banner_pattern": "Banner Pattern", + "item.minecraft.piglin_banner_pattern.desc": "Snout", + "item.minecraft.piglin_brute_spawn_egg": "Piglin Brute Spawn Egg", + "item.minecraft.piglin_spawn_egg": "Piglin Spawn Egg", + "item.minecraft.pillager_spawn_egg": "Pillager Spawn Egg", + "item.minecraft.pink_dye": "Pink Dye", + "item.minecraft.pitcher_plant": "Pitcher Plant", + "item.minecraft.pitcher_pod": "Pitcher Pod", + "item.minecraft.plenty_pottery_shard": "Plenty Pottery Shard", + "item.minecraft.plenty_pottery_sherd": "Plenty Pottery Sherd", + "item.minecraft.poisonous_potato": "Poisonous Potato", + "item.minecraft.polar_bear_spawn_egg": "Polar Bear Spawn Egg", + "item.minecraft.popped_chorus_fruit": "Popped Chorus Fruit", + "item.minecraft.porkchop": "Raw Porkchop", + "item.minecraft.potato": "Potato", + "item.minecraft.potion": "Potion", + "item.minecraft.potion.effect.awkward": "Awkward Potion", + "item.minecraft.potion.effect.empty": "Uncraftable Potion", + "item.minecraft.potion.effect.fire_resistance": "Potion of Fire Resistance", + "item.minecraft.potion.effect.harming": "Potion of Harming", + "item.minecraft.potion.effect.healing": "Potion of Healing", + "item.minecraft.potion.effect.invisibility": "Potion of Invisibility", + "item.minecraft.potion.effect.leaping": "Potion of Leaping", + "item.minecraft.potion.effect.levitation": "Potion of Levitation", + "item.minecraft.potion.effect.luck": "Potion of Luck", + "item.minecraft.potion.effect.mundane": "Mundane Potion", + "item.minecraft.potion.effect.night_vision": "Potion of Night Vision", + "item.minecraft.potion.effect.poison": "Potion of Poison", + "item.minecraft.potion.effect.regeneration": "Potion of Regeneration", + "item.minecraft.potion.effect.slow_falling": "Potion of Slow Falling", + "item.minecraft.potion.effect.slowness": "Potion of Slowness", + "item.minecraft.potion.effect.strength": "Potion of Strength", + "item.minecraft.potion.effect.swiftness": "Potion of Swiftness", + "item.minecraft.potion.effect.thick": "Thick Potion", + "item.minecraft.potion.effect.turtle_master": "Potion of the Turtle Master", + "item.minecraft.potion.effect.water": "Water Bottle", + "item.minecraft.potion.effect.water_breathing": "Potion of Water Breathing", + "item.minecraft.potion.effect.weakness": "Potion of Weakness", + "item.minecraft.pottery_shard_archer": "Archer Pottery Shard", + "item.minecraft.pottery_shard_arms_up": "Arms Up Pottery Shard", + "item.minecraft.pottery_shard_prize": "Prize Pottery Shard", + "item.minecraft.pottery_shard_skull": "Skull Pottery Shard", + "item.minecraft.powder_snow_bucket": "Powder Snow Bucket", + "item.minecraft.prismarine_crystals": "Prismarine Crystals", + "item.minecraft.prismarine_shard": "Prismarine Shard", + "item.minecraft.prize_pottery_shard": "Prize Pottery Shard", + "item.minecraft.prize_pottery_sherd": "Prize Pottery Sherd", + "item.minecraft.pufferfish": "Pufferfish", + "item.minecraft.pufferfish_bucket": "Bucket of Pufferfish", + "item.minecraft.pufferfish_spawn_egg": "Pufferfish Spawn Egg", + "item.minecraft.pumpkin_pie": "Pumpkin Pie", + "item.minecraft.pumpkin_seeds": "Pumpkin Seeds", + "item.minecraft.purple_dye": "Purple Dye", + "item.minecraft.quartz": "Nether Quartz", + "item.minecraft.rabbit": "Raw Rabbit", + "item.minecraft.rabbit_foot": "Rabbit's Foot", + "item.minecraft.rabbit_hide": "Rabbit Hide", + "item.minecraft.rabbit_spawn_egg": "Rabbit Spawn Egg", + "item.minecraft.rabbit_stew": "Rabbit Stew", + "item.minecraft.raiser_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.ravager_spawn_egg": "Ravager Spawn Egg", + "item.minecraft.raw_copper": "Raw Copper", + "item.minecraft.raw_gold": "Raw Gold", + "item.minecraft.raw_iron": "Raw Iron", + "item.minecraft.recovery_compass": "Recovery Compass", + "item.minecraft.red_dye": "Red Dye", + "item.minecraft.redstone": "Redstone Dust", + "item.minecraft.rib_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.rotten_flesh": "Rotten Flesh", + "item.minecraft.saddle": "Saddle", + "item.minecraft.salmon": "Raw Salmon", + "item.minecraft.salmon_bucket": "Bucket of Salmon", + "item.minecraft.salmon_spawn_egg": "Salmon Spawn Egg", + "item.minecraft.scute": "Scute", + "item.minecraft.sentry_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.shaper_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.sheaf_pottery_shard": "Sheaf Pottery Shard", + "item.minecraft.sheaf_pottery_sherd": "Sheaf Pottery Sherd", + "item.minecraft.shears": "Shears", + "item.minecraft.sheep_spawn_egg": "Sheep Spawn Egg", + "item.minecraft.shelter_pottery_shard": "Shelter Pottery Shard", + "item.minecraft.shelter_pottery_sherd": "Shelter Pottery Sherd", + "item.minecraft.shield": "Shield", + "item.minecraft.shield.black": "Black Shield", + "item.minecraft.shield.blue": "Blue Shield", + "item.minecraft.shield.brown": "Brown Shield", + "item.minecraft.shield.cyan": "Cyan Shield", + "item.minecraft.shield.gray": "Gray Shield", + "item.minecraft.shield.green": "Green Shield", + "item.minecraft.shield.light_blue": "Light Blue Shield", + "item.minecraft.shield.light_gray": "Light Gray Shield", + "item.minecraft.shield.lime": "Lime Shield", + "item.minecraft.shield.magenta": "Magenta Shield", + "item.minecraft.shield.orange": "Orange Shield", + "item.minecraft.shield.pink": "Pink Shield", + "item.minecraft.shield.purple": "Purple Shield", + "item.minecraft.shield.red": "Red Shield", + "item.minecraft.shield.white": "White Shield", + "item.minecraft.shield.yellow": "Yellow Shield", + "item.minecraft.shulker_shell": "Shulker Shell", + "item.minecraft.shulker_spawn_egg": "Shulker Spawn Egg", + "item.minecraft.sign": "Sign", + "item.minecraft.silence_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.silverfish_spawn_egg": "Silverfish Spawn Egg", + "item.minecraft.skeleton_horse_spawn_egg": "Skeleton Horse Spawn Egg", + "item.minecraft.skeleton_spawn_egg": "Skeleton Spawn Egg", + "item.minecraft.skull_banner_pattern": "Banner Pattern", + "item.minecraft.skull_banner_pattern.desc": "Skull Charge", + "item.minecraft.skull_pottery_shard": "Skull Pottery Shard", + "item.minecraft.skull_pottery_sherd": "Skull Pottery Sherd", + "item.minecraft.slime_ball": "Slimeball", + "item.minecraft.slime_spawn_egg": "Slime Spawn Egg", + "item.minecraft.smithing_template": "Smithing Template", + "item.minecraft.smithing_template.applies_to": "Applies to:", + "item.minecraft.smithing_template.armor_trim.additions_slot_description": "Add ingot or crystal", + "item.minecraft.smithing_template.armor_trim.applies_to": "Armor", + "item.minecraft.smithing_template.armor_trim.base_slot_description": "Add a piece of armor", + "item.minecraft.smithing_template.armor_trim.ingredients": "Ingots & Crystals", + "item.minecraft.smithing_template.ingredients": "Ingredients:", + "item.minecraft.smithing_template.netherite_upgrade.additions_slot_description": "Add Netherite Ingot", + "item.minecraft.smithing_template.netherite_upgrade.applies_to": "Diamond Equipment", + "item.minecraft.smithing_template.netherite_upgrade.base_slot_description": "Add diamond armor, weapon, or tool", + "item.minecraft.smithing_template.netherite_upgrade.ingredients": "Netherite Ingot", + "item.minecraft.smithing_template.upgrade": "Upgrade: ", + "item.minecraft.sniffer_spawn_egg": "Sniffer Spawn Egg", + "item.minecraft.snort_pottery_shard": "Snort Pottery Shard", + "item.minecraft.snort_pottery_sherd": "Snort Pottery Sherd", + "item.minecraft.snout_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.snow_golem_spawn_egg": "Snow Golem Spawn Egg", + "item.minecraft.snowball": "Snowball", + "item.minecraft.spectral_arrow": "Spectral Arrow", + "item.minecraft.spider_eye": "Spider Eye", + "item.minecraft.spider_spawn_egg": "Spider Spawn Egg", + "item.minecraft.spire_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.splash_potion": "Splash Potion", + "item.minecraft.splash_potion.effect.awkward": "Awkward Splash Potion", + "item.minecraft.splash_potion.effect.empty": "Splash Uncraftable Potion", + "item.minecraft.splash_potion.effect.fire_resistance": "Splash Potion of Fire Resistance", + "item.minecraft.splash_potion.effect.harming": "Splash Potion of Harming", + "item.minecraft.splash_potion.effect.healing": "Splash Potion of Healing", + "item.minecraft.splash_potion.effect.invisibility": "Splash Potion of Invisibility", + "item.minecraft.splash_potion.effect.leaping": "Splash Potion of Leaping", + "item.minecraft.splash_potion.effect.levitation": "Splash Potion of Levitation", + "item.minecraft.splash_potion.effect.luck": "Splash Potion of Luck", + "item.minecraft.splash_potion.effect.mundane": "Mundane Splash Potion", + "item.minecraft.splash_potion.effect.night_vision": "Splash Potion of Night Vision", + "item.minecraft.splash_potion.effect.poison": "Splash Potion of Poison", + "item.minecraft.splash_potion.effect.regeneration": "Splash Potion of Regeneration", + "item.minecraft.splash_potion.effect.slow_falling": "Splash Potion of Slow Falling", + "item.minecraft.splash_potion.effect.slowness": "Splash Potion of Slowness", + "item.minecraft.splash_potion.effect.strength": "Splash Potion of Strength", + "item.minecraft.splash_potion.effect.swiftness": "Splash Potion of Swiftness", + "item.minecraft.splash_potion.effect.thick": "Thick Splash Potion", + "item.minecraft.splash_potion.effect.turtle_master": "Splash Potion of the Turtle Master", + "item.minecraft.splash_potion.effect.water": "Splash Water Bottle", + "item.minecraft.splash_potion.effect.water_breathing": "Splash Potion of Water Breathing", + "item.minecraft.splash_potion.effect.weakness": "Splash Potion of Weakness", + "item.minecraft.spruce_boat": "Spruce Boat", + "item.minecraft.spruce_chest_boat": "Spruce Boat with Chest", + "item.minecraft.spyglass": "Spyglass", + "item.minecraft.squid_spawn_egg": "Squid Spawn Egg", + "item.minecraft.stick": "Stick", + "item.minecraft.stone_axe": "Stone Axe", + "item.minecraft.stone_hoe": "Stone Hoe", + "item.minecraft.stone_pickaxe": "Stone Pickaxe", + "item.minecraft.stone_shovel": "Stone Shovel", + "item.minecraft.stone_sword": "Stone Sword", + "item.minecraft.stray_spawn_egg": "Stray Spawn Egg", + "item.minecraft.strider_spawn_egg": "Strider Spawn Egg", + "item.minecraft.string": "String", + "item.minecraft.sugar": "Sugar", + "item.minecraft.suspicious_stew": "Suspicious Stew", + "item.minecraft.sweet_berries": "Sweet Berries", + "item.minecraft.tadpole_bucket": "Bucket of Tadpole", + "item.minecraft.tadpole_spawn_egg": "Tadpole Spawn Egg", + "item.minecraft.tide_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.tipped_arrow": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.awkward": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.empty": "Uncraftable Tipped Arrow", + "item.minecraft.tipped_arrow.effect.fire_resistance": "Arrow of Fire Resistance", + "item.minecraft.tipped_arrow.effect.harming": "Arrow of Harming", + "item.minecraft.tipped_arrow.effect.healing": "Arrow of Healing", + "item.minecraft.tipped_arrow.effect.invisibility": "Arrow of Invisibility", + "item.minecraft.tipped_arrow.effect.leaping": "Arrow of Leaping", + "item.minecraft.tipped_arrow.effect.levitation": "Arrow of Levitation", + "item.minecraft.tipped_arrow.effect.luck": "Arrow of Luck", + "item.minecraft.tipped_arrow.effect.mundane": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.night_vision": "Arrow of Night Vision", + "item.minecraft.tipped_arrow.effect.poison": "Arrow of Poison", + "item.minecraft.tipped_arrow.effect.regeneration": "Arrow of Regeneration", + "item.minecraft.tipped_arrow.effect.slow_falling": "Arrow of Slow Falling", + "item.minecraft.tipped_arrow.effect.slowness": "Arrow of Slowness", + "item.minecraft.tipped_arrow.effect.strength": "Arrow of Strength", + "item.minecraft.tipped_arrow.effect.swiftness": "Arrow of Swiftness", + "item.minecraft.tipped_arrow.effect.thick": "Tipped Arrow", + "item.minecraft.tipped_arrow.effect.turtle_master": "Arrow of the Turtle Master", + "item.minecraft.tipped_arrow.effect.water": "Arrow of Splashing", + "item.minecraft.tipped_arrow.effect.water_breathing": "Arrow of Water Breathing", + "item.minecraft.tipped_arrow.effect.weakness": "Arrow of Weakness", + "item.minecraft.tnt_minecart": "Minecart with TNT", + "item.minecraft.torchflower_seeds": "Torchflower Seeds", + "item.minecraft.totem_of_undying": "Totem of Undying", + "item.minecraft.trader_llama_spawn_egg": "Trader Llama Spawn Egg", + "item.minecraft.trial_key": "Trial Key", + "item.minecraft.trident": "Trident", + "item.minecraft.tropical_fish": "Tropical Fish", + "item.minecraft.tropical_fish_bucket": "Bucket of Tropical Fish", + "item.minecraft.tropical_fish_spawn_egg": "Tropical Fish Spawn Egg", + "item.minecraft.turtle_helmet": "Turtle Shell", + "item.minecraft.turtle_spawn_egg": "Turtle Spawn Egg", + "item.minecraft.vex_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.vex_spawn_egg": "Vex Spawn Egg", + "item.minecraft.villager_spawn_egg": "Villager Spawn Egg", + "item.minecraft.vindicator_spawn_egg": "Vindicator Spawn Egg", + "item.minecraft.wandering_trader_spawn_egg": "Wandering Trader Spawn Egg", + "item.minecraft.ward_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.warden_spawn_egg": "Warden Spawn Egg", + "item.minecraft.warped_fungus_on_a_stick": "Warped Fungus on a Stick", + "item.minecraft.water_bucket": "Water Bucket", + "item.minecraft.wayfinder_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.wheat": "Wheat", + "item.minecraft.wheat_seeds": "Wheat Seeds", + "item.minecraft.white_dye": "White Dye", + "item.minecraft.wild_armor_trim_smithing_template": "Smithing Template", + "item.minecraft.witch_spawn_egg": "Witch Spawn Egg", + "item.minecraft.wither_skeleton_spawn_egg": "Wither Skeleton Spawn Egg", + "item.minecraft.wither_spawn_egg": "Wither Spawn Egg", + "item.minecraft.wolf_spawn_egg": "Wolf Spawn Egg", + "item.minecraft.wooden_axe": "Wooden Axe", + "item.minecraft.wooden_hoe": "Wooden Hoe", + "item.minecraft.wooden_pickaxe": "Wooden Pickaxe", + "item.minecraft.wooden_shovel": "Wooden Shovel", + "item.minecraft.wooden_sword": "Wooden Sword", + "item.minecraft.writable_book": "Book and Quill", + "item.minecraft.written_book": "Written Book", + "item.minecraft.yellow_dye": "Yellow Dye", + "item.minecraft.zoglin_spawn_egg": "Zoglin Spawn Egg", + "item.minecraft.zombie_horse_spawn_egg": "Zombie Horse Spawn Egg", + "item.minecraft.zombie_spawn_egg": "Zombie Spawn Egg", + "item.minecraft.zombie_villager_spawn_egg": "Zombie Villager Spawn Egg", + "item.minecraft.zombified_piglin_spawn_egg": "Zombified Piglin Spawn Egg", + "item.modifiers.chest": "When on Body:", + "item.modifiers.feet": "When on Feet:", + "item.modifiers.head": "When on Head:", + "item.modifiers.legs": "When on Legs:", + "item.modifiers.mainhand": "When in Main Hand:", + "item.modifiers.offhand": "When in Off Hand:", + "item.nbt_tags": "NBT: %s tag(s)", + "item.unbreakable": "Unbreakable", + "itemGroup.buildingBlocks": "Building Blocks", + "itemGroup.coloredBlocks": "Colored Blocks", + "itemGroup.combat": "Combat", + "itemGroup.consumables": "Consumables", + "itemGroup.crafting": "Crafting", + "itemGroup.foodAndDrink": "Food & Drinks", + "itemGroup.functional": "Functional Blocks", + "itemGroup.hotbar": "Saved Hotbars", + "itemGroup.ingredients": "Ingredients", + "itemGroup.inventory": "Survival Inventory", + "itemGroup.natural": "Natural Blocks", + "itemGroup.op": "Operator Utilities", + "itemGroup.redstone": "Redstone Blocks", + "itemGroup.search": "Search Items", + "itemGroup.spawnEggs": "Spawn Eggs", + "itemGroup.tools": "Tools & Utilities", + "jigsaw_block.final_state": "Turns into:", + "jigsaw_block.generate": "Generate", + "jigsaw_block.joint_label": "Joint Type:", + "jigsaw_block.joint.aligned": "Aligned", + "jigsaw_block.joint.rollable": "Rollable", + "jigsaw_block.keep_jigsaws": "Keep Jigsaws", + "jigsaw_block.levels": "Levels: %s", + "jigsaw_block.name": "Name:", + "jigsaw_block.placement_priority": "Placement Priority:", + "jigsaw_block.placement_priority.tooltip": "When this Jigsaw block connects to a piece, this is the order in which that piece is processed for connections in the wider structure.\n\nPieces will be processed in descending priority with insertion order breaking ties.", + "jigsaw_block.pool": "Target Pool:", + "jigsaw_block.selection_priority": "Selection Priority:", + "jigsaw_block.selection_priority.tooltip": "When the parent piece is being processed for connections, this is the order in which this Jigsaw block attempts to connect to its target piece.\n\nJigsaws will be processed in descending priority with random ordering breaking ties.", + "jigsaw_block.target": "Target Name:", + "key.advancements": "Advancements", + "key.attack": "Attack/Destroy", + "key.back": "Walk Backwards", + "key.categories.creative": "Creative Mode", + "key.categories.gameplay": "Gameplay", + "key.categories.inventory": "Inventory", + "key.categories.misc": "Miscellaneous", + "key.categories.movement": "Movement", + "key.categories.multiplayer": "Multiplayer", + "key.categories.ui": "Game Interface", + "key.chat": "Open Chat", + "key.command": "Open Command", + "key.drop": "Drop Selected Item", + "key.forward": "Walk Forwards", + "key.fullscreen": "Toggle Fullscreen", + "key.hotbar.1": "Hotbar Slot 1", + "key.hotbar.2": "Hotbar Slot 2", + "key.hotbar.3": "Hotbar Slot 3", + "key.hotbar.4": "Hotbar Slot 4", + "key.hotbar.5": "Hotbar Slot 5", + "key.hotbar.6": "Hotbar Slot 6", + "key.hotbar.7": "Hotbar Slot 7", + "key.hotbar.8": "Hotbar Slot 8", + "key.hotbar.9": "Hotbar Slot 9", + "key.inventory": "Open/Close Inventory", + "key.jump": "Jump", + "key.keyboard.apostrophe": "'", + "key.keyboard.backslash": "\\", + "key.keyboard.backspace": "Backspace", + "key.keyboard.caps.lock": "Caps Lock", + "key.keyboard.comma": ",", + "key.keyboard.delete": "Delete", + "key.keyboard.down": "Down Arrow", + "key.keyboard.end": "End", + "key.keyboard.enter": "Enter", + "key.keyboard.equal": "=", + "key.keyboard.escape": "Escape", + "key.keyboard.f1": "F1", + "key.keyboard.f2": "F2", + "key.keyboard.f3": "F3", + "key.keyboard.f4": "F4", + "key.keyboard.f5": "F5", + "key.keyboard.f6": "F6", + "key.keyboard.f7": "F7", + "key.keyboard.f8": "F8", + "key.keyboard.f9": "F9", + "key.keyboard.f10": "F10", + "key.keyboard.f11": "F11", + "key.keyboard.f12": "F12", + "key.keyboard.f13": "F13", + "key.keyboard.f14": "F14", + "key.keyboard.f15": "F15", + "key.keyboard.f16": "F16", + "key.keyboard.f17": "F17", + "key.keyboard.f18": "F18", + "key.keyboard.f19": "F19", + "key.keyboard.f20": "F20", + "key.keyboard.f21": "F21", + "key.keyboard.f22": "F22", + "key.keyboard.f23": "F23", + "key.keyboard.f24": "F24", + "key.keyboard.f25": "F25", + "key.keyboard.grave.accent": "`", + "key.keyboard.home": "Home", + "key.keyboard.insert": "Insert", + "key.keyboard.keypad.0": "Keypad 0", + "key.keyboard.keypad.1": "Keypad 1", + "key.keyboard.keypad.2": "Keypad 2", + "key.keyboard.keypad.3": "Keypad 3", + "key.keyboard.keypad.4": "Keypad 4", + "key.keyboard.keypad.5": "Keypad 5", + "key.keyboard.keypad.6": "Keypad 6", + "key.keyboard.keypad.7": "Keypad 7", + "key.keyboard.keypad.8": "Keypad 8", + "key.keyboard.keypad.9": "Keypad 9", + "key.keyboard.keypad.add": "Keypad +", + "key.keyboard.keypad.decimal": "Keypad Decimal", + "key.keyboard.keypad.divide": "Keypad /", + "key.keyboard.keypad.enter": "Keypad Enter", + "key.keyboard.keypad.equal": "Keypad =", + "key.keyboard.keypad.multiply": "Keypad *", + "key.keyboard.keypad.subtract": "Keypad -", + "key.keyboard.left": "Left Arrow", + "key.keyboard.left.alt": "Left Alt", + "key.keyboard.left.bracket": "[", + "key.keyboard.left.control": "Left Control", + "key.keyboard.left.shift": "Left Shift", + "key.keyboard.left.win": "Left Win", + "key.keyboard.menu": "Menu", + "key.keyboard.minus": "-", + "key.keyboard.num.lock": "Num Lock", + "key.keyboard.page.down": "Page Down", + "key.keyboard.page.up": "Page Up", + "key.keyboard.pause": "Pause", + "key.keyboard.period": ".", + "key.keyboard.print.screen": "Print Screen", + "key.keyboard.right": "Right Arrow", + "key.keyboard.right.alt": "Right Alt", + "key.keyboard.right.bracket": "]", + "key.keyboard.right.control": "Right Control", + "key.keyboard.right.shift": "Right Shift", + "key.keyboard.right.win": "Right Win", + "key.keyboard.scroll.lock": "Scroll Lock", + "key.keyboard.semicolon": ";", + "key.keyboard.slash": "/", + "key.keyboard.space": "Space", + "key.keyboard.tab": "Tab", + "key.keyboard.unknown": "Not Bound", + "key.keyboard.up": "Up Arrow", + "key.keyboard.world.1": "World 1", + "key.keyboard.world.2": "World 2", + "key.left": "Strafe Left", + "key.loadToolbarActivator": "Load Hotbar Activator", + "key.mouse": "Button %1$s", + "key.mouse.left": "Left Button", + "key.mouse.middle": "Middle Button", + "key.mouse.right": "Right Button", + "key.pickItem": "Pick Block", + "key.playerlist": "List Players", + "key.right": "Strafe Right", + "key.saveToolbarActivator": "Save Hotbar Activator", + "key.screenshot": "Take Screenshot", + "key.smoothCamera": "Toggle Cinematic Camera", + "key.sneak": "Sneak", + "key.socialInteractions": "Social Interactions Screen", + "key.spectatorOutlines": "Highlight Players (Spectators)", + "key.sprint": "Sprint", + "key.swapOffhand": "Swap Item With Offhand", + "key.togglePerspective": "Toggle Perspective", + "key.use": "Use Item/Place Block", + "language.code": "en_us", + "language.name": "English", + "language.region": "United States", + "lanServer.otherPlayers": "Settings for Other Players", + "lanServer.port": "Port Number", + "lanServer.port.invalid": "Not a valid port.\nLeave the edit box empty or enter a number between 1024 and 65535.", + "lanServer.port.invalid.new": "Not a valid port.\nLeave the edit box empty or enter a number between %s and %s.", + "lanServer.port.unavailable": "Port not available.\nLeave the edit box empty or enter a different number between 1024 and 65535.", + "lanServer.port.unavailable.new": "Port not available.\nLeave the edit box empty or enter a different number between %s and %s.", + "lanServer.scanning": "Scanning for games on your local network", + "lanServer.start": "Start LAN World", + "lanServer.title": "LAN World", + "lectern.take_book": "Take Book", + "loading.progress": "%s%%", + "mco.account.privacy.info": "Read more about Mojang and privacy laws", + "mco.account.privacy.info.button": "Read more about GDPR", + "mco.account.privacy.information": "Mojang implements certain procedures to help protect children and their privacy including complying with the Children’s Online Privacy Protection Act (COPPA) and General Data Protection Regulation (GDPR).\n\nYou may need to obtain parental consent before accessing your Realms account.", + "mco.account.privacyinfo": "Mojang implements certain procedures to help protect children and their privacy including complying with the Children’s Online Privacy Protection Act (COPPA) and General Data Protection Regulation (GDPR).\n\nYou may need to obtain parental consent before accessing your Realms account.\n\nIf you have an older Minecraft account (you log in with your username), you need to migrate the account to a Mojang account in order to access Realms.", + "mco.account.update": "Update account", + "mco.activity.noactivity": "No activity for the past %s day(s)", + "mco.activity.title": "Player activity", + "mco.backup.button.download": "Download Latest", + "mco.backup.button.reset": "Reset World", + "mco.backup.button.restore": "Restore", + "mco.backup.button.upload": "Upload World", + "mco.backup.changes.tooltip": "Changes", + "mco.backup.entry": "Backup (%s)", + "mco.backup.entry.description": "Description", + "mco.backup.entry.enabledPack": "Enabled Pack(s)", + "mco.backup.entry.gameDifficulty": "Game Difficulty", + "mco.backup.entry.gameMode": "Game Mode", + "mco.backup.entry.gameServerVersion": "Game Server Version", + "mco.backup.entry.name": "Name", + "mco.backup.entry.seed": "Seed", + "mco.backup.entry.templateName": "Template Name", + "mco.backup.entry.undefined": "Undefined Change", + "mco.backup.entry.uploaded": "Uploaded", + "mco.backup.entry.worldType": "World Type", + "mco.backup.generate.world": "Generate world", + "mco.backup.info.title": "Changes From Last Backup", + "mco.backup.nobackups": "This realm doesn't have any backups currently.", + "mco.backup.restoring": "Restoring your realm", + "mco.backup.unknown": "UNKNOWN", + "mco.brokenworld.download": "Download", + "mco.brokenworld.downloaded": "Downloaded", + "mco.brokenworld.message.line1": "Please reset or select another world.", + "mco.brokenworld.message.line2": "You can also choose to download the world to singleplayer.", + "mco.brokenworld.minigame.title": "This minigame is no longer supported", + "mco.brokenworld.nonowner.error": "Please wait for the realm owner to reset the world", + "mco.brokenworld.nonowner.title": "World is out of date", + "mco.brokenworld.play": "Play", + "mco.brokenworld.reset": "Reset", + "mco.brokenworld.title": "Your current world is no longer supported", + "mco.client.incompatible.msg.line1": "Your client is not compatible with Realms.", + "mco.client.incompatible.msg.line2": "Please use the most recent version of Minecraft.", + "mco.client.incompatible.msg.line3": "Realms is not compatible with snapshot versions.", + "mco.client.incompatible.title": "Client incompatible!", + "mco.compatibility.downgrade": "Downgrade", + "mco.compatibility.downgrade.description": "This world was last played in version %s; you are on version %s. Downgrading a world could cause corruption - we cannot guarantee that it will load or work.\n\nA backup of your world will be saved under \"World backups\". Please restore your world if needed.", + "mco.compatibility.unverifiable.message": "The version this world was last played in could not be verified. If the world gets upgraded or downgraded, a backup will be automatically created and saved under \"World backups\".", + "mco.compatibility.unverifiable.title": "Compatibility not verifiable", + "mco.compatibility.upgrade": "Upgrade", + "mco.compatibility.upgrade.description": "This world was last played in version %s; you are on version %s.\n\nA backup of your world will be saved under \"World backups\". Please restore your world if needed.", + "mco.compatibility.upgrade.title": "Do you really want to upgrade your world?", + "mco.configure.current.minigame": "Current", "mco.configure.world.activityfeed.disabled": "Player feed temporarily disabled", + "mco.configure.world.backup": "World Backups", + "mco.configure.world.buttons.activity": "Player activity", + "mco.configure.world.buttons.close": "Close Realm", + "mco.configure.world.buttons.delete": "Delete", + "mco.configure.world.buttons.done": "Done", + "mco.configure.world.buttons.edit": "Settings", + "mco.configure.world.buttons.invite": "Invite Player", "mco.configure.world.buttons.moreoptions": "More options", - "mco.configure.world.invite.profile.name": "Name", - "mco.configure.world.uninvite.question": "Are you sure that you want to uninvite", - "mco.configure.world.status": "Status", - "mco.configure.world.invites.ops.tooltip": "Operator", - "mco.configure.world.invites.normal.tooltip": "Normal user", - "mco.configure.world.invites.remove.tooltip": "Remove", - "mco.configure.world.closing": "Closing the realm...", - "mco.configure.world.opening": "Opening the realm...", + "mco.configure.world.buttons.open": "Open Realm", + "mco.configure.world.buttons.options": "World Options", "mco.configure.world.buttons.players": "Players", + "mco.configure.world.buttons.resetworld": "Reset World", "mco.configure.world.buttons.settings": "Settings", "mco.configure.world.buttons.subscription": "Subscription", - "mco.configure.world.buttons.options": "World options", - "mco.configure.world.backup": "World backups", - "mco.configure.world.buttons.resetworld": "Reset world", "mco.configure.world.buttons.switchminigame": "Switch minigame", - "mco.configure.current.minigame": "Current", - "mco.configure.world.subscription.title": "Your subscription", - "mco.configure.world.subscription.timeleft": "Time left", - "mco.configure.world.subscription.unknown": "Unknown", - "mco.configure.world.subscription.recurring.daysleft": "Renewed automatically in", - "mco.configure.world.subscription.less_than_a_day": "Less than a day", - "mco.configure.world.subscription.expired": "Expired", - "mco.configure.world.subscription.start": "Start date", - "mco.configure.world.subscription.extend": "Extend subscription", - "mco.configure.world.subscription.day": "day", - "mco.configure.world.subscription.month": "month", - "mco.configure.world.subscription.days": "days", - "mco.configure.world.subscription.months": "months", - "mco.configure.world.pvp": "PVP", - "mco.configure.world.spawn_toggle.title": "Warning!", - "mco.configure.world.spawn_toggle.message": "Turning this option off will REMOVE ALL existing entities of that type", - "mco.configure.world.spawn_toggle.message.npc": "Turning this option off will REMOVE ALL existing entities of that type, like Villagers", - "mco.configure.world.spawnAnimals": "Spawn animals", - "mco.configure.world.spawnNPCs": "Spawn NPCs", - "mco.configure.world.spawnMonsters": "Spawn monsters", - "mco.configure.world.spawnProtection": "Spawn protection", - "mco.configure.world.commandBlocks": "Command blocks", - "mco.configure.world.forceGameMode": "Force game mode", - "mco.configure.world.slot": "World %s", - "mco.configure.world.slot.empty": "Empty", - "mco.create.world.wait": "Creating the realm...", - "mco.create.world.error": "You must enter a name!", - "mco.create.world.subtitle": "Optionally, select what world to put on your new realm", - "mco.create.world.skip": "Skip", - "mco.reset.world.title": "Reset world", - "mco.reset.world.warning": "This will replace the current world of your realm", - "mco.reset.world.seed": "Seed (Optional)", - "mco.reset.world.resetting.screen.title": "Resetting world...", - "mco.reset.world.generate": "New world", - "mco.reset.world.upload": "Upload world", - "mco.reset.world.adventure": "Adventures", - "mco.reset.world.template": "World templates", - "mco.reset.world.experience": "Experiences", - "mco.reset.world.inspiration": "Inspiration", - "mco.minigame.world.title": "Switch realm to minigame", - "mco.minigame.world.info.line1": "This will temporarily replace your world with a minigame!", - "mco.minigame.world.info.line2": "You can later return to your original world without losing anything.", - "mco.minigame.world.selected": "Selected minigame:", - "mco.minigame.world.noSelection": "Please make a selection", - "mco.minigame.world.startButton": "Switch", - "mco.minigame.world.starting.screen.title": "Starting minigame...", - "mco.minigame.world.changeButton": "Select another minigame", - "mco.minigame.world.stopButton": "End minigame", - "mco.minigame.world.switch.title": "Switch minigame", - "mco.minigame.world.switch.new": "Select another minigame?", - "mco.minigame.world.restore.question.line1": "The minigame will end and your realm will be restored.", - "mco.minigame.world.restore.question.line2": "Are you sure you want to continue?", - "mco.minigame.world.restore": "Ending minigame...", - "mco.configure.world.slot.tooltip": "Switch to world", - "mco.configure.world.slot.tooltip.minigame": "Switch to minigame", - "mco.configure.world.slot.tooltip.active": "Join", "mco.configure.world.close.question.line1": "Your realm will become unavailable.", "mco.configure.world.close.question.line2": "Are you sure you want to continue?", + "mco.configure.world.closing": "Closing the realm...", + "mco.configure.world.commandBlocks": "Command Blocks", + "mco.configure.world.delete.button": "Delete Realm", + "mco.configure.world.delete.question.line1": "Your realm will be permanently deleted", + "mco.configure.world.delete.question.line2": "Are you sure you want to continue?", + "mco.configure.world.description": "Realm Description", + "mco.configure.world.edit.slot.name": "World Name", + "mco.configure.world.edit.subscreen.adventuremap": "Some settings are disabled since your current world is an adventure", + "mco.configure.world.edit.subscreen.experience": "Some settings are disabled since your current world is an experience", + "mco.configure.world.edit.subscreen.inspiration": "Some settings are disabled since your current world is an inspiration", + "mco.configure.world.forceGameMode": "Force Game Mode", + "mco.configure.world.invite.narration": "You have %s new invite(s)", + "mco.configure.world.invite.profile.name": "Name", + "mco.configure.world.invited": "Invited", + "mco.configure.world.invited.number": "Invited (%s)", + "mco.configure.world.invites.normal.tooltip": "Normal user", + "mco.configure.world.invites.ops.tooltip": "Operator", + "mco.configure.world.invites.remove.tooltip": "Remove", "mco.configure.world.leave.question.line1": "If you leave this realm you won't see it unless you are invited again", "mco.configure.world.leave.question.line2": "Are you sure you want to continue?", - "mco.configure.world.resourcepack.question.line1": "You need a custom resource pack to play on this realm", - "mco.configure.world.resourcepack.question.line2": "Do you want to download it and play?", + "mco.configure.world.location": "Location", + "mco.configure.world.minigame": "Current: %s", + "mco.configure.world.name": "Realm Name", + "mco.configure.world.opening": "Opening the realm...", + "mco.configure.world.players.error": "A player with the provided name does not exist", + "mco.configure.world.players.inviting": "Inviting player...", + "mco.configure.world.players.title": "Players", + "mco.configure.world.pvp": "PVP", "mco.configure.world.reset.question.line1": "Your world will be regenerated and your current world will be lost", "mco.configure.world.reset.question.line2": "Are you sure you want to continue?", - "mco.configure.world.restore.question.line1": "Your world will be restored to date '%s' (%s)", - "mco.configure.world.restore.question.line2": "Are you sure you want to continue?", + "mco.configure.world.resourcepack.question.line1": "You need a custom resource pack to play on this realm", + "mco.configure.world.resourcepack.question.line2": "Do you want to download it and play?", "mco.configure.world.restore.download.question.line1": "The world will be downloaded and added to your single player worlds.", "mco.configure.world.restore.download.question.line2": "Do you want to continue?", + "mco.configure.world.restore.question.line1": "Your world will be restored to date '%s' (%s)", + "mco.configure.world.restore.question.line2": "Are you sure you want to continue?", + "mco.configure.world.settings.title": "Settings", + "mco.configure.world.slot": "World %s", + "mco.configure.world.slot.empty": "Empty", "mco.configure.world.slot.switch.question.line1": "Your realm will be switched to another world", "mco.configure.world.slot.switch.question.line2": "Are you sure you want to continue?", - "mco.configure.world.switch.slot": "Create world", + "mco.configure.world.slot.tooltip": "Switch to world", + "mco.configure.world.slot.tooltip.active": "Join", + "mco.configure.world.slot.tooltip.minigame": "Switch to minigame", + "mco.configure.world.spawn_toggle.message": "Turning this option off will REMOVE ALL existing entities of that type", + "mco.configure.world.spawn_toggle.message.npc": "Turning this option off will REMOVE ALL existing entities of that type, like Villagers", + "mco.configure.world.spawn_toggle.title": "Warning!", + "mco.configure.world.spawnAnimals": "Spawn Animals", + "mco.configure.world.spawnMonsters": "Spawn Monsters", + "mco.configure.world.spawnNPCs": "Spawn NPCs", + "mco.configure.world.spawnProtection": "Spawn Protection", + "mco.configure.world.status": "Status", + "mco.configure.world.subscription.day": "day", + "mco.configure.world.subscription.days": "days", + "mco.configure.world.subscription.expired": "Expired", + "mco.configure.world.subscription.extend": "Extend Subscription", + "mco.configure.world.subscription.less_than_a_day": "Less than a day", + "mco.configure.world.subscription.month": "month", + "mco.configure.world.subscription.months": "months", + "mco.configure.world.subscription.recurring.daysleft": "Renewed automatically in", + "mco.configure.world.subscription.recurring.info": "Changes made to your Realms subscription such as stacking time or turning off recurring billing will not be reflected until your next bill date.", + "mco.configure.world.subscription.remaining.days": "%1$s day(s)", + "mco.configure.world.subscription.remaining.months": "%1$s month(s)", + "mco.configure.world.subscription.remaining.months.days": "%1$s month(s), %2$s day(s)", + "mco.configure.world.subscription.start": "Start Date", + "mco.configure.world.subscription.timeleft": "Time Left", + "mco.configure.world.subscription.title": "Your Subscription", + "mco.configure.world.subscription.unknown": "Unknown", + "mco.configure.world.switch.slot": "Create World", "mco.configure.world.switch.slot.subtitle": "This world is empty, choose how to create your world", - "mco.minigame.world.slot.screen.title": "Switching world...", - "mco.configure.world.edit.subscreen.adventuremap": "Some settings are disabled since your current world is an adventure", - "mco.configure.world.edit.subscreen.experience": "Some settings are disabled since your current world is an experience", - "mco.configure.world.edit.subscreen.inspiration": "Some settings are disabled since your current world is an inspiration", - "mco.configure.world.edit.slot.name": "World name", - "mco.configure.world.players.title": "Players", - "mco.configure.world.players.error": "A player with the provided name does not exist", - "mco.configure.world.delete.button": "Delete realm", - "mco.configure.world.delete.question.line1": "Your realm will be permanently deleted", - "mco.configure.world.delete.question.line2": "Are you sure you want to continue?", - "mco.connect.connecting": "Connecting to the realm...", + "mco.configure.world.title": "Configure Realm:", + "mco.configure.world.uninvite.player": "Are you sure that you want to uninvite '%s'?", + "mco.configure.world.uninvite.question": "Are you sure that you want to uninvite", + "mco.configure.worlds.title": "Worlds", "mco.connect.authorizing": "Logging in...", + "mco.connect.connecting": "Connecting to the realm...", "mco.connect.failed": "Failed to connect to the realm", "mco.connect.success": "Done", "mco.create.world": "Create", + "mco.create.world.error": "You must enter a name!", "mco.create.world.reset.title": "Creating world...", - "mco.client.incompatible.title": "Client incompatible!", - "mco.client.incompatible.msg.line1": "Your client is not compatible with Realms.", - "mco.client.incompatible.msg.line2": "Please use the most recent version of Minecraft.", - "mco.client.incompatible.msg.line3": "Realms is not compatible with snapshot versions.", - "mco.backup.button.restore": "Restore", - "mco.backup.generate.world": "Generate world", - "mco.backup.restoring": "Restoring your realm", - "mco.backup.button.download": "Download latest", - "mco.backup.changes.tooltip": "Changes", - "mco.backup.nobackups": "This realm doesn't have any backups currently.", - "mco.backup.button.upload": "Upload world", - "mco.backup.button.reset": "Reset world", - "mco.download.title": "Downloading latest world", + "mco.create.world.skip": "Skip", + "mco.create.world.subtitle": "Optionally, select what world to put on your new realm", + "mco.create.world.wait": "Creating the realm...", "mco.download.cancelled": "Download cancelled", - "mco.download.failed": "Download failed", + "mco.download.confirmation.line1": "The world you are going to download is larger than %s", + "mco.download.confirmation.line2": "You won't be able to upload this world to your realm again", "mco.download.done": "Download done", "mco.download.downloading": "Downloading", "mco.download.extracting": "Extracting", + "mco.download.failed": "Download failed", + "mco.download.percent": "%s %%", "mco.download.preparing": "Preparing download", - "mco.download.confirmation.line1": "The world you are going to download is larger than %s", - "mco.download.confirmation.line2": "You won't be able to upload this world to your realm again", - "mco.template.title": "World templates", - "mco.template.title.minigame": "Minigames", + "mco.download.resourcePack.fail": "Failed to download resource pack!", + "mco.download.speed": "(%s/s)", + "mco.download.speed.narration": "%s/s", + "mco.download.title": "Downloading Latest World", + "mco.error.invalid.session.message": "Please try restarting Minecraft", + "mco.error.invalid.session.title": "Invalid Session", + "mco.errorMessage.6001": "Client outdated", + "mco.errorMessage.6002": "Terms of service not accepted", + "mco.errorMessage.6003": "Download limit reached", + "mco.errorMessage.6004": "Upload limit reached", + "mco.errorMessage.6005": "World locked", + "mco.errorMessage.6006": "World is out of date", + "mco.errorMessage.6007": "User in too many Realms", + "mco.errorMessage.6008": "Invalid Realm name", + "mco.errorMessage.6009": "Invalid Realm description", + "mco.errorMessage.connectionFailure": "An error occurred, please try again later.", + "mco.errorMessage.generic": "An error occurred: ", + "mco.errorMessage.noDetails": "No error details provided", + "mco.errorMessage.realmsService": "An error occurred (%s):", + "mco.errorMessage.realmsService.connectivity": "Could not connect to Realms: %s", + "mco.errorMessage.realmsService.realmsError": "Realms (%s):", + "mco.errorMessage.realmsService.unknownCompatibility": "Could not check compatible version, got response: %s", + "mco.errorMessage.retry": "Retry operation", + "mco.errorMessage.serviceBusy": "Realms is busy at the moment.\nPlease try connecting to your Realm again in a couple of minutes.", + "mco.gui.button": "Button", + "mco.gui.ok": "Ok", + "mco.info": "Info!", + "mco.invites.button.accept": "Accept", + "mco.invites.button.reject": "Reject", + "mco.invites.nopending": "No pending invites!", + "mco.invites.pending": "New invite(s)!", + "mco.invites.title": "Pending Invites", + "mco.minigame.world.changeButton": "Select another minigame", + "mco.minigame.world.info.line1": "This will temporarily replace your world with a minigame!", + "mco.minigame.world.info.line2": "You can later return to your original world without losing anything.", + "mco.minigame.world.noSelection": "Please make a selection", + "mco.minigame.world.restore": "Ending minigame...", + "mco.minigame.world.restore.question.line1": "The minigame will end and your realm will be restored.", + "mco.minigame.world.restore.question.line2": "Are you sure you want to continue?", + "mco.minigame.world.selected": "Selected minigame:", + "mco.minigame.world.slot.screen.title": "Switching world...", + "mco.minigame.world.startButton": "Switch", + "mco.minigame.world.starting.screen.title": "Starting minigame...", + "mco.minigame.world.stopButton": "End minigame", + "mco.minigame.world.switch.new": "Select another minigame?", + "mco.minigame.world.switch.title": "Switch minigame", + "mco.minigame.world.title": "Switch realm to minigame", + "mco.news": "Realms news", + "mco.notification.dismiss": "Dismiss", + "mco.notification.transferSubscription.buttonText": "Transfer Now", + "mco.notification.transferSubscription.message": "Java Realms subscriptions are moving to the Microsoft Store. Do not let your subscription expire!\nTransfer now and get 30 days of Realms for free.\nGo to Profile on minecraft.net to transfer your subscription.", + "mco.notification.visitUrl.buttonText.default": "Open link", + "mco.notification.visitUrl.message.default": "Please visit the link below", + "mco.question": "Question", + "mco.reset.world.adventure": "Adventures", + "mco.reset.world.experience": "Experiences", + "mco.reset.world.generate": "New World", + "mco.reset.world.inspiration": "Inspiration", + "mco.reset.world.resetting.screen.title": "Resetting world...", + "mco.reset.world.seed": "Seed (Optional)", + "mco.reset.world.template": "World Templates", + "mco.reset.world.title": "Reset World", + "mco.reset.world.upload": "Upload world", + "mco.reset.world.warning": "This will replace the current world of your realm", + "mco.selectServer.buy": "Buy a Realm!", + "mco.selectServer.close": "Close", + "mco.selectServer.closed": "Closed realm", + "mco.selectServer.closeserver": "Close realm", + "mco.selectServer.configure": "Configure", + "mco.selectServer.configureRealm": "Configure realm", + "mco.selectServer.create": "Create Realm", + "mco.selectServer.create.subtitle": "Select what world to put on your new realm", + "mco.selectServer.expired": "Expired realm", + "mco.selectServer.expiredList": "Your subscription has expired", + "mco.selectServer.expiredRenew": "Renew", + "mco.selectServer.expiredSubscribe": "Subscribe", + "mco.selectServer.expiredTrial": "Your trial has ended", + "mco.selectServer.expires.day": "Expires in a day", + "mco.selectServer.expires.days": "Expires in %s days", + "mco.selectServer.expires.soon": "Expires soon", + "mco.selectServer.leave": "Leave Realm", + "mco.selectServer.loading": "Loading Realms List", + "mco.selectServer.mapOnlySupportedForVersion": "This map is unsupported in %s", + "mco.selectServer.minigame": "Minigame:", + "mco.selectServer.minigameName": "Minigame: %s", + "mco.selectServer.minigameNotSupportedInVersion": "Can't play this minigame in %s", + "mco.selectServer.noRealms": "You don't seem to have a Realm. Add a Realm to play together with your friends.", + "mco.selectServer.note": "Note:", + "mco.selectServer.open": "Open realm", + "mco.selectServer.openserver": "Open realm", + "mco.selectServer.play": "Play", + "mco.selectServer.popup": "Realms is a safe, simple way to enjoy an online Minecraft world with up to ten friends at a time. It supports loads of minigames and plenty of custom worlds! Only the owner of the realm needs to pay.", + "mco.selectServer.purchase": "Add Realm", + "mco.selectServer.trial": "Get a Trial!", + "mco.selectServer.uninitialized": "Click to start your new realm!", + "mco.snapshot.createSnapshotPopup.text": "You are about to create a free Snapshot Realm that will be paired with your paid Realms subscription. This new Snapshot Realm will be accessible for as long as the paid subscription is active. Your paid Realm will not be affected.", + "mco.snapshot.createSnapshotPopup.title": "Create Snapshot Realm?", + "mco.snapshot.creating": "Creating Snapshot Realm...", + "mco.snapshot.description": "Paired with \"%s\"", + "mco.snapshot.friendsRealm.downgrade": "You need to be on version %s to join this Realm", + "mco.snapshot.friendsRealm.upgrade": "%s needs to upgrade their Realm before you can play from this version", + "mco.snapshot.paired": "This Snapshot Realm is paired with \"%s\"", + "mco.snapshot.parent.tooltip": "Use the latest release of Minecraft to play on this Realm", + "mco.snapshot.start": "Start free Snapshot Realm", + "mco.snapshot.subscription.info": "This is a Snapshot Realm that is paired to the subscription of your Realm '%s'. It will stay active for as long as its paired Realm is.", + "mco.snapshot.tooltip": "Use Snapshot Realms to get a sneak peek at upcoming versions of Minecraft, which might include new features and other changes.\n\nYou can find your normal Realms in the release version of the game.", + "mco.snapshotRealmsPopup.message": "Realms are now available in Snapshots starting with Snapshot 23w41a. Every Realms subscription comes with a free Snapshot Realm that is separate from your normal Java Realm!", + "mco.snapshotRealmsPopup.title": "Realms now available in Snapshots", + "mco.snapshotRealmsPopup.urlText": "Learn More", + "mco.template.button.publisher": "Publisher", "mco.template.button.select": "Select", "mco.template.button.trailer": "Trailer", - "mco.template.button.publisher": "Publisher", "mco.template.default.name": "World template", - "mco.template.name": "Template", "mco.template.info.tooltip": "Publisher website", - "mco.template.trailer.tooltip": "Map trailer", + "mco.template.name": "Template", + "mco.template.select.failure": "We couldn't retrieve the list of content for this category.\nPlease check your internet connection, or try again later.", + "mco.template.select.narrate.authors": "Authors: %s", + "mco.template.select.narrate.version": "version %s", "mco.template.select.none": "Oops, it looks like this content category is currently empty.\nPlease check back later for new content, or if you're a creator,\n%s.", "mco.template.select.none.linkTitle": "consider submitting something yourself", - "mco.template.select.failure": "We couldn't retrieve the list of content for this category.\nPlease check your internet connection, or try again later.", - "mco.template.select.narrate.authors" : "Authors: %s", - "mco.template.select.narrate.version" : "version %s", - "mco.invites.button.accept": "Accept", - "mco.invites.button.reject": "Reject", - "mco.invites.title": "Pending Invites", - "mco.invites.pending": "New invites!", - "mco.invites.nopending": "No pending invites!", - "mco.upload.select.world.title": "Upload world", - "mco.upload.select.world.subtitle": "Please select a singleplayer world to upload", - "mco.upload.select.world.none": "No singleplayer worlds found!", + "mco.template.title": "World templates", + "mco.template.title.minigame": "Minigames", + "mco.template.trailer.tooltip": "Map trailer", + "mco.terms.buttons.agree": "Agree", + "mco.terms.buttons.disagree": "Don't agree", + "mco.terms.sentence.1": "I agree to the Minecraft Realms", + "mco.terms.sentence.2": "Terms of Service", + "mco.terms.title": "Realms Terms of Service", + "mco.time.daysAgo": "%1$s day(s) ago", + "mco.time.hoursAgo": "%1$s hour(s) ago", + "mco.time.minutesAgo": "%1$s minute(s) ago", + "mco.time.now": "right now", + "mco.time.secondsAgo": "%1$s second(s) ago", + "mco.trial.message.line1": "Want to get your own realm?", + "mco.trial.message.line2": "Click here for more info!", "mco.upload.button.name": "Upload", - "mco.upload.verifying": "Verifying your world", - "mco.upload.preparing": "Preparing your world", + "mco.upload.cancelled": "Upload cancelled", "mco.upload.close.failure": "Could not close your realm, please try again later", - "mco.upload.size.failure.line1": "'%s' is too big!", - "mco.upload.size.failure.line2": "It is %s. The maximum allowed size is %s.", - "mco.upload.uploading": "Uploading '%s'", "mco.upload.done": "Upload done", + "mco.upload.entry.cheats": "%1$s, %2$s", + "mco.upload.entry.id": "%1$s (%2$s)", "mco.upload.failed": "Upload failed! (%s)", - "mco.upload.cancelled": "Upload cancelled", "mco.upload.hardcore": "Hardcore worlds can't be uploaded!", - "mco.activity.title": "Player activity", - "mco.activity.noactivity": "No activity for the past %s days", - "mco.errorMessage.6001": "Client outdated", - "mco.errorMessage.6002": "Terms of service not accepted", - "mco.errorMessage.6003": "Download limit reached", - "mco.errorMessage.6004": "Upload limit reached", - "mco.errorMessage.connectionFailure": "An error occurred, please try again later.", - "mco.errorMessage.serviceBusy": "Realms is busy at the moment.\nPlease try connecting to your Realm again in a couple of minutes.", - "mco.trial.message.line1": "Want to get your own realm?", - "mco.trial.message.line2": "Click here for more info!", - "mco.brokenworld.play": "Play", - "mco.brokenworld.download": "Download", - "mco.brokenworld.downloaded": "Downloaded", - "mco.brokenworld.reset": "Reset", - "mco.brokenworld.title": "Your current world is no longer supported", - "mco.brokenworld.message.line1": "Please reset or select another world.", - "mco.brokenworld.message.line2": "You can also choose to download the world to singleplayer.", - "mco.brokenworld.minigame.title": "This minigame is no longer supported", - "mco.brokenworld.nonowner.title": "World is out of date", - "mco.brokenworld.nonowner.error": "Please wait for the realm owner to reset the world", - "mco.error.invalid.session.title": "Invalid session", - "mco.error.invalid.session.message": "Please try restarting Minecraft", - "mco.news": "Realms news", - "mco.account.privacyinfo": "Mojang implements certain procedures to help protect children and their privacy including complying with the Children’s Online Privacy Protection Act (COPPA) and General Data Protection Regulation (GDPR).\n\nYou may need to obtain parental consent before accessing your Realms account.\n\nIf you have an older Minecraft account (you log in with your username), you need to migrate the account to a Mojang account in order to access Realms.", - "mco.account.update": "Update account", - "mco.account.privacy.info": "Read more about Mojang and privacy laws" -} + "mco.upload.percent": "%s %%", + "mco.upload.preparing": "Preparing your world", + "mco.upload.select.world.none": "No singleplayer worlds found!", + "mco.upload.select.world.subtitle": "Please select a singleplayer world to upload", + "mco.upload.select.world.title": "Upload World", + "mco.upload.size.failure.line1": "'%s' is too big!", + "mco.upload.size.failure.line2": "It is %s. The maximum allowed size is %s.", + "mco.upload.uploading": "Uploading '%s'", + "mco.upload.verifying": "Verifying your world", + "mco.version": "Version: %s", + "mco.warning": "Warning!", + "mco.worldSlot.minigame": "Minigame", + "menu.convertingLevel": "Converting world", + "menu.disconnect": "Disconnect", + "menu.game": "Game Menu", + "menu.generatingLevel": "Generating world", + "menu.generatingTerrain": "Building terrain", + "menu.loadingForcedChunks": "Loading forced chunks for dimension %s", + "menu.loadingLevel": "Loading world", + "menu.modded": " (Modded)", + "menu.multiplayer": "Multiplayer", + "menu.online": "Minecraft Realms", + "menu.options": "Options...", + "menu.paused": "Game Paused", + "menu.playdemo": "Play Demo World", + "menu.playerReporting": "Player Reporting", + "menu.preparingSpawn": "Preparing spawn area: %s%%", + "menu.quit": "Quit Game", + "menu.reportBugs": "Report Bugs", + "menu.resetdemo": "Reset Demo World", + "menu.respawning": "Respawning", + "menu.returnToGame": "Back to Game", + "menu.returnToMenu": "Save and Quit to Title", + "menu.savingChunks": "Saving chunks", + "menu.savingLevel": "Saving world", + "menu.sendFeedback": "Give Feedback", + "menu.shareToLan": "Open to LAN", + "menu.singleplayer": "Singleplayer", + "menu.working": "Working...", + "merchant.current_level": "Trader's current level", + "merchant.deprecated": "Villagers restock up to two times per day.", + "merchant.level.1": "Novice", + "merchant.level.2": "Apprentice", + "merchant.level.3": "Journeyman", + "merchant.level.4": "Expert", + "merchant.level.5": "Master", + "merchant.next_level": "Trader's next level", + "merchant.title": "%s - %s", + "merchant.trades": "Trades", + "mirror.front_back": "↑ ↓", + "mirror.left_right": "← →", + "mirror.none": "|", + "mount.onboard": "Press %1$s to Dismount", + "multiplayer.applyingPack": "Applying resource pack", + "multiplayer.disconnect.authservers_down": "Authentication servers are down. Please try again later, sorry!", + "multiplayer.disconnect.banned": "You are banned from this server", + "multiplayer.disconnect.banned_ip.expiration": "\nYour ban will be removed on %s", + "multiplayer.disconnect.banned_ip.reason": "Your IP address is banned from this server.\nReason: %s", + "multiplayer.disconnect.banned.expiration": "\nYour ban will be removed on %s", + "multiplayer.disconnect.banned.reason": "You are banned from this server.\nReason: %s", + "multiplayer.disconnect.chat_validation_failed": "Chat message validation failure", + "multiplayer.disconnect.duplicate_login": "You logged in from another location", + "multiplayer.disconnect.expired_public_key": "Expired profile public key. Check that your system time is synchronized, and try restarting your game.", + "multiplayer.disconnect.flying": "Flying is not enabled on this server", + "multiplayer.disconnect.generic": "Disconnected", + "multiplayer.disconnect.idling": "You have been idle for too long!", + "multiplayer.disconnect.illegal_characters": "Illegal characters in chat", + "multiplayer.disconnect.incompatible": "Incompatible client! Please use %s", + "multiplayer.disconnect.invalid_entity_attacked": "Attempting to attack an invalid entity", + "multiplayer.disconnect.invalid_packet": "Server sent an invalid packet", + "multiplayer.disconnect.invalid_player_data": "Invalid player data", + "multiplayer.disconnect.invalid_player_movement": "Invalid move player packet received", + "multiplayer.disconnect.invalid_public_key_signature": "Invalid signature for profile public key.\nTry restarting your game.", + "multiplayer.disconnect.invalid_public_key_signature.new": "Invalid signature for profile public key.\nTry restarting your game.", + "multiplayer.disconnect.invalid_vehicle_movement": "Invalid move vehicle packet received", + "multiplayer.disconnect.ip_banned": "You have been IP banned from this server", + "multiplayer.disconnect.kicked": "Kicked by an operator", + "multiplayer.disconnect.missing_tags": "Incomplete set of tags received from server.\nPlease contact server operator.", + "multiplayer.disconnect.name_taken": "That name is already taken", + "multiplayer.disconnect.not_whitelisted": "You are not white-listed on this server!", + "multiplayer.disconnect.out_of_order_chat": "Out-of-order chat packet received. Did your system time change?", + "multiplayer.disconnect.outdated_client": "Incompatible client! Please use %s", + "multiplayer.disconnect.outdated_server": "Incompatible client! Please use %s", + "multiplayer.disconnect.server_full": "The server is full!", + "multiplayer.disconnect.server_shutdown": "Server closed", + "multiplayer.disconnect.slow_login": "Took too long to log in", + "multiplayer.disconnect.too_many_pending_chats": "Too many unacknowledged chat messages", + "multiplayer.disconnect.unexpected_query_response": "Unexpected custom data from client", + "multiplayer.disconnect.unsigned_chat": "Received chat packet with missing or invalid signature.", + "multiplayer.disconnect.unverified_username": "Failed to verify username!", + "multiplayer.downloadingStats": "Retrieving statistics...", + "multiplayer.downloadingTerrain": "Loading terrain...", + "multiplayer.lan.server_found": "New server found: %s", + "multiplayer.message_not_delivered": "Can't deliver chat message, check server logs: %s", + "multiplayer.player.joined": "%s joined the game", + "multiplayer.player.joined.renamed": "%s (formerly known as %s) joined the game", + "multiplayer.player.left": "%s left the game", + "multiplayer.player.list.hp": "%shp", + "multiplayer.player.list.narration": "Online players: %s", + "multiplayer.requiredTexturePrompt.disconnect": "Server requires a custom resource pack", + "multiplayer.requiredTexturePrompt.line1": "This server requires the use of a custom resource pack.", + "multiplayer.requiredTexturePrompt.line2": "Rejecting this custom resource pack will disconnect you from this server.", + "multiplayer.socialInteractions.not_available": "Social Interactions are only available in Multiplayer worlds", + "multiplayer.status.and_more": "... and %s more ...", + "multiplayer.status.cancelled": "Cancelled", + "multiplayer.status.cannot_connect": "Can't connect to server", + "multiplayer.status.cannot_resolve": "Can't resolve hostname", + "multiplayer.status.finished": "Finished", + "multiplayer.status.incompatible": "Incompatible version!", + "multiplayer.status.motd.narration": "Message of the day: %s", + "multiplayer.status.no_connection": "(no connection)", + "multiplayer.status.old": "Old", + "multiplayer.status.online": "Online", + "multiplayer.status.ping": "%s ms", + "multiplayer.status.ping.narration": "Ping %s milliseconds", + "multiplayer.status.pinging": "Pinging...", + "multiplayer.status.player_count": "%s/%s", + "multiplayer.status.player_count.narration": "%s out of %s players online", + "multiplayer.status.quitting": "Quitting", + "multiplayer.status.request_handled": "Status request has been handled", + "multiplayer.status.unknown": "???", + "multiplayer.status.unrequested": "Received unrequested status", + "multiplayer.status.version.narration": "Server version: %s", + "multiplayer.stopSleeping": "Leave Bed", + "multiplayer.texturePrompt.failure.line1": "Server resource pack couldn't be applied", + "multiplayer.texturePrompt.failure.line2": "Any functionality that requires custom resources might not work as expected", + "multiplayer.texturePrompt.line1": "This server recommends the use of a custom resource pack.", + "multiplayer.texturePrompt.line2": "Would you like to download and install it automagically?", + "multiplayer.texturePrompt.serverPrompt": "%s\n\nMessage from server:\n%s", + "multiplayer.title": "Play Multiplayer", + "multiplayer.unsecureserver.toast": "Messages sent on this server may be modified and might not reflect the original message", + "multiplayer.unsecureserver.toast.title": "Chat messages can't be verified", + "multiplayerWarning.check": "Do not show this screen again", + "multiplayerWarning.header": "Caution: Third-Party Online Play", + "multiplayerWarning.message": "Caution: Online play is offered by third-party servers that are not owned, operated, or supervised by Mojang Studios or Microsoft. During online play, you may be exposed to unmoderated chat messages or other types of user-generated content that may not be suitable for everyone.", + "narration.button": "Button: %s", + "narration.button.usage.focused": "Press Enter to activate", + "narration.button.usage.hovered": "Left click to activate", + "narration.checkbox": "Checkbox: %s", + "narration.checkbox.usage.focused": "Press Enter to toggle", + "narration.checkbox.usage.hovered": "Left click to toggle", + "narration.component_list.usage": "Press Tab to navigate to next element", + "narration.cycle_button.usage.focused": "Press Enter to switch to %s", + "narration.cycle_button.usage.hovered": "Left click to switch to %s", + "narration.edit_box": "Edit box: %s", + "narration.recipe": "Recipe for %s", + "narration.recipe.usage": "Left click to select", + "narration.recipe.usage.more": "Right click to show more recipes", + "narration.selection.usage": "Press up and down buttons to move to another entry", + "narration.slider.usage.focused": "Press left or right keyboard buttons to change value", + "narration.slider.usage.hovered": "Drag slider to change value", + "narration.suggestion": "Selected suggestion %d out of %d: %s", + "narration.suggestion.tooltip": "Selected suggestion %d out of %d: %s (%s)", + "narration.suggestion.usage.cycle.fixed": "Press Tab to cycle to the next suggestion", + "narration.suggestion.usage.cycle.hidable": "Press Tab to cycle to the next suggestion, or Escape to leave suggestions", + "narration.suggestion.usage.fill.fixed": "Press Tab to use suggestion", + "narration.suggestion.usage.fill.hidable": "Press Tab to use suggestion, or Escape to leave suggestions", + "narration.tab_navigation.usage": "Press Ctrl and Tab to switch between tabs", + "narrator.button.accessibility": "Accessibility", + "narrator.button.difficulty_lock": "Difficulty lock", + "narrator.button.difficulty_lock.locked": "Locked", + "narrator.button.difficulty_lock.unlocked": "Unlocked", + "narrator.button.language": "Language", + "narrator.controls.bound": "%s is bound to %s", + "narrator.controls.reset": "Reset %s button", + "narrator.controls.unbound": "%s is not bound", + "narrator.joining": "Joining", + "narrator.loading": "Loading: %s", + "narrator.loading.done": "Done", + "narrator.position.list": "Selected list row %s out of %s", + "narrator.position.object_list": "Selected row element %s out of %s", + "narrator.position.screen": "Screen element %s out of %s", + "narrator.position.tab": "Selected tab %s out of %s", + "narrator.ready_to_play": "Ready to play", + "narrator.screen.title": "Title Screen", + "narrator.screen.usage": "Use mouse cursor or Tab button to select element", + "narrator.select": "Selected: %s", + "narrator.select.world": "Selected %s, last played: %s, %s, %s, version: %s", + "narrator.select.world_info": "Selected %s, last played: %s, %s", + "narrator.toast.disabled": "Narrator Disabled", + "narrator.toast.enabled": "Narrator Enabled", + "optimizeWorld.confirm.description": "This will attempt to optimize your world by making sure all data is stored in the most recent game format. This can take a very long time, depending on your world. Once done, your world may play faster but will no longer be compatible with older versions of the game. Are you sure you wish to proceed?", + "optimizeWorld.confirm.title": "Optimize World", + "optimizeWorld.info.converted": "Upgraded chunks: %s", + "optimizeWorld.info.skipped": "Skipped chunks: %s", + "optimizeWorld.info.total": "Total chunks: %s", + "optimizeWorld.progress.counter": "%s / %s", + "optimizeWorld.progress.percentage": "%s%%", + "optimizeWorld.stage.counting": "Counting chunks...", + "optimizeWorld.stage.failed": "Failed! :(", + "optimizeWorld.stage.finished": "Finishing up...", + "optimizeWorld.stage.upgrading": "Upgrading all chunks...", + "optimizeWorld.title": "Optimizing World '%s'", + "options.accessibility": "Accessibility Settings...", + "options.accessibility.high_contrast": "High Contrast", + "options.accessibility.high_contrast.error.tooltip": "High Contrast resource pack is not available", + "options.accessibility.high_contrast.tooltip": "Enhances the contrast of UI elements", + "options.accessibility.link": "Accessibility Guide", + "options.accessibility.narrator_hotkey": "Narrator Hotkey", + "options.accessibility.narrator_hotkey.mac.tooltip": "Allows the Narrator to be toggled on and off with 'Cmd+B'", + "options.accessibility.narrator_hotkey.tooltip": "Allows the Narrator to be toggled on and off with 'Ctrl+B'", + "options.accessibility.panorama_speed": "Panorama Scroll Speed", + "options.accessibility.text_background": "Text Background", + "options.accessibility.text_background_opacity": "Text Background Opacity", + "options.accessibility.text_background.chat": "Chat", + "options.accessibility.text_background.everywhere": "Everywhere", + "options.accessibility.title": "Accessibility Settings", + "options.allowServerListing": "Allow Server Listings", + "options.allowServerListing.tooltip": "Servers may list online players as part of their public status.\nWith this option off your name will not show up in such lists.", + "options.ao": "Smooth Lighting", + "options.ao.max": "Maximum", + "options.ao.min": "Minimum", + "options.ao.off": "OFF", + "options.attack.crosshair": "Crosshair", + "options.attack.hotbar": "Hotbar", + "options.attackIndicator": "Attack Indicator", + "options.audioDevice": "Device", + "options.audioDevice.default": "System Default", + "options.autoJump": "Auto-Jump", + "options.autosaveIndicator": "Autosave Indicator", + "options.autoSuggestCommands": "Command Suggestions", + "options.biomeBlendRadius": "Biome Blend", + "options.biomeBlendRadius.1": "OFF (Fastest)", + "options.biomeBlendRadius.3": "3x3 (Fast)", + "options.biomeBlendRadius.5": "5x5 (Normal)", + "options.biomeBlendRadius.7": "7x7 (High)", + "options.biomeBlendRadius.9": "9x9 (Very High)", + "options.biomeBlendRadius.11": "11x11 (Extreme)", + "options.biomeBlendRadius.13": "13x13 (Showoff)", + "options.biomeBlendRadius.15": "15x15 (Maximum)", + "options.chat": "Chat Settings...", + "options.chat.color": "Colors", + "options.chat.delay": "Chat Delay: %s seconds", + "options.chat.delay_none": "Chat Delay: None", + "options.chat.height.focused": "Focused Height", + "options.chat.height.unfocused": "Unfocused Height", + "options.chat.line_spacing": "Line Spacing", + "options.chat.links": "Web Links", + "options.chat.links.prompt": "Prompt on Links", + "options.chat.opacity": "Chat Text Opacity", + "options.chat.scale": "Chat Text Size", + "options.chat.title": "Chat Settings", + "options.chat.visibility": "Chat", + "options.chat.visibility.full": "Shown", + "options.chat.visibility.hidden": "Hidden", + "options.chat.visibility.system": "Commands Only", + "options.chat.width": "Width", + "options.chunks": "%s chunks", + "options.clouds.fancy": "Fancy", + "options.clouds.fast": "Fast", + "options.controls": "Controls...", + "options.credits_and_attribution": "Credits & Attribution...", + "options.customizeTitle": "Customize World Settings", + "options.damageTiltStrength": "Damage Tilt", + "options.damageTiltStrength.tooltip": "The amount of camera shake caused by being hurt.", + "options.darkMojangStudiosBackgroundColor": "Monochrome Logo", + "options.darkMojangStudiosBackgroundColor.tooltip": "Changes the Mojang Studios loading screen background color to black.", + "options.darknessEffectScale": "Darkness Pulsing", + "options.darknessEffectScale.tooltip": "Controls how much the Darkness effect pulses when a Warden or Sculk Shrieker gives it to you.", + "options.difficulty": "Difficulty", + "options.difficulty.easy": "Easy", + "options.difficulty.easy.info": "Hostile mobs spawn but deal less damage. Hunger bar depletes and drains health down to 5 hearts.", + "options.difficulty.hard": "Hard", + "options.difficulty.hard.info": "Hostile mobs spawn and deal more damage. Hunger bar depletes and drains all health.", + "options.difficulty.hardcore": "Hardcore", + "options.difficulty.normal": "Normal", + "options.difficulty.normal.info": "Hostile mobs spawn and deal standard damage. Hunger bar depletes and drains health down to half a heart.", + "options.difficulty.online": "Server Difficulty", + "options.difficulty.peaceful": "Peaceful", + "options.difficulty.peaceful.info": "No hostile mobs and only some neutral mobs spawn. Hunger bar doesn't deplete and health replenishes over time.", + "options.directionalAudio": "Directional Audio", + "options.directionalAudio.off.tooltip": "Classic Stereo sound", + "options.directionalAudio.on.tooltip": "Uses HRTF-based directional audio to improve the simulation of 3D sound. Requires HRTF compatible audio hardware, and is best experienced with headphones.", + "options.discrete_mouse_scroll": "Discrete Scrolling", + "options.entityDistanceScaling": "Entity Distance", + "options.entityShadows": "Entity Shadows", + "options.forceUnicodeFont": "Force Unicode Font", + "options.fov": "FOV", + "options.fov.max": "Quake Pro", + "options.fov.min": "Normal", + "options.fovEffectScale": "FOV Effects", + "options.fovEffectScale.tooltip": "Controls how much the field of view can change with gameplay effects.", + "options.framerate": "%s fps", + "options.framerateLimit": "Max Framerate", + "options.framerateLimit.max": "Unlimited", + "options.fullscreen": "Fullscreen", + "options.fullscreen.current": "Current", + "options.fullscreen.entry": "%sx%s@%s (%sbit)", + "options.fullscreen.resolution": "Fullscreen Resolution", + "options.fullscreen.unavailable": "Setting unavailable", + "options.gamma": "Brightness", + "options.gamma.default": "Default", + "options.gamma.max": "Bright", + "options.gamma.min": "Moody", + "options.generic_value": "%s: %s", + "options.glintSpeed": "Glint Speed", + "options.glintSpeed.tooltip": "Controls how fast the visual glint shimmers across enchanted items.", + "options.glintStrength": "Glint Strength", + "options.glintStrength.tooltip": "Controls how transparent the visual glint is on enchanted items.", + "options.graphics": "Graphics", + "options.graphics.fabulous": "Fabulous!", + "options.graphics.fabulous.tooltip": "%s graphics uses screen shaders for drawing weather, clouds, and particles behind translucent blocks and water.\nThis may severely impact performance for portable devices and 4K displays.", + "options.graphics.fancy": "Fancy", + "options.graphics.fancy.tooltip": "Fancy graphics balances performance and quality for the majority of machines.\nWeather, clouds, and particles may not appear behind translucent blocks or water.", + "options.graphics.fast": "Fast", + "options.graphics.fast.tooltip": "Fast graphics reduces the amount of visible rain and snow.\nTransparency effects are disabled for various blocks such as leaves.", + "options.graphics.warning.accept": "Continue Without Support", + "options.graphics.warning.cancel": "Take Me Back", + "options.graphics.warning.message": "Your graphics device is detected as unsupported for the %s graphics option.\n\nYou may ignore this and continue, however support will not be provided for your device if you choose to use %s graphics.", + "options.graphics.warning.renderer": "Renderer detected: [%s]", + "options.graphics.warning.title": "Graphics Device Unsupported", + "options.graphics.warning.vendor": "Vendor detected: [%s]", + "options.graphics.warning.version": "OpenGL Version detected: [%s]", + "options.guiScale": "GUI Scale", + "options.guiScale.auto": "Auto", + "options.hidden": "Hidden", + "options.hideLightningFlashes": "Hide Lightning Flashes", + "options.hideLightningFlashes.tooltip": "Prevents Lightning Bolts from making the sky flash. The bolts themselves will still be visible.", + "options.hideMatchedNames": "Hide Matched Names", + "options.hideMatchedNames.tooltip": "3rd-party Servers may send chat messages in non-standard formats.\nWith this option on, hidden players will be matched based on chat sender names.", + "options.hideSplashTexts": "Hide Splash Texts", + "options.hideSplashTexts.tooltip": "Hides the yellow splash text in the main menu.", + "options.invertMouse": "Invert Mouse", + "options.key.hold": "Hold", + "options.key.toggle": "Toggle", + "options.language": "Language...", + "options.language.title": "Language", + "options.languageAccuracyWarning": "(Language translations may not be 100%% accurate)", + "options.languageWarning": "Language translations may not be 100%% accurate", + "options.mainHand": "Main Hand", + "options.mainHand.left": "Left", + "options.mainHand.right": "Right", + "options.mipmapLevels": "Mipmap Levels", + "options.modelPart.cape": "Cape", + "options.modelPart.hat": "Hat", + "options.modelPart.jacket": "Jacket", + "options.modelPart.left_pants_leg": "Left Pants Leg", + "options.modelPart.left_sleeve": "Left Sleeve", + "options.modelPart.right_pants_leg": "Right Pants Leg", + "options.modelPart.right_sleeve": "Right Sleeve", + "options.mouse_settings": "Mouse Settings...", + "options.mouse_settings.title": "Mouse Settings", + "options.mouseWheelSensitivity": "Scroll Sensitivity", + "options.multiplayer.title": "Multiplayer Settings...", + "options.multiplier": "%sx", + "options.narrator": "Narrator", + "options.narrator.all": "Narrates All", + "options.narrator.chat": "Narrates Chat", + "options.narrator.notavailable": "Not Available", + "options.narrator.off": "OFF", + "options.narrator.system": "Narrates System", + "options.notifications.display_time": "Notification Time", + "options.notifications.display_time.tooltip": "Affects the length of time that all notifications stay visible on the screen.", + "options.off": "OFF", + "options.off.composed": "%s: OFF", + "options.on": "ON", + "options.on.composed": "%s: ON", + "options.online": "Online...", + "options.online.title": "Online Options", + "options.onlyShowSecureChat": "Only Show Secure Chat", + "options.onlyShowSecureChat.tooltip": "Only display messages from other players that can be verified to have been sent by that player, and have not been modified.", + "options.operatorItemsTab": "Operator Items Tab", + "options.particles": "Particles", + "options.particles.all": "All", + "options.particles.decreased": "Decreased", + "options.particles.minimal": "Minimal", + "options.percent_add_value": "%s: +%s%%", + "options.percent_value": "%s: %s%%", + "options.pixel_value": "%s: %spx", + "options.prioritizeChunkUpdates": "Chunk Builder", + "options.prioritizeChunkUpdates.byPlayer": "Semi Blocking", + "options.prioritizeChunkUpdates.byPlayer.tooltip": "Some actions within a chunk will recompile the chunk immediately. This includes block placing & destroying.", + "options.prioritizeChunkUpdates.nearby": "Fully Blocking", + "options.prioritizeChunkUpdates.nearby.tooltip": "Nearby chunks are always compiled immediately. This may impact game performance when blocks are placed or destroyed.", + "options.prioritizeChunkUpdates.none": "Threaded", + "options.prioritizeChunkUpdates.none.tooltip": "Nearby chunks are compiled in parallel threads. This may result in brief visual holes when blocks are destroyed.", + "options.rawMouseInput": "Raw Input", + "options.realmsNotifications": "Realms News & Invites", + "options.reducedDebugInfo": "Reduced Debug Info", + "options.renderClouds": "Clouds", + "options.renderDistance": "Render Distance", + "options.resourcepack": "Resource Packs...", + "options.screenEffectScale": "Distortion Effects", + "options.screenEffectScale.tooltip": "Strength of nausea and Nether portal screen distortion effects.\nAt lower values, the nausea effect is replaced with a green overlay.", + "options.sensitivity": "Sensitivity", + "options.sensitivity.max": "HYPERSPEED!!!", + "options.sensitivity.min": "*yawn*", + "options.showSubtitles": "Show Subtitles", + "options.simulationDistance": "Simulation Distance", + "options.skinCustomisation": "Skin Customization...", + "options.skinCustomisation.title": "Skin Customization", + "options.sounds": "Music & Sounds...", + "options.sounds.title": "Music & Sound Options", + "options.telemetry": "Telemetry Data...", + "options.telemetry.button": "Data Collection", + "options.telemetry.button.tooltip": "\"%s\" includes only the required data.\n\"%s\" includes optional, as well as the required data.", + "options.telemetry.state.all": "All", + "options.telemetry.state.minimal": "Minimal", + "options.telemetry.state.none": "None", + "options.title": "Options", + "options.touchscreen": "Touchscreen Mode", + "options.video": "Video Settings...", + "options.videoTitle": "Video Settings", + "options.viewBobbing": "View Bobbing", + "options.visible": "Shown", + "options.vsync": "VSync", + "outOfMemory.message": "Minecraft has run out of memory.\n\nThis could be caused by a bug in the game or by the Java Virtual Machine not being allocated enough memory.\n\nTo prevent world corruption, the current game has quit. We've tried to free up enough memory to let you go back to the main menu and back to playing, but this may not have worked.\n\nPlease restart the game if you see this message again.", + "outOfMemory.title": "Out of memory!", + "pack.available.title": "Available", + "pack.copyFailure": "Failed to copy packs", + "pack.dropConfirm": "Do you want to add the following packs to Minecraft?", + "pack.dropInfo": "Drag and drop files into this window to add packs", + "pack.dropRejected.message": "The following entries were not valid packs and were not copied:\n %s", + "pack.dropRejected.title": "Non-pack entries", + "pack.folderInfo": "(Place pack files here)", + "pack.incompatible": "Incompatible", + "pack.incompatible.confirm.new": "This pack was made for a newer version of Minecraft and may not work correctly.", + "pack.incompatible.confirm.old": "This pack was made for an older version of Minecraft and may no longer work correctly.", + "pack.incompatible.confirm.title": "Are you sure you want to load this pack?", + "pack.incompatible.new": "(Made for a newer version of Minecraft)", + "pack.incompatible.old": "(Made for an older version of Minecraft)", + "pack.nameAndSource": "%s (%s)", + "pack.openFolder": "Open Pack Folder", + "pack.selected.title": "Selected", + "pack.source.builtin": "built-in", + "pack.source.feature": "feature", + "pack.source.local": "local", + "pack.source.server": "server", + "pack.source.world": "world", + "painting.dimensions": "%sx%s", + "painting.minecraft.alban.author": "Kristoffer Zetterstrand", + "painting.minecraft.alban.title": "Albanian", + "painting.minecraft.aztec.author": "Kristoffer Zetterstrand", + "painting.minecraft.aztec.title": "de_aztec", + "painting.minecraft.aztec2.author": "Kristoffer Zetterstrand", + "painting.minecraft.aztec2.title": "de_aztec", + "painting.minecraft.bomb.author": "Kristoffer Zetterstrand", + "painting.minecraft.bomb.title": "Target Successfully Bombed", + "painting.minecraft.burning_skull.author": "Kristoffer Zetterstrand", + "painting.minecraft.burning_skull.title": "Skull On Fire", + "painting.minecraft.bust.author": "Kristoffer Zetterstrand", + "painting.minecraft.bust.title": "Bust", + "painting.minecraft.courbet.author": "Kristoffer Zetterstrand", + "painting.minecraft.courbet.title": "Bonjour Monsieur Courbet", + "painting.minecraft.creebet.author": "Kristoffer Zetterstrand", + "painting.minecraft.creebet.title": "Creebet", + "painting.minecraft.donkey_kong.author": "Kristoffer Zetterstrand", + "painting.minecraft.donkey_kong.title": "Kong", + "painting.minecraft.earth.author": "Mojang", + "painting.minecraft.earth.title": "Earth", + "painting.minecraft.fighters.author": "Kristoffer Zetterstrand", + "painting.minecraft.fighters.title": "Fighters", + "painting.minecraft.fire.author": "Mojang", + "painting.minecraft.fire.title": "Fire", + "painting.minecraft.graham.author": "Kristoffer Zetterstrand", + "painting.minecraft.graham.title": "Graham", + "painting.minecraft.kebab.author": "Kristoffer Zetterstrand", + "painting.minecraft.kebab.title": "Kebab med tre pepperoni", + "painting.minecraft.match.author": "Kristoffer Zetterstrand", + "painting.minecraft.match.title": "Match", + "painting.minecraft.pigscene.author": "Kristoffer Zetterstrand", + "painting.minecraft.pigscene.title": "Pigscene", + "painting.minecraft.plant.author": "Kristoffer Zetterstrand", + "painting.minecraft.plant.title": "Paradisträd", + "painting.minecraft.pointer.author": "Kristoffer Zetterstrand", + "painting.minecraft.pointer.title": "Pointer", + "painting.minecraft.pool.author": "Kristoffer Zetterstrand", + "painting.minecraft.pool.title": "The Pool", + "painting.minecraft.sea.author": "Kristoffer Zetterstrand", + "painting.minecraft.sea.title": "Seaside", + "painting.minecraft.skeleton.author": "Kristoffer Zetterstrand", + "painting.minecraft.skeleton.title": "Mortal Coil", + "painting.minecraft.skull_and_roses.author": "Kristoffer Zetterstrand", + "painting.minecraft.skull_and_roses.title": "Skull and Roses", + "painting.minecraft.stage.author": "Kristoffer Zetterstrand", + "painting.minecraft.stage.title": "The Stage Is Set", + "painting.minecraft.sunset.author": "Kristoffer Zetterstrand", + "painting.minecraft.sunset.title": "sunset_dense", + "painting.minecraft.void.author": "Kristoffer Zetterstrand", + "painting.minecraft.void.title": "The void", + "painting.minecraft.wanderer.author": "Kristoffer Zetterstrand", + "painting.minecraft.wanderer.title": "Wanderer", + "painting.minecraft.wasteland.author": "Kristoffer Zetterstrand", + "painting.minecraft.wasteland.title": "Wasteland", + "painting.minecraft.water.author": "Mojang", + "painting.minecraft.water.title": "Water", + "painting.minecraft.wind.author": "Mojang", + "painting.minecraft.wind.title": "Wind", + "painting.minecraft.wither.author": "Mojang", + "painting.minecraft.wither.title": "Wither", + "painting.random": "Random variant", + "parsing.bool.expected": "Expected boolean", + "parsing.bool.invalid": "Invalid boolean, expected 'true' or 'false' but found '%s'", + "parsing.double.expected": "Expected double", + "parsing.double.invalid": "Invalid double '%s'", + "parsing.expected": "Expected '%s'", + "parsing.float.expected": "Expected float", + "parsing.float.invalid": "Invalid float '%s'", + "parsing.int.expected": "Expected integer", + "parsing.int.invalid": "Invalid integer '%s'", + "parsing.long.expected": "Expected long", + "parsing.long.invalid": "Invalid long '%s'", + "parsing.quote.escape": "Invalid escape sequence '\\%s' in quoted string", + "parsing.quote.expected.end": "Unclosed quoted string", + "parsing.quote.expected.start": "Expected quote to start a string", + "particle.notFound": "Unknown particle: %s", + "permissions.requires.entity": "An entity is required to run this command here", + "permissions.requires.player": "A player is required to run this command here", + "potion.potency.0": "", + "potion.potency.1": "II", + "potion.potency.2": "III", + "potion.potency.3": "IV", + "potion.potency.4": "V", + "potion.potency.5": "VI", + "potion.whenDrank": "When Applied:", + "potion.withAmplifier": "%s %s", + "potion.withDuration": "%s (%s)", + "predicate.unknown": "Unknown predicate: %s", + "quickplay.error.invalid_identifier": "Could not find world with the provided identifier", + "quickplay.error.realm_connect": "Could not connect to Realm", + "quickplay.error.realm_permission": "Lacking permission to connect to this Realm", + "quickplay.error.title": "Failed to Quick Play", + "realms.missing.module.error.text": "Realms could not be opened right now, please try again later", + "realms.missing.snapshot.error.text": "Realms is currently not supported in snapshots", + "recipe.notFound": "Unknown recipe: %s", + "recipe.toast.description": "Check your recipe book", + "recipe.toast.title": "New Recipes Unlocked!", + "record.nowPlaying": "Now Playing: %s", + "recover_world.bug_tracker": "Report a Bug", + "recover_world.button": "Attempt to Recover", + "recover_world.done.failed": "Failed to recover from previous state.", + "recover_world.done.success": "Recovery was successful!", + "recover_world.done.title": "Recovery done", + "recover_world.issue.missing_file": "Missing file", + "recover_world.issue.none": "No issues", + "recover_world.message": "The following issues occurred while trying to read world folder \"%s\".\nIt might be possible to restore the world from an older state or you can report this issue on the bug tracker.", + "recover_world.no_fallback": "No state to recover from available", + "recover_world.restore": "Attempt to Restore", + "recover_world.restoring": "Attempting to restore world...", + "recover_world.state_entry": "State from %s: ", + "recover_world.state_entry.unknown": "unknown", + "recover_world.title": "Failed to load world", + "recover_world.warning": "Failed to load world summary", + "resourcePack.broken_assets": "BROKEN ASSETS DETECTED", + "resourcepack.downloading": "Downloading Resource Pack", + "resourcePack.high_contrast.name": "High Contrast", + "resourcePack.load_fail": "Resource reload failed", + "resourcePack.programmer_art.name": "Programmer Art", + "resourcepack.progress": "Downloading file (%s MB)...", + "resourcepack.requesting": "Making Request...", + "resourcePack.server.name": "World Specific Resources", + "resourcePack.title": "Select Resource Packs", + "resourcePack.vanilla.description": "The default look and feel of Minecraft", + "resourcePack.vanilla.name": "Default", + "screenshot.failure": "Couldn't save screenshot: %s", + "screenshot.success": "Saved screenshot as %s", + "selectServer.add": "Add Server", + "selectServer.defaultName": "Minecraft Server", + "selectServer.delete": "Delete", + "selectServer.deleteButton": "Delete", + "selectServer.deleteQuestion": "Are you sure you want to remove this server?", + "selectServer.deleteWarning": "'%s' will be lost forever! (A long time!)", + "selectServer.direct": "Direct Connection", + "selectServer.edit": "Edit", + "selectServer.hiddenAddress": "(Hidden)", + "selectServer.refresh": "Refresh", + "selectServer.select": "Join Server", + "selectServer.title": "Select Server", + "selectWorld.access_failure": "Failed to access world", + "selectWorld.allowCommands": "Allow Cheats", + "selectWorld.allowCommands.info": "Commands like /gamemode, /experience", + "selectWorld.backupEraseCache": "Erase Cached Data", + "selectWorld.backupJoinConfirmButton": "Create Backup and Load", + "selectWorld.backupJoinSkipButton": "I know what I'm doing!", + "selectWorld.backupQuestion.customized": "Customized worlds are no longer supported", + "selectWorld.backupQuestion.downgrade": "Downgrading a world is not supported", + "selectWorld.backupQuestion.experimental": "Worlds using Experimental Settings are not supported", + "selectWorld.backupQuestion.snapshot": "Do you really want to load this world?", + "selectWorld.backupWarning.customized": "Unfortunately, we do not support customized worlds in this version of Minecraft. We can still load this world and keep everything the way it was, but any newly generated terrain will no longer be customized. We're sorry for the inconvenience!", + "selectWorld.backupWarning.downgrade": "This world was last played in version %s; you are on version %s. Downgrading a world could cause corruption - we cannot guarantee that it will load or work. If you still want to continue, please make a backup.", + "selectWorld.backupWarning.experimental": "This world uses experimental settings that could stop working at any time. We cannot guarantee it will load or work. Here be dragons!", + "selectWorld.backupWarning.snapshot": "This world was last played in version %s; you are on version %s. Please make a backup in case you experience world corruptions.", + "selectWorld.bonusItems": "Bonus Chest", + "selectWorld.cheats": "Cheats", + "selectWorld.conversion": "Must be converted!", + "selectWorld.conversion.tooltip": "This world must be opened in an older version (like 1.6.4) to be safely converted", + "selectWorld.create": "Create New World", + "selectWorld.createDemo": "Play New Demo World", + "selectWorld.customizeType": "Customize", + "selectWorld.data_read": "Reading world data...", + "selectWorld.dataPacks": "Data Packs", + "selectWorld.delete": "Delete", + "selectWorld.delete_failure": "Failed to delete world", + "selectWorld.deleteButton": "Delete", + "selectWorld.deleteQuestion": "Are you sure you want to delete this world?", + "selectWorld.deleteWarning": "'%s' will be lost forever! (A long time!)", + "selectWorld.edit": "Edit", + "selectWorld.edit.backup": "Make Backup", + "selectWorld.edit.backupCreated": "Backed up: %s", + "selectWorld.edit.backupFailed": "Backup failed", + "selectWorld.edit.backupFolder": "Open Backups Folder", + "selectWorld.edit.backupSize": "size: %s MB", + "selectWorld.edit.export_worldgen_settings": "Export World Generation Settings", + "selectWorld.edit.export_worldgen_settings.failure": "Export failed", + "selectWorld.edit.export_worldgen_settings.success": "Exported", + "selectWorld.edit.openFolder": "Open World Folder", + "selectWorld.edit.optimize": "Optimize World", + "selectWorld.edit.resetIcon": "Reset Icon", + "selectWorld.edit.save": "Save", + "selectWorld.edit.title": "Edit World", + "selectWorld.enterName": "World Name", + "selectWorld.enterSeed": "Seed for the world generator", + "selectWorld.experimental": "Experimental", + "selectWorld.experimental.details": "Details", + "selectWorld.experimental.details.entry": "Required experimental features: %s", + "selectWorld.experimental.details.title": "Experimental feature requirements", + "selectWorld.experimental.message": "Be careful!\nThis configuration requires features that are still under development. Your world might crash, break, or not work with future updates.", + "selectWorld.experimental.title": "Experimental Features Warning", + "selectWorld.experiments": "Experiments", + "selectWorld.experiments.info": "Experiments are potential new features. Be careful as things might break. Experiments can't be turned off after world creation.", + "selectWorld.futureworld.error.text": "Something went wrong while trying to load a world from a future version. This was a risky operation to begin with; sorry it didn't work.", + "selectWorld.futureworld.error.title": "An error occurred!", + "selectWorld.gameMode": "Game Mode", + "selectWorld.gameMode.adventure": "Adventure", + "selectWorld.gameMode.adventure.info": "Same as Survival Mode, but blocks can't be added or removed.", + "selectWorld.gameMode.adventure.line1": "Same as Survival Mode, but blocks can't", + "selectWorld.gameMode.adventure.line2": "be added or removed", + "selectWorld.gameMode.creative": "Creative", + "selectWorld.gameMode.creative.info": "Create, build, and explore without limits. You can fly, have endless materials, and can't be hurt by monsters.", + "selectWorld.gameMode.creative.line1": "Unlimited resources, free flying and", + "selectWorld.gameMode.creative.line2": "destroy blocks instantly", + "selectWorld.gameMode.hardcore": "Hardcore", + "selectWorld.gameMode.hardcore.info": "Survival Mode locked to 'Hard' difficulty. You can't respawn if you die.", + "selectWorld.gameMode.hardcore.line1": "Same as Survival Mode, locked at hardest", + "selectWorld.gameMode.hardcore.line2": "difficulty, and one life only", + "selectWorld.gameMode.spectator": "Spectator", + "selectWorld.gameMode.spectator.info": "You can look but don't touch.", + "selectWorld.gameMode.spectator.line1": "You can look but don't touch", + "selectWorld.gameMode.spectator.line2": "", + "selectWorld.gameMode.survival": "Survival", + "selectWorld.gameMode.survival.info": "Explore a mysterious world where you build, collect, craft, and fight monsters.", + "selectWorld.gameMode.survival.line1": "Search for resources, craft, gain", + "selectWorld.gameMode.survival.line2": "levels, health and hunger", + "selectWorld.gameRules": "Game Rules", + "selectWorld.import_worldgen_settings": "Import Settings", + "selectWorld.import_worldgen_settings.failure": "Error importing settings", + "selectWorld.import_worldgen_settings.select_file": "Select settings file (.json)", + "selectWorld.incompatible_series": "Created by an incompatible version", + "selectWorld.incompatible.description": "This world cannot be opened in this version.\nIt was last played in version %s.", + "selectWorld.incompatible.info": "Incompatible version: %s", + "selectWorld.incompatible.title": "Incompatible version", + "selectWorld.incompatible.tooltip": "This world cannot be opened because it was created by an incompatible version.", + "selectWorld.load_folder_access": "Unable to read or access folder where game worlds are saved!", + "selectWorld.loading_list": "Loading World List", + "selectWorld.locked": "Locked by another running instance of Minecraft", + "selectWorld.mapFeatures": "Generate Structures", + "selectWorld.mapFeatures.info": "Villages, Shipwrecks, etc.", + "selectWorld.mapType": "World Type", + "selectWorld.mapType.normal": "Normal", + "selectWorld.moreWorldOptions": "More World Options...", + "selectWorld.newWorld": "New World", + "selectWorld.recreate": "Re-Create", + "selectWorld.recreate.customized.text": "Customized worlds are no longer supported in this version of Minecraft. We can try to recreate it with the same seed and properties, but any terrain customizations will be lost. We're sorry for the inconvenience!", + "selectWorld.recreate.customized.title": "Customized worlds are no longer supported", + "selectWorld.recreate.error.text": "Something went wrong while trying to recreate a world.", + "selectWorld.recreate.error.title": "An error occurred!", + "selectWorld.resource_load": "Preparing Resources...", + "selectWorld.resultFolder": "Will be saved in:", + "selectWorld.search": "search for worlds", + "selectWorld.seedInfo": "Leave blank for a random seed", + "selectWorld.select": "Play Selected World", + "selectWorld.targetFolder": "Save folder: %s", + "selectWorld.title": "Select World", + "selectWorld.tooltip.fromNewerVersion1": "World was saved in a newer version,", + "selectWorld.tooltip.fromNewerVersion2": "loading this world could cause problems!", + "selectWorld.tooltip.snapshot1": "Don't forget to back up this world", + "selectWorld.tooltip.snapshot2": "before you load it in this snapshot.", + "selectWorld.unable_to_load": "Unable to load worlds", + "selectWorld.version": "Version:", + "selectWorld.versionJoinButton": "Load Anyway", + "selectWorld.versionQuestion": "Do you really want to load this world?", + "selectWorld.versionUnknown": "unknown", + "selectWorld.versionWarning": "This world was last played in version %s and loading it in this version could cause corruption!", + "selectWorld.warning.deprecated.question": "Some features used are deprecated and will stop working in the future. Do you wish to proceed?", + "selectWorld.warning.deprecated.title": "Warning! These settings are using deprecated features", + "selectWorld.warning.experimental.question": "These settings are experimental and could one day stop working. Do you wish to proceed?", + "selectWorld.warning.experimental.title": "Warning! These settings are using experimental features", + "selectWorld.world": "World", + "sign.edit": "Edit Sign Message", + "sleep.not_possible": "No amount of rest can pass this night", + "sleep.players_sleeping": "%s/%s players sleeping", + "sleep.skipping_night": "Sleeping through this night", + "slot.unknown": "Unknown slot '%s'", + "soundCategory.ambient": "Ambient/Environment", + "soundCategory.block": "Blocks", + "soundCategory.hostile": "Hostile Creatures", + "soundCategory.master": "Master Volume", + "soundCategory.music": "Music", + "soundCategory.neutral": "Friendly Creatures", + "soundCategory.player": "Players", + "soundCategory.record": "Jukebox/Note Blocks", + "soundCategory.voice": "Voice/Speech", + "soundCategory.weather": "Weather", + "spectatorMenu.close": "Close Menu", + "spectatorMenu.next_page": "Next Page", + "spectatorMenu.previous_page": "Previous Page", + "spectatorMenu.root.prompt": "Press a key to select a command, and again to use it.", + "spectatorMenu.team_teleport": "Teleport to Team Member", + "spectatorMenu.team_teleport.prompt": "Select a team to teleport to", + "spectatorMenu.teleport": "Teleport to Player", + "spectatorMenu.teleport.prompt": "Select a player to teleport to", + "stat_type.minecraft.broken": "Times Broken", + "stat_type.minecraft.crafted": "Times Crafted", + "stat_type.minecraft.dropped": "Dropped", + "stat_type.minecraft.killed": "You killed %s %s", + "stat_type.minecraft.killed_by": "%s killed you %s time(s)", + "stat_type.minecraft.killed_by.none": "You have never been killed by %s", + "stat_type.minecraft.killed.none": "You have never killed %s", + "stat_type.minecraft.mined": "Times Mined", + "stat_type.minecraft.picked_up": "Picked Up", + "stat_type.minecraft.used": "Times Used", + "stat.generalButton": "General", + "stat.itemsButton": "Items", + "stat.minecraft.animals_bred": "Animals Bred", + "stat.minecraft.aviate_one_cm": "Distance by Elytra", + "stat.minecraft.bell_ring": "Bells Rung", + "stat.minecraft.boat_one_cm": "Distance by Boat", + "stat.minecraft.clean_armor": "Armor Pieces Cleaned", + "stat.minecraft.clean_banner": "Banners Cleaned", + "stat.minecraft.clean_shulker_box": "Shulker Boxes Cleaned", + "stat.minecraft.climb_one_cm": "Distance Climbed", + "stat.minecraft.crouch_one_cm": "Distance Crouched", + "stat.minecraft.damage_absorbed": "Damage Absorbed", + "stat.minecraft.damage_blocked_by_shield": "Damage Blocked by Shield", + "stat.minecraft.damage_dealt": "Damage Dealt", + "stat.minecraft.damage_dealt_absorbed": "Damage Dealt (Absorbed)", + "stat.minecraft.damage_dealt_resisted": "Damage Dealt (Resisted)", + "stat.minecraft.damage_resisted": "Damage Resisted", + "stat.minecraft.damage_taken": "Damage Taken", + "stat.minecraft.deaths": "Number of Deaths", + "stat.minecraft.drop": "Items Dropped", + "stat.minecraft.eat_cake_slice": "Cake Slices Eaten", + "stat.minecraft.enchant_item": "Items Enchanted", + "stat.minecraft.fall_one_cm": "Distance Fallen", + "stat.minecraft.fill_cauldron": "Cauldrons Filled", + "stat.minecraft.fish_caught": "Fish Caught", + "stat.minecraft.fly_one_cm": "Distance Flown", + "stat.minecraft.horse_one_cm": "Distance by Horse", + "stat.minecraft.inspect_dispenser": "Dispensers Searched", + "stat.minecraft.inspect_dropper": "Droppers Searched", + "stat.minecraft.inspect_hopper": "Hoppers Searched", + "stat.minecraft.interact_with_anvil": "Interactions with Anvil", + "stat.minecraft.interact_with_beacon": "Interactions with Beacon", + "stat.minecraft.interact_with_blast_furnace": "Interactions with Blast Furnace", + "stat.minecraft.interact_with_brewingstand": "Interactions with Brewing Stand", + "stat.minecraft.interact_with_campfire": "Interactions with Campfire", + "stat.minecraft.interact_with_cartography_table": "Interactions with Cartography Table", + "stat.minecraft.interact_with_crafting_table": "Interactions with Crafting Table", + "stat.minecraft.interact_with_furnace": "Interactions with Furnace", + "stat.minecraft.interact_with_grindstone": "Interactions with Grindstone", + "stat.minecraft.interact_with_lectern": "Interactions with Lectern", + "stat.minecraft.interact_with_loom": "Interactions with Loom", + "stat.minecraft.interact_with_smithing_table": "Interactions with Smithing Table", + "stat.minecraft.interact_with_smoker": "Interactions with Smoker", + "stat.minecraft.interact_with_stonecutter": "Interactions with Stonecutter", + "stat.minecraft.jump": "Jumps", + "stat.minecraft.junk_fished": "Junk Fished", + "stat.minecraft.leave_game": "Games Quit", + "stat.minecraft.minecart_one_cm": "Distance by Minecart", + "stat.minecraft.mob_kills": "Mob Kills", + "stat.minecraft.open_barrel": "Barrels Opened", + "stat.minecraft.open_chest": "Chests Opened", + "stat.minecraft.open_enderchest": "Ender Chests Opened", + "stat.minecraft.open_shulker_box": "Shulker Boxes Opened", + "stat.minecraft.pig_one_cm": "Distance by Pig", + "stat.minecraft.play_noteblock": "Note Blocks Played", + "stat.minecraft.play_record": "Music Discs Played", + "stat.minecraft.play_time": "Time Played", + "stat.minecraft.player_kills": "Player Kills", + "stat.minecraft.pot_flower": "Plants Potted", + "stat.minecraft.raid_trigger": "Raids Triggered", + "stat.minecraft.raid_win": "Raids Won", + "stat.minecraft.ring_bell": "Bells Rung", + "stat.minecraft.sleep_in_bed": "Times Slept in a Bed", + "stat.minecraft.sneak_time": "Sneak Time", + "stat.minecraft.sprint_one_cm": "Distance Sprinted", + "stat.minecraft.strider_one_cm": "Distance by Strider", + "stat.minecraft.swim_one_cm": "Distance Swum", + "stat.minecraft.talked_to_villager": "Talked to Villagers", + "stat.minecraft.target_hit": "Targets Hit", + "stat.minecraft.time_since_death": "Time Since Last Death", + "stat.minecraft.time_since_rest": "Time Since Last Rest", + "stat.minecraft.total_world_time": "Time with World Open", + "stat.minecraft.traded_with_villager": "Traded with Villagers", + "stat.minecraft.treasure_fished": "Treasure Fished", + "stat.minecraft.trigger_trapped_chest": "Trapped Chests Triggered", + "stat.minecraft.tune_noteblock": "Note Blocks Tuned", + "stat.minecraft.use_cauldron": "Water Taken from Cauldron", + "stat.minecraft.walk_on_water_one_cm": "Distance Walked on Water", + "stat.minecraft.walk_one_cm": "Distance Walked", + "stat.minecraft.walk_under_water_one_cm": "Distance Walked under Water", + "stat.mobsButton": "Mobs", + "stats.none": "-", + "stats.tooltip.type.statistic": "Statistic", + "structure_block.button.detect_size": "DETECT", + "structure_block.button.load": "LOAD", + "structure_block.button.save": "SAVE", + "structure_block.custom_data": "Custom Data Tag Name", + "structure_block.detect_size": "Detect Structure Size and Position:", + "structure_block.hover.corner": "Corner: %s", + "structure_block.hover.data": "Data: %s", + "structure_block.hover.load": "Load: %s", + "structure_block.hover.save": "Save: %s", + "structure_block.include_entities": "Include Entities:", + "structure_block.integrity": "Structure Integrity and Seed", + "structure_block.integrity.integrity": "Structure Integrity", + "structure_block.integrity.seed": "Structure Seed", + "structure_block.invalid_structure_name": "Invalid structure name '%s'", + "structure_block.load_not_found": "Structure '%s' is not available", + "structure_block.load_prepare": "Structure '%s' position prepared", + "structure_block.load_success": "Structure loaded from '%s'", + "structure_block.mode_info.corner": "Corner Mode - Placement and Size Marker", + "structure_block.mode_info.data": "Data Mode - Game Logic Marker", + "structure_block.mode_info.load": "Load Mode - Load from File", + "structure_block.mode_info.save": "Save Mode - Write to File", + "structure_block.mode.corner": "Corner", + "structure_block.mode.data": "Data", + "structure_block.mode.load": "Load", + "structure_block.mode.save": "Save", + "structure_block.position": "Relative Position", + "structure_block.position.x": "relative Position x", + "structure_block.position.y": "relative position y", + "structure_block.position.z": "relative position z", + "structure_block.save_failure": "Unable to save structure '%s'", + "structure_block.save_success": "Structure saved as '%s'", + "structure_block.show_air": "Show Invisible Blocks:", + "structure_block.show_boundingbox": "Show Bounding Box:", + "structure_block.size": "Structure Size", + "structure_block.size_failure": "Unable to detect structure size. Add corners with matching structure names", + "structure_block.size_success": "Size successfully detected for '%s'", + "structure_block.size.x": "structure size x", + "structure_block.size.y": "structure size y", + "structure_block.size.z": "structure size z", + "structure_block.structure_name": "Structure Name", + "subtitles.ambient.cave": "Eerie noise", + "subtitles.block.amethyst_block.chime": "Amethyst chimes", + "subtitles.block.amethyst_block.resonate": "Amethyst resonates", + "subtitles.block.anvil.destroy": "Anvil destroyed", + "subtitles.block.anvil.land": "Anvil landed", + "subtitles.block.anvil.use": "Anvil used", + "subtitles.block.barrel.close": "Barrel closes", + "subtitles.block.barrel.open": "Barrel opens", + "subtitles.block.beacon.activate": "Beacon activates", + "subtitles.block.beacon.ambient": "Beacon hums", + "subtitles.block.beacon.deactivate": "Beacon deactivates", + "subtitles.block.beacon.power_select": "Beacon power selected", + "subtitles.block.beehive.drip": "Honey drips", + "subtitles.block.beehive.enter": "Bee enters hive", + "subtitles.block.beehive.exit": "Bee leaves hive", + "subtitles.block.beehive.shear": "Shears scrape", + "subtitles.block.beehive.work": "Bees work", + "subtitles.block.bell.resonate": "Bell resonates", + "subtitles.block.bell.use": "Bell rings", + "subtitles.block.big_dripleaf.tilt_down": "Dripleaf tilts down", + "subtitles.block.big_dripleaf.tilt_up": "Dripleaf tilts up", + "subtitles.block.blastfurnace.fire_crackle": "Blast Furnace crackles", + "subtitles.block.brewing_stand.brew": "Brewing Stand bubbles", + "subtitles.block.bubble_column.bubble_pop": "Bubbles pop", + "subtitles.block.bubble_column.upwards_ambient": "Bubbles flow", + "subtitles.block.bubble_column.upwards_inside": "Bubbles woosh", + "subtitles.block.bubble_column.whirlpool_ambient": "Bubbles whirl", + "subtitles.block.bubble_column.whirlpool_inside": "Bubbles zoom", + "subtitles.block.button.click": "Button clicks", + "subtitles.block.cake.add_candle": "Cake squishes", + "subtitles.block.campfire.crackle": "Campfire crackles", + "subtitles.block.candle.crackle": "Candle crackles", + "subtitles.block.chest.close": "Chest closes", + "subtitles.block.chest.locked": "Chest locked", + "subtitles.block.chest.open": "Chest opens", + "subtitles.block.chorus_flower.death": "Chorus Flower withers", + "subtitles.block.chorus_flower.grow": "Chorus Flower grows", + "subtitles.block.comparator.click": "Comparator clicks", + "subtitles.block.composter.empty": "Composter emptied", + "subtitles.block.composter.fill": "Composter filled", + "subtitles.block.composter.ready": "Composter composts", + "subtitles.block.conduit.activate": "Conduit activates", + "subtitles.block.conduit.ambient": "Conduit pulses", + "subtitles.block.conduit.attack.target": "Conduit attacks", + "subtitles.block.conduit.deactivate": "Conduit deactivates", + "subtitles.block.copper_bulb.turn_off": "Copper Bulb turns off", + "subtitles.block.copper_bulb.turn_on": "Copper Bulb turns on", + "subtitles.block.copper_trapdoor.close": "Trapdoor closes", + "subtitles.block.copper_trapdoor.open": "Trapdoor opens", + "subtitles.block.crafter.craft": "Crafter crafts", + "subtitles.block.crafter.fail": "Crafter fails crafting", + "subtitles.block.decorated_pot.insert": "Decorated Pot fills", + "subtitles.block.decorated_pot.insert_fail": "Decorated Pot wobbles", + "subtitles.block.decorated_pot.shatter": "Decorated Pot shatters", + "subtitles.block.dispenser.dispense": "Dispensed item", + "subtitles.block.dispenser.fail": "Dispenser failed", + "subtitles.block.door.toggle": "Door creaks", + "subtitles.block.enchantment_table.use": "Enchanting Table used", + "subtitles.block.end_portal_frame.fill": "Eye of Ender attaches", + "subtitles.block.end_portal.spawn": "End Portal opens", + "subtitles.block.fence_gate.toggle": "Fence Gate creaks", + "subtitles.block.fire.ambient": "Fire crackles", + "subtitles.block.fire.extinguish": "Fire extinguished", + "subtitles.block.frogspawn.hatch": "Tadpole hatches", + "subtitles.block.furnace.fire_crackle": "Furnace crackles", + "subtitles.block.generic.break": "Block broken", + "subtitles.block.generic.footsteps": "Footsteps", + "subtitles.block.generic.hit": "Block breaking", + "subtitles.block.generic.place": "Block placed", + "subtitles.block.grindstone.use": "Grindstone used", + "subtitles.block.growing_plant.crop": "Plant cropped", + "subtitles.block.hanging_sign.waxed_interact_fail": "Sign wobbles", + "subtitles.block.honey_block.slide": "Sliding down a honey block", + "subtitles.block.iron_trapdoor.close": "Trapdoor closes", + "subtitles.block.iron_trapdoor.open": "Trapdoor opens", + "subtitles.block.lava.ambient": "Lava pops", + "subtitles.block.lava.extinguish": "Lava hisses", + "subtitles.block.lever.click": "Lever clicks", + "subtitles.block.note_block.note": "Note Block plays", + "subtitles.block.piston.move": "Piston moves", + "subtitles.block.pointed_dripstone.drip_lava": "Lava drips", + "subtitles.block.pointed_dripstone.drip_lava_into_cauldron": "Lava drips into Cauldron", + "subtitles.block.pointed_dripstone.drip_water": "Water drips", + "subtitles.block.pointed_dripstone.drip_water_into_cauldron": "Water drips into Cauldron", + "subtitles.block.pointed_dripstone.land": "Stalactite crashes down", + "subtitles.block.portal.ambient": "Portal whooshes", + "subtitles.block.portal.travel": "Portal noise fades", + "subtitles.block.portal.trigger": "Portal noise intensifies", + "subtitles.block.pressure_plate.click": "Pressure Plate clicks", + "subtitles.block.pumpkin.carve": "Shears carve", + "subtitles.block.redstone_torch.burnout": "Torch fizzes", + "subtitles.block.respawn_anchor.ambient": "Portal whooshes", + "subtitles.block.respawn_anchor.charge": "Respawn Anchor is charged", + "subtitles.block.respawn_anchor.deplete": "Respawn Anchor depletes", + "subtitles.block.respawn_anchor.set_spawn": "Respawn Anchor sets spawn", + "subtitles.block.sculk_catalyst.bloom": "Sculk Catalyst blooms", + "subtitles.block.sculk_sensor.clicking": "Sculk Sensor starts clicking", + "subtitles.block.sculk_sensor.clicking_stop": "Sculk Sensor stops clicking", + "subtitles.block.sculk_shrieker.shriek": "Sculk Shrieker shrieks", + "subtitles.block.sculk.charge": "Sculk bubbles", + "subtitles.block.sculk.spread": "Sculk spreads", + "subtitles.block.shulker_box.close": "Shulker closes", + "subtitles.block.shulker_box.open": "Shulker opens", + "subtitles.block.sign.waxed_interact_fail": "Sign wobbles", + "subtitles.block.smithing_table.use": "Smithing Table used", + "subtitles.block.smoker.smoke": "Smoker smokes", + "subtitles.block.sniffer_egg.crack": "Sniffer Egg cracks", + "subtitles.block.sniffer_egg.hatch": "Sniffer Egg hatches", + "subtitles.block.sniffer_egg.plop": "Sniffer plops", + "subtitles.block.sponge.absorb": "Sponge sucks", + "subtitles.block.sweet_berry_bush.pick_berries": "Berries pop", + "subtitles.block.trapdoor.toggle": "Trapdoor creaks", + "subtitles.block.trial_spawner.ambient": "Trial Spawner crackles", + "subtitles.block.trial_spawner.close_shutter": "Trial Spawner closes", + "subtitles.block.trial_spawner.detect_player": "Trial Spawner charges up", + "subtitles.block.trial_spawner.eject_item": "Trial Spawner ejects items", + "subtitles.block.trial_spawner.open_shutter": "Trial Spawner opens", + "subtitles.block.trial_spawner.spawn_mob": "Mob spawns", + "subtitles.block.tripwire.attach": "Tripwire attaches", + "subtitles.block.tripwire.click": "Tripwire clicks", + "subtitles.block.tripwire.detach": "Tripwire detaches", + "subtitles.block.water.ambient": "Water flows", + "subtitles.chiseled_bookshelf.insert": "Book placed", + "subtitles.chiseled_bookshelf.insert_enchanted": "Enchanted Book placed", + "subtitles.chiseled_bookshelf.take": "Book taken", + "subtitles.chiseled_bookshelf.take_enchanted": "Enchanted Book taken", + "subtitles.enchant.thorns.hit": "Thorns prick", + "subtitles.entity.allay.ambient_with_item": "Allay seeks", + "subtitles.entity.allay.ambient_without_item": "Allay yearns", + "subtitles.entity.allay.death": "Allay dies", + "subtitles.entity.allay.hurt": "Allay hurts", + "subtitles.entity.allay.item_given": "Allay chortles", + "subtitles.entity.allay.item_taken": "Allay allays", + "subtitles.entity.allay.item_thrown": "Allay tosses", + "subtitles.entity.armor_stand.fall": "Something fell", + "subtitles.entity.arrow.hit": "Arrow hits", + "subtitles.entity.arrow.hit_player": "Player hit", + "subtitles.entity.arrow.shoot": "Arrow fired", + "subtitles.entity.axolotl.attack": "Axolotl attacks", + "subtitles.entity.axolotl.death": "Axolotl dies", + "subtitles.entity.axolotl.hurt": "Axolotl hurts", + "subtitles.entity.axolotl.idle_air": "Axolotl chirps", + "subtitles.entity.axolotl.idle_water": "Axolotl chirps", + "subtitles.entity.axolotl.splash": "Axolotl splashes", + "subtitles.entity.axolotl.swim": "Axolotl swims", + "subtitles.entity.bat.ambient": "Bat screeches", + "subtitles.entity.bat.death": "Bat dies", + "subtitles.entity.bat.hurt": "Bat hurts", + "subtitles.entity.bat.takeoff": "Bat takes off", + "subtitles.entity.bee.ambient": "Bee buzzes", + "subtitles.entity.bee.death": "Bee dies", + "subtitles.entity.bee.hurt": "Bee hurts", + "subtitles.entity.bee.loop": "Bee buzzes", + "subtitles.entity.bee.loop_aggressive": "Bee buzzes angrily", + "subtitles.entity.bee.pollinate": "Bee buzzes happily", + "subtitles.entity.bee.sting": "Bee stings", + "subtitles.entity.blaze.ambient": "Blaze breathes", + "subtitles.entity.blaze.burn": "Blaze crackles", + "subtitles.entity.blaze.death": "Blaze dies", + "subtitles.entity.blaze.hurt": "Blaze hurts", + "subtitles.entity.blaze.shoot": "Blaze shoots", + "subtitles.entity.boat.paddle_land": "Rowing", + "subtitles.entity.boat.paddle_water": "Rowing", + "subtitles.entity.breeze.death": "Breeze dies", + "subtitles.entity.breeze.hurt": "Breeze hurts", + "subtitles.entity.breeze.idle_air": "Breeze flies", + "subtitles.entity.breeze.idle_ground": "Breeze whirs", + "subtitles.entity.breeze.inhale": "Breeze inhales", + "subtitles.entity.breeze.jump": "Breeze jumps", + "subtitles.entity.breeze.land": "Breeze lands", + "subtitles.entity.breeze.shoot": "Breeze shoots", + "subtitles.entity.breeze.slide": "Breeze slides", + "subtitles.entity.camel.ambient": "Camel grunts", + "subtitles.entity.camel.dash": "Camel yeets", + "subtitles.entity.camel.dash_ready": "Camel recovers", + "subtitles.entity.camel.death": "Camel dies", + "subtitles.entity.camel.eat": "Camel eats", + "subtitles.entity.camel.hurt": "Camel hurts", + "subtitles.entity.camel.saddle": "Saddle equips", + "subtitles.entity.camel.sit": "Camel sits down", + "subtitles.entity.camel.stand": "Camel stands up", + "subtitles.entity.camel.step": "Camel steps", + "subtitles.entity.camel.step_sand": "Camel sands", + "subtitles.entity.cat.ambient": "Cat meows", + "subtitles.entity.cat.beg_for_food": "Cat begs", + "subtitles.entity.cat.death": "Cat dies", + "subtitles.entity.cat.eat": "Cat eats", + "subtitles.entity.cat.hiss": "Cat hisses", + "subtitles.entity.cat.hurt": "Cat hurts", + "subtitles.entity.cat.purr": "Cat purrs", + "subtitles.entity.chicken.ambient": "Chicken clucks", + "subtitles.entity.chicken.death": "Chicken dies", + "subtitles.entity.chicken.egg": "Chicken plops", + "subtitles.entity.chicken.hurt": "Chicken hurts", + "subtitles.entity.cod.death": "Cod dies", + "subtitles.entity.cod.flop": "Cod flops", + "subtitles.entity.cod.hurt": "Cod hurts", + "subtitles.entity.cow.ambient": "Cow moos", + "subtitles.entity.cow.death": "Cow dies", + "subtitles.entity.cow.hurt": "Cow hurts", + "subtitles.entity.cow.milk": "Cow gets milked", + "subtitles.entity.creeper.death": "Creeper dies", + "subtitles.entity.creeper.hurt": "Creeper hurts", + "subtitles.entity.creeper.primed": "Creeper hisses", + "subtitles.entity.dolphin.ambient": "Dolphin chirps", + "subtitles.entity.dolphin.ambient_water": "Dolphin whistles", + "subtitles.entity.dolphin.attack": "Dolphin attacks", + "subtitles.entity.dolphin.death": "Dolphin dies", + "subtitles.entity.dolphin.eat": "Dolphin eats", + "subtitles.entity.dolphin.hurt": "Dolphin hurts", + "subtitles.entity.dolphin.jump": "Dolphin jumps", + "subtitles.entity.dolphin.play": "Dolphin plays", + "subtitles.entity.dolphin.splash": "Dolphin splashes", + "subtitles.entity.dolphin.swim": "Dolphin swims", + "subtitles.entity.donkey.ambient": "Donkey hee-haws", + "subtitles.entity.donkey.angry": "Donkey neighs", + "subtitles.entity.donkey.chest": "Donkey Chest equips", + "subtitles.entity.donkey.death": "Donkey dies", + "subtitles.entity.donkey.eat": "Donkey eats", + "subtitles.entity.donkey.hurt": "Donkey hurts", + "subtitles.entity.drowned.ambient": "Drowned gurgles", + "subtitles.entity.drowned.ambient_water": "Drowned gurgles", + "subtitles.entity.drowned.death": "Drowned dies", + "subtitles.entity.drowned.hurt": "Drowned hurts", + "subtitles.entity.drowned.shoot": "Drowned throws Trident", + "subtitles.entity.drowned.step": "Drowned steps", + "subtitles.entity.drowned.swim": "Drowned swims", + "subtitles.entity.egg.throw": "Egg flies", + "subtitles.entity.elder_guardian.ambient": "Elder Guardian moans", + "subtitles.entity.elder_guardian.ambient_land": "Elder Guardian flaps", + "subtitles.entity.elder_guardian.curse": "Elder Guardian curses", + "subtitles.entity.elder_guardian.death": "Elder Guardian dies", + "subtitles.entity.elder_guardian.flop": "Elder Guardian flops", + "subtitles.entity.elder_guardian.hurt": "Elder Guardian hurts", + "subtitles.entity.ender_dragon.ambient": "Dragon roars", + "subtitles.entity.ender_dragon.death": "Dragon dies", + "subtitles.entity.ender_dragon.flap": "Dragon flaps", + "subtitles.entity.ender_dragon.growl": "Dragon growls", + "subtitles.entity.ender_dragon.hurt": "Dragon hurts", + "subtitles.entity.ender_dragon.shoot": "Dragon shoots", + "subtitles.entity.ender_eye.death": "Eye of Ender falls", + "subtitles.entity.ender_eye.launch": "Eye of Ender shoots", + "subtitles.entity.ender_pearl.throw": "Ender Pearl flies", + "subtitles.entity.enderman.ambient": "Enderman vwoops", + "subtitles.entity.enderman.death": "Enderman dies", + "subtitles.entity.enderman.hurt": "Enderman hurts", + "subtitles.entity.enderman.scream": "Enderman screams", + "subtitles.entity.enderman.stare": "Enderman cries out", + "subtitles.entity.enderman.teleport": "Enderman teleports", + "subtitles.entity.endermite.ambient": "Endermite scuttles", + "subtitles.entity.endermite.death": "Endermite dies", + "subtitles.entity.endermite.hurt": "Endermite hurts", + "subtitles.entity.evoker_fangs.attack": "Fangs snap", + "subtitles.entity.evoker.ambient": "Evoker murmurs", + "subtitles.entity.evoker.cast_spell": "Evoker casts spell", + "subtitles.entity.evoker.celebrate": "Evoker cheers", + "subtitles.entity.evoker.death": "Evoker dies", + "subtitles.entity.evoker.hurt": "Evoker hurts", + "subtitles.entity.evoker.prepare_attack": "Evoker prepares attack", + "subtitles.entity.evoker.prepare_summon": "Evoker prepares summoning", + "subtitles.entity.evoker.prepare_wololo": "Evoker prepares charming", + "subtitles.entity.experience_orb.pickup": "Experience gained", + "subtitles.entity.firework_rocket.blast": "Firework blasts", + "subtitles.entity.firework_rocket.launch": "Firework launches", + "subtitles.entity.firework_rocket.twinkle": "Firework twinkles", + "subtitles.entity.fishing_bobber.retrieve": "Bobber retrieved", + "subtitles.entity.fishing_bobber.splash": "Fishing Bobber splashes", + "subtitles.entity.fishing_bobber.throw": "Bobber thrown", + "subtitles.entity.fox.aggro": "Fox angers", + "subtitles.entity.fox.ambient": "Fox squeaks", + "subtitles.entity.fox.bite": "Fox bites", + "subtitles.entity.fox.death": "Fox dies", + "subtitles.entity.fox.eat": "Fox eats", + "subtitles.entity.fox.hurt": "Fox hurts", + "subtitles.entity.fox.screech": "Fox screeches", + "subtitles.entity.fox.sleep": "Fox snores", + "subtitles.entity.fox.sniff": "Fox sniffs", + "subtitles.entity.fox.spit": "Fox spits", + "subtitles.entity.fox.teleport": "Fox teleports", + "subtitles.entity.frog.ambient": "Frog croaks", + "subtitles.entity.frog.death": "Frog dies", + "subtitles.entity.frog.eat": "Frog eats", + "subtitles.entity.frog.hurt": "Frog hurts", + "subtitles.entity.frog.lay_spawn": "Frog lays spawn", + "subtitles.entity.frog.long_jump": "Frog jumps", + "subtitles.entity.generic.big_fall": "Something fell", + "subtitles.entity.generic.burn": "Burning", + "subtitles.entity.generic.death": "Dying", + "subtitles.entity.generic.drink": "Sipping", + "subtitles.entity.generic.eat": "Eating", + "subtitles.entity.generic.explode": "Explosion", + "subtitles.entity.generic.extinguish_fire": "Fire extinguishes", + "subtitles.entity.generic.hurt": "Something hurts", + "subtitles.entity.generic.small_fall": "Something trips", + "subtitles.entity.generic.splash": "Splashing", + "subtitles.entity.generic.swim": "Swimming", + "subtitles.entity.generic.wind_burst": "Wind Charge bursts", + "subtitles.entity.ghast.ambient": "Ghast cries", + "subtitles.entity.ghast.death": "Ghast dies", + "subtitles.entity.ghast.hurt": "Ghast hurts", + "subtitles.entity.ghast.shoot": "Ghast shoots", + "subtitles.entity.glow_item_frame.add_item": "Glow Item Frame fills", + "subtitles.entity.glow_item_frame.break": "Glow Item Frame breaks", + "subtitles.entity.glow_item_frame.place": "Glow Item Frame placed", + "subtitles.entity.glow_item_frame.remove_item": "Glow Item Frame empties", + "subtitles.entity.glow_item_frame.rotate_item": "Glow Item Frame clicks", + "subtitles.entity.glow_squid.ambient": "Glow Squid swims", + "subtitles.entity.glow_squid.death": "Glow Squid dies", + "subtitles.entity.glow_squid.hurt": "Glow Squid hurts", + "subtitles.entity.glow_squid.squirt": "Glow Squid shoots ink", + "subtitles.entity.goat.ambient": "Goat bleats", + "subtitles.entity.goat.death": "Goat dies", + "subtitles.entity.goat.eat": "Goat eats", + "subtitles.entity.goat.horn_break": "Goat Horn breaks off", + "subtitles.entity.goat.hurt": "Goat hurts", + "subtitles.entity.goat.long_jump": "Goat leaps", + "subtitles.entity.goat.milk": "Goat gets milked", + "subtitles.entity.goat.prepare_ram": "Goat stomps", + "subtitles.entity.goat.ram_impact": "Goat rams", + "subtitles.entity.goat.screaming.ambient": "Goat bellows", + "subtitles.entity.goat.step": "Goat steps", + "subtitles.entity.guardian.ambient": "Guardian moans", + "subtitles.entity.guardian.ambient_land": "Guardian flaps", + "subtitles.entity.guardian.attack": "Guardian shoots", + "subtitles.entity.guardian.death": "Guardian dies", + "subtitles.entity.guardian.flop": "Guardian flops", + "subtitles.entity.guardian.hurt": "Guardian hurts", + "subtitles.entity.hoglin.ambient": "Hoglin growls", + "subtitles.entity.hoglin.angry": "Hoglin growls angrily", + "subtitles.entity.hoglin.attack": "Hoglin attacks", + "subtitles.entity.hoglin.converted_to_zombified": "Hoglin converts to Zoglin", + "subtitles.entity.hoglin.death": "Hoglin dies", + "subtitles.entity.hoglin.hurt": "Hoglin hurts", + "subtitles.entity.hoglin.retreat": "Hoglin retreats", + "subtitles.entity.hoglin.step": "Hoglin steps", + "subtitles.entity.horse.ambient": "Horse neighs", + "subtitles.entity.horse.angry": "Horse neighs", + "subtitles.entity.horse.armor": "Horse armor equips", + "subtitles.entity.horse.breathe": "Horse breathes", + "subtitles.entity.horse.death": "Horse dies", + "subtitles.entity.horse.eat": "Horse eats", + "subtitles.entity.horse.gallop": "Horse gallops", + "subtitles.entity.horse.hurt": "Horse hurts", + "subtitles.entity.horse.jump": "Horse jumps", + "subtitles.entity.horse.saddle": "Saddle equips", + "subtitles.entity.husk.ambient": "Husk groans", + "subtitles.entity.husk.converted_to_zombie": "Husk converts to Zombie", + "subtitles.entity.husk.death": "Husk dies", + "subtitles.entity.husk.hurt": "Husk hurts", + "subtitles.entity.illusioner.ambient": "Illusioner murmurs", + "subtitles.entity.illusioner.cast_spell": "Illusioner casts spell", + "subtitles.entity.illusioner.death": "Illusioner dies", + "subtitles.entity.illusioner.hurt": "Illusioner hurts", + "subtitles.entity.illusioner.mirror_move": "Illusioner displaces", + "subtitles.entity.illusioner.prepare_blindness": "Illusioner prepares blindness", + "subtitles.entity.illusioner.prepare_mirror": "Illusioner prepares mirror image", + "subtitles.entity.iron_golem.attack": "Iron Golem attacks", + "subtitles.entity.iron_golem.damage": "Iron Golem breaks", + "subtitles.entity.iron_golem.death": "Iron Golem dies", + "subtitles.entity.iron_golem.hurt": "Iron Golem hurts", + "subtitles.entity.iron_golem.repair": "Iron Golem repaired", + "subtitles.entity.item_frame.add_item": "Item Frame fills", + "subtitles.entity.item_frame.break": "Item Frame breaks", + "subtitles.entity.item_frame.place": "Item Frame placed", + "subtitles.entity.item_frame.remove_item": "Item Frame empties", + "subtitles.entity.item_frame.rotate_item": "Item Frame clicks", + "subtitles.entity.item.break": "Item breaks", + "subtitles.entity.item.pickup": "Item plops", + "subtitles.entity.leash_knot.break": "Leash Knot breaks", + "subtitles.entity.leash_knot.place": "Leash Knot tied", + "subtitles.entity.lightning_bolt.impact": "Lightning strikes", + "subtitles.entity.lightning_bolt.thunder": "Thunder roars", + "subtitles.entity.llama.ambient": "Llama bleats", + "subtitles.entity.llama.angry": "Llama bleats angrily", + "subtitles.entity.llama.chest": "Llama Chest equips", + "subtitles.entity.llama.death": "Llama dies", + "subtitles.entity.llama.eat": "Llama eats", + "subtitles.entity.llama.hurt": "Llama hurts", + "subtitles.entity.llama.spit": "Llama spits", + "subtitles.entity.llama.step": "Llama steps", + "subtitles.entity.llama.swag": "Llama is decorated", + "subtitles.entity.magma_cube.death": "Magma Cube dies", + "subtitles.entity.magma_cube.hurt": "Magma Cube hurts", + "subtitles.entity.magma_cube.squish": "Magma Cube squishes", + "subtitles.entity.minecart.riding": "Minecart rolls", + "subtitles.entity.mooshroom.convert": "Mooshroom transforms", + "subtitles.entity.mooshroom.eat": "Mooshroom eats", + "subtitles.entity.mooshroom.milk": "Mooshroom gets milked", + "subtitles.entity.mooshroom.suspicious_milk": "Mooshroom gets milked suspiciously", + "subtitles.entity.mule.ambient": "Mule hee-haws", + "subtitles.entity.mule.angry": "Mule neighs", + "subtitles.entity.mule.chest": "Mule Chest equips", + "subtitles.entity.mule.death": "Mule dies", + "subtitles.entity.mule.eat": "Mule eats", + "subtitles.entity.mule.hurt": "Mule hurts", + "subtitles.entity.painting.break": "Painting breaks", + "subtitles.entity.painting.place": "Painting placed", + "subtitles.entity.panda.aggressive_ambient": "Panda huffs", + "subtitles.entity.panda.ambient": "Panda pants", + "subtitles.entity.panda.bite": "Panda bites", + "subtitles.entity.panda.cant_breed": "Panda bleats", + "subtitles.entity.panda.death": "Panda dies", + "subtitles.entity.panda.eat": "Panda eats", + "subtitles.entity.panda.hurt": "Panda hurts", + "subtitles.entity.panda.pre_sneeze": "Panda's nose tickles", + "subtitles.entity.panda.sneeze": "Panda sneezes", + "subtitles.entity.panda.step": "Panda steps", + "subtitles.entity.panda.worried_ambient": "Panda whimpers", + "subtitles.entity.parrot.ambient": "Parrot talks", + "subtitles.entity.parrot.death": "Parrot dies", + "subtitles.entity.parrot.eats": "Parrot eats", + "subtitles.entity.parrot.fly": "Parrot flutters", + "subtitles.entity.parrot.hurts": "Parrot hurts", + "subtitles.entity.parrot.imitate.blaze": "Parrot breathes", + "subtitles.entity.parrot.imitate.breeze": "Parrot whirs", + "subtitles.entity.parrot.imitate.creeper": "Parrot hisses", + "subtitles.entity.parrot.imitate.drowned": "Parrot gurgles", + "subtitles.entity.parrot.imitate.elder_guardian": "Parrot moans", + "subtitles.entity.parrot.imitate.ender_dragon": "Parrot roars", + "subtitles.entity.parrot.imitate.endermite": "Parrot scuttles", + "subtitles.entity.parrot.imitate.evoker": "Parrot murmurs", + "subtitles.entity.parrot.imitate.ghast": "Parrot cries", + "subtitles.entity.parrot.imitate.guardian": "Parrot moans", + "subtitles.entity.parrot.imitate.hoglin": "Parrot growls", + "subtitles.entity.parrot.imitate.husk": "Parrot groans", + "subtitles.entity.parrot.imitate.illusioner": "Parrot murmurs", + "subtitles.entity.parrot.imitate.magma_cube": "Parrot squishes", + "subtitles.entity.parrot.imitate.phantom": "Parrot screeches", + "subtitles.entity.parrot.imitate.piglin": "Parrot snorts", + "subtitles.entity.parrot.imitate.piglin_brute": "Parrot snorts", + "subtitles.entity.parrot.imitate.pillager": "Parrot murmurs", + "subtitles.entity.parrot.imitate.ravager": "Parrot grunts", + "subtitles.entity.parrot.imitate.shulker": "Parrot lurks", + "subtitles.entity.parrot.imitate.silverfish": "Parrot hisses", + "subtitles.entity.parrot.imitate.skeleton": "Parrot rattles", + "subtitles.entity.parrot.imitate.slime": "Parrot squishes", + "subtitles.entity.parrot.imitate.spider": "Parrot hisses", + "subtitles.entity.parrot.imitate.stray": "Parrot rattles", + "subtitles.entity.parrot.imitate.vex": "Parrot vexes", + "subtitles.entity.parrot.imitate.vindicator": "Parrot mutters", + "subtitles.entity.parrot.imitate.warden": "Parrot whines", + "subtitles.entity.parrot.imitate.witch": "Parrot giggles", + "subtitles.entity.parrot.imitate.wither": "Parrot angers", + "subtitles.entity.parrot.imitate.wither_skeleton": "Parrot rattles", + "subtitles.entity.parrot.imitate.zoglin": "Parrot growls", + "subtitles.entity.parrot.imitate.zombie": "Parrot groans", + "subtitles.entity.parrot.imitate.zombie_villager": "Parrot groans", + "subtitles.entity.phantom.ambient": "Phantom screeches", + "subtitles.entity.phantom.bite": "Phantom bites", + "subtitles.entity.phantom.death": "Phantom dies", + "subtitles.entity.phantom.flap": "Phantom flaps", + "subtitles.entity.phantom.hurt": "Phantom hurts", + "subtitles.entity.phantom.swoop": "Phantom swoops", + "subtitles.entity.pig.ambient": "Pig oinks", + "subtitles.entity.pig.death": "Pig dies", + "subtitles.entity.pig.hurt": "Pig hurts", + "subtitles.entity.pig.saddle": "Saddle equips", + "subtitles.entity.piglin_brute.ambient": "Piglin Brute snorts", + "subtitles.entity.piglin_brute.angry": "Piglin Brute snorts angrily", + "subtitles.entity.piglin_brute.converted_to_zombified": "Piglin Brute converts to Zombified Piglin", + "subtitles.entity.piglin_brute.death": "Piglin Brute dies", + "subtitles.entity.piglin_brute.hurt": "Piglin Brute hurts", + "subtitles.entity.piglin_brute.step": "Piglin Brute steps", + "subtitles.entity.piglin.admiring_item": "Piglin admires item", + "subtitles.entity.piglin.ambient": "Piglin snorts", + "subtitles.entity.piglin.angry": "Piglin snorts angrily", + "subtitles.entity.piglin.celebrate": "Piglin celebrates", + "subtitles.entity.piglin.converted_to_zombified": "Piglin converts to Zombified Piglin", + "subtitles.entity.piglin.death": "Piglin dies", + "subtitles.entity.piglin.hurt": "Piglin hurts", + "subtitles.entity.piglin.jealous": "Piglin snorts enviously", + "subtitles.entity.piglin.retreat": "Piglin retreats", + "subtitles.entity.piglin.step": "Piglin steps", + "subtitles.entity.pillager.ambient": "Pillager murmurs", + "subtitles.entity.pillager.celebrate": "Pillager cheers", + "subtitles.entity.pillager.death": "Pillager dies", + "subtitles.entity.pillager.hurt": "Pillager hurts", + "subtitles.entity.player.attack.crit": "Critical attack", + "subtitles.entity.player.attack.knockback": "Knockback attack", + "subtitles.entity.player.attack.strong": "Strong attack", + "subtitles.entity.player.attack.sweep": "Sweeping attack", + "subtitles.entity.player.attack.weak": "Weak attack", + "subtitles.entity.player.burp": "Burp", + "subtitles.entity.player.death": "Player dies", + "subtitles.entity.player.freeze_hurt": "Player freezes", + "subtitles.entity.player.hurt": "Player hurts", + "subtitles.entity.player.hurt_drown": "Player drowning", + "subtitles.entity.player.hurt_on_fire": "Player burns", + "subtitles.entity.player.levelup": "Player dings", + "subtitles.entity.player.teleport": "Player teleports", + "subtitles.entity.polar_bear.ambient": "Polar Bear groans", + "subtitles.entity.polar_bear.ambient_baby": "Polar Bear hums", + "subtitles.entity.polar_bear.death": "Polar Bear dies", + "subtitles.entity.polar_bear.hurt": "Polar Bear hurts", + "subtitles.entity.polar_bear.warning": "Polar Bear roars", + "subtitles.entity.potion.splash": "Bottle smashes", + "subtitles.entity.potion.throw": "Bottle thrown", + "subtitles.entity.puffer_fish.blow_out": "Pufferfish deflates", + "subtitles.entity.puffer_fish.blow_up": "Pufferfish inflates", + "subtitles.entity.puffer_fish.death": "Pufferfish dies", + "subtitles.entity.puffer_fish.flop": "Pufferfish flops", + "subtitles.entity.puffer_fish.hurt": "Pufferfish hurts", + "subtitles.entity.puffer_fish.sting": "Pufferfish stings", + "subtitles.entity.rabbit.ambient": "Rabbit squeaks", + "subtitles.entity.rabbit.attack": "Rabbit attacks", + "subtitles.entity.rabbit.death": "Rabbit dies", + "subtitles.entity.rabbit.hurt": "Rabbit hurts", + "subtitles.entity.rabbit.jump": "Rabbit hops", + "subtitles.entity.ravager.ambient": "Ravager grunts", + "subtitles.entity.ravager.attack": "Ravager bites", + "subtitles.entity.ravager.celebrate": "Ravager cheers", + "subtitles.entity.ravager.death": "Ravager dies", + "subtitles.entity.ravager.hurt": "Ravager hurts", + "subtitles.entity.ravager.roar": "Ravager roars", + "subtitles.entity.ravager.step": "Ravager steps", + "subtitles.entity.ravager.stunned": "Ravager stunned", + "subtitles.entity.salmon.death": "Salmon dies", + "subtitles.entity.salmon.flop": "Salmon flops", + "subtitles.entity.salmon.hurt": "Salmon hurts", + "subtitles.entity.sheep.ambient": "Sheep baahs", + "subtitles.entity.sheep.death": "Sheep dies", + "subtitles.entity.sheep.hurt": "Sheep hurts", + "subtitles.entity.shulker_bullet.hit": "Shulker Bullet explodes", + "subtitles.entity.shulker_bullet.hurt": "Shulker Bullet breaks", + "subtitles.entity.shulker.ambient": "Shulker lurks", + "subtitles.entity.shulker.close": "Shulker closes", + "subtitles.entity.shulker.death": "Shulker dies", + "subtitles.entity.shulker.hurt": "Shulker hurts", + "subtitles.entity.shulker.open": "Shulker opens", + "subtitles.entity.shulker.shoot": "Shulker shoots", + "subtitles.entity.shulker.teleport": "Shulker teleports", + "subtitles.entity.silverfish.ambient": "Silverfish hisses", + "subtitles.entity.silverfish.death": "Silverfish dies", + "subtitles.entity.silverfish.hurt": "Silverfish hurts", + "subtitles.entity.skeleton_horse.ambient": "Skeleton Horse cries", + "subtitles.entity.skeleton_horse.death": "Skeleton Horse dies", + "subtitles.entity.skeleton_horse.hurt": "Skeleton Horse hurts", + "subtitles.entity.skeleton_horse.swim": "Skeleton Horse swims", + "subtitles.entity.skeleton.ambient": "Skeleton rattles", + "subtitles.entity.skeleton.converted_to_stray": "Skeleton converts to Stray", + "subtitles.entity.skeleton.death": "Skeleton dies", + "subtitles.entity.skeleton.hurt": "Skeleton hurts", + "subtitles.entity.skeleton.shoot": "Skeleton shoots", + "subtitles.entity.slime.attack": "Slime attacks", + "subtitles.entity.slime.death": "Slime dies", + "subtitles.entity.slime.hurt": "Slime hurts", + "subtitles.entity.slime.squish": "Slime squishes", + "subtitles.entity.sniffer.death": "Sniffer dies", + "subtitles.entity.sniffer.digging": "Sniffer digs", + "subtitles.entity.sniffer.digging_stop": "Sniffer stands up", + "subtitles.entity.sniffer.drop_seed": "Sniffer drops seed", + "subtitles.entity.sniffer.eat": "Sniffer eats", + "subtitles.entity.sniffer.egg_crack": "Sniffer Egg cracks", + "subtitles.entity.sniffer.egg_hatch": "Sniffer Egg hatches", + "subtitles.entity.sniffer.happy": "Sniffer delights", + "subtitles.entity.sniffer.hurt": "Sniffer hurts", + "subtitles.entity.sniffer.idle": "Sniffer grunts", + "subtitles.entity.sniffer.scenting": "Sniffer scents", + "subtitles.entity.sniffer.searching": "Sniffer searches", + "subtitles.entity.sniffer.sniffing": "Sniffer sniffs", + "subtitles.entity.sniffer.step": "Sniffer steps", + "subtitles.entity.snow_golem.death": "Snow Golem dies", + "subtitles.entity.snow_golem.hurt": "Snow Golem hurts", + "subtitles.entity.snowball.throw": "Snowball flies", + "subtitles.entity.spider.ambient": "Spider hisses", + "subtitles.entity.spider.death": "Spider dies", + "subtitles.entity.spider.hurt": "Spider hurts", + "subtitles.entity.squid.ambient": "Squid swims", + "subtitles.entity.squid.death": "Squid dies", + "subtitles.entity.squid.hurt": "Squid hurts", + "subtitles.entity.squid.squirt": "Squid shoots ink", + "subtitles.entity.stray.ambient": "Stray rattles", + "subtitles.entity.stray.death": "Stray dies", + "subtitles.entity.stray.hurt": "Stray hurts", + "subtitles.entity.strider.death": "Strider dies", + "subtitles.entity.strider.eat": "Strider eats", + "subtitles.entity.strider.happy": "Strider warbles", + "subtitles.entity.strider.hurt": "Strider hurts", + "subtitles.entity.strider.idle": "Strider chirps", + "subtitles.entity.strider.retreat": "Strider retreats", + "subtitles.entity.tadpole.death": "Tadpole dies", + "subtitles.entity.tadpole.flop": "Tadpole flops", + "subtitles.entity.tadpole.grow_up": "Tadpole grows up", + "subtitles.entity.tadpole.hurt": "Tadpole hurts", + "subtitles.entity.tnt.primed": "TNT fizzes", + "subtitles.entity.tropical_fish.death": "Tropical Fish dies", + "subtitles.entity.tropical_fish.flop": "Tropical Fish flops", + "subtitles.entity.tropical_fish.hurt": "Tropical Fish hurts", + "subtitles.entity.turtle.ambient_land": "Turtle chirps", + "subtitles.entity.turtle.death": "Turtle dies", + "subtitles.entity.turtle.death_baby": "Turtle baby dies", + "subtitles.entity.turtle.egg_break": "Turtle Egg breaks", + "subtitles.entity.turtle.egg_crack": "Turtle Egg cracks", + "subtitles.entity.turtle.egg_hatch": "Turtle Egg hatches", + "subtitles.entity.turtle.hurt": "Turtle hurts", + "subtitles.entity.turtle.hurt_baby": "Turtle baby hurts", + "subtitles.entity.turtle.lay_egg": "Turtle lays egg", + "subtitles.entity.turtle.shamble": "Turtle shambles", + "subtitles.entity.turtle.shamble_baby": "Turtle baby shambles", + "subtitles.entity.turtle.swim": "Turtle swims", + "subtitles.entity.vex.ambient": "Vex vexes", + "subtitles.entity.vex.charge": "Vex shrieks", + "subtitles.entity.vex.death": "Vex dies", + "subtitles.entity.vex.hurt": "Vex hurts", + "subtitles.entity.villager.ambient": "Villager mumbles", + "subtitles.entity.villager.celebrate": "Villager cheers", + "subtitles.entity.villager.death": "Villager dies", + "subtitles.entity.villager.hurt": "Villager hurts", + "subtitles.entity.villager.no": "Villager disagrees", + "subtitles.entity.villager.trade": "Villager trades", + "subtitles.entity.villager.work_armorer": "Armorer works", + "subtitles.entity.villager.work_butcher": "Butcher works", + "subtitles.entity.villager.work_cartographer": "Cartographer works", + "subtitles.entity.villager.work_cleric": "Cleric works", + "subtitles.entity.villager.work_farmer": "Farmer works", + "subtitles.entity.villager.work_fisherman": "Fisherman works", + "subtitles.entity.villager.work_fletcher": "Fletcher works", + "subtitles.entity.villager.work_leatherworker": "Leatherworker works", + "subtitles.entity.villager.work_librarian": "Librarian works", + "subtitles.entity.villager.work_mason": "Mason works", + "subtitles.entity.villager.work_shepherd": "Shepherd works", + "subtitles.entity.villager.work_toolsmith": "Toolsmith works", + "subtitles.entity.villager.work_weaponsmith": "Weaponsmith works", + "subtitles.entity.villager.yes": "Villager agrees", + "subtitles.entity.vindicator.ambient": "Vindicator mutters", + "subtitles.entity.vindicator.celebrate": "Vindicator cheers", + "subtitles.entity.vindicator.death": "Vindicator dies", + "subtitles.entity.vindicator.hurt": "Vindicator hurts", + "subtitles.entity.wandering_trader.ambient": "Wandering Trader mumbles", + "subtitles.entity.wandering_trader.death": "Wandering Trader dies", + "subtitles.entity.wandering_trader.disappeared": "Wandering Trader disappears", + "subtitles.entity.wandering_trader.drink_milk": "Wandering Trader drinks milk", + "subtitles.entity.wandering_trader.drink_potion": "Wandering Trader drinks potion", + "subtitles.entity.wandering_trader.hurt": "Wandering Trader hurts", + "subtitles.entity.wandering_trader.no": "Wandering Trader disagrees", + "subtitles.entity.wandering_trader.reappeared": "Wandering Trader appears", + "subtitles.entity.wandering_trader.trade": "Wandering Trader trades", + "subtitles.entity.wandering_trader.yes": "Wandering Trader agrees", + "subtitles.entity.warden.agitated": "Warden groans angrily", + "subtitles.entity.warden.ambient": "Warden whines", + "subtitles.entity.warden.angry": "Warden rages", + "subtitles.entity.warden.attack_impact": "Warden lands hit", + "subtitles.entity.warden.death": "Warden dies", + "subtitles.entity.warden.dig": "Warden digs", + "subtitles.entity.warden.emerge": "Warden emerges", + "subtitles.entity.warden.heartbeat": "Warden's heart beats", + "subtitles.entity.warden.hurt": "Warden hurts", + "subtitles.entity.warden.listening": "Warden takes notice", + "subtitles.entity.warden.listening_angry": "Warden takes notice angrily", + "subtitles.entity.warden.nearby_close": "Warden approaches", + "subtitles.entity.warden.nearby_closer": "Warden advances", + "subtitles.entity.warden.nearby_closest": "Warden draws close", + "subtitles.entity.warden.roar": "Warden roars", + "subtitles.entity.warden.sniff": "Warden sniffs", + "subtitles.entity.warden.sonic_boom": "Warden booms", + "subtitles.entity.warden.sonic_charge": "Warden charges", + "subtitles.entity.warden.step": "Warden steps", + "subtitles.entity.warden.tendril_clicks": "Warden's tendrils click", + "subtitles.entity.witch.ambient": "Witch giggles", + "subtitles.entity.witch.celebrate": "Witch cheers", + "subtitles.entity.witch.death": "Witch dies", + "subtitles.entity.witch.drink": "Witch drinks", + "subtitles.entity.witch.hurt": "Witch hurts", + "subtitles.entity.witch.throw": "Witch throws", + "subtitles.entity.wither_skeleton.ambient": "Wither Skeleton rattles", + "subtitles.entity.wither_skeleton.death": "Wither Skeleton dies", + "subtitles.entity.wither_skeleton.hurt": "Wither Skeleton hurts", + "subtitles.entity.wither.ambient": "Wither angers", + "subtitles.entity.wither.death": "Wither dies", + "subtitles.entity.wither.hurt": "Wither hurts", + "subtitles.entity.wither.shoot": "Wither attacks", + "subtitles.entity.wither.spawn": "Wither released", + "subtitles.entity.wolf.ambient": "Wolf pants", + "subtitles.entity.wolf.death": "Wolf dies", + "subtitles.entity.wolf.growl": "Wolf growls", + "subtitles.entity.wolf.hurt": "Wolf hurts", + "subtitles.entity.wolf.shake": "Wolf shakes", + "subtitles.entity.zoglin.ambient": "Zoglin growls", + "subtitles.entity.zoglin.angry": "Zoglin growls angrily", + "subtitles.entity.zoglin.attack": "Zoglin attacks", + "subtitles.entity.zoglin.death": "Zoglin dies", + "subtitles.entity.zoglin.hurt": "Zoglin hurts", + "subtitles.entity.zoglin.step": "Zoglin steps", + "subtitles.entity.zombie_horse.ambient": "Zombie Horse cries", + "subtitles.entity.zombie_horse.death": "Zombie Horse dies", + "subtitles.entity.zombie_horse.hurt": "Zombie Horse hurts", + "subtitles.entity.zombie_villager.ambient": "Zombie Villager groans", + "subtitles.entity.zombie_villager.converted": "Zombie Villager vociferates", + "subtitles.entity.zombie_villager.cure": "Zombie Villager snuffles", + "subtitles.entity.zombie_villager.death": "Zombie Villager dies", + "subtitles.entity.zombie_villager.hurt": "Zombie Villager hurts", + "subtitles.entity.zombie.ambient": "Zombie groans", + "subtitles.entity.zombie.attack_wooden_door": "Door shakes", + "subtitles.entity.zombie.break_wooden_door": "Door breaks", + "subtitles.entity.zombie.converted_to_drowned": "Zombie converts to Drowned", + "subtitles.entity.zombie.death": "Zombie dies", + "subtitles.entity.zombie.destroy_egg": "Turtle Egg stomped", + "subtitles.entity.zombie.hurt": "Zombie hurts", + "subtitles.entity.zombie.infect": "Zombie infects", + "subtitles.entity.zombified_piglin.ambient": "Zombified Piglin grunts", + "subtitles.entity.zombified_piglin.angry": "Zombified Piglin grunts angrily", + "subtitles.entity.zombified_piglin.death": "Zombified Piglin dies", + "subtitles.entity.zombified_piglin.hurt": "Zombified Piglin hurts", + "subtitles.event.raid.horn": "Ominous horn blares", + "subtitles.item.armor.equip": "Gear equips", + "subtitles.item.armor.equip_chain": "Chain armor jingles", + "subtitles.item.armor.equip_diamond": "Diamond armor clangs", + "subtitles.item.armor.equip_elytra": "Elytra rustle", + "subtitles.item.armor.equip_gold": "Gold armor clinks", + "subtitles.item.armor.equip_iron": "Iron armor clanks", + "subtitles.item.armor.equip_leather": "Leather armor rustles", + "subtitles.item.armor.equip_netherite": "Netherite armor clanks", + "subtitles.item.armor.equip_turtle": "Turtle Shell thunks", + "subtitles.item.axe.scrape": "Axe scrapes", + "subtitles.item.axe.strip": "Axe strips", + "subtitles.item.axe.wax_off": "Wax off", + "subtitles.item.bone_meal.use": "Bone Meal crinkles", + "subtitles.item.book.page_turn": "Page rustles", + "subtitles.item.book.put": "Book thumps", + "subtitles.item.bottle.empty": "Bottle empties", + "subtitles.item.bottle.fill": "Bottle fills", + "subtitles.item.brush.brushing.generic": "Brushing", + "subtitles.item.brush.brushing.gravel": "Brushing Gravel", + "subtitles.item.brush.brushing.gravel.complete": "Brushing Gravel completed", + "subtitles.item.brush.brushing.sand": "Brushing Sand", + "subtitles.item.brush.brushing.sand.complete": "Brushing Sand completed", + "subtitles.item.bucket.empty": "Bucket empties", + "subtitles.item.bucket.fill": "Bucket fills", + "subtitles.item.bucket.fill_axolotl": "Axolotl scooped", + "subtitles.item.bucket.fill_fish": "Fish captured", + "subtitles.item.bucket.fill_tadpole": "Tadpole captured", + "subtitles.item.bundle.drop_contents": "Bundle empties", + "subtitles.item.bundle.insert": "Item packed", + "subtitles.item.bundle.remove_one": "Item unpacked", + "subtitles.item.chorus_fruit.teleport": "Player teleports", + "subtitles.item.crop.plant": "Crop planted", + "subtitles.item.crossbow.charge": "Crossbow charges up", + "subtitles.item.crossbow.hit": "Arrow hits", + "subtitles.item.crossbow.load": "Crossbow loads", + "subtitles.item.crossbow.shoot": "Crossbow fires", + "subtitles.item.dye.use": "Dye stains", + "subtitles.item.firecharge.use": "Fireball whooshes", + "subtitles.item.flintandsteel.use": "Flint and Steel click", + "subtitles.item.glow_ink_sac.use": "Glow Ink Sac splotches", + "subtitles.item.goat_horn.play": "Goat Horn plays", + "subtitles.item.hoe.till": "Hoe tills", + "subtitles.item.honey_bottle.drink": "Gulping", + "subtitles.item.honeycomb.wax_on": "Wax on", + "subtitles.item.ink_sac.use": "Ink Sac splotches", + "subtitles.item.lodestone_compass.lock": "Lodestone Compass locks onto Lodestone", + "subtitles.item.nether_wart.plant": "Crop planted", + "subtitles.item.shears.shear": "Shears click", + "subtitles.item.shield.block": "Shield blocks", + "subtitles.item.shovel.flatten": "Shovel flattens", + "subtitles.item.spyglass.stop_using": "Spyglass retracts", + "subtitles.item.spyglass.use": "Spyglass expands", + "subtitles.item.totem.use": "Totem activates", + "subtitles.item.trident.hit": "Trident stabs", + "subtitles.item.trident.hit_ground": "Trident vibrates", + "subtitles.item.trident.return": "Trident returns", + "subtitles.item.trident.riptide": "Trident zooms", + "subtitles.item.trident.throw": "Trident clangs", + "subtitles.item.trident.thunder": "Trident thunder cracks", + "subtitles.particle.soul_escape": "Soul escapes", + "subtitles.ui.cartography_table.take_result": "Map drawn", + "subtitles.ui.loom.take_result": "Loom used", + "subtitles.ui.stonecutter.take_result": "Stonecutter used", + "subtitles.weather.rain": "Rain falls", + "symlink_warning.message": "Loading worlds from folders with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.message.pack": "Loading packs with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.message.world": "Loading worlds from folders with symbolic links can be unsafe if you don't know exactly what you are doing. Please visit %s to learn more.", + "symlink_warning.more_info": "More Information", + "symlink_warning.title": "World folder contains symbolic links", + "symlink_warning.title.pack": "Added pack(s) contain(s) symbolic links", + "symlink_warning.title.world": "The world folder contains symbolic links", + "team.collision.always": "Always", + "team.collision.never": "Never", + "team.collision.pushOtherTeams": "Push other teams", + "team.collision.pushOwnTeam": "Push own team", + "team.notFound": "Unknown team '%s'", + "team.visibility.always": "Always", + "team.visibility.hideForOtherTeams": "Hide for other teams", + "team.visibility.hideForOwnTeam": "Hide for own team", + "team.visibility.never": "Never", + "telemetry_info.button.give_feedback": "Give Feedback", + "telemetry_info.button.privacy_statement": "Privacy Statement", + "telemetry_info.button.show_data": "View My Data", + "telemetry_info.opt_in.description": "I consent to sending optional telemetry data", + "telemetry_info.property_title": "Included Data", + "telemetry_info.screen.description": "Collecting this data helps us improve Minecraft by guiding us in directions that are relevant to our players.\nYou can also send in additional feedback to help us keep improving Minecraft.", + "telemetry_info.screen.title": "Telemetry Data Collection", + "telemetry.event.advancement_made.description": "Understanding the context behind receiving an advancement can help us better understand and improve the progression of the game.", + "telemetry.event.advancement_made.title": "Advancement Made", + "telemetry.event.game_load_times.description": "This event can help us figure out where startup performance improvements are needed by measuring the execution times of the startup phases.", + "telemetry.event.game_load_times.title": "Game Load Times", + "telemetry.event.optional": "%s (Optional)", + "telemetry.event.optional.disabled": "%s (Optional) - Disabled", + "telemetry.event.performance_metrics.description": "Knowing the overall performance profile of Minecraft helps us tune and optimize the game for a wide range of machine specifications and operating systems. \nGame version is included to help us compare the performance profile for new versions of Minecraft.", + "telemetry.event.performance_metrics.title": "Performance Metrics", + "telemetry.event.required": "%s (Required)", + "telemetry.event.world_load_times.description": "It’s important for us to understand how long it takes to join a world, and how that changes over time. For example, when we add new features or do larger technical changes, we need to see what impact that had on load times.", + "telemetry.event.world_load_times.title": "World Load Times", + "telemetry.event.world_loaded.description": "Knowing how players play Minecraft (such as Game Mode, client or server modded, and game version) allows us to focus game updates to improve the areas that players care about most.\nThe World Loaded event is paired with the World Unloaded event to calculate how long the play session has lasted.", + "telemetry.event.world_loaded.title": "World Loaded", + "telemetry.event.world_unloaded.description": "This event is paired with the World Loaded event to calculate how long the world session has lasted.\nThe duration (in seconds and ticks) is measured when a world session has ended (quitting to title, disconnecting from a server).", + "telemetry.event.world_unloaded.title": "World Unloaded", + "telemetry.property.advancement_game_time.title": "Game Time (Ticks)", + "telemetry.property.advancement_id.title": "Advancement ID", + "telemetry.property.client_id.title": "Client ID", + "telemetry.property.client_modded.title": "Client Modded", + "telemetry.property.dedicated_memory_kb.title": "Dedicated Memory (kB)", + "telemetry.property.event_timestamp_utc.title": "Event Timestamp (UTC)", + "telemetry.property.frame_rate_samples.title": "Frame Rate Samples (FPS)", + "telemetry.property.game_mode.title": "Game Mode", + "telemetry.property.game_version.title": "Game Version", + "telemetry.property.launcher_name.title": "Launcher Name", + "telemetry.property.load_time_bootstrap_ms.title": "Bootstrap Time (Milliseconds)", + "telemetry.property.load_time_loading_overlay_ms.title": "Time in Loading Screen (Milliseconds)", + "telemetry.property.load_time_pre_window_ms.title": "Time Before Window Opens (Milliseconds)", + "telemetry.property.load_time_total_time_ms.title": "Total Load Time (Milliseconds)", + "telemetry.property.minecraft_session_id.title": "Minecraft Session ID", + "telemetry.property.new_world.title": "New World", + "telemetry.property.number_of_samples.title": "Sample Count", + "telemetry.property.operating_system.title": "Operating System", + "telemetry.property.opt_in.title": "Opt-In", + "telemetry.property.platform.title": "Platform", + "telemetry.property.realms_map_content.title": "Realms Map Content (Minigame Name)", + "telemetry.property.render_distance.title": "Render Distance", + "telemetry.property.render_time_samples.title": "Render Time Samples", + "telemetry.property.seconds_since_load.title": "Time Since Load (Seconds)", + "telemetry.property.server_modded.title": "Server Modded", + "telemetry.property.server_type.title": "Server Type", + "telemetry.property.ticks_since_load.title": "Time Since Load (Ticks)", + "telemetry.property.used_memory_samples.title": "Used Random Access Memory", + "telemetry.property.user_id.title": "User ID", + "telemetry.property.world_load_time_ms.title": "World Load Time (Milliseconds)", + "telemetry.property.world_session_id.title": "World Session ID", + "title.32bit.deprecation": "32-bit system detected: this may prevent you from playing in the future as a 64-bit system will be required!", + "title.32bit.deprecation.realms": "Minecraft will soon require a 64-bit system, which will prevent you from playing or using Realms on this device. You will need to manually cancel any Realms subscription.", + "title.32bit.deprecation.realms.check": "Do not show this screen again", + "title.32bit.deprecation.realms.header": "32-bit system detected", + "title.credits": "Copyright Mojang AB. Do not distribute!", + "title.multiplayer.disabled": "Multiplayer is disabled. Please check your Microsoft account settings.", + "title.multiplayer.disabled.banned.name": "You must change your name before you can play online", + "title.multiplayer.disabled.banned.permanent": "Your account is permanently suspended from online play", + "title.multiplayer.disabled.banned.temporary": "Your account is temporarily suspended from online play", + "title.multiplayer.lan": "Multiplayer (LAN)", + "title.multiplayer.other": "Multiplayer (3rd-party Server)", + "title.multiplayer.realms": "Multiplayer (Realms)", + "title.singleplayer": "Singleplayer", + "translation.test.args": "%s %s", + "translation.test.complex": "Prefix, %s%2$s again %s and %1$s lastly %s and also %1$s again!", + "translation.test.escape": "%%s %%%s %%%%s %%%%%s", + "translation.test.invalid": "hi %", + "translation.test.invalid2": "hi % s", + "translation.test.none": "Hello, world!", + "translation.test.world": "world", + "trim_material.minecraft.amethyst": "Amethyst Material", + "trim_material.minecraft.copper": "Copper Material", + "trim_material.minecraft.diamond": "Diamond Material", + "trim_material.minecraft.emerald": "Emerald Material", + "trim_material.minecraft.gold": "Gold Material", + "trim_material.minecraft.iron": "Iron Material", + "trim_material.minecraft.lapis": "Lapis Material", + "trim_material.minecraft.netherite": "Netherite Material", + "trim_material.minecraft.quartz": "Quartz Material", + "trim_material.minecraft.redstone": "Redstone Material", + "trim_pattern.minecraft.coast": "Coast Armor Trim", + "trim_pattern.minecraft.dune": "Dune Armor Trim", + "trim_pattern.minecraft.eye": "Eye Armor Trim", + "trim_pattern.minecraft.host": "Host Armor Trim", + "trim_pattern.minecraft.raiser": "Raiser Armor Trim", + "trim_pattern.minecraft.rib": "Rib Armor Trim", + "trim_pattern.minecraft.sentry": "Sentry Armor Trim", + "trim_pattern.minecraft.shaper": "Shaper Armor Trim", + "trim_pattern.minecraft.silence": "Silence Armor Trim", + "trim_pattern.minecraft.snout": "Snout Armor Trim", + "trim_pattern.minecraft.spire": "Spire Armor Trim", + "trim_pattern.minecraft.tide": "Tide Armor Trim", + "trim_pattern.minecraft.vex": "Vex Armor Trim", + "trim_pattern.minecraft.ward": "Ward Armor Trim", + "trim_pattern.minecraft.wayfinder": "Wayfinder Armor Trim", + "trim_pattern.minecraft.wild": "Wild Armor Trim", + "tutorial.bundleInsert.description": "Right Click to add items", + "tutorial.bundleInsert.title": "Use a Bundle", + "tutorial.craft_planks.description": "The recipe book can help", + "tutorial.craft_planks.title": "Craft wooden planks", + "tutorial.find_tree.description": "Punch it to collect wood", + "tutorial.find_tree.title": "Find a tree", + "tutorial.look.description": "Use your mouse to turn", + "tutorial.look.title": "Look around", + "tutorial.move.description": "Jump with %s", + "tutorial.move.title": "Move with %s, %s, %s and %s", + "tutorial.open_inventory.description": "Press %s", + "tutorial.open_inventory.title": "Open your inventory", + "tutorial.punch_tree.description": "Hold down %s", + "tutorial.punch_tree.title": "Destroy the tree", + "tutorial.socialInteractions.description": "Press %s to open", + "tutorial.socialInteractions.title": "Social Interactions", + "upgrade.minecraft.netherite_upgrade": "Netherite Upgrade" +} \ No newline at end of file From 744de0dbd45713cc2a2eaa513bda614efa3962be Mon Sep 17 00:00:00 2001 From: Anon Date: Wed, 28 Feb 2024 11:49:50 +0100 Subject: [PATCH 15/15] Removed debug logs --- .../Protocol/Message/ChatParser.cs | 184 ++++++++++-------- 1 file changed, 103 insertions(+), 81 deletions(-) diff --git a/MinecraftClient/Protocol/Message/ChatParser.cs b/MinecraftClient/Protocol/Message/ChatParser.cs index 400ba78551..5bfd2b668a 100644 --- a/MinecraftClient/Protocol/Message/ChatParser.cs +++ b/MinecraftClient/Protocol/Message/ChatParser.cs @@ -34,11 +34,12 @@ public enum MessageType public static void ReadChatType(Dictionary registryCodec) { Dictionary chatTypeDictionary = ChatId2Type ?? new(); - var chatTypeListNbt = (object[])(((Dictionary)registryCodec["minecraft:chat_type"])["value"]); + var chatTypeListNbt = + (object[])(((Dictionary)registryCodec["minecraft:chat_type"])["value"]); foreach (var (chatName, chatId) in from Dictionary chatTypeNbt in chatTypeListNbt - let chatName = (string)chatTypeNbt["name"] - let chatId = (int)chatTypeNbt["id"] - select (chatName, chatId)) + let chatName = (string)chatTypeNbt["name"] + let chatId = (int)chatTypeNbt["id"] + select (chatName, chatId)) { chatTypeDictionary[chatId] = chatName switch { @@ -52,6 +53,7 @@ public static void ReadChatType(Dictionary registryCodec) _ => MessageType.CHAT, }; } + ChatId2Type = chatTypeDictionary; } @@ -147,6 +149,7 @@ public static string ParseSignedChat(ChatMessage message, List? links = default: goto case MessageType.CHAT; } + return text; } @@ -198,7 +201,14 @@ private static string Color2tag(string colorname) /// Initialize translation rules. /// Necessary for properly printing some chat messages. /// - public static void InitTranslations() { if (!RulesInitialized) { InitRules(); RulesInitialized = true; } } + public static void InitTranslations() + { + if (!RulesInitialized) + { + InitRules(); + RulesInitialized = true; + } + } /// /// Internal rule initialization method. Looks for local rule file or download it from Mojang asset servers. @@ -207,7 +217,9 @@ private static void InitRules() { if (Config.Main.Advanced.Language == "en_us") { - TranslationRules = JsonSerializer.Deserialize>((byte[])MinecraftAssets.ResourceManager.GetObject("en_us.json")!)!; + TranslationRules = + JsonSerializer.Deserialize>( + (byte[])MinecraftAssets.ResourceManager.GetObject("en_us.json")!)!; return; } @@ -222,13 +234,19 @@ private static void InitRules() { try { - TranslationRules = JsonSerializer.Deserialize>(File.OpenRead(languageFilePath))!; + TranslationRules = + JsonSerializer.Deserialize>(File.OpenRead(languageFilePath))!; + } + catch (IOException) + { + } + catch (JsonException) + { } - catch (IOException) { } - catch (JsonException) { } } - if (TranslationRules.TryGetValue("Version", out string? version) && version == Settings.TranslationsFile_Version) + if (TranslationRules.TryGetValue("Version", out string? version) && + version == Settings.TranslationsFile_Version) { if (Config.Logging.DebugMessages) ConsoleIO.WriteLineFormatted(Translations.chat_loaded, acceptnewlines: true); @@ -236,32 +254,39 @@ private static void InitRules() } // Try downloading language file from Mojang's servers? - ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.chat_download, Config.Main.Advanced.Language)); + ConsoleIO.WriteLineFormatted( + "§8" + string.Format(Translations.chat_download, Config.Main.Advanced.Language)); HttpClient httpClient = new(); try { Task fetch_index = httpClient.GetStringAsync(TranslationsFile_Website_Index); fetch_index.Wait(); - Match match = Regex.Match(fetch_index.Result, $"minecraft/lang/{Config.Main.Advanced.Language}.json" + @""":\s\{""hash"":\s""([\d\w]{40})"""); + Match match = Regex.Match(fetch_index.Result, + $"minecraft/lang/{Config.Main.Advanced.Language}.json" + @""":\s\{""hash"":\s""([\d\w]{40})"""); fetch_index.Dispose(); if (match.Success && match.Groups.Count == 2) { string hash = match.Groups[1].Value; string translation_file_location = TranslationsFile_Website_Download + '/' + hash[..2] + '/' + hash; if (Config.Logging.DebugMessages) - ConsoleIO.WriteLineFormatted(string.Format(Translations.chat_request, translation_file_location)); + ConsoleIO.WriteLineFormatted( + string.Format(Translations.chat_request, translation_file_location)); - Task?> fetckFileTask = httpClient.GetFromJsonAsync>(translation_file_location); + Task?> fetckFileTask = + httpClient.GetFromJsonAsync>(translation_file_location); fetckFileTask.Wait(); if (fetckFileTask.Result != null && fetckFileTask.Result.Count > 0) { TranslationRules = fetckFileTask.Result; TranslationRules["Version"] = TranslationsFile_Version; - File.WriteAllText(languageFilePath, JsonSerializer.Serialize(TranslationRules, typeof(Dictionary)), Encoding.UTF8); + File.WriteAllText(languageFilePath, + JsonSerializer.Serialize(TranslationRules, typeof(Dictionary)), + Encoding.UTF8); ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.chat_done, languageFilePath)); return; } + fetckFileTask.Dispose(); } else @@ -275,7 +300,8 @@ private static void InitRules() } catch (IOException) { - ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.chat_save_fail, languageFilePath), acceptnewlines: true); + ConsoleIO.WriteLineFormatted("§8" + string.Format(Translations.chat_save_fail, languageFilePath), + acceptnewlines: true); } catch (Exception e) { @@ -289,7 +315,9 @@ private static void InitRules() httpClient.Dispose(); } - TranslationRules = JsonSerializer.Deserialize>((byte[])MinecraftAssets.ResourceManager.GetObject("en_us.json")!)!; + TranslationRules = + JsonSerializer.Deserialize>( + (byte[])MinecraftAssets.ResourceManager.GetObject("en_us.json")!)!; ConsoleIO.WriteLine(Translations.chat_use_default); } @@ -310,7 +338,12 @@ private static void InitRules() /// Returns the formatted text according to the given data private static string TranslateString(string rulename, List using_data) { - if (!RulesInitialized) { InitRules(); RulesInitialized = true; } + if (!RulesInitialized) + { + InitRules(); + RulesInitialized = true; + } + if (TranslationRules.ContainsKey(rulename)) { int using_idx = 0; @@ -334,8 +367,8 @@ private static string TranslateString(string rulename, List using_data) //Using specified string or int with %1$s, %2$s... else if (char.IsDigit(rule[i + 1]) - && i + 3 < rule.Length && rule[i + 2] == '$' - && (rule[i + 3] == 's' || rule[i + 3] == 'd')) + && i + 3 < rule.Length && rule[i + 2] == '$' + && (rule[i + 3] == 's' || rule[i + 3] == 'd')) { int specified_idx = rule[i + 1] - '1'; if (using_data.Count > specified_idx) @@ -347,8 +380,10 @@ private static string TranslateString(string rulename, List using_data) } } } + result.Append(rule[i]); } + return result.ToString(); } else return "[" + rulename + "] " + string.Join(" ", using_data); @@ -371,6 +406,7 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List { colorcode = Color2tag(JSONData2String(data.Properties["color"], "", links)); } + if (data.Properties.ContainsKey("clickEvent") && links != null) { Json.JSONData clickEvent = data.Properties["clickEvent"]; @@ -382,12 +418,14 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List links.Add(clickEvent.Properties["value"].StringValue); } } + if (data.Properties.ContainsKey("extra")) { Json.JSONData[] extras = data.Properties["extra"].DataArray.ToArray(); foreach (Json.JSONData item in extras) extra_result = extra_result + JSONData2String(item, colorcode, links) + "§r"; } + if (data.Properties.ContainsKey("text")) { return colorcode + JSONData2String(data.Properties["text"], colorcode, links) + extra_result; @@ -405,7 +443,10 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List using_data.Add(JSONData2String(array[i], colorcode, links)); } } - return colorcode + TranslateString(JSONData2String(data.Properties["translate"], "", links), using_data) + extra_result; + + return colorcode + + TranslateString(JSONData2String(data.Properties["translate"], "", links), using_data) + + extra_result; } else return extra_result; @@ -415,6 +456,7 @@ private static string JSONData2String(Json.JSONData data, string colorcode, List { result += JSONData2String(item, colorcode, links); } + return result; case Json.JSONData.DataType.String: @@ -443,90 +485,70 @@ private static string NbtToString(Dictionary nbt) switch (key) { case "text": - { - message = (string)value; - } + { + message = (string)value; + } break; case "extra": + { + object[] extras = (object[])value; + for (var i = 0; i < extras.Length; i++) { - object[] extras = (object[])value; - for (var i = 0; i < extras.Length; i++) + var extraDict = extras[i] switch { - try + int => new Dictionary { { "text", $"{extras[i]}" } }, + string => new Dictionary { - var extraDict = extras[i] switch - { - int => new Dictionary { { "text", $"{extras[i]}" } }, - string => new Dictionary - { - { "text", (string)extras[i] } - }, - _ => (Dictionary)extras[i] - }; + { "text", (string)extras[i] } + }, + _ => (Dictionary)extras[i] + }; - extraBuilder.Append(NbtToString(extraDict) + "§r"); - } - catch - { - ConsoleIO.WriteLine("[DEBUG] Full NBT object:" + JsonSerializer.Serialize(nbt)); - ConsoleIO.WriteLine("[DEBUG] Full extras object:" + JsonSerializer.Serialize(extras)); - ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(extras[i])); - ConsoleIO.WriteLine("[DEBUG] Full string builder so far:" + extraBuilder.ToString()); - throw; - } - } + extraBuilder.Append(NbtToString(extraDict) + "§r"); } + } break; case "translate": + { + if (nbt.TryGetValue("translate", out object translate)) { - if (nbt.TryGetValue("translate", out object translate)) + var translateKey = (string)translate; + List translateString = new(); + if (nbt.TryGetValue("with", out object withComponent)) { - var translateKey = (string)translate; - List translateString = new(); - if (nbt.TryGetValue("with", out object withComponent)) + var withs = (object[])withComponent; + for (var i = 0; i < withs.Length; i++) { - var withs = (object[])withComponent; - for (var i = 0; i < withs.Length; i++) + var withDict = withs[i] switch { - try - { - var withDict = withs[i] switch - { - int => new Dictionary { { "text", $"{withs[i]}" } }, - string => new Dictionary - { - { "text", (string)withs[i] } - }, - _ => (Dictionary)withs[i] - }; - - translateString.Add(NbtToString(withDict)); - } - catch + int => new Dictionary { { "text", $"{withs[i]}" } }, + string => new Dictionary { - ConsoleIO.WriteLine("[DEBUG] Full NBT object:" + JsonSerializer.Serialize(nbt)); - ConsoleIO.WriteLine("[DEBUG] Full withs object:" + JsonSerializer.Serialize(withs)); - ConsoleIO.WriteLine("[DEBUG] Value in question:" + JsonSerializer.Serialize(withs[i])); - ConsoleIO.WriteLine("[DEBUG] Full string builder so far:" + extraBuilder.ToString()); - throw; - } - } + { "text", (string)withs[i] } + }, + _ => (Dictionary)withs[i] + }; + + translateString.Add(NbtToString(withDict)); } - message = TranslateString(translateKey, translateString); } + + message = TranslateString(translateKey, translateString); } + } break; case "color": + { + if (nbt.TryGetValue("color", out object color)) { - if (nbt.TryGetValue("color", out object color)) - { - colorCode = Color2tag((string)color); - } + colorCode = Color2tag((string)color); } + } break; } } + return colorCode + message + extraBuilder.ToString(); } } -} +} \ No newline at end of file