diff --git a/MinecraftClient/ChatBots/AutoAttack.cs b/MinecraftClient/ChatBots/AutoAttack.cs index 5f6965ae..559bc13a 100644 --- a/MinecraftClient/ChatBots/AutoAttack.cs +++ b/MinecraftClient/ChatBots/AutoAttack.cs @@ -83,15 +83,18 @@ namespace MinecraftClient.ChatBots public override void OnPlayerProperty(Dictionary prop) { - // adjust auto attack cooldown for maximum attack damage - if (prop.ContainsKey("generic.attackSpeed")) + foreach (var attackSpeedKey in new[] { "generic.attackSpeed", "minecraft:generic.attack_speed" }) { - if (attackSpeed != prop["generic.attackSpeed"]) + // adjust auto attack cooldown for maximum attack damage + if (prop.ContainsKey(attackSpeedKey)) { - serverTPS = GetServerTPS(); - attackSpeed = prop["generic.attackSpeed"]; - attackCooldownSecond = 1 / attackSpeed * (serverTPS / 20.0); // server tps will affect the cooldown - attackCooldown = Convert.ToInt32(Math.Truncate(attackCooldownSecond / 0.1) + 1); + if (attackSpeed != prop[attackSpeedKey]) + { + serverTPS = GetServerTPS(); + attackSpeed = prop[attackSpeedKey]; + attackCooldownSecond = 1 / attackSpeed * (serverTPS / 20.0); // server tps will affect the cooldown + attackCooldown = Convert.ToInt32(Math.Truncate(attackCooldownSecond / 0.1) + 1); + } } } } diff --git a/MinecraftClient/ChatBots/AutoCraft.cs b/MinecraftClient/ChatBots/AutoCraft.cs index 197b18a3..1d27af14 100644 --- a/MinecraftClient/ChatBots/AutoCraft.cs +++ b/MinecraftClient/ChatBots/AutoCraft.cs @@ -311,7 +311,6 @@ namespace MinecraftClient.ChatBots // local variable for use in parsing config string section = ""; Dictionary recipes = new Dictionary(); - string lastRecipe = ""; foreach (string l in content) { diff --git a/MinecraftClient/Commands/ChangeSlot.cs b/MinecraftClient/Commands/ChangeSlot.cs index a9f0061e..a1419a4b 100644 --- a/MinecraftClient/Commands/ChangeSlot.cs +++ b/MinecraftClient/Commands/ChangeSlot.cs @@ -12,7 +12,7 @@ namespace MinecraftClient.Commands public override string Run(McClient handler, string command, Dictionary localVars) { - if (!handler.GetTerrainEnabled()) + if (!handler.GetInventoryEnabled()) return "Please enable InventoryHandling in the config file first."; if (hasArg(command)) diff --git a/MinecraftClient/Inventory/Item.cs b/MinecraftClient/Inventory/Item.cs index e05bd571..deab4c9e 100644 --- a/MinecraftClient/Inventory/Item.cs +++ b/MinecraftClient/Inventory/Item.cs @@ -26,14 +26,14 @@ namespace MinecraftClient.Inventory public Dictionary NBT; /// - /// Create an item with Type ID, Count and Metadata + /// Create an item with ItemType, Count and Metadata /// - /// Item Type ID - /// Item Count + /// Type of the item + /// Item Count /// Item Metadata - public Item(int id, int count, Dictionary nbt) + public Item(ItemType itemType, int count, Dictionary nbt) { - this.Type = (ItemType)id; + this.Type = itemType; this.Count = count; this.NBT = nbt; } diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette.cs new file mode 100644 index 00000000..76edb098 --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + public abstract class ItemPalette + { + protected abstract Dictionary GetDict(); + private readonly Dictionary DictReverse = new Dictionary(); + + public ItemPalette() + { + // Index reverse mappings for use in ToId() + foreach (KeyValuePair entry in GetDict()) + DictReverse.Add(entry.Value, entry.Key); + } + + public ItemType FromId(int id) + { + return GetDict()[id]; + } + + public int ToId(ItemType itemType) + { + if (itemType == ItemType.Null) + return -1; + return DictReverse[itemType]; + } + } +} diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette115.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette115.cs new file mode 100644 index 00000000..99331b85 --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette115.cs @@ -0,0 +1,907 @@ +using System; +using System.Collections.Generic; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + /// + /// For MC 1.15.2 or below + /// Generated by ItemPaletteGenerator.cs + /// + public class ItemPalette115 : ItemPalette + { + private static Dictionary mappings = new Dictionary(); + + static ItemPalette115() + { + mappings[0] = ItemType.Air; + mappings[1] = ItemType.Stone; + mappings[2] = ItemType.Granite; + mappings[3] = ItemType.PolishedGranite; + mappings[4] = ItemType.Diorite; + mappings[5] = ItemType.PolishedDiorite; + mappings[6] = ItemType.Andesite; + mappings[7] = ItemType.PolishedAndesite; + mappings[8] = ItemType.GrassBlock; + mappings[9] = ItemType.Dirt; + mappings[10] = ItemType.CoarseDirt; + mappings[11] = ItemType.Podzol; + mappings[12] = ItemType.Cobblestone; + mappings[13] = ItemType.OakPlanks; + mappings[14] = ItemType.SprucePlanks; + mappings[15] = ItemType.BirchPlanks; + mappings[16] = ItemType.JunglePlanks; + mappings[17] = ItemType.AcaciaPlanks; + mappings[18] = ItemType.DarkOakPlanks; + mappings[19] = ItemType.OakSapling; + mappings[20] = ItemType.SpruceSapling; + mappings[21] = ItemType.BirchSapling; + mappings[22] = ItemType.JungleSapling; + mappings[23] = ItemType.AcaciaSapling; + mappings[24] = ItemType.DarkOakSapling; + mappings[25] = ItemType.Bedrock; + mappings[26] = ItemType.Sand; + mappings[27] = ItemType.RedSand; + mappings[28] = ItemType.Gravel; + mappings[29] = ItemType.GoldOre; + mappings[30] = ItemType.IronOre; + mappings[31] = ItemType.CoalOre; + mappings[32] = ItemType.OakLog; + mappings[33] = ItemType.SpruceLog; + mappings[34] = ItemType.BirchLog; + mappings[35] = ItemType.JungleLog; + mappings[36] = ItemType.AcaciaLog; + mappings[37] = ItemType.DarkOakLog; + mappings[38] = ItemType.StrippedOakLog; + mappings[39] = ItemType.StrippedSpruceLog; + mappings[40] = ItemType.StrippedBirchLog; + mappings[41] = ItemType.StrippedJungleLog; + mappings[42] = ItemType.StrippedAcaciaLog; + mappings[43] = ItemType.StrippedDarkOakLog; + mappings[44] = ItemType.StrippedOakWood; + mappings[45] = ItemType.StrippedSpruceWood; + mappings[46] = ItemType.StrippedBirchWood; + mappings[47] = ItemType.StrippedJungleWood; + mappings[48] = ItemType.StrippedAcaciaWood; + mappings[49] = ItemType.StrippedDarkOakWood; + mappings[50] = ItemType.OakWood; + mappings[51] = ItemType.SpruceWood; + mappings[52] = ItemType.BirchWood; + mappings[53] = ItemType.JungleWood; + mappings[54] = ItemType.AcaciaWood; + mappings[55] = ItemType.DarkOakWood; + mappings[56] = ItemType.OakLeaves; + mappings[57] = ItemType.SpruceLeaves; + mappings[58] = ItemType.BirchLeaves; + mappings[59] = ItemType.JungleLeaves; + mappings[60] = ItemType.AcaciaLeaves; + mappings[61] = ItemType.DarkOakLeaves; + mappings[62] = ItemType.Sponge; + mappings[63] = ItemType.WetSponge; + mappings[64] = ItemType.Glass; + mappings[65] = ItemType.LapisOre; + mappings[66] = ItemType.LapisBlock; + mappings[67] = ItemType.Dispenser; + mappings[68] = ItemType.Sandstone; + mappings[69] = ItemType.ChiseledSandstone; + mappings[70] = ItemType.CutSandstone; + mappings[71] = ItemType.NoteBlock; + mappings[72] = ItemType.PoweredRail; + mappings[73] = ItemType.DetectorRail; + mappings[74] = ItemType.StickyPiston; + mappings[75] = ItemType.Cobweb; + mappings[76] = ItemType.Grass; + mappings[77] = ItemType.Fern; + mappings[78] = ItemType.DeadBush; + mappings[79] = ItemType.Seagrass; + mappings[80] = ItemType.SeaPickle; + mappings[81] = ItemType.Piston; + mappings[82] = ItemType.WhiteWool; + mappings[83] = ItemType.OrangeWool; + mappings[84] = ItemType.MagentaWool; + mappings[85] = ItemType.LightBlueWool; + mappings[86] = ItemType.YellowWool; + mappings[87] = ItemType.LimeWool; + mappings[88] = ItemType.PinkWool; + mappings[89] = ItemType.GrayWool; + mappings[90] = ItemType.LightGrayWool; + mappings[91] = ItemType.CyanWool; + mappings[92] = ItemType.PurpleWool; + mappings[93] = ItemType.BlueWool; + mappings[94] = ItemType.BrownWool; + mappings[95] = ItemType.GreenWool; + mappings[96] = ItemType.RedWool; + mappings[97] = ItemType.BlackWool; + mappings[98] = ItemType.Dandelion; + mappings[99] = ItemType.Poppy; + mappings[100] = ItemType.BlueOrchid; + mappings[101] = ItemType.Allium; + mappings[102] = ItemType.AzureBluet; + mappings[103] = ItemType.RedTulip; + mappings[104] = ItemType.OrangeTulip; + mappings[105] = ItemType.WhiteTulip; + mappings[106] = ItemType.PinkTulip; + mappings[107] = ItemType.OxeyeDaisy; + mappings[108] = ItemType.Cornflower; + mappings[109] = ItemType.LilyOfTheValley; + mappings[110] = ItemType.WitherRose; + mappings[111] = ItemType.BrownMushroom; + mappings[112] = ItemType.RedMushroom; + mappings[113] = ItemType.GoldBlock; + mappings[114] = ItemType.IronBlock; + mappings[115] = ItemType.OakSlab; + mappings[116] = ItemType.SpruceSlab; + mappings[117] = ItemType.BirchSlab; + mappings[118] = ItemType.JungleSlab; + mappings[119] = ItemType.AcaciaSlab; + mappings[120] = ItemType.DarkOakSlab; + mappings[121] = ItemType.StoneSlab; + mappings[122] = ItemType.SmoothStoneSlab; + mappings[123] = ItemType.SandstoneSlab; + mappings[124] = ItemType.CutSandstoneSlab; + mappings[125] = ItemType.PetrifiedOakSlab; + mappings[126] = ItemType.CobblestoneSlab; + mappings[127] = ItemType.BrickSlab; + mappings[128] = ItemType.StoneBrickSlab; + mappings[129] = ItemType.NetherBrickSlab; + mappings[130] = ItemType.QuartzSlab; + mappings[131] = ItemType.RedSandstoneSlab; + mappings[132] = ItemType.CutRedSandstoneSlab; + mappings[133] = ItemType.PurpurSlab; + mappings[134] = ItemType.PrismarineSlab; + mappings[135] = ItemType.PrismarineBrickSlab; + mappings[136] = ItemType.DarkPrismarineSlab; + mappings[137] = ItemType.SmoothQuartz; + mappings[138] = ItemType.SmoothRedSandstone; + mappings[139] = ItemType.SmoothSandstone; + mappings[140] = ItemType.SmoothStone; + mappings[141] = ItemType.Bricks; + mappings[142] = ItemType.Tnt; + mappings[143] = ItemType.Bookshelf; + mappings[144] = ItemType.MossyCobblestone; + mappings[145] = ItemType.Obsidian; + mappings[146] = ItemType.Torch; + mappings[147] = ItemType.EndRod; + mappings[148] = ItemType.ChorusPlant; + mappings[149] = ItemType.ChorusFlower; + mappings[150] = ItemType.PurpurBlock; + mappings[151] = ItemType.PurpurPillar; + mappings[152] = ItemType.PurpurStairs; + mappings[153] = ItemType.Spawner; + mappings[154] = ItemType.OakStairs; + mappings[155] = ItemType.Chest; + mappings[156] = ItemType.DiamondOre; + mappings[157] = ItemType.DiamondBlock; + mappings[158] = ItemType.CraftingTable; + mappings[159] = ItemType.Farmland; + mappings[160] = ItemType.Furnace; + mappings[161] = ItemType.Ladder; + mappings[162] = ItemType.Rail; + mappings[163] = ItemType.CobblestoneStairs; + mappings[164] = ItemType.Lever; + mappings[165] = ItemType.StonePressurePlate; + mappings[166] = ItemType.OakPressurePlate; + mappings[167] = ItemType.SprucePressurePlate; + mappings[168] = ItemType.BirchPressurePlate; + mappings[169] = ItemType.JunglePressurePlate; + mappings[170] = ItemType.AcaciaPressurePlate; + mappings[171] = ItemType.DarkOakPressurePlate; + mappings[172] = ItemType.RedstoneOre; + mappings[173] = ItemType.RedstoneTorch; + mappings[174] = ItemType.StoneButton; + mappings[175] = ItemType.Snow; + mappings[176] = ItemType.Ice; + mappings[177] = ItemType.SnowBlock; + mappings[178] = ItemType.Cactus; + mappings[179] = ItemType.Clay; + mappings[180] = ItemType.Jukebox; + mappings[181] = ItemType.OakFence; + mappings[182] = ItemType.SpruceFence; + mappings[183] = ItemType.BirchFence; + mappings[184] = ItemType.JungleFence; + mappings[185] = ItemType.AcaciaFence; + mappings[186] = ItemType.DarkOakFence; + mappings[187] = ItemType.Pumpkin; + mappings[188] = ItemType.CarvedPumpkin; + mappings[189] = ItemType.Netherrack; + mappings[190] = ItemType.SoulSand; + mappings[191] = ItemType.Glowstone; + mappings[192] = ItemType.JackOLantern; + mappings[193] = ItemType.OakTrapdoor; + mappings[194] = ItemType.SpruceTrapdoor; + mappings[195] = ItemType.BirchTrapdoor; + mappings[196] = ItemType.JungleTrapdoor; + mappings[197] = ItemType.AcaciaTrapdoor; + mappings[198] = ItemType.DarkOakTrapdoor; + mappings[199] = ItemType.InfestedStone; + mappings[200] = ItemType.InfestedCobblestone; + mappings[201] = ItemType.InfestedStoneBricks; + mappings[202] = ItemType.InfestedMossyStoneBricks; + mappings[203] = ItemType.InfestedCrackedStoneBricks; + mappings[204] = ItemType.InfestedChiseledStoneBricks; + mappings[205] = ItemType.StoneBricks; + mappings[206] = ItemType.MossyStoneBricks; + mappings[207] = ItemType.CrackedStoneBricks; + mappings[208] = ItemType.ChiseledStoneBricks; + mappings[209] = ItemType.BrownMushroomBlock; + mappings[210] = ItemType.RedMushroomBlock; + mappings[211] = ItemType.MushroomStem; + mappings[212] = ItemType.IronBars; + mappings[213] = ItemType.GlassPane; + mappings[214] = ItemType.Melon; + mappings[215] = ItemType.Vine; + mappings[216] = ItemType.OakFenceGate; + mappings[217] = ItemType.SpruceFenceGate; + mappings[218] = ItemType.BirchFenceGate; + mappings[219] = ItemType.JungleFenceGate; + mappings[220] = ItemType.AcaciaFenceGate; + mappings[221] = ItemType.DarkOakFenceGate; + mappings[222] = ItemType.BrickStairs; + mappings[223] = ItemType.StoneBrickStairs; + mappings[224] = ItemType.Mycelium; + mappings[225] = ItemType.LilyPad; + mappings[226] = ItemType.NetherBricks; + mappings[227] = ItemType.NetherBrickFence; + mappings[228] = ItemType.NetherBrickStairs; + mappings[229] = ItemType.EnchantingTable; + mappings[230] = ItemType.EndPortalFrame; + mappings[231] = ItemType.EndStone; + mappings[232] = ItemType.EndStoneBricks; + mappings[233] = ItemType.DragonEgg; + mappings[234] = ItemType.RedstoneLamp; + mappings[235] = ItemType.SandstoneStairs; + mappings[236] = ItemType.EmeraldOre; + mappings[237] = ItemType.EnderChest; + mappings[238] = ItemType.TripwireHook; + mappings[239] = ItemType.EmeraldBlock; + mappings[240] = ItemType.SpruceStairs; + mappings[241] = ItemType.BirchStairs; + mappings[242] = ItemType.JungleStairs; + mappings[243] = ItemType.CommandBlock; + mappings[244] = ItemType.Beacon; + mappings[245] = ItemType.CobblestoneWall; + mappings[246] = ItemType.MossyCobblestoneWall; + mappings[247] = ItemType.BrickWall; + mappings[248] = ItemType.PrismarineWall; + mappings[249] = ItemType.RedSandstoneWall; + mappings[250] = ItemType.MossyStoneBrickWall; + mappings[251] = ItemType.GraniteWall; + mappings[252] = ItemType.StoneBrickWall; + mappings[253] = ItemType.NetherBrickWall; + mappings[254] = ItemType.AndesiteWall; + mappings[255] = ItemType.RedNetherBrickWall; + mappings[256] = ItemType.SandstoneWall; + mappings[257] = ItemType.EndStoneBrickWall; + mappings[258] = ItemType.DioriteWall; + mappings[259] = ItemType.OakButton; + mappings[260] = ItemType.SpruceButton; + mappings[261] = ItemType.BirchButton; + mappings[262] = ItemType.JungleButton; + mappings[263] = ItemType.AcaciaButton; + mappings[264] = ItemType.DarkOakButton; + mappings[265] = ItemType.Anvil; + mappings[266] = ItemType.ChippedAnvil; + mappings[267] = ItemType.DamagedAnvil; + mappings[268] = ItemType.TrappedChest; + mappings[269] = ItemType.LightWeightedPressurePlate; + mappings[270] = ItemType.HeavyWeightedPressurePlate; + mappings[271] = ItemType.DaylightDetector; + mappings[272] = ItemType.RedstoneBlock; + mappings[273] = ItemType.NetherQuartzOre; + mappings[274] = ItemType.Hopper; + mappings[275] = ItemType.ChiseledQuartzBlock; + mappings[276] = ItemType.QuartzBlock; + mappings[277] = ItemType.QuartzPillar; + mappings[278] = ItemType.QuartzStairs; + mappings[279] = ItemType.ActivatorRail; + mappings[280] = ItemType.Dropper; + mappings[281] = ItemType.WhiteTerracotta; + mappings[282] = ItemType.OrangeTerracotta; + mappings[283] = ItemType.MagentaTerracotta; + mappings[284] = ItemType.LightBlueTerracotta; + mappings[285] = ItemType.YellowTerracotta; + mappings[286] = ItemType.LimeTerracotta; + mappings[287] = ItemType.PinkTerracotta; + mappings[288] = ItemType.GrayTerracotta; + mappings[289] = ItemType.LightGrayTerracotta; + mappings[290] = ItemType.CyanTerracotta; + mappings[291] = ItemType.PurpleTerracotta; + mappings[292] = ItemType.BlueTerracotta; + mappings[293] = ItemType.BrownTerracotta; + mappings[294] = ItemType.GreenTerracotta; + mappings[295] = ItemType.RedTerracotta; + mappings[296] = ItemType.BlackTerracotta; + mappings[297] = ItemType.Barrier; + mappings[298] = ItemType.IronTrapdoor; + mappings[299] = ItemType.HayBlock; + mappings[300] = ItemType.WhiteCarpet; + mappings[301] = ItemType.OrangeCarpet; + mappings[302] = ItemType.MagentaCarpet; + mappings[303] = ItemType.LightBlueCarpet; + mappings[304] = ItemType.YellowCarpet; + mappings[305] = ItemType.LimeCarpet; + mappings[306] = ItemType.PinkCarpet; + mappings[307] = ItemType.GrayCarpet; + mappings[308] = ItemType.LightGrayCarpet; + mappings[309] = ItemType.CyanCarpet; + mappings[310] = ItemType.PurpleCarpet; + mappings[311] = ItemType.BlueCarpet; + mappings[312] = ItemType.BrownCarpet; + mappings[313] = ItemType.GreenCarpet; + mappings[314] = ItemType.RedCarpet; + mappings[315] = ItemType.BlackCarpet; + mappings[316] = ItemType.Terracotta; + mappings[317] = ItemType.CoalBlock; + mappings[318] = ItemType.PackedIce; + mappings[319] = ItemType.AcaciaStairs; + mappings[320] = ItemType.DarkOakStairs; + mappings[321] = ItemType.SlimeBlock; + mappings[322] = ItemType.GrassPath; + mappings[323] = ItemType.Sunflower; + mappings[324] = ItemType.Lilac; + mappings[325] = ItemType.RoseBush; + mappings[326] = ItemType.Peony; + mappings[327] = ItemType.TallGrass; + mappings[328] = ItemType.LargeFern; + mappings[329] = ItemType.WhiteStainedGlass; + mappings[330] = ItemType.OrangeStainedGlass; + mappings[331] = ItemType.MagentaStainedGlass; + mappings[332] = ItemType.LightBlueStainedGlass; + mappings[333] = ItemType.YellowStainedGlass; + mappings[334] = ItemType.LimeStainedGlass; + mappings[335] = ItemType.PinkStainedGlass; + mappings[336] = ItemType.GrayStainedGlass; + mappings[337] = ItemType.LightGrayStainedGlass; + mappings[338] = ItemType.CyanStainedGlass; + mappings[339] = ItemType.PurpleStainedGlass; + mappings[340] = ItemType.BlueStainedGlass; + mappings[341] = ItemType.BrownStainedGlass; + mappings[342] = ItemType.GreenStainedGlass; + mappings[343] = ItemType.RedStainedGlass; + mappings[344] = ItemType.BlackStainedGlass; + mappings[345] = ItemType.WhiteStainedGlassPane; + mappings[346] = ItemType.OrangeStainedGlassPane; + mappings[347] = ItemType.MagentaStainedGlassPane; + mappings[348] = ItemType.LightBlueStainedGlassPane; + mappings[349] = ItemType.YellowStainedGlassPane; + mappings[350] = ItemType.LimeStainedGlassPane; + mappings[351] = ItemType.PinkStainedGlassPane; + mappings[352] = ItemType.GrayStainedGlassPane; + mappings[353] = ItemType.LightGrayStainedGlassPane; + mappings[354] = ItemType.CyanStainedGlassPane; + mappings[355] = ItemType.PurpleStainedGlassPane; + mappings[356] = ItemType.BlueStainedGlassPane; + mappings[357] = ItemType.BrownStainedGlassPane; + mappings[358] = ItemType.GreenStainedGlassPane; + mappings[359] = ItemType.RedStainedGlassPane; + mappings[360] = ItemType.BlackStainedGlassPane; + mappings[361] = ItemType.Prismarine; + mappings[362] = ItemType.PrismarineBricks; + mappings[363] = ItemType.DarkPrismarine; + mappings[364] = ItemType.PrismarineStairs; + mappings[365] = ItemType.PrismarineBrickStairs; + mappings[366] = ItemType.DarkPrismarineStairs; + mappings[367] = ItemType.SeaLantern; + mappings[368] = ItemType.RedSandstone; + mappings[369] = ItemType.ChiseledRedSandstone; + mappings[370] = ItemType.CutRedSandstone; + mappings[371] = ItemType.RedSandstoneStairs; + mappings[372] = ItemType.RepeatingCommandBlock; + mappings[373] = ItemType.ChainCommandBlock; + mappings[374] = ItemType.MagmaBlock; + mappings[375] = ItemType.NetherWartBlock; + mappings[376] = ItemType.RedNetherBricks; + mappings[377] = ItemType.BoneBlock; + mappings[378] = ItemType.StructureVoid; + mappings[379] = ItemType.Observer; + mappings[380] = ItemType.ShulkerBox; + mappings[381] = ItemType.WhiteShulkerBox; + mappings[382] = ItemType.OrangeShulkerBox; + mappings[383] = ItemType.MagentaShulkerBox; + mappings[384] = ItemType.LightBlueShulkerBox; + mappings[385] = ItemType.YellowShulkerBox; + mappings[386] = ItemType.LimeShulkerBox; + mappings[387] = ItemType.PinkShulkerBox; + mappings[388] = ItemType.GrayShulkerBox; + mappings[389] = ItemType.LightGrayShulkerBox; + mappings[390] = ItemType.CyanShulkerBox; + mappings[391] = ItemType.PurpleShulkerBox; + mappings[392] = ItemType.BlueShulkerBox; + mappings[393] = ItemType.BrownShulkerBox; + mappings[394] = ItemType.GreenShulkerBox; + mappings[395] = ItemType.RedShulkerBox; + mappings[396] = ItemType.BlackShulkerBox; + mappings[397] = ItemType.WhiteGlazedTerracotta; + mappings[398] = ItemType.OrangeGlazedTerracotta; + mappings[399] = ItemType.MagentaGlazedTerracotta; + mappings[400] = ItemType.LightBlueGlazedTerracotta; + mappings[401] = ItemType.YellowGlazedTerracotta; + mappings[402] = ItemType.LimeGlazedTerracotta; + mappings[403] = ItemType.PinkGlazedTerracotta; + mappings[404] = ItemType.GrayGlazedTerracotta; + mappings[405] = ItemType.LightGrayGlazedTerracotta; + mappings[406] = ItemType.CyanGlazedTerracotta; + mappings[407] = ItemType.PurpleGlazedTerracotta; + mappings[408] = ItemType.BlueGlazedTerracotta; + mappings[409] = ItemType.BrownGlazedTerracotta; + mappings[410] = ItemType.GreenGlazedTerracotta; + mappings[411] = ItemType.RedGlazedTerracotta; + mappings[412] = ItemType.BlackGlazedTerracotta; + mappings[413] = ItemType.WhiteConcrete; + mappings[414] = ItemType.OrangeConcrete; + mappings[415] = ItemType.MagentaConcrete; + mappings[416] = ItemType.LightBlueConcrete; + mappings[417] = ItemType.YellowConcrete; + mappings[418] = ItemType.LimeConcrete; + mappings[419] = ItemType.PinkConcrete; + mappings[420] = ItemType.GrayConcrete; + mappings[421] = ItemType.LightGrayConcrete; + mappings[422] = ItemType.CyanConcrete; + mappings[423] = ItemType.PurpleConcrete; + mappings[424] = ItemType.BlueConcrete; + mappings[425] = ItemType.BrownConcrete; + mappings[426] = ItemType.GreenConcrete; + mappings[427] = ItemType.RedConcrete; + mappings[428] = ItemType.BlackConcrete; + mappings[429] = ItemType.WhiteConcretePowder; + mappings[430] = ItemType.OrangeConcretePowder; + mappings[431] = ItemType.MagentaConcretePowder; + mappings[432] = ItemType.LightBlueConcretePowder; + mappings[433] = ItemType.YellowConcretePowder; + mappings[434] = ItemType.LimeConcretePowder; + mappings[435] = ItemType.PinkConcretePowder; + mappings[436] = ItemType.GrayConcretePowder; + mappings[437] = ItemType.LightGrayConcretePowder; + mappings[438] = ItemType.CyanConcretePowder; + mappings[439] = ItemType.PurpleConcretePowder; + mappings[440] = ItemType.BlueConcretePowder; + mappings[441] = ItemType.BrownConcretePowder; + mappings[442] = ItemType.GreenConcretePowder; + mappings[443] = ItemType.RedConcretePowder; + mappings[444] = ItemType.BlackConcretePowder; + mappings[445] = ItemType.TurtleEgg; + mappings[446] = ItemType.DeadTubeCoralBlock; + mappings[447] = ItemType.DeadBrainCoralBlock; + mappings[448] = ItemType.DeadBubbleCoralBlock; + mappings[449] = ItemType.DeadFireCoralBlock; + mappings[450] = ItemType.DeadHornCoralBlock; + mappings[451] = ItemType.TubeCoralBlock; + mappings[452] = ItemType.BrainCoralBlock; + mappings[453] = ItemType.BubbleCoralBlock; + mappings[454] = ItemType.FireCoralBlock; + mappings[455] = ItemType.HornCoralBlock; + mappings[456] = ItemType.TubeCoral; + mappings[457] = ItemType.BrainCoral; + mappings[458] = ItemType.BubbleCoral; + mappings[459] = ItemType.FireCoral; + mappings[460] = ItemType.HornCoral; + mappings[461] = ItemType.DeadBrainCoral; + mappings[462] = ItemType.DeadBubbleCoral; + mappings[463] = ItemType.DeadFireCoral; + mappings[464] = ItemType.DeadHornCoral; + mappings[465] = ItemType.DeadTubeCoral; + mappings[466] = ItemType.TubeCoralFan; + mappings[467] = ItemType.BrainCoralFan; + mappings[468] = ItemType.BubbleCoralFan; + mappings[469] = ItemType.FireCoralFan; + mappings[470] = ItemType.HornCoralFan; + mappings[471] = ItemType.DeadTubeCoralFan; + mappings[472] = ItemType.DeadBrainCoralFan; + mappings[473] = ItemType.DeadBubbleCoralFan; + mappings[474] = ItemType.DeadFireCoralFan; + mappings[475] = ItemType.DeadHornCoralFan; + mappings[476] = ItemType.BlueIce; + mappings[477] = ItemType.Conduit; + mappings[478] = ItemType.PolishedGraniteStairs; + mappings[479] = ItemType.SmoothRedSandstoneStairs; + mappings[480] = ItemType.MossyStoneBrickStairs; + mappings[481] = ItemType.PolishedDioriteStairs; + mappings[482] = ItemType.MossyCobblestoneStairs; + mappings[483] = ItemType.EndStoneBrickStairs; + mappings[484] = ItemType.StoneStairs; + mappings[485] = ItemType.SmoothSandstoneStairs; + mappings[486] = ItemType.SmoothQuartzStairs; + mappings[487] = ItemType.GraniteStairs; + mappings[488] = ItemType.AndesiteStairs; + mappings[489] = ItemType.RedNetherBrickStairs; + mappings[490] = ItemType.PolishedAndesiteStairs; + mappings[491] = ItemType.DioriteStairs; + mappings[492] = ItemType.PolishedGraniteSlab; + mappings[493] = ItemType.SmoothRedSandstoneSlab; + mappings[494] = ItemType.MossyStoneBrickSlab; + mappings[495] = ItemType.PolishedDioriteSlab; + mappings[496] = ItemType.MossyCobblestoneSlab; + mappings[497] = ItemType.EndStoneBrickSlab; + mappings[498] = ItemType.SmoothSandstoneSlab; + mappings[499] = ItemType.SmoothQuartzSlab; + mappings[500] = ItemType.GraniteSlab; + mappings[501] = ItemType.AndesiteSlab; + mappings[502] = ItemType.RedNetherBrickSlab; + mappings[503] = ItemType.PolishedAndesiteSlab; + mappings[504] = ItemType.DioriteSlab; + mappings[505] = ItemType.Scaffolding; + mappings[506] = ItemType.IronDoor; + mappings[507] = ItemType.OakDoor; + mappings[508] = ItemType.SpruceDoor; + mappings[509] = ItemType.BirchDoor; + mappings[510] = ItemType.JungleDoor; + mappings[511] = ItemType.AcaciaDoor; + mappings[512] = ItemType.DarkOakDoor; + mappings[513] = ItemType.Repeater; + mappings[514] = ItemType.Comparator; + mappings[515] = ItemType.StructureBlock; + mappings[516] = ItemType.Jigsaw; + mappings[517] = ItemType.Composter; + mappings[518] = ItemType.TurtleHelmet; + mappings[519] = ItemType.Scute; + mappings[520] = ItemType.IronShovel; + mappings[521] = ItemType.IronPickaxe; + mappings[522] = ItemType.IronAxe; + mappings[523] = ItemType.FlintAndSteel; + mappings[524] = ItemType.Apple; + mappings[525] = ItemType.Bow; + mappings[526] = ItemType.Arrow; + mappings[527] = ItemType.Coal; + mappings[528] = ItemType.Charcoal; + mappings[529] = ItemType.Diamond; + mappings[530] = ItemType.IronIngot; + mappings[531] = ItemType.GoldIngot; + mappings[532] = ItemType.IronSword; + mappings[533] = ItemType.WoodenSword; + mappings[534] = ItemType.WoodenShovel; + mappings[535] = ItemType.WoodenPickaxe; + mappings[536] = ItemType.WoodenAxe; + mappings[537] = ItemType.StoneSword; + mappings[538] = ItemType.StoneShovel; + mappings[539] = ItemType.StonePickaxe; + mappings[540] = ItemType.StoneAxe; + mappings[541] = ItemType.DiamondSword; + mappings[542] = ItemType.DiamondShovel; + mappings[543] = ItemType.DiamondPickaxe; + mappings[544] = ItemType.DiamondAxe; + mappings[545] = ItemType.Stick; + mappings[546] = ItemType.Bowl; + mappings[547] = ItemType.MushroomStew; + mappings[548] = ItemType.GoldenSword; + mappings[549] = ItemType.GoldenShovel; + mappings[550] = ItemType.GoldenPickaxe; + mappings[551] = ItemType.GoldenAxe; + mappings[552] = ItemType.String; + mappings[553] = ItemType.Feather; + mappings[554] = ItemType.Gunpowder; + mappings[555] = ItemType.WoodenHoe; + mappings[556] = ItemType.StoneHoe; + mappings[557] = ItemType.IronHoe; + mappings[558] = ItemType.DiamondHoe; + mappings[559] = ItemType.GoldenHoe; + mappings[560] = ItemType.WheatSeeds; + mappings[561] = ItemType.Wheat; + mappings[562] = ItemType.Bread; + mappings[563] = ItemType.LeatherHelmet; + mappings[564] = ItemType.LeatherChestplate; + mappings[565] = ItemType.LeatherLeggings; + mappings[566] = ItemType.LeatherBoots; + mappings[567] = ItemType.ChainmailHelmet; + mappings[568] = ItemType.ChainmailChestplate; + mappings[569] = ItemType.ChainmailLeggings; + mappings[570] = ItemType.ChainmailBoots; + mappings[571] = ItemType.IronHelmet; + mappings[572] = ItemType.IronChestplate; + mappings[573] = ItemType.IronLeggings; + mappings[574] = ItemType.IronBoots; + mappings[575] = ItemType.DiamondHelmet; + mappings[576] = ItemType.DiamondChestplate; + mappings[577] = ItemType.DiamondLeggings; + mappings[578] = ItemType.DiamondBoots; + mappings[579] = ItemType.GoldenHelmet; + mappings[580] = ItemType.GoldenChestplate; + mappings[581] = ItemType.GoldenLeggings; + mappings[582] = ItemType.GoldenBoots; + mappings[583] = ItemType.Flint; + mappings[584] = ItemType.Porkchop; + mappings[585] = ItemType.CookedPorkchop; + mappings[586] = ItemType.Painting; + mappings[587] = ItemType.GoldenApple; + mappings[588] = ItemType.EnchantedGoldenApple; + mappings[589] = ItemType.OakSign; + mappings[590] = ItemType.SpruceSign; + mappings[591] = ItemType.BirchSign; + mappings[592] = ItemType.JungleSign; + mappings[593] = ItemType.AcaciaSign; + mappings[594] = ItemType.DarkOakSign; + mappings[595] = ItemType.Bucket; + mappings[596] = ItemType.WaterBucket; + mappings[597] = ItemType.LavaBucket; + mappings[598] = ItemType.Minecart; + mappings[599] = ItemType.Saddle; + mappings[600] = ItemType.Redstone; + mappings[601] = ItemType.Snowball; + mappings[602] = ItemType.OakBoat; + mappings[603] = ItemType.Leather; + mappings[604] = ItemType.MilkBucket; + mappings[605] = ItemType.PufferfishBucket; + mappings[606] = ItemType.SalmonBucket; + mappings[607] = ItemType.CodBucket; + mappings[608] = ItemType.TropicalFishBucket; + mappings[609] = ItemType.Brick; + mappings[610] = ItemType.ClayBall; + mappings[611] = ItemType.SugarCane; + mappings[612] = ItemType.Kelp; + mappings[613] = ItemType.DriedKelpBlock; + mappings[614] = ItemType.Bamboo; + mappings[615] = ItemType.Paper; + mappings[616] = ItemType.Book; + mappings[617] = ItemType.SlimeBall; + mappings[618] = ItemType.ChestMinecart; + mappings[619] = ItemType.FurnaceMinecart; + mappings[620] = ItemType.Egg; + mappings[621] = ItemType.Compass; + mappings[622] = ItemType.FishingRod; + mappings[623] = ItemType.Clock; + mappings[624] = ItemType.GlowstoneDust; + mappings[625] = ItemType.Cod; + mappings[626] = ItemType.Salmon; + mappings[627] = ItemType.TropicalFish; + mappings[628] = ItemType.Pufferfish; + mappings[629] = ItemType.CookedCod; + mappings[630] = ItemType.CookedSalmon; + mappings[631] = ItemType.InkSac; + mappings[632] = ItemType.RedDye; + mappings[633] = ItemType.GreenDye; + mappings[634] = ItemType.CocoaBeans; + mappings[635] = ItemType.LapisLazuli; + mappings[636] = ItemType.PurpleDye; + mappings[637] = ItemType.CyanDye; + mappings[638] = ItemType.LightGrayDye; + mappings[639] = ItemType.GrayDye; + mappings[640] = ItemType.PinkDye; + mappings[641] = ItemType.LimeDye; + mappings[642] = ItemType.YellowDye; + mappings[643] = ItemType.LightBlueDye; + mappings[644] = ItemType.MagentaDye; + mappings[645] = ItemType.OrangeDye; + mappings[646] = ItemType.BoneMeal; + mappings[647] = ItemType.BlueDye; + mappings[648] = ItemType.BrownDye; + mappings[649] = ItemType.BlackDye; + mappings[650] = ItemType.WhiteDye; + mappings[651] = ItemType.Bone; + mappings[652] = ItemType.Sugar; + mappings[653] = ItemType.Cake; + mappings[654] = ItemType.WhiteBed; + mappings[655] = ItemType.OrangeBed; + mappings[656] = ItemType.MagentaBed; + mappings[657] = ItemType.LightBlueBed; + mappings[658] = ItemType.YellowBed; + mappings[659] = ItemType.LimeBed; + mappings[660] = ItemType.PinkBed; + mappings[661] = ItemType.GrayBed; + mappings[662] = ItemType.LightGrayBed; + mappings[663] = ItemType.CyanBed; + mappings[664] = ItemType.PurpleBed; + mappings[665] = ItemType.BlueBed; + mappings[666] = ItemType.BrownBed; + mappings[667] = ItemType.GreenBed; + mappings[668] = ItemType.RedBed; + mappings[669] = ItemType.BlackBed; + mappings[670] = ItemType.Cookie; + mappings[671] = ItemType.FilledMap; + mappings[672] = ItemType.Shears; + mappings[673] = ItemType.MelonSlice; + mappings[674] = ItemType.DriedKelp; + mappings[675] = ItemType.PumpkinSeeds; + mappings[676] = ItemType.MelonSeeds; + mappings[677] = ItemType.Beef; + mappings[678] = ItemType.CookedBeef; + mappings[679] = ItemType.Chicken; + mappings[680] = ItemType.CookedChicken; + mappings[681] = ItemType.RottenFlesh; + mappings[682] = ItemType.EnderPearl; + mappings[683] = ItemType.BlazeRod; + mappings[684] = ItemType.GhastTear; + mappings[685] = ItemType.GoldNugget; + mappings[686] = ItemType.NetherWart; + mappings[687] = ItemType.Potion; + mappings[688] = ItemType.GlassBottle; + mappings[689] = ItemType.SpiderEye; + mappings[690] = ItemType.FermentedSpiderEye; + mappings[691] = ItemType.BlazePowder; + mappings[692] = ItemType.MagmaCream; + mappings[693] = ItemType.BrewingStand; + mappings[694] = ItemType.Cauldron; + mappings[695] = ItemType.EnderEye; + mappings[696] = ItemType.GlisteringMelonSlice; + mappings[697] = ItemType.BatSpawnEgg; + mappings[698] = ItemType.BeeSpawnEgg; + mappings[699] = ItemType.BlazeSpawnEgg; + mappings[700] = ItemType.CatSpawnEgg; + mappings[701] = ItemType.CaveSpiderSpawnEgg; + mappings[702] = ItemType.ChickenSpawnEgg; + mappings[703] = ItemType.CodSpawnEgg; + mappings[704] = ItemType.CowSpawnEgg; + mappings[705] = ItemType.CreeperSpawnEgg; + mappings[706] = ItemType.DolphinSpawnEgg; + mappings[707] = ItemType.DonkeySpawnEgg; + mappings[708] = ItemType.DrownedSpawnEgg; + mappings[709] = ItemType.ElderGuardianSpawnEgg; + mappings[710] = ItemType.EndermanSpawnEgg; + mappings[711] = ItemType.EndermiteSpawnEgg; + mappings[712] = ItemType.EvokerSpawnEgg; + mappings[713] = ItemType.FoxSpawnEgg; + mappings[714] = ItemType.GhastSpawnEgg; + mappings[715] = ItemType.GuardianSpawnEgg; + mappings[716] = ItemType.HorseSpawnEgg; + mappings[717] = ItemType.HuskSpawnEgg; + mappings[718] = ItemType.LlamaSpawnEgg; + mappings[719] = ItemType.MagmaCubeSpawnEgg; + mappings[720] = ItemType.MooshroomSpawnEgg; + mappings[721] = ItemType.MuleSpawnEgg; + mappings[722] = ItemType.OcelotSpawnEgg; + mappings[723] = ItemType.PandaSpawnEgg; + mappings[724] = ItemType.ParrotSpawnEgg; + mappings[725] = ItemType.PhantomSpawnEgg; + mappings[726] = ItemType.PigSpawnEgg; + mappings[727] = ItemType.PillagerSpawnEgg; + mappings[728] = ItemType.PolarBearSpawnEgg; + mappings[729] = ItemType.PufferfishSpawnEgg; + mappings[730] = ItemType.RabbitSpawnEgg; + mappings[731] = ItemType.RavagerSpawnEgg; + mappings[732] = ItemType.SalmonSpawnEgg; + mappings[733] = ItemType.SheepSpawnEgg; + mappings[734] = ItemType.ShulkerSpawnEgg; + mappings[735] = ItemType.SilverfishSpawnEgg; + mappings[736] = ItemType.SkeletonSpawnEgg; + mappings[737] = ItemType.SkeletonHorseSpawnEgg; + mappings[738] = ItemType.SlimeSpawnEgg; + mappings[739] = ItemType.SpiderSpawnEgg; + mappings[740] = ItemType.SquidSpawnEgg; + mappings[741] = ItemType.StraySpawnEgg; + mappings[742] = ItemType.TraderLlamaSpawnEgg; + mappings[743] = ItemType.TropicalFishSpawnEgg; + mappings[744] = ItemType.TurtleSpawnEgg; + mappings[745] = ItemType.VexSpawnEgg; + mappings[746] = ItemType.VillagerSpawnEgg; + mappings[747] = ItemType.VindicatorSpawnEgg; + mappings[748] = ItemType.WanderingTraderSpawnEgg; + mappings[749] = ItemType.WitchSpawnEgg; + mappings[750] = ItemType.WitherSkeletonSpawnEgg; + mappings[751] = ItemType.WolfSpawnEgg; + mappings[752] = ItemType.ZombieSpawnEgg; + mappings[753] = ItemType.ZombieHorseSpawnEgg; + mappings[754] = ItemType.ZombifiedPiglinSpawnEgg; + mappings[755] = ItemType.ZombieVillagerSpawnEgg; + mappings[756] = ItemType.ExperienceBottle; + mappings[757] = ItemType.FireCharge; + mappings[758] = ItemType.WritableBook; + mappings[759] = ItemType.WrittenBook; + mappings[760] = ItemType.Emerald; + mappings[761] = ItemType.ItemFrame; + mappings[762] = ItemType.FlowerPot; + mappings[763] = ItemType.Carrot; + mappings[764] = ItemType.Potato; + mappings[765] = ItemType.BakedPotato; + mappings[766] = ItemType.PoisonousPotato; + mappings[767] = ItemType.Map; + mappings[768] = ItemType.GoldenCarrot; + mappings[769] = ItemType.SkeletonSkull; + mappings[770] = ItemType.WitherSkeletonSkull; + mappings[771] = ItemType.PlayerHead; + mappings[772] = ItemType.ZombieHead; + mappings[773] = ItemType.CreeperHead; + mappings[774] = ItemType.DragonHead; + mappings[775] = ItemType.CarrotOnAStick; + mappings[776] = ItemType.NetherStar; + mappings[777] = ItemType.PumpkinPie; + mappings[778] = ItemType.FireworkRocket; + mappings[779] = ItemType.FireworkStar; + mappings[780] = ItemType.EnchantedBook; + mappings[781] = ItemType.NetherBrick; + mappings[782] = ItemType.Quartz; + mappings[783] = ItemType.TntMinecart; + mappings[784] = ItemType.HopperMinecart; + mappings[785] = ItemType.PrismarineShard; + mappings[786] = ItemType.PrismarineCrystals; + mappings[787] = ItemType.Rabbit; + mappings[788] = ItemType.CookedRabbit; + mappings[789] = ItemType.RabbitStew; + mappings[790] = ItemType.RabbitFoot; + mappings[791] = ItemType.RabbitHide; + mappings[792] = ItemType.ArmorStand; + mappings[793] = ItemType.IronHorseArmor; + mappings[794] = ItemType.GoldenHorseArmor; + mappings[795] = ItemType.DiamondHorseArmor; + mappings[796] = ItemType.LeatherHorseArmor; + mappings[797] = ItemType.Lead; + mappings[798] = ItemType.NameTag; + mappings[799] = ItemType.CommandBlockMinecart; + mappings[800] = ItemType.Mutton; + mappings[801] = ItemType.CookedMutton; + mappings[802] = ItemType.WhiteBanner; + mappings[803] = ItemType.OrangeBanner; + mappings[804] = ItemType.MagentaBanner; + mappings[805] = ItemType.LightBlueBanner; + mappings[806] = ItemType.YellowBanner; + mappings[807] = ItemType.LimeBanner; + mappings[808] = ItemType.PinkBanner; + mappings[809] = ItemType.GrayBanner; + mappings[810] = ItemType.LightGrayBanner; + mappings[811] = ItemType.CyanBanner; + mappings[812] = ItemType.PurpleBanner; + mappings[813] = ItemType.BlueBanner; + mappings[814] = ItemType.BrownBanner; + mappings[815] = ItemType.GreenBanner; + mappings[816] = ItemType.RedBanner; + mappings[817] = ItemType.BlackBanner; + mappings[818] = ItemType.EndCrystal; + mappings[819] = ItemType.ChorusFruit; + mappings[820] = ItemType.PoppedChorusFruit; + mappings[821] = ItemType.Beetroot; + mappings[822] = ItemType.BeetrootSeeds; + mappings[823] = ItemType.BeetrootSoup; + mappings[824] = ItemType.DragonBreath; + mappings[825] = ItemType.SplashPotion; + mappings[826] = ItemType.SpectralArrow; + mappings[827] = ItemType.TippedArrow; + mappings[828] = ItemType.LingeringPotion; + mappings[829] = ItemType.Shield; + mappings[830] = ItemType.Elytra; + mappings[831] = ItemType.SpruceBoat; + mappings[832] = ItemType.BirchBoat; + mappings[833] = ItemType.JungleBoat; + mappings[834] = ItemType.AcaciaBoat; + mappings[835] = ItemType.DarkOakBoat; + mappings[836] = ItemType.TotemOfUndying; + mappings[837] = ItemType.ShulkerShell; + mappings[838] = ItemType.IronNugget; + mappings[839] = ItemType.KnowledgeBook; + mappings[840] = ItemType.DebugStick; + mappings[841] = ItemType.MusicDisc13; + mappings[842] = ItemType.MusicDiscCat; + mappings[843] = ItemType.MusicDiscBlocks; + mappings[844] = ItemType.MusicDiscChirp; + mappings[845] = ItemType.MusicDiscFar; + mappings[846] = ItemType.MusicDiscMall; + mappings[847] = ItemType.MusicDiscMellohi; + mappings[848] = ItemType.MusicDiscStal; + mappings[849] = ItemType.MusicDiscStrad; + mappings[850] = ItemType.MusicDiscWard; + mappings[851] = ItemType.MusicDisc11; + mappings[852] = ItemType.MusicDiscWait; + mappings[853] = ItemType.Trident; + mappings[854] = ItemType.PhantomMembrane; + mappings[855] = ItemType.NautilusShell; + mappings[856] = ItemType.HeartOfTheSea; + mappings[857] = ItemType.Crossbow; + mappings[858] = ItemType.SuspiciousStew; + mappings[859] = ItemType.Loom; + mappings[860] = ItemType.FlowerBannerPattern; + mappings[861] = ItemType.CreeperBannerPattern; + mappings[862] = ItemType.SkullBannerPattern; + mappings[863] = ItemType.MojangBannerPattern; + mappings[864] = ItemType.GlobeBannerPattern; + mappings[865] = ItemType.Barrel; + mappings[866] = ItemType.Smoker; + mappings[867] = ItemType.BlastFurnace; + mappings[868] = ItemType.CartographyTable; + mappings[869] = ItemType.FletchingTable; + mappings[870] = ItemType.Grindstone; + mappings[871] = ItemType.Lectern; + mappings[872] = ItemType.SmithingTable; + mappings[873] = ItemType.Stonecutter; + mappings[874] = ItemType.Bell; + mappings[875] = ItemType.Lantern; + mappings[876] = ItemType.SweetBerries; + mappings[877] = ItemType.Campfire; + mappings[878] = ItemType.Honeycomb; + mappings[879] = ItemType.BeeNest; + mappings[880] = ItemType.Beehive; + mappings[881] = ItemType.HoneyBottle; + mappings[882] = ItemType.HoneyBlock; + mappings[883] = ItemType.HoneycombBlock; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette1161.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1161.cs new file mode 100644 index 00000000..c077afb2 --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1161.cs @@ -0,0 +1,998 @@ +using System; +using System.Collections.Generic; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + /// + /// For MC 1.16 - 1.16.1 + /// Generated by ItemPaletteGenerator.cs + /// + public class ItemPalette1161 : ItemPalette + { + private static Dictionary mappings = new Dictionary(); + + static ItemPalette1161() + { + mappings[0] = ItemType.Air; + mappings[1] = ItemType.Stone; + mappings[2] = ItemType.Granite; + mappings[3] = ItemType.PolishedGranite; + mappings[4] = ItemType.Diorite; + mappings[5] = ItemType.PolishedDiorite; + mappings[6] = ItemType.Andesite; + mappings[7] = ItemType.PolishedAndesite; + mappings[8] = ItemType.GrassBlock; + mappings[9] = ItemType.Dirt; + mappings[10] = ItemType.CoarseDirt; + mappings[11] = ItemType.Podzol; + mappings[12] = ItemType.CrimsonNylium; + mappings[13] = ItemType.WarpedNylium; + mappings[14] = ItemType.Cobblestone; + mappings[15] = ItemType.OakPlanks; + mappings[16] = ItemType.SprucePlanks; + mappings[17] = ItemType.BirchPlanks; + mappings[18] = ItemType.JunglePlanks; + mappings[19] = ItemType.AcaciaPlanks; + mappings[20] = ItemType.DarkOakPlanks; + mappings[21] = ItemType.CrimsonPlanks; + mappings[22] = ItemType.WarpedPlanks; + mappings[23] = ItemType.OakSapling; + mappings[24] = ItemType.SpruceSapling; + mappings[25] = ItemType.BirchSapling; + mappings[26] = ItemType.JungleSapling; + mappings[27] = ItemType.AcaciaSapling; + mappings[28] = ItemType.DarkOakSapling; + mappings[29] = ItemType.Bedrock; + mappings[30] = ItemType.Sand; + mappings[31] = ItemType.RedSand; + mappings[32] = ItemType.Gravel; + mappings[33] = ItemType.GoldOre; + mappings[34] = ItemType.IronOre; + mappings[35] = ItemType.CoalOre; + mappings[36] = ItemType.NetherGoldOre; + mappings[37] = ItemType.OakLog; + mappings[38] = ItemType.SpruceLog; + mappings[39] = ItemType.BirchLog; + mappings[40] = ItemType.JungleLog; + mappings[41] = ItemType.AcaciaLog; + mappings[42] = ItemType.DarkOakLog; + mappings[43] = ItemType.CrimsonStem; + mappings[44] = ItemType.WarpedStem; + mappings[45] = ItemType.StrippedOakLog; + mappings[46] = ItemType.StrippedSpruceLog; + mappings[47] = ItemType.StrippedBirchLog; + mappings[48] = ItemType.StrippedJungleLog; + mappings[49] = ItemType.StrippedAcaciaLog; + mappings[50] = ItemType.StrippedDarkOakLog; + mappings[51] = ItemType.StrippedCrimsonStem; + mappings[52] = ItemType.StrippedWarpedStem; + mappings[53] = ItemType.StrippedOakWood; + mappings[54] = ItemType.StrippedSpruceWood; + mappings[55] = ItemType.StrippedBirchWood; + mappings[56] = ItemType.StrippedJungleWood; + mappings[57] = ItemType.StrippedAcaciaWood; + mappings[58] = ItemType.StrippedDarkOakWood; + mappings[59] = ItemType.StrippedCrimsonHyphae; + mappings[60] = ItemType.StrippedWarpedHyphae; + mappings[61] = ItemType.OakWood; + mappings[62] = ItemType.SpruceWood; + mappings[63] = ItemType.BirchWood; + mappings[64] = ItemType.JungleWood; + mappings[65] = ItemType.AcaciaWood; + mappings[66] = ItemType.DarkOakWood; + mappings[67] = ItemType.CrimsonHyphae; + mappings[68] = ItemType.WarpedHyphae; + mappings[69] = ItemType.OakLeaves; + mappings[70] = ItemType.SpruceLeaves; + mappings[71] = ItemType.BirchLeaves; + mappings[72] = ItemType.JungleLeaves; + mappings[73] = ItemType.AcaciaLeaves; + mappings[74] = ItemType.DarkOakLeaves; + mappings[75] = ItemType.Sponge; + mappings[76] = ItemType.WetSponge; + mappings[77] = ItemType.Glass; + mappings[78] = ItemType.LapisOre; + mappings[79] = ItemType.LapisBlock; + mappings[80] = ItemType.Dispenser; + mappings[81] = ItemType.Sandstone; + mappings[82] = ItemType.ChiseledSandstone; + mappings[83] = ItemType.CutSandstone; + mappings[84] = ItemType.NoteBlock; + mappings[85] = ItemType.PoweredRail; + mappings[86] = ItemType.DetectorRail; + mappings[87] = ItemType.StickyPiston; + mappings[88] = ItemType.Cobweb; + mappings[89] = ItemType.Grass; + mappings[90] = ItemType.Fern; + mappings[91] = ItemType.DeadBush; + mappings[92] = ItemType.Seagrass; + mappings[93] = ItemType.SeaPickle; + mappings[94] = ItemType.Piston; + mappings[95] = ItemType.WhiteWool; + mappings[96] = ItemType.OrangeWool; + mappings[97] = ItemType.MagentaWool; + mappings[98] = ItemType.LightBlueWool; + mappings[99] = ItemType.YellowWool; + mappings[100] = ItemType.LimeWool; + mappings[101] = ItemType.PinkWool; + mappings[102] = ItemType.GrayWool; + mappings[103] = ItemType.LightGrayWool; + mappings[104] = ItemType.CyanWool; + mappings[105] = ItemType.PurpleWool; + mappings[106] = ItemType.BlueWool; + mappings[107] = ItemType.BrownWool; + mappings[108] = ItemType.GreenWool; + mappings[109] = ItemType.RedWool; + mappings[110] = ItemType.BlackWool; + mappings[111] = ItemType.Dandelion; + mappings[112] = ItemType.Poppy; + mappings[113] = ItemType.BlueOrchid; + mappings[114] = ItemType.Allium; + mappings[115] = ItemType.AzureBluet; + mappings[116] = ItemType.RedTulip; + mappings[117] = ItemType.OrangeTulip; + mappings[118] = ItemType.WhiteTulip; + mappings[119] = ItemType.PinkTulip; + mappings[120] = ItemType.OxeyeDaisy; + mappings[121] = ItemType.Cornflower; + mappings[122] = ItemType.LilyOfTheValley; + mappings[123] = ItemType.WitherRose; + mappings[124] = ItemType.BrownMushroom; + mappings[125] = ItemType.RedMushroom; + mappings[126] = ItemType.CrimsonFungus; + mappings[127] = ItemType.WarpedFungus; + mappings[128] = ItemType.CrimsonRoots; + mappings[129] = ItemType.WarpedRoots; + mappings[130] = ItemType.NetherSprouts; + mappings[131] = ItemType.WeepingVines; + mappings[132] = ItemType.TwistingVines; + mappings[133] = ItemType.SugarCane; + mappings[134] = ItemType.Kelp; + mappings[135] = ItemType.Bamboo; + mappings[136] = ItemType.GoldBlock; + mappings[137] = ItemType.IronBlock; + mappings[138] = ItemType.OakSlab; + mappings[139] = ItemType.SpruceSlab; + mappings[140] = ItemType.BirchSlab; + mappings[141] = ItemType.JungleSlab; + mappings[142] = ItemType.AcaciaSlab; + mappings[143] = ItemType.DarkOakSlab; + mappings[144] = ItemType.CrimsonSlab; + mappings[145] = ItemType.WarpedSlab; + mappings[146] = ItemType.StoneSlab; + mappings[147] = ItemType.SmoothStoneSlab; + mappings[148] = ItemType.SandstoneSlab; + mappings[149] = ItemType.CutSandstoneSlab; + mappings[150] = ItemType.PetrifiedOakSlab; + mappings[151] = ItemType.CobblestoneSlab; + mappings[152] = ItemType.BrickSlab; + mappings[153] = ItemType.StoneBrickSlab; + mappings[154] = ItemType.NetherBrickSlab; + mappings[155] = ItemType.QuartzSlab; + mappings[156] = ItemType.RedSandstoneSlab; + mappings[157] = ItemType.CutRedSandstoneSlab; + mappings[158] = ItemType.PurpurSlab; + mappings[159] = ItemType.PrismarineSlab; + mappings[160] = ItemType.PrismarineBrickSlab; + mappings[161] = ItemType.DarkPrismarineSlab; + mappings[162] = ItemType.SmoothQuartz; + mappings[163] = ItemType.SmoothRedSandstone; + mappings[164] = ItemType.SmoothSandstone; + mappings[165] = ItemType.SmoothStone; + mappings[166] = ItemType.Bricks; + mappings[167] = ItemType.Tnt; + mappings[168] = ItemType.Bookshelf; + mappings[169] = ItemType.MossyCobblestone; + mappings[170] = ItemType.Obsidian; + mappings[171] = ItemType.Torch; + mappings[172] = ItemType.EndRod; + mappings[173] = ItemType.ChorusPlant; + mappings[174] = ItemType.ChorusFlower; + mappings[175] = ItemType.PurpurBlock; + mappings[176] = ItemType.PurpurPillar; + mappings[177] = ItemType.PurpurStairs; + mappings[178] = ItemType.Spawner; + mappings[179] = ItemType.OakStairs; + mappings[180] = ItemType.Chest; + mappings[181] = ItemType.DiamondOre; + mappings[182] = ItemType.DiamondBlock; + mappings[183] = ItemType.CraftingTable; + mappings[184] = ItemType.Farmland; + mappings[185] = ItemType.Furnace; + mappings[186] = ItemType.Ladder; + mappings[187] = ItemType.Rail; + mappings[188] = ItemType.CobblestoneStairs; + mappings[189] = ItemType.Lever; + mappings[190] = ItemType.StonePressurePlate; + mappings[191] = ItemType.OakPressurePlate; + mappings[192] = ItemType.SprucePressurePlate; + mappings[193] = ItemType.BirchPressurePlate; + mappings[194] = ItemType.JunglePressurePlate; + mappings[195] = ItemType.AcaciaPressurePlate; + mappings[196] = ItemType.DarkOakPressurePlate; + mappings[197] = ItemType.CrimsonPressurePlate; + mappings[198] = ItemType.WarpedPressurePlate; + mappings[199] = ItemType.PolishedBlackstonePressurePlate; + mappings[200] = ItemType.RedstoneOre; + mappings[201] = ItemType.RedstoneTorch; + mappings[202] = ItemType.Snow; + mappings[203] = ItemType.Ice; + mappings[204] = ItemType.SnowBlock; + mappings[205] = ItemType.Cactus; + mappings[206] = ItemType.Clay; + mappings[207] = ItemType.Jukebox; + mappings[208] = ItemType.OakFence; + mappings[209] = ItemType.SpruceFence; + mappings[210] = ItemType.BirchFence; + mappings[211] = ItemType.JungleFence; + mappings[212] = ItemType.AcaciaFence; + mappings[213] = ItemType.DarkOakFence; + mappings[214] = ItemType.CrimsonFence; + mappings[215] = ItemType.WarpedFence; + mappings[216] = ItemType.Pumpkin; + mappings[217] = ItemType.CarvedPumpkin; + mappings[218] = ItemType.Netherrack; + mappings[219] = ItemType.SoulSand; + mappings[220] = ItemType.SoulSoil; + mappings[221] = ItemType.Basalt; + mappings[222] = ItemType.PolishedBasalt; + mappings[223] = ItemType.SoulTorch; + mappings[224] = ItemType.Glowstone; + mappings[225] = ItemType.JackOLantern; + mappings[226] = ItemType.OakTrapdoor; + mappings[227] = ItemType.SpruceTrapdoor; + mappings[228] = ItemType.BirchTrapdoor; + mappings[229] = ItemType.JungleTrapdoor; + mappings[230] = ItemType.AcaciaTrapdoor; + mappings[231] = ItemType.DarkOakTrapdoor; + mappings[232] = ItemType.CrimsonTrapdoor; + mappings[233] = ItemType.WarpedTrapdoor; + mappings[234] = ItemType.InfestedStone; + mappings[235] = ItemType.InfestedCobblestone; + mappings[236] = ItemType.InfestedStoneBricks; + mappings[237] = ItemType.InfestedMossyStoneBricks; + mappings[238] = ItemType.InfestedCrackedStoneBricks; + mappings[239] = ItemType.InfestedChiseledStoneBricks; + mappings[240] = ItemType.StoneBricks; + mappings[241] = ItemType.MossyStoneBricks; + mappings[242] = ItemType.CrackedStoneBricks; + mappings[243] = ItemType.ChiseledStoneBricks; + mappings[244] = ItemType.BrownMushroomBlock; + mappings[245] = ItemType.RedMushroomBlock; + mappings[246] = ItemType.MushroomStem; + mappings[247] = ItemType.IronBars; + mappings[248] = ItemType.Chain; + mappings[249] = ItemType.GlassPane; + mappings[250] = ItemType.Melon; + mappings[251] = ItemType.Vine; + mappings[252] = ItemType.OakFenceGate; + mappings[253] = ItemType.SpruceFenceGate; + mappings[254] = ItemType.BirchFenceGate; + mappings[255] = ItemType.JungleFenceGate; + mappings[256] = ItemType.AcaciaFenceGate; + mappings[257] = ItemType.DarkOakFenceGate; + mappings[258] = ItemType.CrimsonFenceGate; + mappings[259] = ItemType.WarpedFenceGate; + mappings[260] = ItemType.BrickStairs; + mappings[261] = ItemType.StoneBrickStairs; + mappings[262] = ItemType.Mycelium; + mappings[263] = ItemType.LilyPad; + mappings[264] = ItemType.NetherBricks; + mappings[265] = ItemType.CrackedNetherBricks; + mappings[266] = ItemType.ChiseledNetherBricks; + mappings[267] = ItemType.NetherBrickFence; + mappings[268] = ItemType.NetherBrickStairs; + mappings[269] = ItemType.EnchantingTable; + mappings[270] = ItemType.EndPortalFrame; + mappings[271] = ItemType.EndStone; + mappings[272] = ItemType.EndStoneBricks; + mappings[273] = ItemType.DragonEgg; + mappings[274] = ItemType.RedstoneLamp; + mappings[275] = ItemType.SandstoneStairs; + mappings[276] = ItemType.EmeraldOre; + mappings[277] = ItemType.EnderChest; + mappings[278] = ItemType.TripwireHook; + mappings[279] = ItemType.EmeraldBlock; + mappings[280] = ItemType.SpruceStairs; + mappings[281] = ItemType.BirchStairs; + mappings[282] = ItemType.JungleStairs; + mappings[283] = ItemType.CrimsonStairs; + mappings[284] = ItemType.WarpedStairs; + mappings[285] = ItemType.CommandBlock; + mappings[286] = ItemType.Beacon; + mappings[287] = ItemType.CobblestoneWall; + mappings[288] = ItemType.MossyCobblestoneWall; + mappings[289] = ItemType.BrickWall; + mappings[290] = ItemType.PrismarineWall; + mappings[291] = ItemType.RedSandstoneWall; + mappings[292] = ItemType.MossyStoneBrickWall; + mappings[293] = ItemType.GraniteWall; + mappings[294] = ItemType.StoneBrickWall; + mappings[295] = ItemType.NetherBrickWall; + mappings[296] = ItemType.AndesiteWall; + mappings[297] = ItemType.RedNetherBrickWall; + mappings[298] = ItemType.SandstoneWall; + mappings[299] = ItemType.EndStoneBrickWall; + mappings[300] = ItemType.DioriteWall; + mappings[301] = ItemType.BlackstoneWall; + mappings[302] = ItemType.PolishedBlackstoneWall; + mappings[303] = ItemType.PolishedBlackstoneBrickWall; + mappings[304] = ItemType.StoneButton; + mappings[305] = ItemType.OakButton; + mappings[306] = ItemType.SpruceButton; + mappings[307] = ItemType.BirchButton; + mappings[308] = ItemType.JungleButton; + mappings[309] = ItemType.AcaciaButton; + mappings[310] = ItemType.DarkOakButton; + mappings[311] = ItemType.CrimsonButton; + mappings[312] = ItemType.WarpedButton; + mappings[313] = ItemType.PolishedBlackstoneButton; + mappings[314] = ItemType.Anvil; + mappings[315] = ItemType.ChippedAnvil; + mappings[316] = ItemType.DamagedAnvil; + mappings[317] = ItemType.TrappedChest; + mappings[318] = ItemType.LightWeightedPressurePlate; + mappings[319] = ItemType.HeavyWeightedPressurePlate; + mappings[320] = ItemType.DaylightDetector; + mappings[321] = ItemType.RedstoneBlock; + mappings[322] = ItemType.NetherQuartzOre; + mappings[323] = ItemType.Hopper; + mappings[324] = ItemType.ChiseledQuartzBlock; + mappings[325] = ItemType.QuartzBlock; + mappings[326] = ItemType.QuartzBricks; + mappings[327] = ItemType.QuartzPillar; + mappings[328] = ItemType.QuartzStairs; + mappings[329] = ItemType.ActivatorRail; + mappings[330] = ItemType.Dropper; + mappings[331] = ItemType.WhiteTerracotta; + mappings[332] = ItemType.OrangeTerracotta; + mappings[333] = ItemType.MagentaTerracotta; + mappings[334] = ItemType.LightBlueTerracotta; + mappings[335] = ItemType.YellowTerracotta; + mappings[336] = ItemType.LimeTerracotta; + mappings[337] = ItemType.PinkTerracotta; + mappings[338] = ItemType.GrayTerracotta; + mappings[339] = ItemType.LightGrayTerracotta; + mappings[340] = ItemType.CyanTerracotta; + mappings[341] = ItemType.PurpleTerracotta; + mappings[342] = ItemType.BlueTerracotta; + mappings[343] = ItemType.BrownTerracotta; + mappings[344] = ItemType.GreenTerracotta; + mappings[345] = ItemType.RedTerracotta; + mappings[346] = ItemType.BlackTerracotta; + mappings[347] = ItemType.Barrier; + mappings[348] = ItemType.IronTrapdoor; + mappings[349] = ItemType.HayBlock; + mappings[350] = ItemType.WhiteCarpet; + mappings[351] = ItemType.OrangeCarpet; + mappings[352] = ItemType.MagentaCarpet; + mappings[353] = ItemType.LightBlueCarpet; + mappings[354] = ItemType.YellowCarpet; + mappings[355] = ItemType.LimeCarpet; + mappings[356] = ItemType.PinkCarpet; + mappings[357] = ItemType.GrayCarpet; + mappings[358] = ItemType.LightGrayCarpet; + mappings[359] = ItemType.CyanCarpet; + mappings[360] = ItemType.PurpleCarpet; + mappings[361] = ItemType.BlueCarpet; + mappings[362] = ItemType.BrownCarpet; + mappings[363] = ItemType.GreenCarpet; + mappings[364] = ItemType.RedCarpet; + mappings[365] = ItemType.BlackCarpet; + mappings[366] = ItemType.Terracotta; + mappings[367] = ItemType.CoalBlock; + mappings[368] = ItemType.PackedIce; + mappings[369] = ItemType.AcaciaStairs; + mappings[370] = ItemType.DarkOakStairs; + mappings[371] = ItemType.SlimeBlock; + mappings[372] = ItemType.GrassPath; + mappings[373] = ItemType.Sunflower; + mappings[374] = ItemType.Lilac; + mappings[375] = ItemType.RoseBush; + mappings[376] = ItemType.Peony; + mappings[377] = ItemType.TallGrass; + mappings[378] = ItemType.LargeFern; + mappings[379] = ItemType.WhiteStainedGlass; + mappings[380] = ItemType.OrangeStainedGlass; + mappings[381] = ItemType.MagentaStainedGlass; + mappings[382] = ItemType.LightBlueStainedGlass; + mappings[383] = ItemType.YellowStainedGlass; + mappings[384] = ItemType.LimeStainedGlass; + mappings[385] = ItemType.PinkStainedGlass; + mappings[386] = ItemType.GrayStainedGlass; + mappings[387] = ItemType.LightGrayStainedGlass; + mappings[388] = ItemType.CyanStainedGlass; + mappings[389] = ItemType.PurpleStainedGlass; + mappings[390] = ItemType.BlueStainedGlass; + mappings[391] = ItemType.BrownStainedGlass; + mappings[392] = ItemType.GreenStainedGlass; + mappings[393] = ItemType.RedStainedGlass; + mappings[394] = ItemType.BlackStainedGlass; + mappings[395] = ItemType.WhiteStainedGlassPane; + mappings[396] = ItemType.OrangeStainedGlassPane; + mappings[397] = ItemType.MagentaStainedGlassPane; + mappings[398] = ItemType.LightBlueStainedGlassPane; + mappings[399] = ItemType.YellowStainedGlassPane; + mappings[400] = ItemType.LimeStainedGlassPane; + mappings[401] = ItemType.PinkStainedGlassPane; + mappings[402] = ItemType.GrayStainedGlassPane; + mappings[403] = ItemType.LightGrayStainedGlassPane; + mappings[404] = ItemType.CyanStainedGlassPane; + mappings[405] = ItemType.PurpleStainedGlassPane; + mappings[406] = ItemType.BlueStainedGlassPane; + mappings[407] = ItemType.BrownStainedGlassPane; + mappings[408] = ItemType.GreenStainedGlassPane; + mappings[409] = ItemType.RedStainedGlassPane; + mappings[410] = ItemType.BlackStainedGlassPane; + mappings[411] = ItemType.Prismarine; + mappings[412] = ItemType.PrismarineBricks; + mappings[413] = ItemType.DarkPrismarine; + mappings[414] = ItemType.PrismarineStairs; + mappings[415] = ItemType.PrismarineBrickStairs; + mappings[416] = ItemType.DarkPrismarineStairs; + mappings[417] = ItemType.SeaLantern; + mappings[418] = ItemType.RedSandstone; + mappings[419] = ItemType.ChiseledRedSandstone; + mappings[420] = ItemType.CutRedSandstone; + mappings[421] = ItemType.RedSandstoneStairs; + mappings[422] = ItemType.RepeatingCommandBlock; + mappings[423] = ItemType.ChainCommandBlock; + mappings[424] = ItemType.MagmaBlock; + mappings[425] = ItemType.NetherWartBlock; + mappings[426] = ItemType.WarpedWartBlock; + mappings[427] = ItemType.RedNetherBricks; + mappings[428] = ItemType.BoneBlock; + mappings[429] = ItemType.StructureVoid; + mappings[430] = ItemType.Observer; + mappings[431] = ItemType.ShulkerBox; + mappings[432] = ItemType.WhiteShulkerBox; + mappings[433] = ItemType.OrangeShulkerBox; + mappings[434] = ItemType.MagentaShulkerBox; + mappings[435] = ItemType.LightBlueShulkerBox; + mappings[436] = ItemType.YellowShulkerBox; + mappings[437] = ItemType.LimeShulkerBox; + mappings[438] = ItemType.PinkShulkerBox; + mappings[439] = ItemType.GrayShulkerBox; + mappings[440] = ItemType.LightGrayShulkerBox; + mappings[441] = ItemType.CyanShulkerBox; + mappings[442] = ItemType.PurpleShulkerBox; + mappings[443] = ItemType.BlueShulkerBox; + mappings[444] = ItemType.BrownShulkerBox; + mappings[445] = ItemType.GreenShulkerBox; + mappings[446] = ItemType.RedShulkerBox; + mappings[447] = ItemType.BlackShulkerBox; + mappings[448] = ItemType.WhiteGlazedTerracotta; + mappings[449] = ItemType.OrangeGlazedTerracotta; + mappings[450] = ItemType.MagentaGlazedTerracotta; + mappings[451] = ItemType.LightBlueGlazedTerracotta; + mappings[452] = ItemType.YellowGlazedTerracotta; + mappings[453] = ItemType.LimeGlazedTerracotta; + mappings[454] = ItemType.PinkGlazedTerracotta; + mappings[455] = ItemType.GrayGlazedTerracotta; + mappings[456] = ItemType.LightGrayGlazedTerracotta; + mappings[457] = ItemType.CyanGlazedTerracotta; + mappings[458] = ItemType.PurpleGlazedTerracotta; + mappings[459] = ItemType.BlueGlazedTerracotta; + mappings[460] = ItemType.BrownGlazedTerracotta; + mappings[461] = ItemType.GreenGlazedTerracotta; + mappings[462] = ItemType.RedGlazedTerracotta; + mappings[463] = ItemType.BlackGlazedTerracotta; + mappings[464] = ItemType.WhiteConcrete; + mappings[465] = ItemType.OrangeConcrete; + mappings[466] = ItemType.MagentaConcrete; + mappings[467] = ItemType.LightBlueConcrete; + mappings[468] = ItemType.YellowConcrete; + mappings[469] = ItemType.LimeConcrete; + mappings[470] = ItemType.PinkConcrete; + mappings[471] = ItemType.GrayConcrete; + mappings[472] = ItemType.LightGrayConcrete; + mappings[473] = ItemType.CyanConcrete; + mappings[474] = ItemType.PurpleConcrete; + mappings[475] = ItemType.BlueConcrete; + mappings[476] = ItemType.BrownConcrete; + mappings[477] = ItemType.GreenConcrete; + mappings[478] = ItemType.RedConcrete; + mappings[479] = ItemType.BlackConcrete; + mappings[480] = ItemType.WhiteConcretePowder; + mappings[481] = ItemType.OrangeConcretePowder; + mappings[482] = ItemType.MagentaConcretePowder; + mappings[483] = ItemType.LightBlueConcretePowder; + mappings[484] = ItemType.YellowConcretePowder; + mappings[485] = ItemType.LimeConcretePowder; + mappings[486] = ItemType.PinkConcretePowder; + mappings[487] = ItemType.GrayConcretePowder; + mappings[488] = ItemType.LightGrayConcretePowder; + mappings[489] = ItemType.CyanConcretePowder; + mappings[490] = ItemType.PurpleConcretePowder; + mappings[491] = ItemType.BlueConcretePowder; + mappings[492] = ItemType.BrownConcretePowder; + mappings[493] = ItemType.GreenConcretePowder; + mappings[494] = ItemType.RedConcretePowder; + mappings[495] = ItemType.BlackConcretePowder; + mappings[496] = ItemType.TurtleEgg; + mappings[497] = ItemType.DeadTubeCoralBlock; + mappings[498] = ItemType.DeadBrainCoralBlock; + mappings[499] = ItemType.DeadBubbleCoralBlock; + mappings[500] = ItemType.DeadFireCoralBlock; + mappings[501] = ItemType.DeadHornCoralBlock; + mappings[502] = ItemType.TubeCoralBlock; + mappings[503] = ItemType.BrainCoralBlock; + mappings[504] = ItemType.BubbleCoralBlock; + mappings[505] = ItemType.FireCoralBlock; + mappings[506] = ItemType.HornCoralBlock; + mappings[507] = ItemType.TubeCoral; + mappings[508] = ItemType.BrainCoral; + mappings[509] = ItemType.BubbleCoral; + mappings[510] = ItemType.FireCoral; + mappings[511] = ItemType.HornCoral; + mappings[512] = ItemType.DeadBrainCoral; + mappings[513] = ItemType.DeadBubbleCoral; + mappings[514] = ItemType.DeadFireCoral; + mappings[515] = ItemType.DeadHornCoral; + mappings[516] = ItemType.DeadTubeCoral; + mappings[517] = ItemType.TubeCoralFan; + mappings[518] = ItemType.BrainCoralFan; + mappings[519] = ItemType.BubbleCoralFan; + mappings[520] = ItemType.FireCoralFan; + mappings[521] = ItemType.HornCoralFan; + mappings[522] = ItemType.DeadTubeCoralFan; + mappings[523] = ItemType.DeadBrainCoralFan; + mappings[524] = ItemType.DeadBubbleCoralFan; + mappings[525] = ItemType.DeadFireCoralFan; + mappings[526] = ItemType.DeadHornCoralFan; + mappings[527] = ItemType.BlueIce; + mappings[528] = ItemType.Conduit; + mappings[529] = ItemType.PolishedGraniteStairs; + mappings[530] = ItemType.SmoothRedSandstoneStairs; + mappings[531] = ItemType.MossyStoneBrickStairs; + mappings[532] = ItemType.PolishedDioriteStairs; + mappings[533] = ItemType.MossyCobblestoneStairs; + mappings[534] = ItemType.EndStoneBrickStairs; + mappings[535] = ItemType.StoneStairs; + mappings[536] = ItemType.SmoothSandstoneStairs; + mappings[537] = ItemType.SmoothQuartzStairs; + mappings[538] = ItemType.GraniteStairs; + mappings[539] = ItemType.AndesiteStairs; + mappings[540] = ItemType.RedNetherBrickStairs; + mappings[541] = ItemType.PolishedAndesiteStairs; + mappings[542] = ItemType.DioriteStairs; + mappings[543] = ItemType.PolishedGraniteSlab; + mappings[544] = ItemType.SmoothRedSandstoneSlab; + mappings[545] = ItemType.MossyStoneBrickSlab; + mappings[546] = ItemType.PolishedDioriteSlab; + mappings[547] = ItemType.MossyCobblestoneSlab; + mappings[548] = ItemType.EndStoneBrickSlab; + mappings[549] = ItemType.SmoothSandstoneSlab; + mappings[550] = ItemType.SmoothQuartzSlab; + mappings[551] = ItemType.GraniteSlab; + mappings[552] = ItemType.AndesiteSlab; + mappings[553] = ItemType.RedNetherBrickSlab; + mappings[554] = ItemType.PolishedAndesiteSlab; + mappings[555] = ItemType.DioriteSlab; + mappings[556] = ItemType.Scaffolding; + mappings[557] = ItemType.IronDoor; + mappings[558] = ItemType.OakDoor; + mappings[559] = ItemType.SpruceDoor; + mappings[560] = ItemType.BirchDoor; + mappings[561] = ItemType.JungleDoor; + mappings[562] = ItemType.AcaciaDoor; + mappings[563] = ItemType.DarkOakDoor; + mappings[564] = ItemType.CrimsonDoor; + mappings[565] = ItemType.WarpedDoor; + mappings[566] = ItemType.Repeater; + mappings[567] = ItemType.Comparator; + mappings[568] = ItemType.StructureBlock; + mappings[569] = ItemType.Jigsaw; + mappings[570] = ItemType.TurtleHelmet; + mappings[571] = ItemType.Scute; + mappings[572] = ItemType.IronShovel; + mappings[573] = ItemType.IronPickaxe; + mappings[574] = ItemType.IronAxe; + mappings[575] = ItemType.FlintAndSteel; + mappings[576] = ItemType.Apple; + mappings[577] = ItemType.Bow; + mappings[578] = ItemType.Arrow; + mappings[579] = ItemType.Coal; + mappings[580] = ItemType.Charcoal; + mappings[581] = ItemType.Diamond; + mappings[582] = ItemType.IronIngot; + mappings[583] = ItemType.GoldIngot; + mappings[584] = ItemType.NetheriteIngot; + mappings[585] = ItemType.NetheriteScrap; + mappings[586] = ItemType.IronSword; + mappings[587] = ItemType.WoodenSword; + mappings[588] = ItemType.WoodenShovel; + mappings[589] = ItemType.WoodenPickaxe; + mappings[590] = ItemType.WoodenAxe; + mappings[591] = ItemType.StoneSword; + mappings[592] = ItemType.StoneShovel; + mappings[593] = ItemType.StonePickaxe; + mappings[594] = ItemType.StoneAxe; + mappings[595] = ItemType.DiamondSword; + mappings[596] = ItemType.DiamondShovel; + mappings[597] = ItemType.DiamondPickaxe; + mappings[598] = ItemType.DiamondAxe; + mappings[599] = ItemType.Stick; + mappings[600] = ItemType.Bowl; + mappings[601] = ItemType.MushroomStew; + mappings[602] = ItemType.GoldenSword; + mappings[603] = ItemType.GoldenShovel; + mappings[604] = ItemType.GoldenPickaxe; + mappings[605] = ItemType.GoldenAxe; + mappings[606] = ItemType.NetheriteSword; + mappings[607] = ItemType.NetheriteShovel; + mappings[608] = ItemType.NetheritePickaxe; + mappings[609] = ItemType.NetheriteAxe; + mappings[610] = ItemType.String; + mappings[611] = ItemType.Feather; + mappings[612] = ItemType.Gunpowder; + mappings[613] = ItemType.WoodenHoe; + mappings[614] = ItemType.StoneHoe; + mappings[615] = ItemType.IronHoe; + mappings[616] = ItemType.DiamondHoe; + mappings[617] = ItemType.GoldenHoe; + mappings[618] = ItemType.NetheriteHoe; + mappings[619] = ItemType.WheatSeeds; + mappings[620] = ItemType.Wheat; + mappings[621] = ItemType.Bread; + mappings[622] = ItemType.LeatherHelmet; + mappings[623] = ItemType.LeatherChestplate; + mappings[624] = ItemType.LeatherLeggings; + mappings[625] = ItemType.LeatherBoots; + mappings[626] = ItemType.ChainmailHelmet; + mappings[627] = ItemType.ChainmailChestplate; + mappings[628] = ItemType.ChainmailLeggings; + mappings[629] = ItemType.ChainmailBoots; + mappings[630] = ItemType.IronHelmet; + mappings[631] = ItemType.IronChestplate; + mappings[632] = ItemType.IronLeggings; + mappings[633] = ItemType.IronBoots; + mappings[634] = ItemType.DiamondHelmet; + mappings[635] = ItemType.DiamondChestplate; + mappings[636] = ItemType.DiamondLeggings; + mappings[637] = ItemType.DiamondBoots; + mappings[638] = ItemType.GoldenHelmet; + mappings[639] = ItemType.GoldenChestplate; + mappings[640] = ItemType.GoldenLeggings; + mappings[641] = ItemType.GoldenBoots; + mappings[642] = ItemType.NetheriteHelmet; + mappings[643] = ItemType.NetheriteChestplate; + mappings[644] = ItemType.NetheriteLeggings; + mappings[645] = ItemType.NetheriteBoots; + mappings[646] = ItemType.Flint; + mappings[647] = ItemType.Porkchop; + mappings[648] = ItemType.CookedPorkchop; + mappings[649] = ItemType.Painting; + mappings[650] = ItemType.GoldenApple; + mappings[651] = ItemType.EnchantedGoldenApple; + mappings[652] = ItemType.OakSign; + mappings[653] = ItemType.SpruceSign; + mappings[654] = ItemType.BirchSign; + mappings[655] = ItemType.JungleSign; + mappings[656] = ItemType.AcaciaSign; + mappings[657] = ItemType.DarkOakSign; + mappings[658] = ItemType.CrimsonSign; + mappings[659] = ItemType.WarpedSign; + mappings[660] = ItemType.Bucket; + mappings[661] = ItemType.WaterBucket; + mappings[662] = ItemType.LavaBucket; + mappings[663] = ItemType.Minecart; + mappings[664] = ItemType.Saddle; + mappings[665] = ItemType.Redstone; + mappings[666] = ItemType.Snowball; + mappings[667] = ItemType.OakBoat; + mappings[668] = ItemType.Leather; + mappings[669] = ItemType.MilkBucket; + mappings[670] = ItemType.PufferfishBucket; + mappings[671] = ItemType.SalmonBucket; + mappings[672] = ItemType.CodBucket; + mappings[673] = ItemType.TropicalFishBucket; + mappings[674] = ItemType.Brick; + mappings[675] = ItemType.ClayBall; + mappings[676] = ItemType.DriedKelpBlock; + mappings[677] = ItemType.Paper; + mappings[678] = ItemType.Book; + mappings[679] = ItemType.SlimeBall; + mappings[680] = ItemType.ChestMinecart; + mappings[681] = ItemType.FurnaceMinecart; + mappings[682] = ItemType.Egg; + mappings[683] = ItemType.Compass; + mappings[684] = ItemType.FishingRod; + mappings[685] = ItemType.Clock; + mappings[686] = ItemType.GlowstoneDust; + mappings[687] = ItemType.Cod; + mappings[688] = ItemType.Salmon; + mappings[689] = ItemType.TropicalFish; + mappings[690] = ItemType.Pufferfish; + mappings[691] = ItemType.CookedCod; + mappings[692] = ItemType.CookedSalmon; + mappings[693] = ItemType.InkSac; + mappings[694] = ItemType.RedDye; + mappings[695] = ItemType.GreenDye; + mappings[696] = ItemType.CocoaBeans; + mappings[697] = ItemType.LapisLazuli; + mappings[698] = ItemType.PurpleDye; + mappings[699] = ItemType.CyanDye; + mappings[700] = ItemType.LightGrayDye; + mappings[701] = ItemType.GrayDye; + mappings[702] = ItemType.PinkDye; + mappings[703] = ItemType.LimeDye; + mappings[704] = ItemType.YellowDye; + mappings[705] = ItemType.LightBlueDye; + mappings[706] = ItemType.MagentaDye; + mappings[707] = ItemType.OrangeDye; + mappings[708] = ItemType.BoneMeal; + mappings[709] = ItemType.BlueDye; + mappings[710] = ItemType.BrownDye; + mappings[711] = ItemType.BlackDye; + mappings[712] = ItemType.WhiteDye; + mappings[713] = ItemType.Bone; + mappings[714] = ItemType.Sugar; + mappings[715] = ItemType.Cake; + mappings[716] = ItemType.WhiteBed; + mappings[717] = ItemType.OrangeBed; + mappings[718] = ItemType.MagentaBed; + mappings[719] = ItemType.LightBlueBed; + mappings[720] = ItemType.YellowBed; + mappings[721] = ItemType.LimeBed; + mappings[722] = ItemType.PinkBed; + mappings[723] = ItemType.GrayBed; + mappings[724] = ItemType.LightGrayBed; + mappings[725] = ItemType.CyanBed; + mappings[726] = ItemType.PurpleBed; + mappings[727] = ItemType.BlueBed; + mappings[728] = ItemType.BrownBed; + mappings[729] = ItemType.GreenBed; + mappings[730] = ItemType.RedBed; + mappings[731] = ItemType.BlackBed; + mappings[732] = ItemType.Cookie; + mappings[733] = ItemType.FilledMap; + mappings[734] = ItemType.Shears; + mappings[735] = ItemType.MelonSlice; + mappings[736] = ItemType.DriedKelp; + mappings[737] = ItemType.PumpkinSeeds; + mappings[738] = ItemType.MelonSeeds; + mappings[739] = ItemType.Beef; + mappings[740] = ItemType.CookedBeef; + mappings[741] = ItemType.Chicken; + mappings[742] = ItemType.CookedChicken; + mappings[743] = ItemType.RottenFlesh; + mappings[744] = ItemType.EnderPearl; + mappings[745] = ItemType.BlazeRod; + mappings[746] = ItemType.GhastTear; + mappings[747] = ItemType.GoldNugget; + mappings[748] = ItemType.NetherWart; + mappings[749] = ItemType.Potion; + mappings[750] = ItemType.GlassBottle; + mappings[751] = ItemType.SpiderEye; + mappings[752] = ItemType.FermentedSpiderEye; + mappings[753] = ItemType.BlazePowder; + mappings[754] = ItemType.MagmaCream; + mappings[755] = ItemType.BrewingStand; + mappings[756] = ItemType.Cauldron; + mappings[757] = ItemType.EnderEye; + mappings[758] = ItemType.GlisteringMelonSlice; + mappings[759] = ItemType.BatSpawnEgg; + mappings[760] = ItemType.BeeSpawnEgg; + mappings[761] = ItemType.BlazeSpawnEgg; + mappings[762] = ItemType.CatSpawnEgg; + mappings[763] = ItemType.CaveSpiderSpawnEgg; + mappings[764] = ItemType.ChickenSpawnEgg; + mappings[765] = ItemType.CodSpawnEgg; + mappings[766] = ItemType.CowSpawnEgg; + mappings[767] = ItemType.CreeperSpawnEgg; + mappings[768] = ItemType.DolphinSpawnEgg; + mappings[769] = ItemType.DonkeySpawnEgg; + mappings[770] = ItemType.DrownedSpawnEgg; + mappings[771] = ItemType.ElderGuardianSpawnEgg; + mappings[772] = ItemType.EndermanSpawnEgg; + mappings[773] = ItemType.EndermiteSpawnEgg; + mappings[774] = ItemType.EvokerSpawnEgg; + mappings[775] = ItemType.FoxSpawnEgg; + mappings[776] = ItemType.GhastSpawnEgg; + mappings[777] = ItemType.GuardianSpawnEgg; + mappings[778] = ItemType.HoglinSpawnEgg; + mappings[779] = ItemType.HorseSpawnEgg; + mappings[780] = ItemType.HuskSpawnEgg; + mappings[781] = ItemType.LlamaSpawnEgg; + mappings[782] = ItemType.MagmaCubeSpawnEgg; + mappings[783] = ItemType.MooshroomSpawnEgg; + mappings[784] = ItemType.MuleSpawnEgg; + mappings[785] = ItemType.OcelotSpawnEgg; + mappings[786] = ItemType.PandaSpawnEgg; + mappings[787] = ItemType.ParrotSpawnEgg; + mappings[788] = ItemType.PhantomSpawnEgg; + mappings[789] = ItemType.PigSpawnEgg; + mappings[790] = ItemType.PiglinSpawnEgg; + mappings[791] = ItemType.PillagerSpawnEgg; + mappings[792] = ItemType.PolarBearSpawnEgg; + mappings[793] = ItemType.PufferfishSpawnEgg; + mappings[794] = ItemType.RabbitSpawnEgg; + mappings[795] = ItemType.RavagerSpawnEgg; + mappings[796] = ItemType.SalmonSpawnEgg; + mappings[797] = ItemType.SheepSpawnEgg; + mappings[798] = ItemType.ShulkerSpawnEgg; + mappings[799] = ItemType.SilverfishSpawnEgg; + mappings[800] = ItemType.SkeletonSpawnEgg; + mappings[801] = ItemType.SkeletonHorseSpawnEgg; + mappings[802] = ItemType.SlimeSpawnEgg; + mappings[803] = ItemType.SpiderSpawnEgg; + mappings[804] = ItemType.SquidSpawnEgg; + mappings[805] = ItemType.StraySpawnEgg; + mappings[806] = ItemType.StriderSpawnEgg; + mappings[807] = ItemType.TraderLlamaSpawnEgg; + mappings[808] = ItemType.TropicalFishSpawnEgg; + mappings[809] = ItemType.TurtleSpawnEgg; + mappings[810] = ItemType.VexSpawnEgg; + mappings[811] = ItemType.VillagerSpawnEgg; + mappings[812] = ItemType.VindicatorSpawnEgg; + mappings[813] = ItemType.WanderingTraderSpawnEgg; + mappings[814] = ItemType.WitchSpawnEgg; + mappings[815] = ItemType.WitherSkeletonSpawnEgg; + mappings[816] = ItemType.WolfSpawnEgg; + mappings[817] = ItemType.ZoglinSpawnEgg; + mappings[818] = ItemType.ZombieSpawnEgg; + mappings[819] = ItemType.ZombieHorseSpawnEgg; + mappings[820] = ItemType.ZombieVillagerSpawnEgg; + mappings[821] = ItemType.ZombifiedPiglinSpawnEgg; + mappings[822] = ItemType.ExperienceBottle; + mappings[823] = ItemType.FireCharge; + mappings[824] = ItemType.WritableBook; + mappings[825] = ItemType.WrittenBook; + mappings[826] = ItemType.Emerald; + mappings[827] = ItemType.ItemFrame; + mappings[828] = ItemType.FlowerPot; + mappings[829] = ItemType.Carrot; + mappings[830] = ItemType.Potato; + mappings[831] = ItemType.BakedPotato; + mappings[832] = ItemType.PoisonousPotato; + mappings[833] = ItemType.Map; + mappings[834] = ItemType.GoldenCarrot; + mappings[835] = ItemType.SkeletonSkull; + mappings[836] = ItemType.WitherSkeletonSkull; + mappings[837] = ItemType.PlayerHead; + mappings[838] = ItemType.ZombieHead; + mappings[839] = ItemType.CreeperHead; + mappings[840] = ItemType.DragonHead; + mappings[841] = ItemType.CarrotOnAStick; + mappings[842] = ItemType.WarpedFungusOnAStick; + mappings[843] = ItemType.NetherStar; + mappings[844] = ItemType.PumpkinPie; + mappings[845] = ItemType.FireworkRocket; + mappings[846] = ItemType.FireworkStar; + mappings[847] = ItemType.EnchantedBook; + mappings[848] = ItemType.NetherBrick; + mappings[849] = ItemType.Quartz; + mappings[850] = ItemType.TntMinecart; + mappings[851] = ItemType.HopperMinecart; + mappings[852] = ItemType.PrismarineShard; + mappings[853] = ItemType.PrismarineCrystals; + mappings[854] = ItemType.Rabbit; + mappings[855] = ItemType.CookedRabbit; + mappings[856] = ItemType.RabbitStew; + mappings[857] = ItemType.RabbitFoot; + mappings[858] = ItemType.RabbitHide; + mappings[859] = ItemType.ArmorStand; + mappings[860] = ItemType.IronHorseArmor; + mappings[861] = ItemType.GoldenHorseArmor; + mappings[862] = ItemType.DiamondHorseArmor; + mappings[863] = ItemType.LeatherHorseArmor; + mappings[864] = ItemType.Lead; + mappings[865] = ItemType.NameTag; + mappings[866] = ItemType.CommandBlockMinecart; + mappings[867] = ItemType.Mutton; + mappings[868] = ItemType.CookedMutton; + mappings[869] = ItemType.WhiteBanner; + mappings[870] = ItemType.OrangeBanner; + mappings[871] = ItemType.MagentaBanner; + mappings[872] = ItemType.LightBlueBanner; + mappings[873] = ItemType.YellowBanner; + mappings[874] = ItemType.LimeBanner; + mappings[875] = ItemType.PinkBanner; + mappings[876] = ItemType.GrayBanner; + mappings[877] = ItemType.LightGrayBanner; + mappings[878] = ItemType.CyanBanner; + mappings[879] = ItemType.PurpleBanner; + mappings[880] = ItemType.BlueBanner; + mappings[881] = ItemType.BrownBanner; + mappings[882] = ItemType.GreenBanner; + mappings[883] = ItemType.RedBanner; + mappings[884] = ItemType.BlackBanner; + mappings[885] = ItemType.EndCrystal; + mappings[886] = ItemType.ChorusFruit; + mappings[887] = ItemType.PoppedChorusFruit; + mappings[888] = ItemType.Beetroot; + mappings[889] = ItemType.BeetrootSeeds; + mappings[890] = ItemType.BeetrootSoup; + mappings[891] = ItemType.DragonBreath; + mappings[892] = ItemType.SplashPotion; + mappings[893] = ItemType.SpectralArrow; + mappings[894] = ItemType.TippedArrow; + mappings[895] = ItemType.LingeringPotion; + mappings[896] = ItemType.Shield; + mappings[897] = ItemType.Elytra; + mappings[898] = ItemType.SpruceBoat; + mappings[899] = ItemType.BirchBoat; + mappings[900] = ItemType.JungleBoat; + mappings[901] = ItemType.AcaciaBoat; + mappings[902] = ItemType.DarkOakBoat; + mappings[903] = ItemType.TotemOfUndying; + mappings[904] = ItemType.ShulkerShell; + mappings[905] = ItemType.IronNugget; + mappings[906] = ItemType.KnowledgeBook; + mappings[907] = ItemType.DebugStick; + mappings[908] = ItemType.MusicDisc13; + mappings[909] = ItemType.MusicDiscCat; + mappings[910] = ItemType.MusicDiscBlocks; + mappings[911] = ItemType.MusicDiscChirp; + mappings[912] = ItemType.MusicDiscFar; + mappings[913] = ItemType.MusicDiscMall; + mappings[914] = ItemType.MusicDiscMellohi; + mappings[915] = ItemType.MusicDiscStal; + mappings[916] = ItemType.MusicDiscStrad; + mappings[917] = ItemType.MusicDiscWard; + mappings[918] = ItemType.MusicDisc11; + mappings[919] = ItemType.MusicDiscWait; + mappings[920] = ItemType.MusicDiscPigstep; + mappings[921] = ItemType.Trident; + mappings[922] = ItemType.PhantomMembrane; + mappings[923] = ItemType.NautilusShell; + mappings[924] = ItemType.HeartOfTheSea; + mappings[925] = ItemType.Crossbow; + mappings[926] = ItemType.SuspiciousStew; + mappings[927] = ItemType.Loom; + mappings[928] = ItemType.FlowerBannerPattern; + mappings[929] = ItemType.CreeperBannerPattern; + mappings[930] = ItemType.SkullBannerPattern; + mappings[931] = ItemType.MojangBannerPattern; + mappings[932] = ItemType.GlobeBannerPattern; + mappings[933] = ItemType.PiglinBannerPattern; + mappings[934] = ItemType.Composter; + mappings[935] = ItemType.Barrel; + mappings[936] = ItemType.Smoker; + mappings[937] = ItemType.BlastFurnace; + mappings[938] = ItemType.CartographyTable; + mappings[939] = ItemType.FletchingTable; + mappings[940] = ItemType.Grindstone; + mappings[941] = ItemType.Lectern; + mappings[942] = ItemType.SmithingTable; + mappings[943] = ItemType.Stonecutter; + mappings[944] = ItemType.Bell; + mappings[945] = ItemType.Lantern; + mappings[946] = ItemType.SoulLantern; + mappings[947] = ItemType.SweetBerries; + mappings[948] = ItemType.Campfire; + mappings[949] = ItemType.SoulCampfire; + mappings[950] = ItemType.Shroomlight; + mappings[951] = ItemType.Honeycomb; + mappings[952] = ItemType.BeeNest; + mappings[953] = ItemType.Beehive; + mappings[954] = ItemType.HoneyBottle; + mappings[955] = ItemType.HoneyBlock; + mappings[956] = ItemType.HoneycombBlock; + mappings[957] = ItemType.Lodestone; + mappings[958] = ItemType.NetheriteBlock; + mappings[959] = ItemType.AncientDebris; + mappings[960] = ItemType.Target; + mappings[961] = ItemType.CryingObsidian; + mappings[962] = ItemType.Blackstone; + mappings[963] = ItemType.BlackstoneSlab; + mappings[964] = ItemType.BlackstoneStairs; + mappings[965] = ItemType.GildedBlackstone; + mappings[966] = ItemType.PolishedBlackstone; + mappings[967] = ItemType.PolishedBlackstoneSlab; + mappings[968] = ItemType.PolishedBlackstoneStairs; + mappings[969] = ItemType.ChiseledPolishedBlackstone; + mappings[970] = ItemType.PolishedBlackstoneBricks; + mappings[971] = ItemType.PolishedBlackstoneBrickSlab; + mappings[972] = ItemType.PolishedBlackstoneBrickStairs; + mappings[973] = ItemType.CrackedPolishedBlackstoneBricks; + mappings[974] = ItemType.RespawnAnchor; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette1162.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1162.cs new file mode 100644 index 00000000..f9e75cdc --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1162.cs @@ -0,0 +1,999 @@ +using System; +using System.Collections.Generic; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + /// + /// For MC 1.16.2 + /// Generated by ItemPaletteGenerator.cs + /// + public class ItemPalette1162 : ItemPalette + { + private static Dictionary mappings = new Dictionary(); + + static ItemPalette1162() + { + mappings[0] = ItemType.Air; + mappings[1] = ItemType.Stone; + mappings[2] = ItemType.Granite; + mappings[3] = ItemType.PolishedGranite; + mappings[4] = ItemType.Diorite; + mappings[5] = ItemType.PolishedDiorite; + mappings[6] = ItemType.Andesite; + mappings[7] = ItemType.PolishedAndesite; + mappings[8] = ItemType.GrassBlock; + mappings[9] = ItemType.Dirt; + mappings[10] = ItemType.CoarseDirt; + mappings[11] = ItemType.Podzol; + mappings[12] = ItemType.CrimsonNylium; + mappings[13] = ItemType.WarpedNylium; + mappings[14] = ItemType.Cobblestone; + mappings[15] = ItemType.OakPlanks; + mappings[16] = ItemType.SprucePlanks; + mappings[17] = ItemType.BirchPlanks; + mappings[18] = ItemType.JunglePlanks; + mappings[19] = ItemType.AcaciaPlanks; + mappings[20] = ItemType.DarkOakPlanks; + mappings[21] = ItemType.CrimsonPlanks; + mappings[22] = ItemType.WarpedPlanks; + mappings[23] = ItemType.OakSapling; + mappings[24] = ItemType.SpruceSapling; + mappings[25] = ItemType.BirchSapling; + mappings[26] = ItemType.JungleSapling; + mappings[27] = ItemType.AcaciaSapling; + mappings[28] = ItemType.DarkOakSapling; + mappings[29] = ItemType.Bedrock; + mappings[30] = ItemType.Sand; + mappings[31] = ItemType.RedSand; + mappings[32] = ItemType.Gravel; + mappings[33] = ItemType.GoldOre; + mappings[34] = ItemType.IronOre; + mappings[35] = ItemType.CoalOre; + mappings[36] = ItemType.NetherGoldOre; + mappings[37] = ItemType.OakLog; + mappings[38] = ItemType.SpruceLog; + mappings[39] = ItemType.BirchLog; + mappings[40] = ItemType.JungleLog; + mappings[41] = ItemType.AcaciaLog; + mappings[42] = ItemType.DarkOakLog; + mappings[43] = ItemType.CrimsonStem; + mappings[44] = ItemType.WarpedStem; + mappings[45] = ItemType.StrippedOakLog; + mappings[46] = ItemType.StrippedSpruceLog; + mappings[47] = ItemType.StrippedBirchLog; + mappings[48] = ItemType.StrippedJungleLog; + mappings[49] = ItemType.StrippedAcaciaLog; + mappings[50] = ItemType.StrippedDarkOakLog; + mappings[51] = ItemType.StrippedCrimsonStem; + mappings[52] = ItemType.StrippedWarpedStem; + mappings[53] = ItemType.StrippedOakWood; + mappings[54] = ItemType.StrippedSpruceWood; + mappings[55] = ItemType.StrippedBirchWood; + mappings[56] = ItemType.StrippedJungleWood; + mappings[57] = ItemType.StrippedAcaciaWood; + mappings[58] = ItemType.StrippedDarkOakWood; + mappings[59] = ItemType.StrippedCrimsonHyphae; + mappings[60] = ItemType.StrippedWarpedHyphae; + mappings[61] = ItemType.OakWood; + mappings[62] = ItemType.SpruceWood; + mappings[63] = ItemType.BirchWood; + mappings[64] = ItemType.JungleWood; + mappings[65] = ItemType.AcaciaWood; + mappings[66] = ItemType.DarkOakWood; + mappings[67] = ItemType.CrimsonHyphae; + mappings[68] = ItemType.WarpedHyphae; + mappings[69] = ItemType.OakLeaves; + mappings[70] = ItemType.SpruceLeaves; + mappings[71] = ItemType.BirchLeaves; + mappings[72] = ItemType.JungleLeaves; + mappings[73] = ItemType.AcaciaLeaves; + mappings[74] = ItemType.DarkOakLeaves; + mappings[75] = ItemType.Sponge; + mappings[76] = ItemType.WetSponge; + mappings[77] = ItemType.Glass; + mappings[78] = ItemType.LapisOre; + mappings[79] = ItemType.LapisBlock; + mappings[80] = ItemType.Dispenser; + mappings[81] = ItemType.Sandstone; + mappings[82] = ItemType.ChiseledSandstone; + mappings[83] = ItemType.CutSandstone; + mappings[84] = ItemType.NoteBlock; + mappings[85] = ItemType.PoweredRail; + mappings[86] = ItemType.DetectorRail; + mappings[87] = ItemType.StickyPiston; + mappings[88] = ItemType.Cobweb; + mappings[89] = ItemType.Grass; + mappings[90] = ItemType.Fern; + mappings[91] = ItemType.DeadBush; + mappings[92] = ItemType.Seagrass; + mappings[93] = ItemType.SeaPickle; + mappings[94] = ItemType.Piston; + mappings[95] = ItemType.WhiteWool; + mappings[96] = ItemType.OrangeWool; + mappings[97] = ItemType.MagentaWool; + mappings[98] = ItemType.LightBlueWool; + mappings[99] = ItemType.YellowWool; + mappings[100] = ItemType.LimeWool; + mappings[101] = ItemType.PinkWool; + mappings[102] = ItemType.GrayWool; + mappings[103] = ItemType.LightGrayWool; + mappings[104] = ItemType.CyanWool; + mappings[105] = ItemType.PurpleWool; + mappings[106] = ItemType.BlueWool; + mappings[107] = ItemType.BrownWool; + mappings[108] = ItemType.GreenWool; + mappings[109] = ItemType.RedWool; + mappings[110] = ItemType.BlackWool; + mappings[111] = ItemType.Dandelion; + mappings[112] = ItemType.Poppy; + mappings[113] = ItemType.BlueOrchid; + mappings[114] = ItemType.Allium; + mappings[115] = ItemType.AzureBluet; + mappings[116] = ItemType.RedTulip; + mappings[117] = ItemType.OrangeTulip; + mappings[118] = ItemType.WhiteTulip; + mappings[119] = ItemType.PinkTulip; + mappings[120] = ItemType.OxeyeDaisy; + mappings[121] = ItemType.Cornflower; + mappings[122] = ItemType.LilyOfTheValley; + mappings[123] = ItemType.WitherRose; + mappings[124] = ItemType.BrownMushroom; + mappings[125] = ItemType.RedMushroom; + mappings[126] = ItemType.CrimsonFungus; + mappings[127] = ItemType.WarpedFungus; + mappings[128] = ItemType.CrimsonRoots; + mappings[129] = ItemType.WarpedRoots; + mappings[130] = ItemType.NetherSprouts; + mappings[131] = ItemType.WeepingVines; + mappings[132] = ItemType.TwistingVines; + mappings[133] = ItemType.SugarCane; + mappings[134] = ItemType.Kelp; + mappings[135] = ItemType.Bamboo; + mappings[136] = ItemType.GoldBlock; + mappings[137] = ItemType.IronBlock; + mappings[138] = ItemType.OakSlab; + mappings[139] = ItemType.SpruceSlab; + mappings[140] = ItemType.BirchSlab; + mappings[141] = ItemType.JungleSlab; + mappings[142] = ItemType.AcaciaSlab; + mappings[143] = ItemType.DarkOakSlab; + mappings[144] = ItemType.CrimsonSlab; + mappings[145] = ItemType.WarpedSlab; + mappings[146] = ItemType.StoneSlab; + mappings[147] = ItemType.SmoothStoneSlab; + mappings[148] = ItemType.SandstoneSlab; + mappings[149] = ItemType.CutSandstoneSlab; + mappings[150] = ItemType.PetrifiedOakSlab; + mappings[151] = ItemType.CobblestoneSlab; + mappings[152] = ItemType.BrickSlab; + mappings[153] = ItemType.StoneBrickSlab; + mappings[154] = ItemType.NetherBrickSlab; + mappings[155] = ItemType.QuartzSlab; + mappings[156] = ItemType.RedSandstoneSlab; + mappings[157] = ItemType.CutRedSandstoneSlab; + mappings[158] = ItemType.PurpurSlab; + mappings[159] = ItemType.PrismarineSlab; + mappings[160] = ItemType.PrismarineBrickSlab; + mappings[161] = ItemType.DarkPrismarineSlab; + mappings[162] = ItemType.SmoothQuartz; + mappings[163] = ItemType.SmoothRedSandstone; + mappings[164] = ItemType.SmoothSandstone; + mappings[165] = ItemType.SmoothStone; + mappings[166] = ItemType.Bricks; + mappings[167] = ItemType.Tnt; + mappings[168] = ItemType.Bookshelf; + mappings[169] = ItemType.MossyCobblestone; + mappings[170] = ItemType.Obsidian; + mappings[171] = ItemType.Torch; + mappings[172] = ItemType.EndRod; + mappings[173] = ItemType.ChorusPlant; + mappings[174] = ItemType.ChorusFlower; + mappings[175] = ItemType.PurpurBlock; + mappings[176] = ItemType.PurpurPillar; + mappings[177] = ItemType.PurpurStairs; + mappings[178] = ItemType.Spawner; + mappings[179] = ItemType.OakStairs; + mappings[180] = ItemType.Chest; + mappings[181] = ItemType.DiamondOre; + mappings[182] = ItemType.DiamondBlock; + mappings[183] = ItemType.CraftingTable; + mappings[184] = ItemType.Farmland; + mappings[185] = ItemType.Furnace; + mappings[186] = ItemType.Ladder; + mappings[187] = ItemType.Rail; + mappings[188] = ItemType.CobblestoneStairs; + mappings[189] = ItemType.Lever; + mappings[190] = ItemType.StonePressurePlate; + mappings[191] = ItemType.OakPressurePlate; + mappings[192] = ItemType.SprucePressurePlate; + mappings[193] = ItemType.BirchPressurePlate; + mappings[194] = ItemType.JunglePressurePlate; + mappings[195] = ItemType.AcaciaPressurePlate; + mappings[196] = ItemType.DarkOakPressurePlate; + mappings[197] = ItemType.CrimsonPressurePlate; + mappings[198] = ItemType.WarpedPressurePlate; + mappings[199] = ItemType.PolishedBlackstonePressurePlate; + mappings[200] = ItemType.RedstoneOre; + mappings[201] = ItemType.RedstoneTorch; + mappings[202] = ItemType.Snow; + mappings[203] = ItemType.Ice; + mappings[204] = ItemType.SnowBlock; + mappings[205] = ItemType.Cactus; + mappings[206] = ItemType.Clay; + mappings[207] = ItemType.Jukebox; + mappings[208] = ItemType.OakFence; + mappings[209] = ItemType.SpruceFence; + mappings[210] = ItemType.BirchFence; + mappings[211] = ItemType.JungleFence; + mappings[212] = ItemType.AcaciaFence; + mappings[213] = ItemType.DarkOakFence; + mappings[214] = ItemType.CrimsonFence; + mappings[215] = ItemType.WarpedFence; + mappings[216] = ItemType.Pumpkin; + mappings[217] = ItemType.CarvedPumpkin; + mappings[218] = ItemType.Netherrack; + mappings[219] = ItemType.SoulSand; + mappings[220] = ItemType.SoulSoil; + mappings[221] = ItemType.Basalt; + mappings[222] = ItemType.PolishedBasalt; + mappings[223] = ItemType.SoulTorch; + mappings[224] = ItemType.Glowstone; + mappings[225] = ItemType.JackOLantern; + mappings[226] = ItemType.OakTrapdoor; + mappings[227] = ItemType.SpruceTrapdoor; + mappings[228] = ItemType.BirchTrapdoor; + mappings[229] = ItemType.JungleTrapdoor; + mappings[230] = ItemType.AcaciaTrapdoor; + mappings[231] = ItemType.DarkOakTrapdoor; + mappings[232] = ItemType.CrimsonTrapdoor; + mappings[233] = ItemType.WarpedTrapdoor; + mappings[234] = ItemType.InfestedStone; + mappings[235] = ItemType.InfestedCobblestone; + mappings[236] = ItemType.InfestedStoneBricks; + mappings[237] = ItemType.InfestedMossyStoneBricks; + mappings[238] = ItemType.InfestedCrackedStoneBricks; + mappings[239] = ItemType.InfestedChiseledStoneBricks; + mappings[240] = ItemType.StoneBricks; + mappings[241] = ItemType.MossyStoneBricks; + mappings[242] = ItemType.CrackedStoneBricks; + mappings[243] = ItemType.ChiseledStoneBricks; + mappings[244] = ItemType.BrownMushroomBlock; + mappings[245] = ItemType.RedMushroomBlock; + mappings[246] = ItemType.MushroomStem; + mappings[247] = ItemType.IronBars; + mappings[248] = ItemType.Chain; + mappings[249] = ItemType.GlassPane; + mappings[250] = ItemType.Melon; + mappings[251] = ItemType.Vine; + mappings[252] = ItemType.OakFenceGate; + mappings[253] = ItemType.SpruceFenceGate; + mappings[254] = ItemType.BirchFenceGate; + mappings[255] = ItemType.JungleFenceGate; + mappings[256] = ItemType.AcaciaFenceGate; + mappings[257] = ItemType.DarkOakFenceGate; + mappings[258] = ItemType.CrimsonFenceGate; + mappings[259] = ItemType.WarpedFenceGate; + mappings[260] = ItemType.BrickStairs; + mappings[261] = ItemType.StoneBrickStairs; + mappings[262] = ItemType.Mycelium; + mappings[263] = ItemType.LilyPad; + mappings[264] = ItemType.NetherBricks; + mappings[265] = ItemType.CrackedNetherBricks; + mappings[266] = ItemType.ChiseledNetherBricks; + mappings[267] = ItemType.NetherBrickFence; + mappings[268] = ItemType.NetherBrickStairs; + mappings[269] = ItemType.EnchantingTable; + mappings[270] = ItemType.EndPortalFrame; + mappings[271] = ItemType.EndStone; + mappings[272] = ItemType.EndStoneBricks; + mappings[273] = ItemType.DragonEgg; + mappings[274] = ItemType.RedstoneLamp; + mappings[275] = ItemType.SandstoneStairs; + mappings[276] = ItemType.EmeraldOre; + mappings[277] = ItemType.EnderChest; + mappings[278] = ItemType.TripwireHook; + mappings[279] = ItemType.EmeraldBlock; + mappings[280] = ItemType.SpruceStairs; + mappings[281] = ItemType.BirchStairs; + mappings[282] = ItemType.JungleStairs; + mappings[283] = ItemType.CrimsonStairs; + mappings[284] = ItemType.WarpedStairs; + mappings[285] = ItemType.CommandBlock; + mappings[286] = ItemType.Beacon; + mappings[287] = ItemType.CobblestoneWall; + mappings[288] = ItemType.MossyCobblestoneWall; + mappings[289] = ItemType.BrickWall; + mappings[290] = ItemType.PrismarineWall; + mappings[291] = ItemType.RedSandstoneWall; + mappings[292] = ItemType.MossyStoneBrickWall; + mappings[293] = ItemType.GraniteWall; + mappings[294] = ItemType.StoneBrickWall; + mappings[295] = ItemType.NetherBrickWall; + mappings[296] = ItemType.AndesiteWall; + mappings[297] = ItemType.RedNetherBrickWall; + mappings[298] = ItemType.SandstoneWall; + mappings[299] = ItemType.EndStoneBrickWall; + mappings[300] = ItemType.DioriteWall; + mappings[301] = ItemType.BlackstoneWall; + mappings[302] = ItemType.PolishedBlackstoneWall; + mappings[303] = ItemType.PolishedBlackstoneBrickWall; + mappings[304] = ItemType.StoneButton; + mappings[305] = ItemType.OakButton; + mappings[306] = ItemType.SpruceButton; + mappings[307] = ItemType.BirchButton; + mappings[308] = ItemType.JungleButton; + mappings[309] = ItemType.AcaciaButton; + mappings[310] = ItemType.DarkOakButton; + mappings[311] = ItemType.CrimsonButton; + mappings[312] = ItemType.WarpedButton; + mappings[313] = ItemType.PolishedBlackstoneButton; + mappings[314] = ItemType.Anvil; + mappings[315] = ItemType.ChippedAnvil; + mappings[316] = ItemType.DamagedAnvil; + mappings[317] = ItemType.TrappedChest; + mappings[318] = ItemType.LightWeightedPressurePlate; + mappings[319] = ItemType.HeavyWeightedPressurePlate; + mappings[320] = ItemType.DaylightDetector; + mappings[321] = ItemType.RedstoneBlock; + mappings[322] = ItemType.NetherQuartzOre; + mappings[323] = ItemType.Hopper; + mappings[324] = ItemType.ChiseledQuartzBlock; + mappings[325] = ItemType.QuartzBlock; + mappings[326] = ItemType.QuartzBricks; + mappings[327] = ItemType.QuartzPillar; + mappings[328] = ItemType.QuartzStairs; + mappings[329] = ItemType.ActivatorRail; + mappings[330] = ItemType.Dropper; + mappings[331] = ItemType.WhiteTerracotta; + mappings[332] = ItemType.OrangeTerracotta; + mappings[333] = ItemType.MagentaTerracotta; + mappings[334] = ItemType.LightBlueTerracotta; + mappings[335] = ItemType.YellowTerracotta; + mappings[336] = ItemType.LimeTerracotta; + mappings[337] = ItemType.PinkTerracotta; + mappings[338] = ItemType.GrayTerracotta; + mappings[339] = ItemType.LightGrayTerracotta; + mappings[340] = ItemType.CyanTerracotta; + mappings[341] = ItemType.PurpleTerracotta; + mappings[342] = ItemType.BlueTerracotta; + mappings[343] = ItemType.BrownTerracotta; + mappings[344] = ItemType.GreenTerracotta; + mappings[345] = ItemType.RedTerracotta; + mappings[346] = ItemType.BlackTerracotta; + mappings[347] = ItemType.Barrier; + mappings[348] = ItemType.IronTrapdoor; + mappings[349] = ItemType.HayBlock; + mappings[350] = ItemType.WhiteCarpet; + mappings[351] = ItemType.OrangeCarpet; + mappings[352] = ItemType.MagentaCarpet; + mappings[353] = ItemType.LightBlueCarpet; + mappings[354] = ItemType.YellowCarpet; + mappings[355] = ItemType.LimeCarpet; + mappings[356] = ItemType.PinkCarpet; + mappings[357] = ItemType.GrayCarpet; + mappings[358] = ItemType.LightGrayCarpet; + mappings[359] = ItemType.CyanCarpet; + mappings[360] = ItemType.PurpleCarpet; + mappings[361] = ItemType.BlueCarpet; + mappings[362] = ItemType.BrownCarpet; + mappings[363] = ItemType.GreenCarpet; + mappings[364] = ItemType.RedCarpet; + mappings[365] = ItemType.BlackCarpet; + mappings[366] = ItemType.Terracotta; + mappings[367] = ItemType.CoalBlock; + mappings[368] = ItemType.PackedIce; + mappings[369] = ItemType.AcaciaStairs; + mappings[370] = ItemType.DarkOakStairs; + mappings[371] = ItemType.SlimeBlock; + mappings[372] = ItemType.GrassPath; + mappings[373] = ItemType.Sunflower; + mappings[374] = ItemType.Lilac; + mappings[375] = ItemType.RoseBush; + mappings[376] = ItemType.Peony; + mappings[377] = ItemType.TallGrass; + mappings[378] = ItemType.LargeFern; + mappings[379] = ItemType.WhiteStainedGlass; + mappings[380] = ItemType.OrangeStainedGlass; + mappings[381] = ItemType.MagentaStainedGlass; + mappings[382] = ItemType.LightBlueStainedGlass; + mappings[383] = ItemType.YellowStainedGlass; + mappings[384] = ItemType.LimeStainedGlass; + mappings[385] = ItemType.PinkStainedGlass; + mappings[386] = ItemType.GrayStainedGlass; + mappings[387] = ItemType.LightGrayStainedGlass; + mappings[388] = ItemType.CyanStainedGlass; + mappings[389] = ItemType.PurpleStainedGlass; + mappings[390] = ItemType.BlueStainedGlass; + mappings[391] = ItemType.BrownStainedGlass; + mappings[392] = ItemType.GreenStainedGlass; + mappings[393] = ItemType.RedStainedGlass; + mappings[394] = ItemType.BlackStainedGlass; + mappings[395] = ItemType.WhiteStainedGlassPane; + mappings[396] = ItemType.OrangeStainedGlassPane; + mappings[397] = ItemType.MagentaStainedGlassPane; + mappings[398] = ItemType.LightBlueStainedGlassPane; + mappings[399] = ItemType.YellowStainedGlassPane; + mappings[400] = ItemType.LimeStainedGlassPane; + mappings[401] = ItemType.PinkStainedGlassPane; + mappings[402] = ItemType.GrayStainedGlassPane; + mappings[403] = ItemType.LightGrayStainedGlassPane; + mappings[404] = ItemType.CyanStainedGlassPane; + mappings[405] = ItemType.PurpleStainedGlassPane; + mappings[406] = ItemType.BlueStainedGlassPane; + mappings[407] = ItemType.BrownStainedGlassPane; + mappings[408] = ItemType.GreenStainedGlassPane; + mappings[409] = ItemType.RedStainedGlassPane; + mappings[410] = ItemType.BlackStainedGlassPane; + mappings[411] = ItemType.Prismarine; + mappings[412] = ItemType.PrismarineBricks; + mappings[413] = ItemType.DarkPrismarine; + mappings[414] = ItemType.PrismarineStairs; + mappings[415] = ItemType.PrismarineBrickStairs; + mappings[416] = ItemType.DarkPrismarineStairs; + mappings[417] = ItemType.SeaLantern; + mappings[418] = ItemType.RedSandstone; + mappings[419] = ItemType.ChiseledRedSandstone; + mappings[420] = ItemType.CutRedSandstone; + mappings[421] = ItemType.RedSandstoneStairs; + mappings[422] = ItemType.RepeatingCommandBlock; + mappings[423] = ItemType.ChainCommandBlock; + mappings[424] = ItemType.MagmaBlock; + mappings[425] = ItemType.NetherWartBlock; + mappings[426] = ItemType.WarpedWartBlock; + mappings[427] = ItemType.RedNetherBricks; + mappings[428] = ItemType.BoneBlock; + mappings[429] = ItemType.StructureVoid; + mappings[430] = ItemType.Observer; + mappings[431] = ItemType.ShulkerBox; + mappings[432] = ItemType.WhiteShulkerBox; + mappings[433] = ItemType.OrangeShulkerBox; + mappings[434] = ItemType.MagentaShulkerBox; + mappings[435] = ItemType.LightBlueShulkerBox; + mappings[436] = ItemType.YellowShulkerBox; + mappings[437] = ItemType.LimeShulkerBox; + mappings[438] = ItemType.PinkShulkerBox; + mappings[439] = ItemType.GrayShulkerBox; + mappings[440] = ItemType.LightGrayShulkerBox; + mappings[441] = ItemType.CyanShulkerBox; + mappings[442] = ItemType.PurpleShulkerBox; + mappings[443] = ItemType.BlueShulkerBox; + mappings[444] = ItemType.BrownShulkerBox; + mappings[445] = ItemType.GreenShulkerBox; + mappings[446] = ItemType.RedShulkerBox; + mappings[447] = ItemType.BlackShulkerBox; + mappings[448] = ItemType.WhiteGlazedTerracotta; + mappings[449] = ItemType.OrangeGlazedTerracotta; + mappings[450] = ItemType.MagentaGlazedTerracotta; + mappings[451] = ItemType.LightBlueGlazedTerracotta; + mappings[452] = ItemType.YellowGlazedTerracotta; + mappings[453] = ItemType.LimeGlazedTerracotta; + mappings[454] = ItemType.PinkGlazedTerracotta; + mappings[455] = ItemType.GrayGlazedTerracotta; + mappings[456] = ItemType.LightGrayGlazedTerracotta; + mappings[457] = ItemType.CyanGlazedTerracotta; + mappings[458] = ItemType.PurpleGlazedTerracotta; + mappings[459] = ItemType.BlueGlazedTerracotta; + mappings[460] = ItemType.BrownGlazedTerracotta; + mappings[461] = ItemType.GreenGlazedTerracotta; + mappings[462] = ItemType.RedGlazedTerracotta; + mappings[463] = ItemType.BlackGlazedTerracotta; + mappings[464] = ItemType.WhiteConcrete; + mappings[465] = ItemType.OrangeConcrete; + mappings[466] = ItemType.MagentaConcrete; + mappings[467] = ItemType.LightBlueConcrete; + mappings[468] = ItemType.YellowConcrete; + mappings[469] = ItemType.LimeConcrete; + mappings[470] = ItemType.PinkConcrete; + mappings[471] = ItemType.GrayConcrete; + mappings[472] = ItemType.LightGrayConcrete; + mappings[473] = ItemType.CyanConcrete; + mappings[474] = ItemType.PurpleConcrete; + mappings[475] = ItemType.BlueConcrete; + mappings[476] = ItemType.BrownConcrete; + mappings[477] = ItemType.GreenConcrete; + mappings[478] = ItemType.RedConcrete; + mappings[479] = ItemType.BlackConcrete; + mappings[480] = ItemType.WhiteConcretePowder; + mappings[481] = ItemType.OrangeConcretePowder; + mappings[482] = ItemType.MagentaConcretePowder; + mappings[483] = ItemType.LightBlueConcretePowder; + mappings[484] = ItemType.YellowConcretePowder; + mappings[485] = ItemType.LimeConcretePowder; + mappings[486] = ItemType.PinkConcretePowder; + mappings[487] = ItemType.GrayConcretePowder; + mappings[488] = ItemType.LightGrayConcretePowder; + mappings[489] = ItemType.CyanConcretePowder; + mappings[490] = ItemType.PurpleConcretePowder; + mappings[491] = ItemType.BlueConcretePowder; + mappings[492] = ItemType.BrownConcretePowder; + mappings[493] = ItemType.GreenConcretePowder; + mappings[494] = ItemType.RedConcretePowder; + mappings[495] = ItemType.BlackConcretePowder; + mappings[496] = ItemType.TurtleEgg; + mappings[497] = ItemType.DeadTubeCoralBlock; + mappings[498] = ItemType.DeadBrainCoralBlock; + mappings[499] = ItemType.DeadBubbleCoralBlock; + mappings[500] = ItemType.DeadFireCoralBlock; + mappings[501] = ItemType.DeadHornCoralBlock; + mappings[502] = ItemType.TubeCoralBlock; + mappings[503] = ItemType.BrainCoralBlock; + mappings[504] = ItemType.BubbleCoralBlock; + mappings[505] = ItemType.FireCoralBlock; + mappings[506] = ItemType.HornCoralBlock; + mappings[507] = ItemType.TubeCoral; + mappings[508] = ItemType.BrainCoral; + mappings[509] = ItemType.BubbleCoral; + mappings[510] = ItemType.FireCoral; + mappings[511] = ItemType.HornCoral; + mappings[512] = ItemType.DeadBrainCoral; + mappings[513] = ItemType.DeadBubbleCoral; + mappings[514] = ItemType.DeadFireCoral; + mappings[515] = ItemType.DeadHornCoral; + mappings[516] = ItemType.DeadTubeCoral; + mappings[517] = ItemType.TubeCoralFan; + mappings[518] = ItemType.BrainCoralFan; + mappings[519] = ItemType.BubbleCoralFan; + mappings[520] = ItemType.FireCoralFan; + mappings[521] = ItemType.HornCoralFan; + mappings[522] = ItemType.DeadTubeCoralFan; + mappings[523] = ItemType.DeadBrainCoralFan; + mappings[524] = ItemType.DeadBubbleCoralFan; + mappings[525] = ItemType.DeadFireCoralFan; + mappings[526] = ItemType.DeadHornCoralFan; + mappings[527] = ItemType.BlueIce; + mappings[528] = ItemType.Conduit; + mappings[529] = ItemType.PolishedGraniteStairs; + mappings[530] = ItemType.SmoothRedSandstoneStairs; + mappings[531] = ItemType.MossyStoneBrickStairs; + mappings[532] = ItemType.PolishedDioriteStairs; + mappings[533] = ItemType.MossyCobblestoneStairs; + mappings[534] = ItemType.EndStoneBrickStairs; + mappings[535] = ItemType.StoneStairs; + mappings[536] = ItemType.SmoothSandstoneStairs; + mappings[537] = ItemType.SmoothQuartzStairs; + mappings[538] = ItemType.GraniteStairs; + mappings[539] = ItemType.AndesiteStairs; + mappings[540] = ItemType.RedNetherBrickStairs; + mappings[541] = ItemType.PolishedAndesiteStairs; + mappings[542] = ItemType.DioriteStairs; + mappings[543] = ItemType.PolishedGraniteSlab; + mappings[544] = ItemType.SmoothRedSandstoneSlab; + mappings[545] = ItemType.MossyStoneBrickSlab; + mappings[546] = ItemType.PolishedDioriteSlab; + mappings[547] = ItemType.MossyCobblestoneSlab; + mappings[548] = ItemType.EndStoneBrickSlab; + mappings[549] = ItemType.SmoothSandstoneSlab; + mappings[550] = ItemType.SmoothQuartzSlab; + mappings[551] = ItemType.GraniteSlab; + mappings[552] = ItemType.AndesiteSlab; + mappings[553] = ItemType.RedNetherBrickSlab; + mappings[554] = ItemType.PolishedAndesiteSlab; + mappings[555] = ItemType.DioriteSlab; + mappings[556] = ItemType.Scaffolding; + mappings[557] = ItemType.IronDoor; + mappings[558] = ItemType.OakDoor; + mappings[559] = ItemType.SpruceDoor; + mappings[560] = ItemType.BirchDoor; + mappings[561] = ItemType.JungleDoor; + mappings[562] = ItemType.AcaciaDoor; + mappings[563] = ItemType.DarkOakDoor; + mappings[564] = ItemType.CrimsonDoor; + mappings[565] = ItemType.WarpedDoor; + mappings[566] = ItemType.Repeater; + mappings[567] = ItemType.Comparator; + mappings[568] = ItemType.StructureBlock; + mappings[569] = ItemType.Jigsaw; + mappings[570] = ItemType.TurtleHelmet; + mappings[571] = ItemType.Scute; + mappings[572] = ItemType.FlintAndSteel; + mappings[573] = ItemType.Apple; + mappings[574] = ItemType.Bow; + mappings[575] = ItemType.Arrow; + mappings[576] = ItemType.Coal; + mappings[577] = ItemType.Charcoal; + mappings[578] = ItemType.Diamond; + mappings[579] = ItemType.IronIngot; + mappings[580] = ItemType.GoldIngot; + mappings[581] = ItemType.NetheriteIngot; + mappings[582] = ItemType.NetheriteScrap; + mappings[583] = ItemType.WoodenSword; + mappings[584] = ItemType.WoodenShovel; + mappings[585] = ItemType.WoodenPickaxe; + mappings[586] = ItemType.WoodenAxe; + mappings[587] = ItemType.WoodenHoe; + mappings[588] = ItemType.StoneSword; + mappings[589] = ItemType.StoneShovel; + mappings[590] = ItemType.StonePickaxe; + mappings[591] = ItemType.StoneAxe; + mappings[592] = ItemType.StoneHoe; + mappings[593] = ItemType.GoldenSword; + mappings[594] = ItemType.GoldenShovel; + mappings[595] = ItemType.GoldenPickaxe; + mappings[596] = ItemType.GoldenAxe; + mappings[597] = ItemType.GoldenHoe; + mappings[598] = ItemType.IronSword; + mappings[599] = ItemType.IronShovel; + mappings[600] = ItemType.IronPickaxe; + mappings[601] = ItemType.IronAxe; + mappings[602] = ItemType.IronHoe; + mappings[603] = ItemType.DiamondSword; + mappings[604] = ItemType.DiamondShovel; + mappings[605] = ItemType.DiamondPickaxe; + mappings[606] = ItemType.DiamondAxe; + mappings[607] = ItemType.DiamondHoe; + mappings[608] = ItemType.NetheriteSword; + mappings[609] = ItemType.NetheriteShovel; + mappings[610] = ItemType.NetheritePickaxe; + mappings[611] = ItemType.NetheriteAxe; + mappings[612] = ItemType.NetheriteHoe; + mappings[613] = ItemType.Stick; + mappings[614] = ItemType.Bowl; + mappings[615] = ItemType.MushroomStew; + mappings[616] = ItemType.String; + mappings[617] = ItemType.Feather; + mappings[618] = ItemType.Gunpowder; + mappings[619] = ItemType.WheatSeeds; + mappings[620] = ItemType.Wheat; + mappings[621] = ItemType.Bread; + mappings[622] = ItemType.LeatherHelmet; + mappings[623] = ItemType.LeatherChestplate; + mappings[624] = ItemType.LeatherLeggings; + mappings[625] = ItemType.LeatherBoots; + mappings[626] = ItemType.ChainmailHelmet; + mappings[627] = ItemType.ChainmailChestplate; + mappings[628] = ItemType.ChainmailLeggings; + mappings[629] = ItemType.ChainmailBoots; + mappings[630] = ItemType.IronHelmet; + mappings[631] = ItemType.IronChestplate; + mappings[632] = ItemType.IronLeggings; + mappings[633] = ItemType.IronBoots; + mappings[634] = ItemType.DiamondHelmet; + mappings[635] = ItemType.DiamondChestplate; + mappings[636] = ItemType.DiamondLeggings; + mappings[637] = ItemType.DiamondBoots; + mappings[638] = ItemType.GoldenHelmet; + mappings[639] = ItemType.GoldenChestplate; + mappings[640] = ItemType.GoldenLeggings; + mappings[641] = ItemType.GoldenBoots; + mappings[642] = ItemType.NetheriteHelmet; + mappings[643] = ItemType.NetheriteChestplate; + mappings[644] = ItemType.NetheriteLeggings; + mappings[645] = ItemType.NetheriteBoots; + mappings[646] = ItemType.Flint; + mappings[647] = ItemType.Porkchop; + mappings[648] = ItemType.CookedPorkchop; + mappings[649] = ItemType.Painting; + mappings[650] = ItemType.GoldenApple; + mappings[651] = ItemType.EnchantedGoldenApple; + mappings[652] = ItemType.OakSign; + mappings[653] = ItemType.SpruceSign; + mappings[654] = ItemType.BirchSign; + mappings[655] = ItemType.JungleSign; + mappings[656] = ItemType.AcaciaSign; + mappings[657] = ItemType.DarkOakSign; + mappings[658] = ItemType.CrimsonSign; + mappings[659] = ItemType.WarpedSign; + mappings[660] = ItemType.Bucket; + mappings[661] = ItemType.WaterBucket; + mappings[662] = ItemType.LavaBucket; + mappings[663] = ItemType.Minecart; + mappings[664] = ItemType.Saddle; + mappings[665] = ItemType.Redstone; + mappings[666] = ItemType.Snowball; + mappings[667] = ItemType.OakBoat; + mappings[668] = ItemType.Leather; + mappings[669] = ItemType.MilkBucket; + mappings[670] = ItemType.PufferfishBucket; + mappings[671] = ItemType.SalmonBucket; + mappings[672] = ItemType.CodBucket; + mappings[673] = ItemType.TropicalFishBucket; + mappings[674] = ItemType.Brick; + mappings[675] = ItemType.ClayBall; + mappings[676] = ItemType.DriedKelpBlock; + mappings[677] = ItemType.Paper; + mappings[678] = ItemType.Book; + mappings[679] = ItemType.SlimeBall; + mappings[680] = ItemType.ChestMinecart; + mappings[681] = ItemType.FurnaceMinecart; + mappings[682] = ItemType.Egg; + mappings[683] = ItemType.Compass; + mappings[684] = ItemType.FishingRod; + mappings[685] = ItemType.Clock; + mappings[686] = ItemType.GlowstoneDust; + mappings[687] = ItemType.Cod; + mappings[688] = ItemType.Salmon; + mappings[689] = ItemType.TropicalFish; + mappings[690] = ItemType.Pufferfish; + mappings[691] = ItemType.CookedCod; + mappings[692] = ItemType.CookedSalmon; + mappings[693] = ItemType.InkSac; + mappings[694] = ItemType.CocoaBeans; + mappings[695] = ItemType.LapisLazuli; + mappings[696] = ItemType.WhiteDye; + mappings[697] = ItemType.OrangeDye; + mappings[698] = ItemType.MagentaDye; + mappings[699] = ItemType.LightBlueDye; + mappings[700] = ItemType.YellowDye; + mappings[701] = ItemType.LimeDye; + mappings[702] = ItemType.PinkDye; + mappings[703] = ItemType.GrayDye; + mappings[704] = ItemType.LightGrayDye; + mappings[705] = ItemType.CyanDye; + mappings[706] = ItemType.PurpleDye; + mappings[707] = ItemType.BlueDye; + mappings[708] = ItemType.BrownDye; + mappings[709] = ItemType.GreenDye; + mappings[710] = ItemType.RedDye; + mappings[711] = ItemType.BlackDye; + mappings[712] = ItemType.BoneMeal; + mappings[713] = ItemType.Bone; + mappings[714] = ItemType.Sugar; + mappings[715] = ItemType.Cake; + mappings[716] = ItemType.WhiteBed; + mappings[717] = ItemType.OrangeBed; + mappings[718] = ItemType.MagentaBed; + mappings[719] = ItemType.LightBlueBed; + mappings[720] = ItemType.YellowBed; + mappings[721] = ItemType.LimeBed; + mappings[722] = ItemType.PinkBed; + mappings[723] = ItemType.GrayBed; + mappings[724] = ItemType.LightGrayBed; + mappings[725] = ItemType.CyanBed; + mappings[726] = ItemType.PurpleBed; + mappings[727] = ItemType.BlueBed; + mappings[728] = ItemType.BrownBed; + mappings[729] = ItemType.GreenBed; + mappings[730] = ItemType.RedBed; + mappings[731] = ItemType.BlackBed; + mappings[732] = ItemType.Cookie; + mappings[733] = ItemType.FilledMap; + mappings[734] = ItemType.Shears; + mappings[735] = ItemType.MelonSlice; + mappings[736] = ItemType.DriedKelp; + mappings[737] = ItemType.PumpkinSeeds; + mappings[738] = ItemType.MelonSeeds; + mappings[739] = ItemType.Beef; + mappings[740] = ItemType.CookedBeef; + mappings[741] = ItemType.Chicken; + mappings[742] = ItemType.CookedChicken; + mappings[743] = ItemType.RottenFlesh; + mappings[744] = ItemType.EnderPearl; + mappings[745] = ItemType.BlazeRod; + mappings[746] = ItemType.GhastTear; + mappings[747] = ItemType.GoldNugget; + mappings[748] = ItemType.NetherWart; + mappings[749] = ItemType.Potion; + mappings[750] = ItemType.GlassBottle; + mappings[751] = ItemType.SpiderEye; + mappings[752] = ItemType.FermentedSpiderEye; + mappings[753] = ItemType.BlazePowder; + mappings[754] = ItemType.MagmaCream; + mappings[755] = ItemType.BrewingStand; + mappings[756] = ItemType.Cauldron; + mappings[757] = ItemType.EnderEye; + mappings[758] = ItemType.GlisteringMelonSlice; + mappings[759] = ItemType.BatSpawnEgg; + mappings[760] = ItemType.BeeSpawnEgg; + mappings[761] = ItemType.BlazeSpawnEgg; + mappings[762] = ItemType.CatSpawnEgg; + mappings[763] = ItemType.CaveSpiderSpawnEgg; + mappings[764] = ItemType.ChickenSpawnEgg; + mappings[765] = ItemType.CodSpawnEgg; + mappings[766] = ItemType.CowSpawnEgg; + mappings[767] = ItemType.CreeperSpawnEgg; + mappings[768] = ItemType.DolphinSpawnEgg; + mappings[769] = ItemType.DonkeySpawnEgg; + mappings[770] = ItemType.DrownedSpawnEgg; + mappings[771] = ItemType.ElderGuardianSpawnEgg; + mappings[772] = ItemType.EndermanSpawnEgg; + mappings[773] = ItemType.EndermiteSpawnEgg; + mappings[774] = ItemType.EvokerSpawnEgg; + mappings[775] = ItemType.FoxSpawnEgg; + mappings[776] = ItemType.GhastSpawnEgg; + mappings[777] = ItemType.GuardianSpawnEgg; + mappings[778] = ItemType.HoglinSpawnEgg; + mappings[779] = ItemType.HorseSpawnEgg; + mappings[780] = ItemType.HuskSpawnEgg; + mappings[781] = ItemType.LlamaSpawnEgg; + mappings[782] = ItemType.MagmaCubeSpawnEgg; + mappings[783] = ItemType.MooshroomSpawnEgg; + mappings[784] = ItemType.MuleSpawnEgg; + mappings[785] = ItemType.OcelotSpawnEgg; + mappings[786] = ItemType.PandaSpawnEgg; + mappings[787] = ItemType.ParrotSpawnEgg; + mappings[788] = ItemType.PhantomSpawnEgg; + mappings[789] = ItemType.PigSpawnEgg; + mappings[790] = ItemType.PiglinSpawnEgg; + mappings[791] = ItemType.PiglinBruteSpawnEgg; + mappings[792] = ItemType.PillagerSpawnEgg; + mappings[793] = ItemType.PolarBearSpawnEgg; + mappings[794] = ItemType.PufferfishSpawnEgg; + mappings[795] = ItemType.RabbitSpawnEgg; + mappings[796] = ItemType.RavagerSpawnEgg; + mappings[797] = ItemType.SalmonSpawnEgg; + mappings[798] = ItemType.SheepSpawnEgg; + mappings[799] = ItemType.ShulkerSpawnEgg; + mappings[800] = ItemType.SilverfishSpawnEgg; + mappings[801] = ItemType.SkeletonSpawnEgg; + mappings[802] = ItemType.SkeletonHorseSpawnEgg; + mappings[803] = ItemType.SlimeSpawnEgg; + mappings[804] = ItemType.SpiderSpawnEgg; + mappings[805] = ItemType.SquidSpawnEgg; + mappings[806] = ItemType.StraySpawnEgg; + mappings[807] = ItemType.StriderSpawnEgg; + mappings[808] = ItemType.TraderLlamaSpawnEgg; + mappings[809] = ItemType.TropicalFishSpawnEgg; + mappings[810] = ItemType.TurtleSpawnEgg; + mappings[811] = ItemType.VexSpawnEgg; + mappings[812] = ItemType.VillagerSpawnEgg; + mappings[813] = ItemType.VindicatorSpawnEgg; + mappings[814] = ItemType.WanderingTraderSpawnEgg; + mappings[815] = ItemType.WitchSpawnEgg; + mappings[816] = ItemType.WitherSkeletonSpawnEgg; + mappings[817] = ItemType.WolfSpawnEgg; + mappings[818] = ItemType.ZoglinSpawnEgg; + mappings[819] = ItemType.ZombieSpawnEgg; + mappings[820] = ItemType.ZombieHorseSpawnEgg; + mappings[821] = ItemType.ZombieVillagerSpawnEgg; + mappings[822] = ItemType.ZombifiedPiglinSpawnEgg; + mappings[823] = ItemType.ExperienceBottle; + mappings[824] = ItemType.FireCharge; + mappings[825] = ItemType.WritableBook; + mappings[826] = ItemType.WrittenBook; + mappings[827] = ItemType.Emerald; + mappings[828] = ItemType.ItemFrame; + mappings[829] = ItemType.FlowerPot; + mappings[830] = ItemType.Carrot; + mappings[831] = ItemType.Potato; + mappings[832] = ItemType.BakedPotato; + mappings[833] = ItemType.PoisonousPotato; + mappings[834] = ItemType.Map; + mappings[835] = ItemType.GoldenCarrot; + mappings[836] = ItemType.SkeletonSkull; + mappings[837] = ItemType.WitherSkeletonSkull; + mappings[838] = ItemType.PlayerHead; + mappings[839] = ItemType.ZombieHead; + mappings[840] = ItemType.CreeperHead; + mappings[841] = ItemType.DragonHead; + mappings[842] = ItemType.CarrotOnAStick; + mappings[843] = ItemType.WarpedFungusOnAStick; + mappings[844] = ItemType.NetherStar; + mappings[845] = ItemType.PumpkinPie; + mappings[846] = ItemType.FireworkRocket; + mappings[847] = ItemType.FireworkStar; + mappings[848] = ItemType.EnchantedBook; + mappings[849] = ItemType.NetherBrick; + mappings[850] = ItemType.Quartz; + mappings[851] = ItemType.TntMinecart; + mappings[852] = ItemType.HopperMinecart; + mappings[853] = ItemType.PrismarineShard; + mappings[854] = ItemType.PrismarineCrystals; + mappings[855] = ItemType.Rabbit; + mappings[856] = ItemType.CookedRabbit; + mappings[857] = ItemType.RabbitStew; + mappings[858] = ItemType.RabbitFoot; + mappings[859] = ItemType.RabbitHide; + mappings[860] = ItemType.ArmorStand; + mappings[861] = ItemType.IronHorseArmor; + mappings[862] = ItemType.GoldenHorseArmor; + mappings[863] = ItemType.DiamondHorseArmor; + mappings[864] = ItemType.LeatherHorseArmor; + mappings[865] = ItemType.Lead; + mappings[866] = ItemType.NameTag; + mappings[867] = ItemType.CommandBlockMinecart; + mappings[868] = ItemType.Mutton; + mappings[869] = ItemType.CookedMutton; + mappings[870] = ItemType.WhiteBanner; + mappings[871] = ItemType.OrangeBanner; + mappings[872] = ItemType.MagentaBanner; + mappings[873] = ItemType.LightBlueBanner; + mappings[874] = ItemType.YellowBanner; + mappings[875] = ItemType.LimeBanner; + mappings[876] = ItemType.PinkBanner; + mappings[877] = ItemType.GrayBanner; + mappings[878] = ItemType.LightGrayBanner; + mappings[879] = ItemType.CyanBanner; + mappings[880] = ItemType.PurpleBanner; + mappings[881] = ItemType.BlueBanner; + mappings[882] = ItemType.BrownBanner; + mappings[883] = ItemType.GreenBanner; + mappings[884] = ItemType.RedBanner; + mappings[885] = ItemType.BlackBanner; + mappings[886] = ItemType.EndCrystal; + mappings[887] = ItemType.ChorusFruit; + mappings[888] = ItemType.PoppedChorusFruit; + mappings[889] = ItemType.Beetroot; + mappings[890] = ItemType.BeetrootSeeds; + mappings[891] = ItemType.BeetrootSoup; + mappings[892] = ItemType.DragonBreath; + mappings[893] = ItemType.SplashPotion; + mappings[894] = ItemType.SpectralArrow; + mappings[895] = ItemType.TippedArrow; + mappings[896] = ItemType.LingeringPotion; + mappings[897] = ItemType.Shield; + mappings[898] = ItemType.Elytra; + mappings[899] = ItemType.SpruceBoat; + mappings[900] = ItemType.BirchBoat; + mappings[901] = ItemType.JungleBoat; + mappings[902] = ItemType.AcaciaBoat; + mappings[903] = ItemType.DarkOakBoat; + mappings[904] = ItemType.TotemOfUndying; + mappings[905] = ItemType.ShulkerShell; + mappings[906] = ItemType.IronNugget; + mappings[907] = ItemType.KnowledgeBook; + mappings[908] = ItemType.DebugStick; + mappings[909] = ItemType.MusicDisc13; + mappings[910] = ItemType.MusicDiscCat; + mappings[911] = ItemType.MusicDiscBlocks; + mappings[912] = ItemType.MusicDiscChirp; + mappings[913] = ItemType.MusicDiscFar; + mappings[914] = ItemType.MusicDiscMall; + mappings[915] = ItemType.MusicDiscMellohi; + mappings[916] = ItemType.MusicDiscStal; + mappings[917] = ItemType.MusicDiscStrad; + mappings[918] = ItemType.MusicDiscWard; + mappings[919] = ItemType.MusicDisc11; + mappings[920] = ItemType.MusicDiscWait; + mappings[921] = ItemType.MusicDiscPigstep; + mappings[922] = ItemType.Trident; + mappings[923] = ItemType.PhantomMembrane; + mappings[924] = ItemType.NautilusShell; + mappings[925] = ItemType.HeartOfTheSea; + mappings[926] = ItemType.Crossbow; + mappings[927] = ItemType.SuspiciousStew; + mappings[928] = ItemType.Loom; + mappings[929] = ItemType.FlowerBannerPattern; + mappings[930] = ItemType.CreeperBannerPattern; + mappings[931] = ItemType.SkullBannerPattern; + mappings[932] = ItemType.MojangBannerPattern; + mappings[933] = ItemType.GlobeBannerPattern; + mappings[934] = ItemType.PiglinBannerPattern; + mappings[935] = ItemType.Composter; + mappings[936] = ItemType.Barrel; + mappings[937] = ItemType.Smoker; + mappings[938] = ItemType.BlastFurnace; + mappings[939] = ItemType.CartographyTable; + mappings[940] = ItemType.FletchingTable; + mappings[941] = ItemType.Grindstone; + mappings[942] = ItemType.Lectern; + mappings[943] = ItemType.SmithingTable; + mappings[944] = ItemType.Stonecutter; + mappings[945] = ItemType.Bell; + mappings[946] = ItemType.Lantern; + mappings[947] = ItemType.SoulLantern; + mappings[948] = ItemType.SweetBerries; + mappings[949] = ItemType.Campfire; + mappings[950] = ItemType.SoulCampfire; + mappings[951] = ItemType.Shroomlight; + mappings[952] = ItemType.Honeycomb; + mappings[953] = ItemType.BeeNest; + mappings[954] = ItemType.Beehive; + mappings[955] = ItemType.HoneyBottle; + mappings[956] = ItemType.HoneyBlock; + mappings[957] = ItemType.HoneycombBlock; + mappings[958] = ItemType.Lodestone; + mappings[959] = ItemType.NetheriteBlock; + mappings[960] = ItemType.AncientDebris; + mappings[961] = ItemType.Target; + mappings[962] = ItemType.CryingObsidian; + mappings[963] = ItemType.Blackstone; + mappings[964] = ItemType.BlackstoneSlab; + mappings[965] = ItemType.BlackstoneStairs; + mappings[966] = ItemType.GildedBlackstone; + mappings[967] = ItemType.PolishedBlackstone; + mappings[968] = ItemType.PolishedBlackstoneSlab; + mappings[969] = ItemType.PolishedBlackstoneStairs; + mappings[970] = ItemType.ChiseledPolishedBlackstone; + mappings[971] = ItemType.PolishedBlackstoneBricks; + mappings[972] = ItemType.PolishedBlackstoneBrickSlab; + mappings[973] = ItemType.PolishedBlackstoneBrickStairs; + mappings[974] = ItemType.CrackedPolishedBlackstoneBricks; + mappings[975] = ItemType.RespawnAnchor; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPaletteGenerator.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPaletteGenerator.cs new file mode 100644 index 00000000..c58dd57e --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPaletteGenerator.cs @@ -0,0 +1,28 @@ +using MinecraftClient.Protocol; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + public static class ItemPaletteGenerator + { + /// + /// Place below line to Program.cs + /// Inventory.ItemPalettes.ItemPaletteGenerator.GenerateItemType(@"your\path\to\registries.json"); + /// See https://wiki.vg/Data_Generators for getting those .json + /// + /// + public static void GenerateItemType(string registriesJsonFile) + { + DataTypeGenerator.GenerateEnumWithPalette( + registriesJsonFile, + "minecraft:item", + "ItemType", + "MinecraftClient.Inventory", + "ItemPalette", + "MinecraftClient.Inventory.ItemPalettes"); + } + } +} diff --git a/MinecraftClient/Inventory/ItemType.cs b/MinecraftClient/Inventory/ItemType.cs index 1669dc84..10b6ac8b 100644 --- a/MinecraftClient/Inventory/ItemType.cs +++ b/MinecraftClient/Inventory/ItemType.cs @@ -1,894 +1,994 @@ namespace MinecraftClient.Inventory { /// - /// Generated using ItemTypeGenerator.cs - /// For new Minecraft versions, generate this file again and add new entries to the list. + /// For MC version 1.16.2. + /// Generated using ItemPaletteGenerator. + /// Typical steps to handle new item IDs for newer Minecraft versions: + /// 1. Generate registries.json using data reporting on Vanilla Minecraft (https://wiki.vg/Data_Generators) + /// 2. Generate temporary ItemTypeXXX.cs and ItemPaletteXXX.cs using ItemPaletteGenerator.cs + /// 3. Perform a diff with existing versions, add missing entries in ItemType.cs and ItemTypeExtensions.cs + /// 4. If existing entity IDs were not randomized by Mojang, simply add missing entries to the latest existing ItemPaletteXXX.cs + /// 5. If existing entity IDs were randomized, add a new palette as ItemPaletteXXX.cs into the codebase /// public enum ItemType { - Air = 0, - Stone = 1, - Granite = 2, - PolishedGranite = 3, - Diorite = 4, - PolishedDiorite = 5, - Andesite = 6, - PolishedAndesite = 7, - GrassBlock = 8, - Dirt = 9, - CoarseDirt = 10, - Podzol = 11, - Cobblestone = 12, - OakPlanks = 13, - SprucePlanks = 14, - BirchPlanks = 15, - JunglePlanks = 16, - AcaciaPlanks = 17, - DarkOakPlanks = 18, - OakSapling = 19, - SpruceSapling = 20, - BirchSapling = 21, - JungleSapling = 22, - AcaciaSapling = 23, - DarkOakSapling = 24, - Bedrock = 25, - Sand = 26, - RedSand = 27, - Gravel = 28, - GoldOre = 29, - IronOre = 30, - CoalOre = 31, - OakLog = 32, - SpruceLog = 33, - BirchLog = 34, - JungleLog = 35, - AcaciaLog = 36, - DarkOakLog = 37, - StrippedOakLog = 38, - StrippedSpruceLog = 39, - StrippedBirchLog = 40, - StrippedJungleLog = 41, - StrippedAcaciaLog = 42, - StrippedDarkOakLog = 43, - StrippedOakWood = 44, - StrippedSpruceWood = 45, - StrippedBirchWood = 46, - StrippedJungleWood = 47, - StrippedAcaciaWood = 48, - StrippedDarkOakWood = 49, - OakWood = 50, - SpruceWood = 51, - BirchWood = 52, - JungleWood = 53, - AcaciaWood = 54, - DarkOakWood = 55, - OakLeaves = 56, - SpruceLeaves = 57, - BirchLeaves = 58, - JungleLeaves = 59, - AcaciaLeaves = 60, - DarkOakLeaves = 61, - Sponge = 62, - WetSponge = 63, - Glass = 64, - LapisOre = 65, - LapisBlock = 66, - Dispenser = 67, - Sandstone = 68, - ChiseledSandstone = 69, - CutSandstone = 70, - NoteBlock = 71, - PoweredRail = 72, - DetectorRail = 73, - StickyPiston = 74, - Cobweb = 75, - Grass = 76, - Fern = 77, - DeadBush = 78, - Seagrass = 79, - SeaPickle = 80, - Piston = 81, - WhiteWool = 82, - OrangeWool = 83, - MagentaWool = 84, - LightBlueWool = 85, - YellowWool = 86, - LimeWool = 87, - PinkWool = 88, - GrayWool = 89, - LightGrayWool = 90, - CyanWool = 91, - PurpleWool = 92, - BlueWool = 93, - BrownWool = 94, - GreenWool = 95, - RedWool = 96, - BlackWool = 97, - Dandelion = 98, - Poppy = 99, - BlueOrchid = 100, - Allium = 101, - AzureBluet = 102, - RedTulip = 103, - OrangeTulip = 104, - WhiteTulip = 105, - PinkTulip = 106, - OxeyeDaisy = 107, - Cornflower = 108, - LilyOfTheValley = 109, - WitherRose = 110, - BrownMushroom = 111, - RedMushroom = 112, - GoldBlock = 113, - IronBlock = 114, - OakSlab = 115, - SpruceSlab = 116, - BirchSlab = 117, - JungleSlab = 118, - AcaciaSlab = 119, - DarkOakSlab = 120, - StoneSlab = 121, - SmoothStoneSlab = 122, - SandstoneSlab = 123, - CutSandstoneSlab = 124, - PetrifiedOakSlab = 125, - CobblestoneSlab = 126, - BrickSlab = 127, - StoneBrickSlab = 128, - NetherBrickSlab = 129, - QuartzSlab = 130, - RedSandstoneSlab = 131, - CutRedSandstoneSlab = 132, - PurpurSlab = 133, - PrismarineSlab = 134, - PrismarineBrickSlab = 135, - DarkPrismarineSlab = 136, - SmoothQuartz = 137, - SmoothRedSandstone = 138, - SmoothSandstone = 139, - SmoothStone = 140, - Bricks = 141, - Tnt = 142, - Bookshelf = 143, - MossyCobblestone = 144, - Obsidian = 145, - Torch = 146, - EndRod = 147, - ChorusPlant = 148, - ChorusFlower = 149, - PurpurBlock = 150, - PurpurPillar = 151, - PurpurStairs = 152, - Spawner = 153, - OakStairs = 154, - Chest = 155, - DiamondOre = 156, - DiamondBlock = 157, - CraftingTable = 158, - Farmland = 159, - Furnace = 160, - Ladder = 161, - Rail = 162, - CobblestoneStairs = 163, - Lever = 164, - StonePressurePlate = 165, - OakPressurePlate = 166, - SprucePressurePlate = 167, - BirchPressurePlate = 168, - JunglePressurePlate = 169, - AcaciaPressurePlate = 170, - DarkOakPressurePlate = 171, - RedstoneOre = 172, - RedstoneTorch = 173, - StoneButton = 174, - Snow = 175, - Ice = 176, - SnowBlock = 177, - Cactus = 178, - Clay = 179, - Jukebox = 180, - OakFence = 181, - SpruceFence = 182, - BirchFence = 183, - JungleFence = 184, - AcaciaFence = 185, - DarkOakFence = 186, - Pumpkin = 187, - CarvedPumpkin = 188, - Netherrack = 189, - SoulSand = 190, - Glowstone = 191, - JackOLantern = 192, - OakTrapdoor = 193, - SpruceTrapdoor = 194, - BirchTrapdoor = 195, - JungleTrapdoor = 196, - AcaciaTrapdoor = 197, - DarkOakTrapdoor = 198, - InfestedStone = 199, - InfestedCobblestone = 200, - InfestedStoneBricks = 201, - InfestedMossyStoneBricks = 202, - InfestedCrackedStoneBricks = 203, - InfestedChiseledStoneBricks = 204, - StoneBricks = 205, - MossyStoneBricks = 206, - CrackedStoneBricks = 207, - ChiseledStoneBricks = 208, - BrownMushroomBlock = 209, - RedMushroomBlock = 210, - MushroomStem = 211, - IronBars = 212, - GlassPane = 213, - Melon = 214, - Vine = 215, - OakFenceGate = 216, - SpruceFenceGate = 217, - BirchFenceGate = 218, - JungleFenceGate = 219, - AcaciaFenceGate = 220, - DarkOakFenceGate = 221, - BrickStairs = 222, - StoneBrickStairs = 223, - Mycelium = 224, - LilyPad = 225, - NetherBricks = 226, - NetherBrickFence = 227, - NetherBrickStairs = 228, - EnchantingTable = 229, - EndPortalFrame = 230, - EndStone = 231, - EndStoneBricks = 232, - DragonEgg = 233, - RedstoneLamp = 234, - SandstoneStairs = 235, - EmeraldOre = 236, - EnderChest = 237, - TripwireHook = 238, - EmeraldBlock = 239, - SpruceStairs = 240, - BirchStairs = 241, - JungleStairs = 242, - CommandBlock = 243, - Beacon = 244, - CobblestoneWall = 245, - MossyCobblestoneWall = 246, - BrickWall = 247, - PrismarineWall = 248, - RedSandstoneWall = 249, - MossyStoneBrickWall = 250, - GraniteWall = 251, - StoneBrickWall = 252, - NetherBrickWall = 253, - AndesiteWall = 254, - RedNetherBrickWall = 255, - SandstoneWall = 256, - EndStoneBrickWall = 257, - DioriteWall = 258, - OakButton = 259, - SpruceButton = 260, - BirchButton = 261, - JungleButton = 262, - AcaciaButton = 263, - DarkOakButton = 264, - Anvil = 265, - ChippedAnvil = 266, - DamagedAnvil = 267, - TrappedChest = 268, - LightWeightedPressurePlate = 269, - HeavyWeightedPressurePlate = 270, - DaylightDetector = 271, - RedstoneBlock = 272, - NetherQuartzOre = 273, - Hopper = 274, - ChiseledQuartzBlock = 275, - QuartzBlock = 276, - QuartzPillar = 277, - QuartzStairs = 278, - ActivatorRail = 279, - Dropper = 280, - WhiteTerracotta = 281, - OrangeTerracotta = 282, - MagentaTerracotta = 283, - LightBlueTerracotta = 284, - YellowTerracotta = 285, - LimeTerracotta = 286, - PinkTerracotta = 287, - GrayTerracotta = 288, - LightGrayTerracotta = 289, - CyanTerracotta = 290, - PurpleTerracotta = 291, - BlueTerracotta = 292, - BrownTerracotta = 293, - GreenTerracotta = 294, - RedTerracotta = 295, - BlackTerracotta = 296, - Barrier = 297, - IronTrapdoor = 298, - HayBlock = 299, - WhiteCarpet = 300, - OrangeCarpet = 301, - MagentaCarpet = 302, - LightBlueCarpet = 303, - YellowCarpet = 304, - LimeCarpet = 305, - PinkCarpet = 306, - GrayCarpet = 307, - LightGrayCarpet = 308, - CyanCarpet = 309, - PurpleCarpet = 310, - BlueCarpet = 311, - BrownCarpet = 312, - GreenCarpet = 313, - RedCarpet = 314, - BlackCarpet = 315, - Terracotta = 316, - CoalBlock = 317, - PackedIce = 318, - AcaciaStairs = 319, - DarkOakStairs = 320, - SlimeBlock = 321, - GrassPath = 322, - Sunflower = 323, - Lilac = 324, - RoseBush = 325, - Peony = 326, - TallGrass = 327, - LargeFern = 328, - WhiteStainedGlass = 329, - OrangeStainedGlass = 330, - MagentaStainedGlass = 331, - LightBlueStainedGlass = 332, - YellowStainedGlass = 333, - LimeStainedGlass = 334, - PinkStainedGlass = 335, - GrayStainedGlass = 336, - LightGrayStainedGlass = 337, - CyanStainedGlass = 338, - PurpleStainedGlass = 339, - BlueStainedGlass = 340, - BrownStainedGlass = 341, - GreenStainedGlass = 342, - RedStainedGlass = 343, - BlackStainedGlass = 344, - WhiteStainedGlassPane = 345, - OrangeStainedGlassPane = 346, - MagentaStainedGlassPane = 347, - LightBlueStainedGlassPane = 348, - YellowStainedGlassPane = 349, - LimeStainedGlassPane = 350, - PinkStainedGlassPane = 351, - GrayStainedGlassPane = 352, - LightGrayStainedGlassPane = 353, - CyanStainedGlassPane = 354, - PurpleStainedGlassPane = 355, - BlueStainedGlassPane = 356, - BrownStainedGlassPane = 357, - GreenStainedGlassPane = 358, - RedStainedGlassPane = 359, - BlackStainedGlassPane = 360, - Prismarine = 361, - PrismarineBricks = 362, - DarkPrismarine = 363, - PrismarineStairs = 364, - PrismarineBrickStairs = 365, - DarkPrismarineStairs = 366, - SeaLantern = 367, - RedSandstone = 368, - ChiseledRedSandstone = 369, - CutRedSandstone = 370, - RedSandstoneStairs = 371, - RepeatingCommandBlock = 372, - ChainCommandBlock = 373, - MagmaBlock = 374, - NetherWartBlock = 375, - RedNetherBricks = 376, - BoneBlock = 377, - StructureVoid = 378, - Observer = 379, - ShulkerBox = 380, - WhiteShulkerBox = 381, - OrangeShulkerBox = 382, - MagentaShulkerBox = 383, - LightBlueShulkerBox = 384, - YellowShulkerBox = 385, - LimeShulkerBox = 386, - PinkShulkerBox = 387, - GrayShulkerBox = 388, - LightGrayShulkerBox = 389, - CyanShulkerBox = 390, - PurpleShulkerBox = 391, - BlueShulkerBox = 392, - BrownShulkerBox = 393, - GreenShulkerBox = 394, - RedShulkerBox = 395, - BlackShulkerBox = 396, - WhiteGlazedTerracotta = 397, - OrangeGlazedTerracotta = 398, - MagentaGlazedTerracotta = 399, - LightBlueGlazedTerracotta = 400, - YellowGlazedTerracotta = 401, - LimeGlazedTerracotta = 402, - PinkGlazedTerracotta = 403, - GrayGlazedTerracotta = 404, - LightGrayGlazedTerracotta = 405, - CyanGlazedTerracotta = 406, - PurpleGlazedTerracotta = 407, - BlueGlazedTerracotta = 408, - BrownGlazedTerracotta = 409, - GreenGlazedTerracotta = 410, - RedGlazedTerracotta = 411, - BlackGlazedTerracotta = 412, - WhiteConcrete = 413, - OrangeConcrete = 414, - MagentaConcrete = 415, - LightBlueConcrete = 416, - YellowConcrete = 417, - LimeConcrete = 418, - PinkConcrete = 419, - GrayConcrete = 420, - LightGrayConcrete = 421, - CyanConcrete = 422, - PurpleConcrete = 423, - BlueConcrete = 424, - BrownConcrete = 425, - GreenConcrete = 426, - RedConcrete = 427, - BlackConcrete = 428, - WhiteConcretePowder = 429, - OrangeConcretePowder = 430, - MagentaConcretePowder = 431, - LightBlueConcretePowder = 432, - YellowConcretePowder = 433, - LimeConcretePowder = 434, - PinkConcretePowder = 435, - GrayConcretePowder = 436, - LightGrayConcretePowder = 437, - CyanConcretePowder = 438, - PurpleConcretePowder = 439, - BlueConcretePowder = 440, - BrownConcretePowder = 441, - GreenConcretePowder = 442, - RedConcretePowder = 443, - BlackConcretePowder = 444, - TurtleEgg = 445, - DeadTubeCoralBlock = 446, - DeadBrainCoralBlock = 447, - DeadBubbleCoralBlock = 448, - DeadFireCoralBlock = 449, - DeadHornCoralBlock = 450, - TubeCoralBlock = 451, - BrainCoralBlock = 452, - BubbleCoralBlock = 453, - FireCoralBlock = 454, - HornCoralBlock = 455, - TubeCoral = 456, - BrainCoral = 457, - BubbleCoral = 458, - FireCoral = 459, - HornCoral = 460, - DeadBrainCoral = 461, - DeadBubbleCoral = 462, - DeadFireCoral = 463, - DeadHornCoral = 464, - DeadTubeCoral = 465, - TubeCoralFan = 466, - BrainCoralFan = 467, - BubbleCoralFan = 468, - FireCoralFan = 469, - HornCoralFan = 470, - DeadTubeCoralFan = 471, - DeadBrainCoralFan = 472, - DeadBubbleCoralFan = 473, - DeadFireCoralFan = 474, - DeadHornCoralFan = 475, - BlueIce = 476, - Conduit = 477, - PolishedGraniteStairs = 478, - SmoothRedSandstoneStairs = 479, - MossyStoneBrickStairs = 480, - PolishedDioriteStairs = 481, - MossyCobblestoneStairs = 482, - EndStoneBrickStairs = 483, - StoneStairs = 484, - SmoothSandstoneStairs = 485, - SmoothQuartzStairs = 486, - GraniteStairs = 487, - AndesiteStairs = 488, - RedNetherBrickStairs = 489, - PolishedAndesiteStairs = 490, - DioriteStairs = 491, - PolishedGraniteSlab = 492, - SmoothRedSandstoneSlab = 493, - MossyStoneBrickSlab = 494, - PolishedDioriteSlab = 495, - MossyCobblestoneSlab = 496, - EndStoneBrickSlab = 497, - SmoothSandstoneSlab = 498, - SmoothQuartzSlab = 499, - GraniteSlab = 500, - AndesiteSlab = 501, - RedNetherBrickSlab = 502, - PolishedAndesiteSlab = 503, - DioriteSlab = 504, - Scaffolding = 505, - IronDoor = 506, - OakDoor = 507, - SpruceDoor = 508, - BirchDoor = 509, - JungleDoor = 510, - AcaciaDoor = 511, - DarkOakDoor = 512, - Repeater = 513, - Comparator = 514, - StructureBlock = 515, - Jigsaw = 516, - Composter = 517, - TurtleHelmet = 518, - Scute = 519, - IronShovel = 520, - IronPickaxe = 521, - IronAxe = 522, - FlintAndSteel = 523, - Apple = 524, - Bow = 525, - Arrow = 526, - Coal = 527, - Charcoal = 528, - Diamond = 529, - IronIngot = 530, - GoldIngot = 531, - IronSword = 532, - WoodenSword = 533, - WoodenShovel = 534, - WoodenPickaxe = 535, - WoodenAxe = 536, - StoneSword = 537, - StoneShovel = 538, - StonePickaxe = 539, - StoneAxe = 540, - DiamondSword = 541, - DiamondShovel = 542, - DiamondPickaxe = 543, - DiamondAxe = 544, - Stick = 545, - Bowl = 546, - MushroomStew = 547, - GoldenSword = 548, - GoldenShovel = 549, - GoldenPickaxe = 550, - GoldenAxe = 551, - String = 552, - Feather = 553, - Gunpowder = 554, - WoodenHoe = 555, - StoneHoe = 556, - IronHoe = 557, - DiamondHoe = 558, - GoldenHoe = 559, - WheatSeeds = 560, - Wheat = 561, - Bread = 562, - LeatherHelmet = 563, - LeatherChestplate = 564, - LeatherLeggings = 565, - LeatherBoots = 566, - ChainmailHelmet = 567, - ChainmailChestplate = 568, - ChainmailLeggings = 569, - ChainmailBoots = 570, - IronHelmet = 571, - IronChestplate = 572, - IronLeggings = 573, - IronBoots = 574, - DiamondHelmet = 575, - DiamondChestplate = 576, - DiamondLeggings = 577, - DiamondBoots = 578, - GoldenHelmet = 579, - GoldenChestplate = 580, - GoldenLeggings = 581, - GoldenBoots = 582, - Flint = 583, - Porkchop = 584, - CookedPorkchop = 585, - Painting = 586, - GoldenApple = 587, - EnchantedGoldenApple = 588, - OakSign = 589, - SpruceSign = 590, - BirchSign = 591, - JungleSign = 592, - AcaciaSign = 593, - DarkOakSign = 594, - Bucket = 595, - WaterBucket = 596, - LavaBucket = 597, - Minecart = 598, - Saddle = 599, - Redstone = 600, - Snowball = 601, - OakBoat = 602, - Leather = 603, - MilkBucket = 604, - PufferfishBucket = 605, - SalmonBucket = 606, - CodBucket = 607, - TropicalFishBucket = 608, - Brick = 609, - ClayBall = 610, - SugarCane = 611, - Kelp = 612, - DriedKelpBlock = 613, - Bamboo = 614, - Paper = 615, - Book = 616, - SlimeBall = 617, - ChestMinecart = 618, - FurnaceMinecart = 619, - Egg = 620, - Compass = 621, - FishingRod = 622, - Clock = 623, - GlowstoneDust = 624, - Cod = 625, - Salmon = 626, - TropicalFish = 627, - Pufferfish = 628, - CookedCod = 629, - CookedSalmon = 630, - InkSac = 631, - RedDye = 632, - GreenDye = 633, - CocoaBeans = 634, - LapisLazuli = 635, - PurpleDye = 636, - CyanDye = 637, - LightGrayDye = 638, - GrayDye = 639, - PinkDye = 640, - LimeDye = 641, - YellowDye = 642, - LightBlueDye = 643, - MagentaDye = 644, - OrangeDye = 645, - BoneMeal = 646, - BlueDye = 647, - BrownDye = 648, - BlackDye = 649, - WhiteDye = 650, - Bone = 651, - Sugar = 652, - Cake = 653, - WhiteBed = 654, - OrangeBed = 655, - MagentaBed = 656, - LightBlueBed = 657, - YellowBed = 658, - LimeBed = 659, - PinkBed = 660, - GrayBed = 661, - LightGrayBed = 662, - CyanBed = 663, - PurpleBed = 664, - BlueBed = 665, - BrownBed = 666, - GreenBed = 667, - RedBed = 668, - BlackBed = 669, - Cookie = 670, - FilledMap = 671, - Shears = 672, - MelonSlice = 673, - DriedKelp = 674, - PumpkinSeeds = 675, - MelonSeeds = 676, - Beef = 677, - CookedBeef = 678, - Chicken = 679, - CookedChicken = 680, - RottenFlesh = 681, - EnderPearl = 682, - BlazeRod = 683, - GhastTear = 684, - GoldNugget = 685, - NetherWart = 686, - Potion = 687, - GlassBottle = 688, - SpiderEye = 689, - FermentedSpiderEye = 690, - BlazePowder = 691, - MagmaCream = 692, - BrewingStand = 693, - Cauldron = 694, - EnderEye = 695, - GlisteringMelonSlice = 696, - BatSpawnEgg = 697, - BeeSpawnEgg = 698, - BlazeSpawnEgg = 699, - CatSpawnEgg = 700, - CaveSpiderSpawnEgg = 701, - ChickenSpawnEgg = 702, - CodSpawnEgg = 703, - CowSpawnEgg = 704, - CreeperSpawnEgg = 705, - DolphinSpawnEgg = 706, - DonkeySpawnEgg = 707, - DrownedSpawnEgg = 708, - ElderGuardianSpawnEgg = 709, - EndermanSpawnEgg = 710, - EndermiteSpawnEgg = 711, - EvokerSpawnEgg = 712, - FoxSpawnEgg = 713, - GhastSpawnEgg = 714, - GuardianSpawnEgg = 715, - HorseSpawnEgg = 716, - HuskSpawnEgg = 717, - LlamaSpawnEgg = 718, - MagmaCubeSpawnEgg = 719, - MooshroomSpawnEgg = 720, - MuleSpawnEgg = 721, - OcelotSpawnEgg = 722, - PandaSpawnEgg = 723, - ParrotSpawnEgg = 724, - PhantomSpawnEgg = 725, - PigSpawnEgg = 726, - PillagerSpawnEgg = 727, - PolarBearSpawnEgg = 728, - PufferfishSpawnEgg = 729, - RabbitSpawnEgg = 730, - RavagerSpawnEgg = 731, - SalmonSpawnEgg = 732, - SheepSpawnEgg = 733, - ShulkerSpawnEgg = 734, - SilverfishSpawnEgg = 735, - SkeletonSpawnEgg = 736, - SkeletonHorseSpawnEgg = 737, - SlimeSpawnEgg = 738, - SpiderSpawnEgg = 739, - SquidSpawnEgg = 740, - StraySpawnEgg = 741, - TraderLlamaSpawnEgg = 742, - TropicalFishSpawnEgg = 743, - TurtleSpawnEgg = 744, - VexSpawnEgg = 745, - VillagerSpawnEgg = 746, - VindicatorSpawnEgg = 747, - WanderingTraderSpawnEgg = 748, - WitchSpawnEgg = 749, - WitherSkeletonSpawnEgg = 750, - WolfSpawnEgg = 751, - ZombieSpawnEgg = 752, - ZombieHorseSpawnEgg = 753, - ZombiePigmanSpawnEgg = 754, - ZombieVillagerSpawnEgg = 755, - ExperienceBottle = 756, - FireCharge = 757, - WritableBook = 758, - WrittenBook = 759, - Emerald = 760, - ItemFrame = 761, - FlowerPot = 762, - Carrot = 763, - Potato = 764, - BakedPotato = 765, - PoisonousPotato = 766, - Map = 767, - GoldenCarrot = 768, - SkeletonSkull = 769, - WitherSkeletonSkull = 770, - PlayerHead = 771, - ZombieHead = 772, - CreeperHead = 773, - DragonHead = 774, - CarrotOnAStick = 775, - NetherStar = 776, - PumpkinPie = 777, - FireworkRocket = 778, - FireworkStar = 779, - EnchantedBook = 780, - NetherBrick = 781, - Quartz = 782, - TntMinecart = 783, - HopperMinecart = 784, - PrismarineShard = 785, - PrismarineCrystals = 786, - Rabbit = 787, - CookedRabbit = 788, - RabbitStew = 789, - RabbitFoot = 790, - RabbitHide = 791, - ArmorStand = 792, - IronHorseArmor = 793, - GoldenHorseArmor = 794, - DiamondHorseArmor = 795, - LeatherHorseArmor = 796, - Lead = 797, - NameTag = 798, - CommandBlockMinecart = 799, - Mutton = 800, - CookedMutton = 801, - WhiteBanner = 802, - OrangeBanner = 803, - MagentaBanner = 804, - LightBlueBanner = 805, - YellowBanner = 806, - LimeBanner = 807, - PinkBanner = 808, - GrayBanner = 809, - LightGrayBanner = 810, - CyanBanner = 811, - PurpleBanner = 812, - BlueBanner = 813, - BrownBanner = 814, - GreenBanner = 815, - RedBanner = 816, - BlackBanner = 817, - EndCrystal = 818, - ChorusFruit = 819, - PoppedChorusFruit = 820, - Beetroot = 821, - BeetrootSeeds = 822, - BeetrootSoup = 823, - DragonBreath = 824, - SplashPotion = 825, - SpectralArrow = 826, - TippedArrow = 827, - LingeringPotion = 828, - Shield = 829, - Elytra = 830, - SpruceBoat = 831, - BirchBoat = 832, - JungleBoat = 833, - AcaciaBoat = 834, - DarkOakBoat = 835, - TotemOfUndying = 836, - ShulkerShell = 837, - IronNugget = 838, - KnowledgeBook = 839, - DebugStick = 840, - MusicDisc13 = 841, - MusicDiscCat = 842, - MusicDiscBlocks = 843, - MusicDiscChirp = 844, - MusicDiscFar = 845, - MusicDiscMall = 846, - MusicDiscMellohi = 847, - MusicDiscStal = 848, - MusicDiscStrad = 849, - MusicDiscWard = 850, - MusicDisc11 = 851, - MusicDiscWait = 852, - Trident = 853, - PhantomMembrane = 854, - NautilusShell = 855, - HeartOfTheSea = 856, - Crossbow = 857, - SuspiciousStew = 858, - Loom = 859, - FlowerBannerPattern = 860, - CreeperBannerPattern = 861, - SkullBannerPattern = 862, - MojangBannerPattern = 863, - GlobeBannerPattern = 864, - Barrel = 865, - Smoker = 866, - BlastFurnace = 867, - CartographyTable = 868, - FletchingTable = 869, - Grindstone = 870, - Lectern = 871, - SmithingTable = 872, - Stonecutter = 873, - Bell = 874, - Lantern = 875, - SweetBerries = 876, - Campfire = 877, - Honeycomb = 878, - BeeNest = 879, - Beehive = 880, - HoneyBottle = 881, - HoneyBlock = 882, - HoneycombBlock = 883, + Null = -1, // Unspecified item type + + AcaciaBoat, + AcaciaButton, + AcaciaDoor, + AcaciaFence, + AcaciaFenceGate, + AcaciaLeaves, + AcaciaLog, + AcaciaPlanks, + AcaciaPressurePlate, + AcaciaSapling, + AcaciaSign, + AcaciaSlab, + AcaciaStairs, + AcaciaTrapdoor, + AcaciaWood, + ActivatorRail, + Air, + Allium, + AncientDebris, + Andesite, + AndesiteSlab, + AndesiteStairs, + AndesiteWall, + Anvil, + Apple, + ArmorStand, + Arrow, + AzureBluet, + BakedPotato, + Bamboo, + Barrel, + Barrier, + Basalt, + BatSpawnEgg, + Beacon, + Bedrock, + Beef, + Beehive, + BeeNest, + BeeSpawnEgg, + Beetroot, + BeetrootSeeds, + BeetrootSoup, + Bell, + BirchBoat, + BirchButton, + BirchDoor, + BirchFence, + BirchFenceGate, + BirchLeaves, + BirchLog, + BirchPlanks, + BirchPressurePlate, + BirchSapling, + BirchSign, + BirchSlab, + BirchStairs, + BirchTrapdoor, + BirchWood, + BlackBanner, + BlackBed, + BlackCarpet, + BlackConcrete, + BlackConcretePowder, + BlackDye, + BlackGlazedTerracotta, + BlackShulkerBox, + BlackStainedGlass, + BlackStainedGlassPane, + Blackstone, + BlackstoneSlab, + BlackstoneStairs, + BlackstoneWall, + BlackTerracotta, + BlackWool, + BlastFurnace, + BlazePowder, + BlazeRod, + BlazeSpawnEgg, + BlueBanner, + BlueBed, + BlueCarpet, + BlueConcrete, + BlueConcretePowder, + BlueDye, + BlueGlazedTerracotta, + BlueIce, + BlueOrchid, + BlueShulkerBox, + BlueStainedGlass, + BlueStainedGlassPane, + BlueTerracotta, + BlueWool, + Bone, + BoneBlock, + BoneMeal, + Book, + Bookshelf, + Bow, + Bowl, + BrainCoral, + BrainCoralBlock, + BrainCoralFan, + Bread, + BrewingStand, + Brick, + Bricks, + BrickSlab, + BrickStairs, + BrickWall, + BrownBanner, + BrownBed, + BrownCarpet, + BrownConcrete, + BrownConcretePowder, + BrownDye, + BrownGlazedTerracotta, + BrownMushroom, + BrownMushroomBlock, + BrownShulkerBox, + BrownStainedGlass, + BrownStainedGlassPane, + BrownTerracotta, + BrownWool, + BubbleCoral, + BubbleCoralBlock, + BubbleCoralFan, + Bucket, + Cactus, + Cake, + Campfire, + Carrot, + CarrotOnAStick, + CartographyTable, + CarvedPumpkin, + CatSpawnEgg, + Cauldron, + CaveSpiderSpawnEgg, + Chain, + ChainCommandBlock, + ChainmailBoots, + ChainmailChestplate, + ChainmailHelmet, + ChainmailLeggings, + Charcoal, + Chest, + ChestMinecart, + Chicken, + ChickenSpawnEgg, + ChippedAnvil, + ChiseledNetherBricks, + ChiseledPolishedBlackstone, + ChiseledQuartzBlock, + ChiseledRedSandstone, + ChiseledSandstone, + ChiseledStoneBricks, + ChorusFlower, + ChorusFruit, + ChorusPlant, + Clay, + ClayBall, + Clock, + Coal, + CoalBlock, + CoalOre, + CoarseDirt, + Cobblestone, + CobblestoneSlab, + CobblestoneStairs, + CobblestoneWall, + Cobweb, + CocoaBeans, + Cod, + CodBucket, + CodSpawnEgg, + CommandBlock, + CommandBlockMinecart, + Comparator, + Compass, + Composter, + Conduit, + CookedBeef, + CookedChicken, + CookedCod, + CookedMutton, + CookedPorkchop, + CookedRabbit, + CookedSalmon, + Cookie, + Cornflower, + CowSpawnEgg, + CrackedNetherBricks, + CrackedPolishedBlackstoneBricks, + CrackedStoneBricks, + CraftingTable, + CreeperBannerPattern, + CreeperHead, + CreeperSpawnEgg, + CrimsonButton, + CrimsonDoor, + CrimsonFence, + CrimsonFenceGate, + CrimsonFungus, + CrimsonHyphae, + CrimsonNylium, + CrimsonPlanks, + CrimsonPressurePlate, + CrimsonRoots, + CrimsonSign, + CrimsonSlab, + CrimsonStairs, + CrimsonStem, + CrimsonTrapdoor, + Crossbow, + CryingObsidian, + CutRedSandstone, + CutRedSandstoneSlab, + CutSandstone, + CutSandstoneSlab, + CyanBanner, + CyanBed, + CyanCarpet, + CyanConcrete, + CyanConcretePowder, + CyanDye, + CyanGlazedTerracotta, + CyanShulkerBox, + CyanStainedGlass, + CyanStainedGlassPane, + CyanTerracotta, + CyanWool, + DamagedAnvil, + Dandelion, + DarkOakBoat, + DarkOakButton, + DarkOakDoor, + DarkOakFence, + DarkOakFenceGate, + DarkOakLeaves, + DarkOakLog, + DarkOakPlanks, + DarkOakPressurePlate, + DarkOakSapling, + DarkOakSign, + DarkOakSlab, + DarkOakStairs, + DarkOakTrapdoor, + DarkOakWood, + DarkPrismarine, + DarkPrismarineSlab, + DarkPrismarineStairs, + DaylightDetector, + DeadBrainCoral, + DeadBrainCoralBlock, + DeadBrainCoralFan, + DeadBubbleCoral, + DeadBubbleCoralBlock, + DeadBubbleCoralFan, + DeadBush, + DeadFireCoral, + DeadFireCoralBlock, + DeadFireCoralFan, + DeadHornCoral, + DeadHornCoralBlock, + DeadHornCoralFan, + DeadTubeCoral, + DeadTubeCoralBlock, + DeadTubeCoralFan, + DebugStick, + DetectorRail, + Diamond, + DiamondAxe, + DiamondBlock, + DiamondBoots, + DiamondChestplate, + DiamondHelmet, + DiamondHoe, + DiamondHorseArmor, + DiamondLeggings, + DiamondOre, + DiamondPickaxe, + DiamondShovel, + DiamondSword, + Diorite, + DioriteSlab, + DioriteStairs, + DioriteWall, + Dirt, + Dispenser, + DolphinSpawnEgg, + DonkeySpawnEgg, + DragonBreath, + DragonEgg, + DragonHead, + DriedKelp, + DriedKelpBlock, + Dropper, + DrownedSpawnEgg, + Egg, + ElderGuardianSpawnEgg, + Elytra, + Emerald, + EmeraldBlock, + EmeraldOre, + EnchantedBook, + EnchantedGoldenApple, + EnchantingTable, + EndCrystal, + EnderChest, + EnderEye, + EndermanSpawnEgg, + EndermiteSpawnEgg, + EnderPearl, + EndPortalFrame, + EndRod, + EndStone, + EndStoneBricks, + EndStoneBrickSlab, + EndStoneBrickStairs, + EndStoneBrickWall, + EvokerSpawnEgg, + ExperienceBottle, + Farmland, + Feather, + FermentedSpiderEye, + Fern, + FilledMap, + FireCharge, + FireCoral, + FireCoralBlock, + FireCoralFan, + FireworkRocket, + FireworkStar, + FishingRod, + FletchingTable, + Flint, + FlintAndSteel, + FlowerBannerPattern, + FlowerPot, + FoxSpawnEgg, + Furnace, + FurnaceMinecart, + GhastSpawnEgg, + GhastTear, + GildedBlackstone, + Glass, + GlassBottle, + GlassPane, + GlisteringMelonSlice, + GlobeBannerPattern, + Glowstone, + GlowstoneDust, + GoldBlock, + GoldenApple, + GoldenAxe, + GoldenBoots, + GoldenCarrot, + GoldenChestplate, + GoldenHelmet, + GoldenHoe, + GoldenHorseArmor, + GoldenLeggings, + GoldenPickaxe, + GoldenShovel, + GoldenSword, + GoldIngot, + GoldNugget, + GoldOre, + Granite, + GraniteSlab, + GraniteStairs, + GraniteWall, + Grass, + GrassBlock, + GrassPath, + Gravel, + GrayBanner, + GrayBed, + GrayCarpet, + GrayConcrete, + GrayConcretePowder, + GrayDye, + GrayGlazedTerracotta, + GrayShulkerBox, + GrayStainedGlass, + GrayStainedGlassPane, + GrayTerracotta, + GrayWool, + GreenBanner, + GreenBed, + GreenCarpet, + GreenConcrete, + GreenConcretePowder, + GreenDye, + GreenGlazedTerracotta, + GreenShulkerBox, + GreenStainedGlass, + GreenStainedGlassPane, + GreenTerracotta, + GreenWool, + Grindstone, + GuardianSpawnEgg, + Gunpowder, + HayBlock, + HeartOfTheSea, + HeavyWeightedPressurePlate, + HoglinSpawnEgg, + HoneyBlock, + HoneyBottle, + Honeycomb, + HoneycombBlock, + Hopper, + HopperMinecart, + HornCoral, + HornCoralBlock, + HornCoralFan, + HorseSpawnEgg, + HuskSpawnEgg, + Ice, + InfestedChiseledStoneBricks, + InfestedCobblestone, + InfestedCrackedStoneBricks, + InfestedMossyStoneBricks, + InfestedStone, + InfestedStoneBricks, + InkSac, + IronAxe, + IronBars, + IronBlock, + IronBoots, + IronChestplate, + IronDoor, + IronHelmet, + IronHoe, + IronHorseArmor, + IronIngot, + IronLeggings, + IronNugget, + IronOre, + IronPickaxe, + IronShovel, + IronSword, + IronTrapdoor, + ItemFrame, + JackOLantern, + Jigsaw, + Jukebox, + JungleBoat, + JungleButton, + JungleDoor, + JungleFence, + JungleFenceGate, + JungleLeaves, + JungleLog, + JunglePlanks, + JunglePressurePlate, + JungleSapling, + JungleSign, + JungleSlab, + JungleStairs, + JungleTrapdoor, + JungleWood, + Kelp, + KnowledgeBook, + Ladder, + Lantern, + LapisBlock, + LapisLazuli, + LapisOre, + LargeFern, + LavaBucket, + Lead, + Leather, + LeatherBoots, + LeatherChestplate, + LeatherHelmet, + LeatherHorseArmor, + LeatherLeggings, + Lectern, + Lever, + LightBlueBanner, + LightBlueBed, + LightBlueCarpet, + LightBlueConcrete, + LightBlueConcretePowder, + LightBlueDye, + LightBlueGlazedTerracotta, + LightBlueShulkerBox, + LightBlueStainedGlass, + LightBlueStainedGlassPane, + LightBlueTerracotta, + LightBlueWool, + LightGrayBanner, + LightGrayBed, + LightGrayCarpet, + LightGrayConcrete, + LightGrayConcretePowder, + LightGrayDye, + LightGrayGlazedTerracotta, + LightGrayShulkerBox, + LightGrayStainedGlass, + LightGrayStainedGlassPane, + LightGrayTerracotta, + LightGrayWool, + LightWeightedPressurePlate, + Lilac, + LilyOfTheValley, + LilyPad, + LimeBanner, + LimeBed, + LimeCarpet, + LimeConcrete, + LimeConcretePowder, + LimeDye, + LimeGlazedTerracotta, + LimeShulkerBox, + LimeStainedGlass, + LimeStainedGlassPane, + LimeTerracotta, + LimeWool, + LingeringPotion, + LlamaSpawnEgg, + Lodestone, + Loom, + MagentaBanner, + MagentaBed, + MagentaCarpet, + MagentaConcrete, + MagentaConcretePowder, + MagentaDye, + MagentaGlazedTerracotta, + MagentaShulkerBox, + MagentaStainedGlass, + MagentaStainedGlassPane, + MagentaTerracotta, + MagentaWool, + MagmaBlock, + MagmaCream, + MagmaCubeSpawnEgg, + Map, + Melon, + MelonSeeds, + MelonSlice, + MilkBucket, + Minecart, + MojangBannerPattern, + MooshroomSpawnEgg, + MossyCobblestone, + MossyCobblestoneSlab, + MossyCobblestoneStairs, + MossyCobblestoneWall, + MossyStoneBricks, + MossyStoneBrickSlab, + MossyStoneBrickStairs, + MossyStoneBrickWall, + MuleSpawnEgg, + MushroomStem, + MushroomStew, + MusicDisc11, + MusicDisc13, + MusicDiscBlocks, + MusicDiscCat, + MusicDiscChirp, + MusicDiscFar, + MusicDiscMall, + MusicDiscMellohi, + MusicDiscPigstep, + MusicDiscStal, + MusicDiscStrad, + MusicDiscWait, + MusicDiscWard, + Mutton, + Mycelium, + NameTag, + NautilusShell, + NetherBrick, + NetherBrickFence, + NetherBricks, + NetherBrickSlab, + NetherBrickStairs, + NetherBrickWall, + NetherGoldOre, + NetheriteAxe, + NetheriteBlock, + NetheriteBoots, + NetheriteChestplate, + NetheriteHelmet, + NetheriteHoe, + NetheriteIngot, + NetheriteLeggings, + NetheritePickaxe, + NetheriteScrap, + NetheriteShovel, + NetheriteSword, + NetherQuartzOre, + Netherrack, + NetherSprouts, + NetherStar, + NetherWart, + NetherWartBlock, + NoteBlock, + OakBoat, + OakButton, + OakDoor, + OakFence, + OakFenceGate, + OakLeaves, + OakLog, + OakPlanks, + OakPressurePlate, + OakSapling, + OakSign, + OakSlab, + OakStairs, + OakTrapdoor, + OakWood, + Observer, + Obsidian, + OcelotSpawnEgg, + OrangeBanner, + OrangeBed, + OrangeCarpet, + OrangeConcrete, + OrangeConcretePowder, + OrangeDye, + OrangeGlazedTerracotta, + OrangeShulkerBox, + OrangeStainedGlass, + OrangeStainedGlassPane, + OrangeTerracotta, + OrangeTulip, + OrangeWool, + OxeyeDaisy, + PackedIce, + Painting, + PandaSpawnEgg, + Paper, + ParrotSpawnEgg, + Peony, + PetrifiedOakSlab, + PhantomMembrane, + PhantomSpawnEgg, + PiglinBannerPattern, + PiglinBruteSpawnEgg, + PiglinSpawnEgg, + PigSpawnEgg, + PillagerSpawnEgg, + PinkBanner, + PinkBed, + PinkCarpet, + PinkConcrete, + PinkConcretePowder, + PinkDye, + PinkGlazedTerracotta, + PinkShulkerBox, + PinkStainedGlass, + PinkStainedGlassPane, + PinkTerracotta, + PinkTulip, + PinkWool, + Piston, + PlayerHead, + Podzol, + PoisonousPotato, + PolarBearSpawnEgg, + PolishedAndesite, + PolishedAndesiteSlab, + PolishedAndesiteStairs, + PolishedBasalt, + PolishedBlackstone, + PolishedBlackstoneBricks, + PolishedBlackstoneBrickSlab, + PolishedBlackstoneBrickStairs, + PolishedBlackstoneBrickWall, + PolishedBlackstoneButton, + PolishedBlackstonePressurePlate, + PolishedBlackstoneSlab, + PolishedBlackstoneStairs, + PolishedBlackstoneWall, + PolishedDiorite, + PolishedDioriteSlab, + PolishedDioriteStairs, + PolishedGranite, + PolishedGraniteSlab, + PolishedGraniteStairs, + PoppedChorusFruit, + Poppy, + Porkchop, + Potato, + Potion, + PoweredRail, + Prismarine, + PrismarineBricks, + PrismarineBrickSlab, + PrismarineBrickStairs, + PrismarineCrystals, + PrismarineShard, + PrismarineSlab, + PrismarineStairs, + PrismarineWall, + Pufferfish, + PufferfishBucket, + PufferfishSpawnEgg, + Pumpkin, + PumpkinPie, + PumpkinSeeds, + PurpleBanner, + PurpleBed, + PurpleCarpet, + PurpleConcrete, + PurpleConcretePowder, + PurpleDye, + PurpleGlazedTerracotta, + PurpleShulkerBox, + PurpleStainedGlass, + PurpleStainedGlassPane, + PurpleTerracotta, + PurpleWool, + PurpurBlock, + PurpurPillar, + PurpurSlab, + PurpurStairs, + Quartz, + QuartzBlock, + QuartzBricks, + QuartzPillar, + QuartzSlab, + QuartzStairs, + Rabbit, + RabbitFoot, + RabbitHide, + RabbitSpawnEgg, + RabbitStew, + Rail, + RavagerSpawnEgg, + RedBanner, + RedBed, + RedCarpet, + RedConcrete, + RedConcretePowder, + RedDye, + RedGlazedTerracotta, + RedMushroom, + RedMushroomBlock, + RedNetherBricks, + RedNetherBrickSlab, + RedNetherBrickStairs, + RedNetherBrickWall, + RedSand, + RedSandstone, + RedSandstoneSlab, + RedSandstoneStairs, + RedSandstoneWall, + RedShulkerBox, + RedStainedGlass, + RedStainedGlassPane, + Redstone, + RedstoneBlock, + RedstoneLamp, + RedstoneOre, + RedstoneTorch, + RedTerracotta, + RedTulip, + RedWool, + Repeater, + RepeatingCommandBlock, + RespawnAnchor, + RoseBush, + RottenFlesh, + Saddle, + Salmon, + SalmonBucket, + SalmonSpawnEgg, + Sand, + Sandstone, + SandstoneSlab, + SandstoneStairs, + SandstoneWall, + Scaffolding, + Scute, + Seagrass, + SeaLantern, + SeaPickle, + Shears, + SheepSpawnEgg, + Shield, + Shroomlight, + ShulkerBox, + ShulkerShell, + ShulkerSpawnEgg, + SilverfishSpawnEgg, + SkeletonHorseSpawnEgg, + SkeletonSkull, + SkeletonSpawnEgg, + SkullBannerPattern, + SlimeBall, + SlimeBlock, + SlimeSpawnEgg, + SmithingTable, + Smoker, + SmoothQuartz, + SmoothQuartzSlab, + SmoothQuartzStairs, + SmoothRedSandstone, + SmoothRedSandstoneSlab, + SmoothRedSandstoneStairs, + SmoothSandstone, + SmoothSandstoneSlab, + SmoothSandstoneStairs, + SmoothStone, + SmoothStoneSlab, + Snow, + Snowball, + SnowBlock, + SoulCampfire, + SoulLantern, + SoulSand, + SoulSoil, + SoulTorch, + Spawner, + SpectralArrow, + SpiderEye, + SpiderSpawnEgg, + SplashPotion, + Sponge, + SpruceBoat, + SpruceButton, + SpruceDoor, + SpruceFence, + SpruceFenceGate, + SpruceLeaves, + SpruceLog, + SprucePlanks, + SprucePressurePlate, + SpruceSapling, + SpruceSign, + SpruceSlab, + SpruceStairs, + SpruceTrapdoor, + SpruceWood, + SquidSpawnEgg, + Stick, + StickyPiston, + Stone, + StoneAxe, + StoneBricks, + StoneBrickSlab, + StoneBrickStairs, + StoneBrickWall, + StoneButton, + Stonecutter, + StoneHoe, + StonePickaxe, + StonePressurePlate, + StoneShovel, + StoneSlab, + StoneStairs, + StoneSword, + StraySpawnEgg, + StriderSpawnEgg, + String, + StrippedAcaciaLog, + StrippedAcaciaWood, + StrippedBirchLog, + StrippedBirchWood, + StrippedCrimsonHyphae, + StrippedCrimsonStem, + StrippedDarkOakLog, + StrippedDarkOakWood, + StrippedJungleLog, + StrippedJungleWood, + StrippedOakLog, + StrippedOakWood, + StrippedSpruceLog, + StrippedSpruceWood, + StrippedWarpedHyphae, + StrippedWarpedStem, + StructureBlock, + StructureVoid, + Sugar, + SugarCane, + Sunflower, + SuspiciousStew, + SweetBerries, + TallGrass, + Target, + Terracotta, + TippedArrow, + Tnt, + TntMinecart, + Torch, + TotemOfUndying, + TraderLlamaSpawnEgg, + TrappedChest, + Trident, + TripwireHook, + TropicalFish, + TropicalFishBucket, + TropicalFishSpawnEgg, + TubeCoral, + TubeCoralBlock, + TubeCoralFan, + TurtleEgg, + TurtleHelmet, + TurtleSpawnEgg, + TwistingVines, + VexSpawnEgg, + VillagerSpawnEgg, + VindicatorSpawnEgg, + Vine, + WanderingTraderSpawnEgg, + WarpedButton, + WarpedDoor, + WarpedFence, + WarpedFenceGate, + WarpedFungus, + WarpedFungusOnAStick, + WarpedHyphae, + WarpedNylium, + WarpedPlanks, + WarpedPressurePlate, + WarpedRoots, + WarpedSign, + WarpedSlab, + WarpedStairs, + WarpedStem, + WarpedTrapdoor, + WarpedWartBlock, + WaterBucket, + WeepingVines, + WetSponge, + Wheat, + WheatSeeds, + WhiteBanner, + WhiteBed, + WhiteCarpet, + WhiteConcrete, + WhiteConcretePowder, + WhiteDye, + WhiteGlazedTerracotta, + WhiteShulkerBox, + WhiteStainedGlass, + WhiteStainedGlassPane, + WhiteTerracotta, + WhiteTulip, + WhiteWool, + WitchSpawnEgg, + WitherRose, + WitherSkeletonSkull, + WitherSkeletonSpawnEgg, + WolfSpawnEgg, + WoodenAxe, + WoodenHoe, + WoodenPickaxe, + WoodenShovel, + WoodenSword, + WritableBook, + WrittenBook, + YellowBanner, + YellowBed, + YellowCarpet, + YellowConcrete, + YellowConcretePowder, + YellowDye, + YellowGlazedTerracotta, + YellowShulkerBox, + YellowStainedGlass, + YellowStainedGlassPane, + YellowTerracotta, + YellowWool, + ZoglinSpawnEgg, + ZombieHead, + ZombieHorseSpawnEgg, + ZombieSpawnEgg, + ZombieVillagerSpawnEgg, + ZombifiedPiglinSpawnEgg, } } diff --git a/MinecraftClient/Inventory/ItemTypeGenerator.cs b/MinecraftClient/Inventory/ItemTypeGenerator.cs deleted file mode 100644 index a056b7f0..00000000 --- a/MinecraftClient/Inventory/ItemTypeGenerator.cs +++ /dev/null @@ -1,20 +0,0 @@ -using MinecraftClient.Protocol; - -namespace MinecraftClient.Inventory -{ - /// - /// Generator for MCC ItemType enumeration - /// - public static class ItemTypeGenerator - { - /// - /// Generate ItemType.cs from Minecraft registries.json - /// - /// path to registries.json - /// java -cp minecraft_server.jar net.minecraft.data.Main --reports - public static void GenerateItemTypes(string registriesJsonFile) - { - DataTypeGenerator.GenerateEnum(registriesJsonFile, "minecraft:item", "ItemType", "MinecraftClient.Inventory"); - } - } -} diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette116.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1161.cs similarity index 98% rename from MinecraftClient/Mapping/EntityPalettes/EntityPalette116.cs rename to MinecraftClient/Mapping/EntityPalettes/EntityPalette1161.cs index b1b6c036..9285d82d 100644 --- a/MinecraftClient/Mapping/EntityPalettes/EntityPalette116.cs +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1161.cs @@ -3,11 +3,11 @@ using System.Collections.Generic; namespace MinecraftClient.Mapping.EntityPalettes { - public class EntityPalette116 : EntityPalette + public class EntityPalette1161 : EntityPalette { private static Dictionary mappings = new Dictionary(); - static EntityPalette116() + static EntityPalette1161() { mappings[0] = EntityType.AreaEffectCloud; mappings[1] = EntityType.ArmorStand; diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette1162.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1162.cs new file mode 100644 index 00000000..6fc9be32 --- /dev/null +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette1162.cs @@ -0,0 +1,127 @@ +using System; +using System.Collections.Generic; + +namespace MinecraftClient.Mapping.EntityPalettes +{ + public class EntityPalette1162 : EntityPalette + { + private static Dictionary mappings = new Dictionary(); + + static EntityPalette1162() + { + mappings[0] = EntityType.AreaEffectCloud; + mappings[1] = EntityType.ArmorStand; + mappings[2] = EntityType.Arrow; + mappings[3] = EntityType.Bat; + mappings[4] = EntityType.Bee; + mappings[5] = EntityType.Blaze; + mappings[6] = EntityType.Boat; + mappings[7] = EntityType.Cat; + mappings[8] = EntityType.CaveSpider; + mappings[9] = EntityType.Chicken; + mappings[10] = EntityType.Cod; + mappings[11] = EntityType.Cow; + mappings[12] = EntityType.Creeper; + mappings[13] = EntityType.Dolphin; + mappings[14] = EntityType.Donkey; + mappings[15] = EntityType.DragonFireball; + mappings[16] = EntityType.Drowned; + mappings[17] = EntityType.ElderGuardian; + mappings[18] = EntityType.EndCrystal; + mappings[19] = EntityType.EnderDragon; + mappings[20] = EntityType.Enderman; + mappings[21] = EntityType.Endermite; + mappings[22] = EntityType.Evoker; + mappings[23] = EntityType.EvokerFangs; + mappings[24] = EntityType.ExperienceOrb; + mappings[25] = EntityType.EyeOfEnder; + mappings[26] = EntityType.FallingBlock; + mappings[27] = EntityType.FireworkRocket; + mappings[28] = EntityType.Fox; + mappings[29] = EntityType.Ghast; + mappings[30] = EntityType.Giant; + mappings[31] = EntityType.Guardian; + mappings[32] = EntityType.Hoglin; + mappings[33] = EntityType.Horse; + mappings[34] = EntityType.Husk; + mappings[35] = EntityType.Illusioner; + mappings[36] = EntityType.IronGolem; + mappings[37] = EntityType.Item; + mappings[38] = EntityType.ItemFrame; + mappings[39] = EntityType.Fireball; + mappings[40] = EntityType.LeashKnot; + mappings[41] = EntityType.LightningBolt; + mappings[42] = EntityType.Llama; + mappings[43] = EntityType.LlamaSpit; + mappings[44] = EntityType.MagmaCube; + mappings[45] = EntityType.Minecart; + mappings[46] = EntityType.ChestMinecart; + mappings[47] = EntityType.CommandBlockMinecart; + mappings[48] = EntityType.FurnaceMinecart; + mappings[49] = EntityType.HopperMinecart; + mappings[50] = EntityType.SpawnerMinecart; + mappings[51] = EntityType.TntMinecart; + mappings[52] = EntityType.Mule; + mappings[53] = EntityType.Mooshroom; + mappings[54] = EntityType.Ocelot; + mappings[55] = EntityType.Painting; + mappings[56] = EntityType.Panda; + mappings[57] = EntityType.Parrot; + mappings[58] = EntityType.Phantom; + mappings[59] = EntityType.Pig; + mappings[60] = EntityType.Piglin; + mappings[61] = EntityType.PiglinBrute; + mappings[62] = EntityType.Pillager; + mappings[63] = EntityType.PolarBear; + mappings[64] = EntityType.Tnt; + mappings[65] = EntityType.Pufferfish; + mappings[66] = EntityType.Rabbit; + mappings[67] = EntityType.Ravager; + mappings[68] = EntityType.Salmon; + mappings[69] = EntityType.Sheep; + mappings[70] = EntityType.Shulker; + mappings[71] = EntityType.ShulkerBullet; + mappings[72] = EntityType.Silverfish; + mappings[73] = EntityType.Skeleton; + mappings[74] = EntityType.SkeletonHorse; + mappings[75] = EntityType.Slime; + mappings[76] = EntityType.SmallFireball; + mappings[77] = EntityType.SnowGolem; + mappings[78] = EntityType.Snowball; + mappings[79] = EntityType.SpectralArrow; + mappings[80] = EntityType.Spider; + mappings[81] = EntityType.Squid; + mappings[82] = EntityType.Stray; + mappings[83] = EntityType.Strider; + mappings[84] = EntityType.Egg; + mappings[85] = EntityType.EnderPearl; + mappings[86] = EntityType.ExperienceBottle; + mappings[87] = EntityType.Potion; + mappings[88] = EntityType.Trident; + mappings[89] = EntityType.TraderLlama; + mappings[90] = EntityType.TropicalFish; + mappings[91] = EntityType.Turtle; + mappings[92] = EntityType.Vex; + mappings[93] = EntityType.Villager; + mappings[94] = EntityType.Vindicator; + mappings[95] = EntityType.WanderingTrader; + mappings[96] = EntityType.Witch; + mappings[97] = EntityType.Wither; + mappings[98] = EntityType.WitherSkeleton; + mappings[99] = EntityType.WitherSkull; + mappings[100] = EntityType.Wolf; + mappings[101] = EntityType.Zoglin; + mappings[102] = EntityType.Zombie; + mappings[103] = EntityType.ZombieHorse; + mappings[104] = EntityType.ZombieVillager; + mappings[105] = EntityType.ZombifiedPiglin; + mappings[106] = EntityType.Player; + mappings[107] = EntityType.FishingBobber; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Mapping/EntityType.cs b/MinecraftClient/Mapping/EntityType.cs index 4afc9416..f19a9a5f 100644 --- a/MinecraftClient/Mapping/EntityType.cs +++ b/MinecraftClient/Mapping/EntityType.cs @@ -23,52 +23,53 @@ namespace MinecraftClient.Mapping Boat, Cat, CaveSpider, + ChestMinecart, Chicken, Cod, + CommandBlockMinecart, Cow, Creeper, Dolphin, Donkey, DragonFireball, Drowned, + Egg, ElderGuardian, EndCrystal, EnderDragon, Enderman, Endermite, + EnderPearl, Evoker, EvokerFangs, + ExperienceBottle, ExperienceOrb, EyeOfEnder, FallingBlock, + Fireball, FireworkRocket, FishingBobber, Fox, + FurnaceMinecart, Ghast, Giant, Guardian, Hoglin, + HopperMinecart, Horse, Husk, Illusioner, IronGolem, Item, ItemFrame, - Fireball, LeashKnot, LightningBolt, Llama, LlamaSpit, MagmaCube, Minecart, - ChestMinecart, - CommandBlockMinecart, - FurnaceMinecart, - HopperMinecart, - SpawnerMinecart, - TntMinecart, - Mule, Mooshroom, + Mule, Ocelot, Painting, Panda, @@ -76,9 +77,11 @@ namespace MinecraftClient.Mapping Phantom, Pig, Piglin, + PiglinBrute, Pillager, + Player, PolarBear, - Tnt, + Potion, Pufferfish, Rabbit, Ravager, @@ -91,20 +94,18 @@ namespace MinecraftClient.Mapping SkeletonHorse, Slime, SmallFireball, - SnowGolem, Snowball, + SnowGolem, + SpawnerMinecart, SpectralArrow, Spider, Squid, Stray, Strider, - Egg, - EnderPearl, - ExperienceBottle, - Player, - Potion, - Trident, + Tnt, + TntMinecart, TraderLlama, + Trident, TropicalFish, Turtle, Vex, @@ -119,7 +120,8 @@ namespace MinecraftClient.Mapping Zoglin, Zombie, ZombieHorse, - ZombieVillager, ZombiePigman, + ZombieVillager, + ZombifiedPiglin, } } diff --git a/MinecraftClient/McClient.cs b/MinecraftClient/McClient.cs index 6ea2d211..30ad32f3 100644 --- a/MinecraftClient/McClient.cs +++ b/MinecraftClient/McClient.cs @@ -1101,7 +1101,7 @@ namespace MinecraftClient { // Drop 1 item count from cursor var itemTmp = playerInventory.Items[-1]; - var itemClone = new Item((int)itemTmp.Type, 1, itemTmp.NBT); + var itemClone = new Item(itemTmp.Type, 1, itemTmp.NBT); inventory.Items[slotId] = itemClone; playerInventory.Items[-1].Count--; } @@ -1130,14 +1130,14 @@ namespace MinecraftClient { // Can be evenly divided Item itemTmp = inventory.Items[slotId]; - playerInventory.Items[-1] = new Item((int)itemTmp.Type, itemTmp.Count / 2, itemTmp.NBT); + playerInventory.Items[-1] = new Item(itemTmp.Type, itemTmp.Count / 2, itemTmp.NBT); inventory.Items[slotId].Count = itemTmp.Count / 2; } else { // Cannot be evenly divided. item count on cursor is always larger than item on inventory Item itemTmp = inventory.Items[slotId]; - playerInventory.Items[-1] = new Item((int)itemTmp.Type, (itemTmp.Count + 1) / 2, itemTmp.NBT); + playerInventory.Items[-1] = new Item(itemTmp.Type, (itemTmp.Count + 1) / 2, itemTmp.NBT); inventory.Items[slotId].Count = (itemTmp.Count - 1) / 2; } } @@ -1210,7 +1210,7 @@ namespace MinecraftClient if (emptySlot != -2) { var itemTmp = inventory.Items[slotId]; - inventory.Items[emptySlot] = new Item((int)itemTmp.Type, itemTmp.Count, itemTmp.NBT); + inventory.Items[emptySlot] = new Item(itemTmp.Type, itemTmp.Count, itemTmp.NBT); inventory.Items.Remove(slotId); } } @@ -1257,7 +1257,7 @@ namespace MinecraftClient if (emptySlot != -2) { var itemTmp = inventory.Items[slotId]; - inventory.Items[emptySlot] = new Item((int)itemTmp.Type, itemTmp.Count, itemTmp.NBT); + inventory.Items[emptySlot] = new Item(itemTmp.Type, itemTmp.Count, itemTmp.NBT); inventory.Items.Remove(slotId); } } diff --git a/MinecraftClient/MinecraftClient.csproj b/MinecraftClient/MinecraftClient.csproj index 86d98573..7e3d5727 100644 --- a/MinecraftClient/MinecraftClient.csproj +++ b/MinecraftClient/MinecraftClient.csproj @@ -120,9 +120,13 @@ + + + + + - @@ -138,7 +142,8 @@ - + + diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index 78836553..deaa7267 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -32,7 +32,7 @@ namespace MinecraftClient public const string Version = MCHighestVersion; public const string MCLowestVersion = "1.4.6"; - public const string MCHighestVersion = "1.16.1"; + public const string MCHighestVersion = "1.16.2"; public static readonly string BuildInfo = null; private static Thread offlinePrompt = null; diff --git a/MinecraftClient/Protocol/Handlers/DataTypes.cs b/MinecraftClient/Protocol/Handlers/DataTypes.cs index 5666c07f..e9381471 100644 --- a/MinecraftClient/Protocol/Handlers/DataTypes.cs +++ b/MinecraftClient/Protocol/Handlers/DataTypes.cs @@ -7,6 +7,7 @@ using MinecraftClient.Mapping; using MinecraftClient.Crypto; using MinecraftClient.Inventory; using MinecraftClient.Mapping.EntityPalettes; +using MinecraftClient.Inventory.ItemPalettes; namespace MinecraftClient.Protocol.Handlers { @@ -325,7 +326,7 @@ namespace MinecraftClient.Protocol.Handlers /// Read a single item slot from a cache of bytes and remove it from the cache /// /// The item that was read or NULL for an empty slot - public Item ReadNextItemSlot(Queue cache) + public Item ReadNextItemSlot(Queue cache, ItemPalette itemPalette) { List slotData = new List(); if (protocolversion > Protocol18Handler.MC113Version) @@ -334,10 +335,10 @@ namespace MinecraftClient.Protocol.Handlers bool itemPresent = ReadNextBool(cache); if (itemPresent) { - int itemID = ReadNextVarInt(cache); + ItemType type = itemPalette.FromId(ReadNextVarInt(cache)); byte itemCount = ReadNextByte(cache); Dictionary nbt = ReadNextNbt(cache); - return new Item(itemID, itemCount, nbt); + return new Item(type, itemCount, nbt); } else return null; } @@ -350,7 +351,7 @@ namespace MinecraftClient.Protocol.Handlers byte itemCount = ReadNextByte(cache); short itemDamage = ReadNextShort(cache); Dictionary nbt = ReadNextNbt(cache); - return new Item(itemID, itemCount, nbt); + return new Item(itemPalette.FromId(itemID), itemCount, nbt); } } @@ -494,7 +495,7 @@ namespace MinecraftClient.Protocol.Handlers } } - public Dictionary ReadNextMetadata(Queue cache) + public Dictionary ReadNextMetadata(Queue cache, ItemPalette itemPalette) { Dictionary data = new Dictionary(); byte key = ReadNextByte(cache); @@ -544,7 +545,7 @@ namespace MinecraftClient.Protocol.Handlers } break; case 6: // Slot - value = ReadNextItemSlot(cache); + value = ReadNextItemSlot(cache, itemPalette); break; case 7: // Boolean value = ReadNextBool(cache); @@ -601,7 +602,7 @@ namespace MinecraftClient.Protocol.Handlers ReadNextVarInt(cache); break; case 32: - ReadNextItemSlot(cache); + ReadNextItemSlot(cache, itemPalette); break; } break; @@ -954,8 +955,9 @@ namespace MinecraftClient.Protocol.Handlers /// Get a byte array representing the given item as an item slot /// /// Item + /// Item Palette /// Item slot representation - public byte[] GetItemSlot(Item item) + public byte[] GetItemSlot(Item item, ItemPalette itemPalette) { List slotData = new List(); if (protocolversion > Protocol18Handler.MC113Version) @@ -966,7 +968,7 @@ namespace MinecraftClient.Protocol.Handlers else { slotData.Add(1); // Item is present - slotData.AddRange(GetVarInt((int)item.Type)); + slotData.AddRange(GetVarInt(itemPalette.ToId(item.Type))); slotData.Add((byte)item.Count); slotData.AddRange(GetNbt(item.NBT)); } @@ -978,7 +980,7 @@ namespace MinecraftClient.Protocol.Handlers slotData.AddRange(GetShort(-1)); else { - slotData.AddRange(GetShort((short)item.Type)); + slotData.AddRange(GetShort((short)itemPalette.ToId(item.Type))); slotData.Add((byte)item.Count); slotData.AddRange(GetNbt(item.NBT)); } diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 056f9c31..7d1b1beb 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -15,6 +15,7 @@ using MinecraftClient.Inventory; using System.Windows.Forms; using System.Data.SqlClient; using System.Diagnostics; +using MinecraftClient.Inventory.ItemPalettes; namespace MinecraftClient.Protocol.Handlers { @@ -43,6 +44,7 @@ namespace MinecraftClient.Protocol.Handlers internal const int MC1152Version = 578; internal const int MC116Version = 735; internal const int MC1161Version = 736; + internal const int MC1162Version = 751; private int compression_treshold = 0; private bool autocomplete_received = false; @@ -57,6 +59,7 @@ namespace MinecraftClient.Protocol.Handlers Protocol18Terrain pTerrain; IMinecraftComHandler handler; EntityPalette entityPalette; + ItemPalette itemPalette; SocketWrapper socketWrapper; DataTypes dataTypes; Thread netRead; @@ -78,18 +81,19 @@ namespace MinecraftClient.Protocol.Handlers handler.SetTerrainEnabled(false); } - if (handler.GetInventoryEnabled() && (protocolversion < MC110Version || protocolversion > MC1152Version)) + if (handler.GetInventoryEnabled() && (protocolversion < MC110Version || protocolversion > MC1162Version)) { ConsoleIO.WriteLineFormatted("§8Inventories are currently not handled for that MC version."); handler.SetInventoryEnabled(false); } - if (handler.GetEntityHandlingEnabled() && (protocolversion < MC110Version || protocolversion > MC1161Version)) + if (handler.GetEntityHandlingEnabled() && (protocolversion < MC110Version || protocolversion > MC1162Version)) { ConsoleIO.WriteLineFormatted("§8Entities are currently not handled for that MC version."); handler.SetEntityHandlingEnabled(false); } + // Block palette if (protocolversion >= MC113Version) { if (protocolVersion > MC1152Version && handler.GetTerrainEnabled()) @@ -102,12 +106,15 @@ namespace MinecraftClient.Protocol.Handlers } else Block.Palette = new Palette112(); + // Entity palette if (protocolversion >= MC113Version) { - if (protocolversion > MC1161Version && handler.GetEntityHandlingEnabled()) + if (protocolversion > MC1162Version && handler.GetEntityHandlingEnabled()) throw new NotImplementedException("Please update entity types handling for this Minecraft version. See EntityType.cs"); - if (protocolversion >= MC116Version) - entityPalette = new EntityPalette116(); + if (protocolversion >= MC1162Version) + entityPalette = new EntityPalette1162(); + else if (protocolversion >= MC116Version) + entityPalette = new EntityPalette1161(); else if (protocolversion >= MC115Version) entityPalette = new EntityPalette115(); else if (protocolVersion >= MC114Version) @@ -115,6 +122,17 @@ namespace MinecraftClient.Protocol.Handlers else entityPalette = new EntityPalette113(); } else entityPalette = new EntityPalette112(); + + // Item palette + if (protocolversion >= MC116Version) + { + if (protocolversion > MC1162Version && handler.GetInventoryEnabled()) + throw new NotImplementedException("Please update item types handling for this Minecraft version. See ItemType.cs"); + if (protocolversion >= MC1162Version) + itemPalette = new ItemPalette1162(); + else itemPalette = new ItemPalette1161(); + } + else itemPalette = new ItemPalette115(); } /// @@ -233,6 +251,10 @@ namespace MinecraftClient.Protocol.Handlers handler.OnGameJoined(); int playerEntityID = dataTypes.ReadNextInt(packetData); handler.OnReceivePlayerEntityID(playerEntityID); + + if (protocolversion >= MC1162Version) + dataTypes.ReadNextBool(packetData); // Is hardcore - 1.16.2 and above + handler.OnGamemodeUpdate(Guid.Empty, dataTypes.ReadNextByte(packetData)); if (protocolversion >= MC116Version) @@ -247,8 +269,11 @@ namespace MinecraftClient.Protocol.Handlers //Current dimension - String identifier in 1.16, varInt below 1.16, byte below 1.9.1 if (protocolversion >= MC116Version) { + if (protocolversion >= MC1162Version) + dataTypes.ReadNextNbt(packetData); + else + dataTypes.ReadNextString(packetData); // TODO handle dimensions for 1.16+, needed for terrain handling - dataTypes.ReadNextString(packetData); this.currentDimension = 0; } else if (protocolversion >= MC191Version) @@ -263,7 +288,10 @@ namespace MinecraftClient.Protocol.Handlers if (protocolversion >= MC115Version) dataTypes.ReadNextLong(packetData); // Hashed world seed - 1.15 and above - dataTypes.ReadNextByte(packetData); // Max Players + if (protocolversion >= MC1162Version) + dataTypes.ReadNextVarInt(packetData); // Max Players - 1.16.2 and above + else + dataTypes.ReadNextByte(packetData); // Max Players - 1.16.1 and below if (protocolversion < MC116Version) dataTypes.ReadNextString(packetData); // Level Type - 1.15 and below @@ -687,7 +715,7 @@ namespace MinecraftClient.Protocol.Handlers Dictionary inventorySlots = new Dictionary(); for (short slotId = 0; slotId < elements; slotId++) { - Item item = dataTypes.ReadNextItemSlot(packetData); + Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette); if (item != null) inventorySlots[slotId] = item; } @@ -699,7 +727,7 @@ namespace MinecraftClient.Protocol.Handlers { byte windowID = dataTypes.ReadNextByte(packetData); short slotID = dataTypes.ReadNextShort(packetData); - Item item = dataTypes.ReadNextItemSlot(packetData); + Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette); handler.OnSetSlot(windowID, slotID, item); } break; @@ -739,9 +767,25 @@ namespace MinecraftClient.Protocol.Handlers if (handler.GetEntityHandlingEnabled()) { int entityid = dataTypes.ReadNextVarInt(packetData); - int slot2 = dataTypes.ReadNextVarInt(packetData); - Item item = dataTypes.ReadNextItemSlot(packetData); - handler.OnEntityEquipment(entityid, slot2, item); + if (protocolversion >= MC116Version) + { + bool hasNext; + do + { + byte bitsData = dataTypes.ReadNextByte(packetData); + // Top bit set if another entry follows, and otherwise unset if this is the last item in the array + hasNext = (bitsData >> 7) == 1 ? true : false; + int slot2 = bitsData >> 1; + Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette); + handler.OnEntityEquipment(entityid, slot2, item); + } while (hasNext); + } + else + { + int slot2 = dataTypes.ReadNextVarInt(packetData); + Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette); + handler.OnEntityEquipment(entityid, slot2, item); + } } break; case PacketIncomingType.SpawnLivingEntity: @@ -865,7 +909,7 @@ namespace MinecraftClient.Protocol.Handlers if (handler.GetEntityHandlingEnabled()) { int EntityID = dataTypes.ReadNextVarInt(packetData); - Dictionary metadata = dataTypes.ReadNextMetadata(packetData); + Dictionary metadata = dataTypes.ReadNextMetadata(packetData, itemPalette); // need itemPalette because metadata need to read slot item int healthField = protocolversion >= MC114Version ? 8 : 7; // Health is field no. 7 in 1.10+ and 8 in 1.14+ if (metadata.ContainsKey(healthField) && metadata[healthField].GetType() == typeof(float)) handler.OnEntityHealth(EntityID, (float)metadata[healthField]); @@ -1641,18 +1685,18 @@ namespace MinecraftClient.Protocol.Handlers case WindowActionType.LeftClick: button = 0; break; case WindowActionType.RightClick: button = 1; break; case WindowActionType.MiddleClick: button = 2; mode = 3; break; - case WindowActionType.ShiftClick: button = 0; mode = 1; item = new Item(-1, 0, null); break; - case WindowActionType.DropItem: button = 0; mode = 4; item = new Item(-1, 0, null); break; - case WindowActionType.DropItemStack: button = 1; mode = 4; item = new Item(-1, 0, null); break; - case WindowActionType.StartDragLeft: button = 0; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.StartDragRight: button = 4; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.StartDragMiddle: button = 8; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.EndDragLeft: button = 2; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.EndDragRight: button = 6; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.EndDragMiddle: button = 10; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; - case WindowActionType.AddDragLeft: button = 1; mode = 5; item = new Item(-1, 0, null); break; - case WindowActionType.AddDragRight: button = 5; mode = 5; item = new Item(-1, 0, null); break; - case WindowActionType.AddDragMiddle: button = 9; mode = 5; item = new Item(-1, 0, null); break; + case WindowActionType.ShiftClick: button = 0; mode = 1; item = new Item(ItemType.Null, 0, null); break; + case WindowActionType.DropItem: button = 0; mode = 4; item = new Item(ItemType.Null, 0, null); break; + case WindowActionType.DropItemStack: button = 1; mode = 4; item = new Item(ItemType.Null, 0, null); break; + case WindowActionType.StartDragLeft: button = 0; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.StartDragRight: button = 4; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.StartDragMiddle: button = 8; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.EndDragLeft: button = 2; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.EndDragRight: button = 6; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.EndDragMiddle: button = 10; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break; + case WindowActionType.AddDragLeft: button = 1; mode = 5; item = new Item(ItemType.Null, 0, null); break; + case WindowActionType.AddDragRight: button = 5; mode = 5; item = new Item(ItemType.Null, 0, null); break; + case WindowActionType.AddDragMiddle: button = 9; mode = 5; item = new Item(ItemType.Null, 0, null); break; } List packet = new List(); @@ -1665,7 +1709,7 @@ namespace MinecraftClient.Protocol.Handlers packet.AddRange(dataTypes.GetVarInt(mode)); else packet.Add(mode); - packet.AddRange(dataTypes.GetItemSlot(item)); + packet.AddRange(dataTypes.GetItemSlot(item, itemPalette)); SendPacket(PacketOutgoingType.ClickWindow, packet); return true; @@ -1681,7 +1725,7 @@ namespace MinecraftClient.Protocol.Handlers { List packet = new List(); packet.AddRange(dataTypes.GetShort((short)slot)); - packet.AddRange(dataTypes.GetItemSlot(new Item((int)itemType, count, nbt))); + packet.AddRange(dataTypes.GetItemSlot(new Item(itemType, count, nbt), itemPalette)); SendPacket(PacketOutgoingType.CreativeInventoryAction, packet); return true; } diff --git a/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs b/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs index 3e3c4ca3..f1b9f75c 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18PacketTypes.cs @@ -366,8 +366,10 @@ namespace MinecraftClient.Protocol.Handlers case 0x4D: return PacketIncomingType.UpdateScore; } - } else { - switch (packetID) // MC 1.16+ + } + else if (protocol <= Protocol18Handler.MC1161Version) + { + switch (packetID) // MC 1.16 and 1.16.1 { case 0x20: return PacketIncomingType.KeepAlive; case 0x25: return PacketIncomingType.JoinGame; @@ -413,6 +415,55 @@ namespace MinecraftClient.Protocol.Handlers case 0x4A: return PacketIncomingType.ScoreboardObjective; case 0x4D: return PacketIncomingType.UpdateScore; } + } + else + { + switch (packetID) // MC 1.16.2 + { + case 0x1F: return PacketIncomingType.KeepAlive; + case 0x24: return PacketIncomingType.JoinGame; + case 0x0E: return PacketIncomingType.ChatMessage; + case 0x39: return PacketIncomingType.Respawn; + case 0x35: return PacketIncomingType.PlayerPositionAndLook; + case 0x20: return PacketIncomingType.ChunkData; + case 0x3B: return PacketIncomingType.MultiBlockChange; + case 0x0B: return PacketIncomingType.BlockChange; + // MapChunkBulk does not exist since 1.9 + case 0x1C: return PacketIncomingType.UnloadChunk; + case 0x32: return PacketIncomingType.PlayerListUpdate; + case 0x0F: return PacketIncomingType.TabCompleteResult; + case 0x17: return PacketIncomingType.PluginMessage; + case 0x19: return PacketIncomingType.KickPacket; + // NetworkCompressionTreshold does not exist since 1.9 + case 0x38: return PacketIncomingType.ResourcePackSend; + case 0x12: return PacketIncomingType.CloseWindow; + case 0x2D: return PacketIncomingType.OpenWindow; + case 0x13: return PacketIncomingType.WindowItems; + case 0x11: return PacketIncomingType.WindowConfirmation; + case 0x15: return PacketIncomingType.SetSlot; + case 0x00: return PacketIncomingType.SpawnEntity; + case 0x02: return PacketIncomingType.SpawnLivingEntity; + case 0x04: return PacketIncomingType.SpawnPlayer; + case 0x36: return PacketIncomingType.DestroyEntities; + case 0x16: return PacketIncomingType.SetCooldown; + case 0x27: return PacketIncomingType.EntityPosition; + case 0x28: return PacketIncomingType.EntityPositionAndRotation; + case 0x58: return PacketIncomingType.EntityProperties; + case 0x56: return PacketIncomingType.EntityTeleport; + case 0x46: return PacketIncomingType.EntityVelocity; + case 0x47: return PacketIncomingType.EntityEquipment; + case 0x59: return PacketIncomingType.EntityEffect; + case 0x44: return PacketIncomingType.EntityMetadata; + case 0x4E: return PacketIncomingType.TimeUpdate; + case 0x49: return PacketIncomingType.UpdateHealth; + case 0x48: return PacketIncomingType.SetExperience; + case 0x3F: return PacketIncomingType.HeldItemChange; + case 0x1B: return PacketIncomingType.Explosion; + case 0x25: return PacketIncomingType.MapData; + case 0x4F: return PacketIncomingType.Title; + case 0x4A: return PacketIncomingType.ScoreboardObjective; + case 0x4D: return PacketIncomingType.UpdateScore; + } } return PacketIncomingType.UnknownPacket; @@ -606,7 +657,7 @@ namespace MinecraftClient.Protocol.Handlers case PacketOutgoingType.UpdateCommandBlock: return 0x24; } } - else + else if (protocol <= Protocol18Handler.MC1161Version) // MC 1.16 and 1.16.1 { switch (packet) { @@ -635,6 +686,35 @@ namespace MinecraftClient.Protocol.Handlers case PacketOutgoingType.UpdateCommandBlock: return 0x25; } } + else + { + switch (packet) + { + case PacketOutgoingType.KeepAlive: return 0x10; + case PacketOutgoingType.ResourcePackStatus: return 0x21; + case PacketOutgoingType.ChatMessage: return 0x03; + case PacketOutgoingType.ClientStatus: return 0x04; + case PacketOutgoingType.ClientSettings: return 0x05; + case PacketOutgoingType.PluginMessage: return 0x0B; + case PacketOutgoingType.TabComplete: return 0x06; + case PacketOutgoingType.EntityAction: return 0x1C; + case PacketOutgoingType.PlayerPosition: return 0x12; + case PacketOutgoingType.PlayerPositionAndLook: return 0x13; + case PacketOutgoingType.TeleportConfirm: return 0x00; + case PacketOutgoingType.HeldItemChange: return 0x25; + case PacketOutgoingType.InteractEntity: return 0x0E; + case PacketOutgoingType.UseItem: return 0x2F; + case PacketOutgoingType.ClickWindow: return 0x09; + case PacketOutgoingType.CloseWindow: return 0x0A; + case PacketOutgoingType.WindowConfirmation: return 0x07; + case PacketOutgoingType.PlayerBlockPlacement: return 0x2E; + case PacketOutgoingType.CreativeInventoryAction: return 0x28; + case PacketOutgoingType.Animation: return 0x2C; + case PacketOutgoingType.PlayerDigging: return 0x1B; + case PacketOutgoingType.UpdateSign: return 0x2B; + case PacketOutgoingType.UpdateCommandBlock: return 0x26; + } + } throw new System.ComponentModel.InvalidEnumArgumentException("Unknown PacketOutgoingType (protocol=" + protocol + ")", (int)packet, typeof(PacketOutgoingType)); } diff --git a/MinecraftClient/Protocol/ProtocolHandler.cs b/MinecraftClient/Protocol/ProtocolHandler.cs index fbe4f782..8363a83d 100644 --- a/MinecraftClient/Protocol/ProtocolHandler.cs +++ b/MinecraftClient/Protocol/ProtocolHandler.cs @@ -126,7 +126,7 @@ namespace MinecraftClient.Protocol int[] supportedVersions_Protocol16 = { 51, 60, 61, 72, 73, 74, 78 }; if (Array.IndexOf(supportedVersions_Protocol16, 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}; + 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 }; if (Array.IndexOf(supportedVersions_Protocol18, ProtocolVersion) > -1) return new Protocol18Handler(Client, ProtocolVersion, Handler, forgeInfo); throw new NotSupportedException("The protocol version no." + ProtocolVersion + " is not supported."); @@ -238,6 +238,8 @@ namespace MinecraftClient.Protocol return 735; case "1.16.1": return 736; + case "1.16.2": + return 751; default: return 0; }