From ae7ce35cc8c2a533a7b207ba3cf879ee554e3c42 Mon Sep 17 00:00:00 2001 From: Anon Date: Thu, 8 Jun 2023 19:27:28 +0200 Subject: [PATCH] Fully Implemented 1.20 --- .../Inventory/ItemPalettes/ItemPalette1194.cs | 8 +- .../Inventory/ItemPalettes/ItemPalette120.cs | 1273 +++++++++++++ MinecraftClient/Inventory/ItemType.cs | 39 +- .../Mapping/BlockPalettes/BlockPalette120.cs | 1663 +++++++++++++++++ .../Mapping/EntityMetadataPalette.cs | 21 +- .../EntityPalettes/EntityPalette120.cs | 142 ++ MinecraftClient/Mapping/Material.cs | 5 + MinecraftClient/Program.cs | 6 +- .../PacketPalettes/PacketPalette1194.cs | 4 +- .../Protocol/Handlers/PacketType18Handler.cs | 54 +- .../Protocol/Handlers/Protocol16.cs | 2 +- .../Protocol/Handlers/Protocol18.cs | 187 +- MinecraftClient/Protocol/IMinecraftCom.cs | 7 +- MinecraftClient/Protocol/ProtocolHandler.cs | 113 +- 14 files changed, 3314 insertions(+), 210 deletions(-) create mode 100644 MinecraftClient/Inventory/ItemPalettes/ItemPalette120.cs create mode 100644 MinecraftClient/Mapping/BlockPalettes/BlockPalette120.cs create mode 100644 MinecraftClient/Mapping/EntityPalettes/EntityPalette120.cs diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette1194.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1194.cs index 2b23cabb86..5306eac3f9 100644 --- a/MinecraftClient/Inventory/ItemPalettes/ItemPalette1194.cs +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette1194.cs @@ -874,10 +874,10 @@ static ItemPalette1194() mappings[837] = ItemType.Porkchop; mappings[1048] = ItemType.Potato; mappings[953] = ItemType.Potion; - mappings[1224] = ItemType.PotteryShardArcher; - mappings[1226] = ItemType.PotteryShardArmsUp; - mappings[1225] = ItemType.PotteryShardPrize; - mappings[1227] = ItemType.PotteryShardSkull; + mappings[1224] = ItemType.ArcherPotterySherd; + mappings[1226] = ItemType.ArmsUpPotterySherd; + mappings[1225] = ItemType.PrizePotterySherd; + mappings[1227] = ItemType.SkullPotterySherd; mappings[867] = ItemType.PowderSnowBucket; mappings[719] = ItemType.PoweredRail; mappings[479] = ItemType.Prismarine; diff --git a/MinecraftClient/Inventory/ItemPalettes/ItemPalette120.cs b/MinecraftClient/Inventory/ItemPalettes/ItemPalette120.cs new file mode 100644 index 0000000000..fdce6150a2 --- /dev/null +++ b/MinecraftClient/Inventory/ItemPalettes/ItemPalette120.cs @@ -0,0 +1,1273 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Inventory.ItemPalettes +{ + public class ItemPalette120 : ItemPalette + { + private static readonly Dictionary mappings = new(); + + static ItemPalette120() + { + mappings[744] = ItemType.AcaciaBoat; + mappings[666] = ItemType.AcaciaButton; + mappings[745] = ItemType.AcaciaChestBoat; + mappings[693] = ItemType.AcaciaDoor; + mappings[293] = ItemType.AcaciaFence; + mappings[716] = ItemType.AcaciaFenceGate; + mappings[861] = ItemType.AcaciaHangingSign; + mappings[158] = ItemType.AcaciaLeaves; + mappings[114] = ItemType.AcaciaLog; + mappings[27] = ItemType.AcaciaPlanks; + mappings[681] = ItemType.AcaciaPressurePlate; + mappings[39] = ItemType.AcaciaSapling; + mappings[850] = ItemType.AcaciaSign; + mappings[234] = ItemType.AcaciaSlab; + mappings[365] = ItemType.AcaciaStairs; + mappings[705] = ItemType.AcaciaTrapdoor; + mappings[148] = ItemType.AcaciaWood; + mappings[726] = ItemType.ActivatorRail; + mappings[0] = ItemType.Air; + mappings[967] = ItemType.AllaySpawnEgg; + mappings[199] = ItemType.Allium; + mappings[72] = ItemType.AmethystBlock; + mappings[1210] = ItemType.AmethystCluster; + mappings[768] = ItemType.AmethystShard; + mappings[67] = ItemType.AncientDebris; + mappings[6] = ItemType.Andesite; + mappings[626] = ItemType.AndesiteSlab; + mappings[609] = ItemType.AndesiteStairs; + mappings[385] = ItemType.AndesiteWall; + mappings[1235] = ItemType.AnglerPotterySherd; + mappings[397] = ItemType.Anvil; + mappings[759] = ItemType.Apple; + mappings[1236] = ItemType.ArcherPotterySherd; + mappings[1077] = ItemType.ArmorStand; + mappings[1237] = ItemType.ArmsUpPotterySherd; + mappings[761] = ItemType.Arrow; + mappings[879] = ItemType.AxolotlBucket; + mappings[968] = ItemType.AxolotlSpawnEgg; + mappings[175] = ItemType.Azalea; + mappings[162] = ItemType.AzaleaLeaves; + mappings[200] = ItemType.AzureBluet; + mappings[1053] = ItemType.BakedPotato; + mappings[229] = ItemType.Bamboo; + mappings[122] = ItemType.BambooBlock; + mappings[670] = ItemType.BambooButton; + mappings[753] = ItemType.BambooChestRaft; + mappings[697] = ItemType.BambooDoor; + mappings[297] = ItemType.BambooFence; + mappings[720] = ItemType.BambooFenceGate; + mappings[865] = ItemType.BambooHangingSign; + mappings[34] = ItemType.BambooMosaic; + mappings[239] = ItemType.BambooMosaicSlab; + mappings[370] = ItemType.BambooMosaicStairs; + mappings[31] = ItemType.BambooPlanks; + mappings[685] = ItemType.BambooPressurePlate; + mappings[752] = ItemType.BambooRaft; + mappings[854] = ItemType.BambooSign; + mappings[238] = ItemType.BambooSlab; + mappings[369] = ItemType.BambooStairs; + mappings[709] = ItemType.BambooTrapdoor; + mappings[1154] = ItemType.Barrel; + mappings[421] = ItemType.Barrier; + mappings[306] = ItemType.Basalt; + mappings[969] = ItemType.BatSpawnEgg; + mappings[374] = ItemType.Beacon; + mappings[43] = ItemType.Bedrock; + mappings[1171] = ItemType.BeeNest; + mappings[970] = ItemType.BeeSpawnEgg; + mappings[947] = ItemType.Beef; + mappings[1172] = ItemType.Beehive; + mappings[1108] = ItemType.Beetroot; + mappings[1109] = ItemType.BeetrootSeeds; + mappings[1110] = ItemType.BeetrootSoup; + mappings[1162] = ItemType.Bell; + mappings[227] = ItemType.BigDripleaf; + mappings[740] = ItemType.BirchBoat; + mappings[664] = ItemType.BirchButton; + mappings[741] = ItemType.BirchChestBoat; + mappings[691] = ItemType.BirchDoor; + mappings[291] = ItemType.BirchFence; + mappings[714] = ItemType.BirchFenceGate; + mappings[859] = ItemType.BirchHangingSign; + mappings[156] = ItemType.BirchLeaves; + mappings[112] = ItemType.BirchLog; + mappings[25] = ItemType.BirchPlanks; + mappings[679] = ItemType.BirchPressurePlate; + mappings[37] = ItemType.BirchSapling; + mappings[848] = ItemType.BirchSign; + mappings[232] = ItemType.BirchSlab; + mappings[363] = ItemType.BirchStairs; + mappings[703] = ItemType.BirchTrapdoor; + mappings[146] = ItemType.BirchWood; + mappings[1102] = ItemType.BlackBanner; + mappings[939] = ItemType.BlackBed; + mappings[1206] = ItemType.BlackCandle; + mappings[439] = ItemType.BlackCarpet; + mappings[548] = ItemType.BlackConcrete; + mappings[564] = ItemType.BlackConcretePowder; + mappings[919] = ItemType.BlackDye; + mappings[532] = ItemType.BlackGlazedTerracotta; + mappings[516] = ItemType.BlackShulkerBox; + mappings[464] = ItemType.BlackStainedGlass; + mappings[480] = ItemType.BlackStainedGlassPane; + mappings[420] = ItemType.BlackTerracotta; + mappings[195] = ItemType.BlackWool; + mappings[1177] = ItemType.Blackstone; + mappings[1178] = ItemType.BlackstoneSlab; + mappings[1179] = ItemType.BlackstoneStairs; + mappings[390] = ItemType.BlackstoneWall; + mappings[1238] = ItemType.BladePotterySherd; + mappings[1156] = ItemType.BlastFurnace; + mappings[961] = ItemType.BlazePowder; + mappings[953] = ItemType.BlazeRod; + mappings[971] = ItemType.BlazeSpawnEgg; + mappings[1098] = ItemType.BlueBanner; + mappings[935] = ItemType.BlueBed; + mappings[1202] = ItemType.BlueCandle; + mappings[435] = ItemType.BlueCarpet; + mappings[544] = ItemType.BlueConcrete; + mappings[560] = ItemType.BlueConcretePowder; + mappings[915] = ItemType.BlueDye; + mappings[528] = ItemType.BlueGlazedTerracotta; + mappings[597] = ItemType.BlueIce; + mappings[198] = ItemType.BlueOrchid; + mappings[512] = ItemType.BlueShulkerBox; + mappings[460] = ItemType.BlueStainedGlass; + mappings[476] = ItemType.BlueStainedGlassPane; + mappings[416] = ItemType.BlueTerracotta; + mappings[191] = ItemType.BlueWool; + mappings[921] = ItemType.Bone; + mappings[498] = ItemType.BoneBlock; + mappings[920] = ItemType.BoneMeal; + mappings[885] = ItemType.Book; + mappings[264] = ItemType.Bookshelf; + mappings[760] = ItemType.Bow; + mappings[808] = ItemType.Bowl; + mappings[578] = ItemType.BrainCoral; + mappings[573] = ItemType.BrainCoralBlock; + mappings[588] = ItemType.BrainCoralFan; + mappings[815] = ItemType.Bread; + mappings[1239] = ItemType.BrewerPotterySherd; + mappings[963] = ItemType.BrewingStand; + mappings[881] = ItemType.Brick; + mappings[248] = ItemType.BrickSlab; + mappings[339] = ItemType.BrickStairs; + mappings[377] = ItemType.BrickWall; + mappings[263] = ItemType.Bricks; + mappings[1099] = ItemType.BrownBanner; + mappings[936] = ItemType.BrownBed; + mappings[1203] = ItemType.BrownCandle; + mappings[436] = ItemType.BrownCarpet; + mappings[545] = ItemType.BrownConcrete; + mappings[561] = ItemType.BrownConcretePowder; + mappings[916] = ItemType.BrownDye; + mappings[529] = ItemType.BrownGlazedTerracotta; + mappings[212] = ItemType.BrownMushroom; + mappings[330] = ItemType.BrownMushroomBlock; + mappings[513] = ItemType.BrownShulkerBox; + mappings[461] = ItemType.BrownStainedGlass; + mappings[477] = ItemType.BrownStainedGlassPane; + mappings[417] = ItemType.BrownTerracotta; + mappings[192] = ItemType.BrownWool; + mappings[1217] = ItemType.Brush; + mappings[579] = ItemType.BubbleCoral; + mappings[574] = ItemType.BubbleCoralBlock; + mappings[589] = ItemType.BubbleCoralFan; + mappings[868] = ItemType.Bucket; + mappings[73] = ItemType.BuddingAmethyst; + mappings[890] = ItemType.Bundle; + mappings[1240] = ItemType.BurnPotterySherd; + mappings[286] = ItemType.Cactus; + mappings[923] = ItemType.Cake; + mappings[11] = ItemType.Calcite; + mappings[654] = ItemType.CalibratedSculkSensor; + mappings[973] = ItemType.CamelSpawnEgg; + mappings[1167] = ItemType.Campfire; + mappings[1190] = ItemType.Candle; + mappings[1051] = ItemType.Carrot; + mappings[733] = ItemType.CarrotOnAStick; + mappings[1157] = ItemType.CartographyTable; + mappings[301] = ItemType.CarvedPumpkin; + mappings[972] = ItemType.CatSpawnEgg; + mappings[964] = ItemType.Cauldron; + mappings[974] = ItemType.CaveSpiderSpawnEgg; + mappings[334] = ItemType.Chain; + mappings[493] = ItemType.ChainCommandBlock; + mappings[823] = ItemType.ChainmailBoots; + mappings[821] = ItemType.ChainmailChestplate; + mappings[820] = ItemType.ChainmailHelmet; + mappings[822] = ItemType.ChainmailLeggings; + mappings[763] = ItemType.Charcoal; + mappings[746] = ItemType.CherryBoat; + mappings[667] = ItemType.CherryButton; + mappings[747] = ItemType.CherryChestBoat; + mappings[694] = ItemType.CherryDoor; + mappings[294] = ItemType.CherryFence; + mappings[717] = ItemType.CherryFenceGate; + mappings[862] = ItemType.CherryHangingSign; + mappings[159] = ItemType.CherryLeaves; + mappings[115] = ItemType.CherryLog; + mappings[28] = ItemType.CherryPlanks; + mappings[682] = ItemType.CherryPressurePlate; + mappings[40] = ItemType.CherrySapling; + mappings[851] = ItemType.CherrySign; + mappings[235] = ItemType.CherrySlab; + mappings[366] = ItemType.CherryStairs; + mappings[706] = ItemType.CherryTrapdoor; + mappings[149] = ItemType.CherryWood; + mappings[277] = ItemType.Chest; + mappings[729] = ItemType.ChestMinecart; + mappings[949] = ItemType.Chicken; + mappings[975] = ItemType.ChickenSpawnEgg; + mappings[398] = ItemType.ChippedAnvil; + mappings[265] = ItemType.ChiseledBookshelf; + mappings[328] = ItemType.ChiseledDeepslate; + mappings[346] = ItemType.ChiseledNetherBricks; + mappings[1184] = ItemType.ChiseledPolishedBlackstone; + mappings[400] = ItemType.ChiseledQuartzBlock; + mappings[489] = ItemType.ChiseledRedSandstone; + mappings[170] = ItemType.ChiseledSandstone; + mappings[321] = ItemType.ChiseledStoneBricks; + mappings[272] = ItemType.ChorusFlower; + mappings[1104] = ItemType.ChorusFruit; + mappings[271] = ItemType.ChorusPlant; + mappings[287] = ItemType.Clay; + mappings[882] = ItemType.ClayBall; + mappings[892] = ItemType.Clock; + mappings[762] = ItemType.Coal; + mappings[68] = ItemType.CoalBlock; + mappings[49] = ItemType.CoalOre; + mappings[16] = ItemType.CoarseDirt; + mappings[1221] = ItemType.CoastArmorTrimSmithingTemplate; + mappings[9] = ItemType.CobbledDeepslate; + mappings[630] = ItemType.CobbledDeepslateSlab; + mappings[613] = ItemType.CobbledDeepslateStairs; + mappings[393] = ItemType.CobbledDeepslateWall; + mappings[22] = ItemType.Cobblestone; + mappings[247] = ItemType.CobblestoneSlab; + mappings[282] = ItemType.CobblestoneStairs; + mappings[375] = ItemType.CobblestoneWall; + mappings[172] = ItemType.Cobweb; + mappings[903] = ItemType.CocoaBeans; + mappings[895] = ItemType.Cod; + mappings[877] = ItemType.CodBucket; + mappings[976] = ItemType.CodSpawnEgg; + mappings[373] = ItemType.CommandBlock; + mappings[1084] = ItemType.CommandBlockMinecart; + mappings[639] = ItemType.Comparator; + mappings[888] = ItemType.Compass; + mappings[1153] = ItemType.Composter; + mappings[598] = ItemType.Conduit; + mappings[948] = ItemType.CookedBeef; + mappings[950] = ItemType.CookedChicken; + mappings[899] = ItemType.CookedCod; + mappings[1086] = ItemType.CookedMutton; + mappings[842] = ItemType.CookedPorkchop; + mappings[1073] = ItemType.CookedRabbit; + mappings[900] = ItemType.CookedSalmon; + mappings[940] = ItemType.Cookie; + mappings[75] = ItemType.CopperBlock; + mappings[772] = ItemType.CopperIngot; + mappings[53] = ItemType.CopperOre; + mappings[206] = ItemType.Cornflower; + mappings[977] = ItemType.CowSpawnEgg; + mappings[325] = ItemType.CrackedDeepslateBricks; + mappings[327] = ItemType.CrackedDeepslateTiles; + mappings[345] = ItemType.CrackedNetherBricks; + mappings[1188] = ItemType.CrackedPolishedBlackstoneBricks; + mappings[320] = ItemType.CrackedStoneBricks; + mappings[278] = ItemType.CraftingTable; + mappings[1147] = ItemType.CreeperBannerPattern; + mappings[1061] = ItemType.CreeperHead; + mappings[978] = ItemType.CreeperSpawnEgg; + mappings[671] = ItemType.CrimsonButton; + mappings[698] = ItemType.CrimsonDoor; + mappings[298] = ItemType.CrimsonFence; + mappings[721] = ItemType.CrimsonFenceGate; + mappings[214] = ItemType.CrimsonFungus; + mappings[866] = ItemType.CrimsonHangingSign; + mappings[152] = ItemType.CrimsonHyphae; + mappings[20] = ItemType.CrimsonNylium; + mappings[32] = ItemType.CrimsonPlanks; + mappings[686] = ItemType.CrimsonPressurePlate; + mappings[216] = ItemType.CrimsonRoots; + mappings[855] = ItemType.CrimsonSign; + mappings[240] = ItemType.CrimsonSlab; + mappings[371] = ItemType.CrimsonStairs; + mappings[120] = ItemType.CrimsonStem; + mappings[710] = ItemType.CrimsonTrapdoor; + mappings[1143] = ItemType.Crossbow; + mappings[1176] = ItemType.CryingObsidian; + mappings[82] = ItemType.CutCopper; + mappings[90] = ItemType.CutCopperSlab; + mappings[86] = ItemType.CutCopperStairs; + mappings[490] = ItemType.CutRedSandstone; + mappings[254] = ItemType.CutRedSandstoneSlab; + mappings[171] = ItemType.CutSandstone; + mappings[245] = ItemType.CutSandstoneSlab; + mappings[1096] = ItemType.CyanBanner; + mappings[933] = ItemType.CyanBed; + mappings[1200] = ItemType.CyanCandle; + mappings[433] = ItemType.CyanCarpet; + mappings[542] = ItemType.CyanConcrete; + mappings[558] = ItemType.CyanConcretePowder; + mappings[913] = ItemType.CyanDye; + mappings[526] = ItemType.CyanGlazedTerracotta; + mappings[510] = ItemType.CyanShulkerBox; + mappings[458] = ItemType.CyanStainedGlass; + mappings[474] = ItemType.CyanStainedGlassPane; + mappings[414] = ItemType.CyanTerracotta; + mappings[189] = ItemType.CyanWool; + mappings[399] = ItemType.DamagedAnvil; + mappings[196] = ItemType.Dandelion; + mappings[1241] = ItemType.DangerPotterySherd; + mappings[748] = ItemType.DarkOakBoat; + mappings[668] = ItemType.DarkOakButton; + mappings[749] = ItemType.DarkOakChestBoat; + mappings[695] = ItemType.DarkOakDoor; + mappings[295] = ItemType.DarkOakFence; + mappings[718] = ItemType.DarkOakFenceGate; + mappings[863] = ItemType.DarkOakHangingSign; + mappings[160] = ItemType.DarkOakLeaves; + mappings[116] = ItemType.DarkOakLog; + mappings[29] = ItemType.DarkOakPlanks; + mappings[683] = ItemType.DarkOakPressurePlate; + mappings[41] = ItemType.DarkOakSapling; + mappings[852] = ItemType.DarkOakSign; + mappings[236] = ItemType.DarkOakSlab; + mappings[367] = ItemType.DarkOakStairs; + mappings[707] = ItemType.DarkOakTrapdoor; + mappings[150] = ItemType.DarkOakWood; + mappings[483] = ItemType.DarkPrismarine; + mappings[258] = ItemType.DarkPrismarineSlab; + mappings[486] = ItemType.DarkPrismarineStairs; + mappings[652] = ItemType.DaylightDetector; + mappings[582] = ItemType.DeadBrainCoral; + mappings[568] = ItemType.DeadBrainCoralBlock; + mappings[593] = ItemType.DeadBrainCoralFan; + mappings[583] = ItemType.DeadBubbleCoral; + mappings[569] = ItemType.DeadBubbleCoralBlock; + mappings[594] = ItemType.DeadBubbleCoralFan; + mappings[177] = ItemType.DeadBush; + mappings[584] = ItemType.DeadFireCoral; + mappings[570] = ItemType.DeadFireCoralBlock; + mappings[595] = ItemType.DeadFireCoralFan; + mappings[585] = ItemType.DeadHornCoral; + mappings[571] = ItemType.DeadHornCoralBlock; + mappings[596] = ItemType.DeadHornCoralFan; + mappings[586] = ItemType.DeadTubeCoral; + mappings[567] = ItemType.DeadTubeCoralBlock; + mappings[592] = ItemType.DeadTubeCoralFan; + mappings[1121] = ItemType.DebugStick; + mappings[266] = ItemType.DecoratedPot; + mappings[8] = ItemType.Deepslate; + mappings[632] = ItemType.DeepslateBrickSlab; + mappings[615] = ItemType.DeepslateBrickStairs; + mappings[395] = ItemType.DeepslateBrickWall; + mappings[324] = ItemType.DeepslateBricks; + mappings[50] = ItemType.DeepslateCoalOre; + mappings[54] = ItemType.DeepslateCopperOre; + mappings[64] = ItemType.DeepslateDiamondOre; + mappings[60] = ItemType.DeepslateEmeraldOre; + mappings[56] = ItemType.DeepslateGoldOre; + mappings[52] = ItemType.DeepslateIronOre; + mappings[62] = ItemType.DeepslateLapisOre; + mappings[58] = ItemType.DeepslateRedstoneOre; + mappings[633] = ItemType.DeepslateTileSlab; + mappings[616] = ItemType.DeepslateTileStairs; + mappings[396] = ItemType.DeepslateTileWall; + mappings[326] = ItemType.DeepslateTiles; + mappings[724] = ItemType.DetectorRail; + mappings[764] = ItemType.Diamond; + mappings[800] = ItemType.DiamondAxe; + mappings[77] = ItemType.DiamondBlock; + mappings[831] = ItemType.DiamondBoots; + mappings[829] = ItemType.DiamondChestplate; + mappings[828] = ItemType.DiamondHelmet; + mappings[801] = ItemType.DiamondHoe; + mappings[1080] = ItemType.DiamondHorseArmor; + mappings[830] = ItemType.DiamondLeggings; + mappings[63] = ItemType.DiamondOre; + mappings[799] = ItemType.DiamondPickaxe; + mappings[798] = ItemType.DiamondShovel; + mappings[797] = ItemType.DiamondSword; + mappings[4] = ItemType.Diorite; + mappings[629] = ItemType.DioriteSlab; + mappings[612] = ItemType.DioriteStairs; + mappings[389] = ItemType.DioriteWall; + mappings[15] = ItemType.Dirt; + mappings[442] = ItemType.DirtPath; + mappings[1138] = ItemType.DiscFragment5; + mappings[646] = ItemType.Dispenser; + mappings[979] = ItemType.DolphinSpawnEgg; + mappings[980] = ItemType.DonkeySpawnEgg; + mappings[1111] = ItemType.DragonBreath; + mappings[357] = ItemType.DragonEgg; + mappings[1062] = ItemType.DragonHead; + mappings[944] = ItemType.DriedKelp; + mappings[883] = ItemType.DriedKelpBlock; + mappings[13] = ItemType.DripstoneBlock; + mappings[647] = ItemType.Dropper; + mappings[981] = ItemType.DrownedSpawnEgg; + mappings[1220] = ItemType.DuneArmorTrimSmithingTemplate; + mappings[1216] = ItemType.EchoShard; + mappings[887] = ItemType.Egg; + mappings[982] = ItemType.ElderGuardianSpawnEgg; + mappings[735] = ItemType.Elytra; + mappings[765] = ItemType.Emerald; + mappings[360] = ItemType.EmeraldBlock; + mappings[59] = ItemType.EmeraldOre; + mappings[1068] = ItemType.EnchantedBook; + mappings[845] = ItemType.EnchantedGoldenApple; + mappings[353] = ItemType.EnchantingTable; + mappings[1103] = ItemType.EndCrystal; + mappings[354] = ItemType.EndPortalFrame; + mappings[270] = ItemType.EndRod; + mappings[355] = ItemType.EndStone; + mappings[622] = ItemType.EndStoneBrickSlab; + mappings[604] = ItemType.EndStoneBrickStairs; + mappings[388] = ItemType.EndStoneBrickWall; + mappings[356] = ItemType.EndStoneBricks; + mappings[359] = ItemType.EnderChest; + mappings[983] = ItemType.EnderDragonSpawnEgg; + mappings[965] = ItemType.EnderEye; + mappings[952] = ItemType.EnderPearl; + mappings[984] = ItemType.EndermanSpawnEgg; + mappings[985] = ItemType.EndermiteSpawnEgg; + mappings[986] = ItemType.EvokerSpawnEgg; + mappings[1044] = ItemType.ExperienceBottle; + mappings[1242] = ItemType.ExplorerPotterySherd; + mappings[79] = ItemType.ExposedCopper; + mappings[83] = ItemType.ExposedCutCopper; + mappings[91] = ItemType.ExposedCutCopperSlab; + mappings[87] = ItemType.ExposedCutCopperStairs; + mappings[1224] = ItemType.EyeArmorTrimSmithingTemplate; + mappings[279] = ItemType.Farmland; + mappings[811] = ItemType.Feather; + mappings[960] = ItemType.FermentedSpiderEye; + mappings[174] = ItemType.Fern; + mappings[941] = ItemType.FilledMap; + mappings[1045] = ItemType.FireCharge; + mappings[580] = ItemType.FireCoral; + mappings[575] = ItemType.FireCoralBlock; + mappings[590] = ItemType.FireCoralFan; + mappings[1066] = ItemType.FireworkRocket; + mappings[1067] = ItemType.FireworkStar; + mappings[891] = ItemType.FishingRod; + mappings[1158] = ItemType.FletchingTable; + mappings[840] = ItemType.Flint; + mappings[758] = ItemType.FlintAndSteel; + mappings[1146] = ItemType.FlowerBannerPattern; + mappings[1050] = ItemType.FlowerPot; + mappings[176] = ItemType.FloweringAzalea; + mappings[163] = ItemType.FloweringAzaleaLeaves; + mappings[987] = ItemType.FoxSpawnEgg; + mappings[1243] = ItemType.FriendPotterySherd; + mappings[988] = ItemType.FrogSpawnEgg; + mappings[1215] = ItemType.Frogspawn; + mappings[280] = ItemType.Furnace; + mappings[730] = ItemType.FurnaceMinecart; + mappings[989] = ItemType.GhastSpawnEgg; + mappings[954] = ItemType.GhastTear; + mappings[1180] = ItemType.GildedBlackstone; + mappings[166] = ItemType.Glass; + mappings[958] = ItemType.GlassBottle; + mappings[335] = ItemType.GlassPane; + mappings[966] = ItemType.GlisteringMelonSlice; + mappings[1150] = ItemType.GlobeBannerPattern; + mappings[1166] = ItemType.GlowBerries; + mappings[902] = ItemType.GlowInkSac; + mappings[1049] = ItemType.GlowItemFrame; + mappings[338] = ItemType.GlowLichen; + mappings[990] = ItemType.GlowSquidSpawnEgg; + mappings[310] = ItemType.Glowstone; + mappings[894] = ItemType.GlowstoneDust; + mappings[1152] = ItemType.GoatHorn; + mappings[991] = ItemType.GoatSpawnEgg; + mappings[76] = ItemType.GoldBlock; + mappings[774] = ItemType.GoldIngot; + mappings[955] = ItemType.GoldNugget; + mappings[55] = ItemType.GoldOre; + mappings[844] = ItemType.GoldenApple; + mappings[790] = ItemType.GoldenAxe; + mappings[835] = ItemType.GoldenBoots; + mappings[1056] = ItemType.GoldenCarrot; + mappings[833] = ItemType.GoldenChestplate; + mappings[832] = ItemType.GoldenHelmet; + mappings[791] = ItemType.GoldenHoe; + mappings[1079] = ItemType.GoldenHorseArmor; + mappings[834] = ItemType.GoldenLeggings; + mappings[789] = ItemType.GoldenPickaxe; + mappings[788] = ItemType.GoldenShovel; + mappings[787] = ItemType.GoldenSword; + mappings[2] = ItemType.Granite; + mappings[625] = ItemType.GraniteSlab; + mappings[608] = ItemType.GraniteStairs; + mappings[381] = ItemType.GraniteWall; + mappings[173] = ItemType.Grass; + mappings[14] = ItemType.GrassBlock; + mappings[48] = ItemType.Gravel; + mappings[1094] = ItemType.GrayBanner; + mappings[931] = ItemType.GrayBed; + mappings[1198] = ItemType.GrayCandle; + mappings[431] = ItemType.GrayCarpet; + mappings[540] = ItemType.GrayConcrete; + mappings[556] = ItemType.GrayConcretePowder; + mappings[911] = ItemType.GrayDye; + mappings[524] = ItemType.GrayGlazedTerracotta; + mappings[508] = ItemType.GrayShulkerBox; + mappings[456] = ItemType.GrayStainedGlass; + mappings[472] = ItemType.GrayStainedGlassPane; + mappings[412] = ItemType.GrayTerracotta; + mappings[187] = ItemType.GrayWool; + mappings[1100] = ItemType.GreenBanner; + mappings[937] = ItemType.GreenBed; + mappings[1204] = ItemType.GreenCandle; + mappings[437] = ItemType.GreenCarpet; + mappings[546] = ItemType.GreenConcrete; + mappings[562] = ItemType.GreenConcretePowder; + mappings[917] = ItemType.GreenDye; + mappings[530] = ItemType.GreenGlazedTerracotta; + mappings[514] = ItemType.GreenShulkerBox; + mappings[462] = ItemType.GreenStainedGlass; + mappings[478] = ItemType.GreenStainedGlassPane; + mappings[418] = ItemType.GreenTerracotta; + mappings[193] = ItemType.GreenWool; + mappings[1159] = ItemType.Grindstone; + mappings[992] = ItemType.GuardianSpawnEgg; + mappings[812] = ItemType.Gunpowder; + mappings[226] = ItemType.HangingRoots; + mappings[423] = ItemType.HayBlock; + mappings[1142] = ItemType.HeartOfTheSea; + mappings[1244] = ItemType.HeartPotterySherd; + mappings[1245] = ItemType.HeartbreakPotterySherd; + mappings[676] = ItemType.HeavyWeightedPressurePlate; + mappings[993] = ItemType.HoglinSpawnEgg; + mappings[643] = ItemType.HoneyBlock; + mappings[1173] = ItemType.HoneyBottle; + mappings[1170] = ItemType.Honeycomb; + mappings[1174] = ItemType.HoneycombBlock; + mappings[645] = ItemType.Hopper; + mappings[732] = ItemType.HopperMinecart; + mappings[581] = ItemType.HornCoral; + mappings[576] = ItemType.HornCoralBlock; + mappings[591] = ItemType.HornCoralFan; + mappings[994] = ItemType.HorseSpawnEgg; + mappings[1234] = ItemType.HostArmorTrimSmithingTemplate; + mappings[1246] = ItemType.HowlPotterySherd; + mappings[995] = ItemType.HuskSpawnEgg; + mappings[284] = ItemType.Ice; + mappings[316] = ItemType.InfestedChiseledStoneBricks; + mappings[312] = ItemType.InfestedCobblestone; + mappings[315] = ItemType.InfestedCrackedStoneBricks; + mappings[317] = ItemType.InfestedDeepslate; + mappings[314] = ItemType.InfestedMossyStoneBricks; + mappings[311] = ItemType.InfestedStone; + mappings[313] = ItemType.InfestedStoneBricks; + mappings[901] = ItemType.InkSac; + mappings[795] = ItemType.IronAxe; + mappings[333] = ItemType.IronBars; + mappings[74] = ItemType.IronBlock; + mappings[827] = ItemType.IronBoots; + mappings[825] = ItemType.IronChestplate; + mappings[688] = ItemType.IronDoor; + mappings[996] = ItemType.IronGolemSpawnEgg; + mappings[824] = ItemType.IronHelmet; + mappings[796] = ItemType.IronHoe; + mappings[1078] = ItemType.IronHorseArmor; + mappings[770] = ItemType.IronIngot; + mappings[826] = ItemType.IronLeggings; + mappings[1119] = ItemType.IronNugget; + mappings[51] = ItemType.IronOre; + mappings[794] = ItemType.IronPickaxe; + mappings[793] = ItemType.IronShovel; + mappings[792] = ItemType.IronSword; + mappings[700] = ItemType.IronTrapdoor; + mappings[1048] = ItemType.ItemFrame; + mappings[302] = ItemType.JackOLantern; + mappings[755] = ItemType.Jigsaw; + mappings[288] = ItemType.Jukebox; + mappings[742] = ItemType.JungleBoat; + mappings[665] = ItemType.JungleButton; + mappings[743] = ItemType.JungleChestBoat; + mappings[692] = ItemType.JungleDoor; + mappings[292] = ItemType.JungleFence; + mappings[715] = ItemType.JungleFenceGate; + mappings[860] = ItemType.JungleHangingSign; + mappings[157] = ItemType.JungleLeaves; + mappings[113] = ItemType.JungleLog; + mappings[26] = ItemType.JunglePlanks; + mappings[680] = ItemType.JunglePressurePlate; + mappings[38] = ItemType.JungleSapling; + mappings[849] = ItemType.JungleSign; + mappings[233] = ItemType.JungleSlab; + mappings[364] = ItemType.JungleStairs; + mappings[704] = ItemType.JungleTrapdoor; + mappings[147] = ItemType.JungleWood; + mappings[222] = ItemType.Kelp; + mappings[1120] = ItemType.KnowledgeBook; + mappings[281] = ItemType.Ladder; + mappings[1163] = ItemType.Lantern; + mappings[168] = ItemType.LapisBlock; + mappings[766] = ItemType.LapisLazuli; + mappings[61] = ItemType.LapisOre; + mappings[1209] = ItemType.LargeAmethystBud; + mappings[448] = ItemType.LargeFern; + mappings[870] = ItemType.LavaBucket; + mappings[1082] = ItemType.Lead; + mappings[873] = ItemType.Leather; + mappings[819] = ItemType.LeatherBoots; + mappings[817] = ItemType.LeatherChestplate; + mappings[816] = ItemType.LeatherHelmet; + mappings[1081] = ItemType.LeatherHorseArmor; + mappings[818] = ItemType.LeatherLeggings; + mappings[648] = ItemType.Lectern; + mappings[650] = ItemType.Lever; + mappings[422] = ItemType.Light; + mappings[1090] = ItemType.LightBlueBanner; + mappings[927] = ItemType.LightBlueBed; + mappings[1194] = ItemType.LightBlueCandle; + mappings[427] = ItemType.LightBlueCarpet; + mappings[536] = ItemType.LightBlueConcrete; + mappings[552] = ItemType.LightBlueConcretePowder; + mappings[907] = ItemType.LightBlueDye; + mappings[520] = ItemType.LightBlueGlazedTerracotta; + mappings[504] = ItemType.LightBlueShulkerBox; + mappings[452] = ItemType.LightBlueStainedGlass; + mappings[468] = ItemType.LightBlueStainedGlassPane; + mappings[408] = ItemType.LightBlueTerracotta; + mappings[183] = ItemType.LightBlueWool; + mappings[1095] = ItemType.LightGrayBanner; + mappings[932] = ItemType.LightGrayBed; + mappings[1199] = ItemType.LightGrayCandle; + mappings[432] = ItemType.LightGrayCarpet; + mappings[541] = ItemType.LightGrayConcrete; + mappings[557] = ItemType.LightGrayConcretePowder; + mappings[912] = ItemType.LightGrayDye; + mappings[525] = ItemType.LightGrayGlazedTerracotta; + mappings[509] = ItemType.LightGrayShulkerBox; + mappings[457] = ItemType.LightGrayStainedGlass; + mappings[473] = ItemType.LightGrayStainedGlassPane; + mappings[413] = ItemType.LightGrayTerracotta; + mappings[188] = ItemType.LightGrayWool; + mappings[675] = ItemType.LightWeightedPressurePlate; + mappings[651] = ItemType.LightningRod; + mappings[444] = ItemType.Lilac; + mappings[207] = ItemType.LilyOfTheValley; + mappings[343] = ItemType.LilyPad; + mappings[1092] = ItemType.LimeBanner; + mappings[929] = ItemType.LimeBed; + mappings[1196] = ItemType.LimeCandle; + mappings[429] = ItemType.LimeCarpet; + mappings[538] = ItemType.LimeConcrete; + mappings[554] = ItemType.LimeConcretePowder; + mappings[909] = ItemType.LimeDye; + mappings[522] = ItemType.LimeGlazedTerracotta; + mappings[506] = ItemType.LimeShulkerBox; + mappings[454] = ItemType.LimeStainedGlass; + mappings[470] = ItemType.LimeStainedGlassPane; + mappings[410] = ItemType.LimeTerracotta; + mappings[185] = ItemType.LimeWool; + mappings[1115] = ItemType.LingeringPotion; + mappings[997] = ItemType.LlamaSpawnEgg; + mappings[1175] = ItemType.Lodestone; + mappings[1145] = ItemType.Loom; + mappings[1089] = ItemType.MagentaBanner; + mappings[926] = ItemType.MagentaBed; + mappings[1193] = ItemType.MagentaCandle; + mappings[426] = ItemType.MagentaCarpet; + mappings[535] = ItemType.MagentaConcrete; + mappings[551] = ItemType.MagentaConcretePowder; + mappings[906] = ItemType.MagentaDye; + mappings[519] = ItemType.MagentaGlazedTerracotta; + mappings[503] = ItemType.MagentaShulkerBox; + mappings[451] = ItemType.MagentaStainedGlass; + mappings[467] = ItemType.MagentaStainedGlassPane; + mappings[407] = ItemType.MagentaTerracotta; + mappings[182] = ItemType.MagentaWool; + mappings[494] = ItemType.MagmaBlock; + mappings[962] = ItemType.MagmaCream; + mappings[998] = ItemType.MagmaCubeSpawnEgg; + mappings[750] = ItemType.MangroveBoat; + mappings[669] = ItemType.MangroveButton; + mappings[751] = ItemType.MangroveChestBoat; + mappings[696] = ItemType.MangroveDoor; + mappings[296] = ItemType.MangroveFence; + mappings[719] = ItemType.MangroveFenceGate; + mappings[864] = ItemType.MangroveHangingSign; + mappings[161] = ItemType.MangroveLeaves; + mappings[117] = ItemType.MangroveLog; + mappings[30] = ItemType.MangrovePlanks; + mappings[684] = ItemType.MangrovePressurePlate; + mappings[42] = ItemType.MangrovePropagule; + mappings[118] = ItemType.MangroveRoots; + mappings[853] = ItemType.MangroveSign; + mappings[237] = ItemType.MangroveSlab; + mappings[368] = ItemType.MangroveStairs; + mappings[708] = ItemType.MangroveTrapdoor; + mappings[151] = ItemType.MangroveWood; + mappings[1055] = ItemType.Map; + mappings[1208] = ItemType.MediumAmethystBud; + mappings[336] = ItemType.Melon; + mappings[946] = ItemType.MelonSeeds; + mappings[943] = ItemType.MelonSlice; + mappings[874] = ItemType.MilkBucket; + mappings[728] = ItemType.Minecart; + mappings[1247] = ItemType.MinerPotterySherd; + mappings[1149] = ItemType.MojangBannerPattern; + mappings[999] = ItemType.MooshroomSpawnEgg; + mappings[225] = ItemType.MossBlock; + mappings[223] = ItemType.MossCarpet; + mappings[267] = ItemType.MossyCobblestone; + mappings[621] = ItemType.MossyCobblestoneSlab; + mappings[603] = ItemType.MossyCobblestoneStairs; + mappings[376] = ItemType.MossyCobblestoneWall; + mappings[619] = ItemType.MossyStoneBrickSlab; + mappings[601] = ItemType.MossyStoneBrickStairs; + mappings[380] = ItemType.MossyStoneBrickWall; + mappings[319] = ItemType.MossyStoneBricks; + mappings[1248] = ItemType.MournerPotterySherd; + mappings[19] = ItemType.Mud; + mappings[250] = ItemType.MudBrickSlab; + mappings[341] = ItemType.MudBrickStairs; + mappings[383] = ItemType.MudBrickWall; + mappings[323] = ItemType.MudBricks; + mappings[119] = ItemType.MuddyMangroveRoots; + mappings[1000] = ItemType.MuleSpawnEgg; + mappings[332] = ItemType.MushroomStem; + mappings[809] = ItemType.MushroomStew; + mappings[1132] = ItemType.MusicDisc11; + mappings[1122] = ItemType.MusicDisc13; + mappings[1136] = ItemType.MusicDisc5; + mappings[1124] = ItemType.MusicDiscBlocks; + mappings[1123] = ItemType.MusicDiscCat; + mappings[1125] = ItemType.MusicDiscChirp; + mappings[1126] = ItemType.MusicDiscFar; + mappings[1127] = ItemType.MusicDiscMall; + mappings[1128] = ItemType.MusicDiscMellohi; + mappings[1134] = ItemType.MusicDiscOtherside; + mappings[1137] = ItemType.MusicDiscPigstep; + mappings[1135] = ItemType.MusicDiscRelic; + mappings[1129] = ItemType.MusicDiscStal; + mappings[1130] = ItemType.MusicDiscStrad; + mappings[1133] = ItemType.MusicDiscWait; + mappings[1131] = ItemType.MusicDiscWard; + mappings[1085] = ItemType.Mutton; + mappings[342] = ItemType.Mycelium; + mappings[1083] = ItemType.NameTag; + mappings[1141] = ItemType.NautilusShell; + mappings[1069] = ItemType.NetherBrick; + mappings[347] = ItemType.NetherBrickFence; + mappings[251] = ItemType.NetherBrickSlab; + mappings[348] = ItemType.NetherBrickStairs; + mappings[384] = ItemType.NetherBrickWall; + mappings[344] = ItemType.NetherBricks; + mappings[65] = ItemType.NetherGoldOre; + mappings[66] = ItemType.NetherQuartzOre; + mappings[218] = ItemType.NetherSprouts; + mappings[1064] = ItemType.NetherStar; + mappings[956] = ItemType.NetherWart; + mappings[495] = ItemType.NetherWartBlock; + mappings[805] = ItemType.NetheriteAxe; + mappings[78] = ItemType.NetheriteBlock; + mappings[839] = ItemType.NetheriteBoots; + mappings[837] = ItemType.NetheriteChestplate; + mappings[836] = ItemType.NetheriteHelmet; + mappings[806] = ItemType.NetheriteHoe; + mappings[775] = ItemType.NetheriteIngot; + mappings[838] = ItemType.NetheriteLeggings; + mappings[804] = ItemType.NetheritePickaxe; + mappings[776] = ItemType.NetheriteScrap; + mappings[803] = ItemType.NetheriteShovel; + mappings[802] = ItemType.NetheriteSword; + mappings[1218] = ItemType.NetheriteUpgradeSmithingTemplate; + mappings[303] = ItemType.Netherrack; + mappings[659] = ItemType.NoteBlock; + mappings[736] = ItemType.OakBoat; + mappings[662] = ItemType.OakButton; + mappings[737] = ItemType.OakChestBoat; + mappings[689] = ItemType.OakDoor; + mappings[289] = ItemType.OakFence; + mappings[712] = ItemType.OakFenceGate; + mappings[857] = ItemType.OakHangingSign; + mappings[154] = ItemType.OakLeaves; + mappings[110] = ItemType.OakLog; + mappings[23] = ItemType.OakPlanks; + mappings[677] = ItemType.OakPressurePlate; + mappings[35] = ItemType.OakSapling; + mappings[846] = ItemType.OakSign; + mappings[230] = ItemType.OakSlab; + mappings[361] = ItemType.OakStairs; + mappings[701] = ItemType.OakTrapdoor; + mappings[144] = ItemType.OakWood; + mappings[644] = ItemType.Observer; + mappings[268] = ItemType.Obsidian; + mappings[1001] = ItemType.OcelotSpawnEgg; + mappings[1212] = ItemType.OchreFroglight; + mappings[1088] = ItemType.OrangeBanner; + mappings[925] = ItemType.OrangeBed; + mappings[1192] = ItemType.OrangeCandle; + mappings[425] = ItemType.OrangeCarpet; + mappings[534] = ItemType.OrangeConcrete; + mappings[550] = ItemType.OrangeConcretePowder; + mappings[905] = ItemType.OrangeDye; + mappings[518] = ItemType.OrangeGlazedTerracotta; + mappings[502] = ItemType.OrangeShulkerBox; + mappings[450] = ItemType.OrangeStainedGlass; + mappings[466] = ItemType.OrangeStainedGlassPane; + mappings[406] = ItemType.OrangeTerracotta; + mappings[202] = ItemType.OrangeTulip; + mappings[181] = ItemType.OrangeWool; + mappings[205] = ItemType.OxeyeDaisy; + mappings[81] = ItemType.OxidizedCopper; + mappings[85] = ItemType.OxidizedCutCopper; + mappings[93] = ItemType.OxidizedCutCopperSlab; + mappings[89] = ItemType.OxidizedCutCopperStairs; + mappings[441] = ItemType.PackedIce; + mappings[322] = ItemType.PackedMud; + mappings[843] = ItemType.Painting; + mappings[1002] = ItemType.PandaSpawnEgg; + mappings[884] = ItemType.Paper; + mappings[1003] = ItemType.ParrotSpawnEgg; + mappings[1214] = ItemType.PearlescentFroglight; + mappings[446] = ItemType.Peony; + mappings[246] = ItemType.PetrifiedOakSlab; + mappings[1140] = ItemType.PhantomMembrane; + mappings[1004] = ItemType.PhantomSpawnEgg; + mappings[1005] = ItemType.PigSpawnEgg; + mappings[1151] = ItemType.PiglinBannerPattern; + mappings[1007] = ItemType.PiglinBruteSpawnEgg; + mappings[1063] = ItemType.PiglinHead; + mappings[1006] = ItemType.PiglinSpawnEgg; + mappings[1008] = ItemType.PillagerSpawnEgg; + mappings[1093] = ItemType.PinkBanner; + mappings[930] = ItemType.PinkBed; + mappings[1197] = ItemType.PinkCandle; + mappings[430] = ItemType.PinkCarpet; + mappings[539] = ItemType.PinkConcrete; + mappings[555] = ItemType.PinkConcretePowder; + mappings[910] = ItemType.PinkDye; + mappings[523] = ItemType.PinkGlazedTerracotta; + mappings[224] = ItemType.PinkPetals; + mappings[507] = ItemType.PinkShulkerBox; + mappings[455] = ItemType.PinkStainedGlass; + mappings[471] = ItemType.PinkStainedGlassPane; + mappings[411] = ItemType.PinkTerracotta; + mappings[204] = ItemType.PinkTulip; + mappings[186] = ItemType.PinkWool; + mappings[640] = ItemType.Piston; + mappings[210] = ItemType.PitcherPlant; + mappings[1107] = ItemType.PitcherPod; + mappings[1059] = ItemType.PlayerHead; + mappings[1249] = ItemType.PlentyPotterySherd; + mappings[17] = ItemType.Podzol; + mappings[1211] = ItemType.PointedDripstone; + mappings[1054] = ItemType.PoisonousPotato; + mappings[1009] = ItemType.PolarBearSpawnEgg; + mappings[7] = ItemType.PolishedAndesite; + mappings[628] = ItemType.PolishedAndesiteSlab; + mappings[611] = ItemType.PolishedAndesiteStairs; + mappings[307] = ItemType.PolishedBasalt; + mappings[1181] = ItemType.PolishedBlackstone; + mappings[1186] = ItemType.PolishedBlackstoneBrickSlab; + mappings[1187] = ItemType.PolishedBlackstoneBrickStairs; + mappings[392] = ItemType.PolishedBlackstoneBrickWall; + mappings[1185] = ItemType.PolishedBlackstoneBricks; + mappings[661] = ItemType.PolishedBlackstoneButton; + mappings[674] = ItemType.PolishedBlackstonePressurePlate; + mappings[1182] = ItemType.PolishedBlackstoneSlab; + mappings[1183] = ItemType.PolishedBlackstoneStairs; + mappings[391] = ItemType.PolishedBlackstoneWall; + mappings[10] = ItemType.PolishedDeepslate; + mappings[631] = ItemType.PolishedDeepslateSlab; + mappings[614] = ItemType.PolishedDeepslateStairs; + mappings[394] = ItemType.PolishedDeepslateWall; + mappings[5] = ItemType.PolishedDiorite; + mappings[620] = ItemType.PolishedDioriteSlab; + mappings[602] = ItemType.PolishedDioriteStairs; + mappings[3] = ItemType.PolishedGranite; + mappings[617] = ItemType.PolishedGraniteSlab; + mappings[599] = ItemType.PolishedGraniteStairs; + mappings[1105] = ItemType.PoppedChorusFruit; + mappings[197] = ItemType.Poppy; + mappings[841] = ItemType.Porkchop; + mappings[1052] = ItemType.Potato; + mappings[957] = ItemType.Potion; + mappings[871] = ItemType.PowderSnowBucket; + mappings[723] = ItemType.PoweredRail; + mappings[481] = ItemType.Prismarine; + mappings[257] = ItemType.PrismarineBrickSlab; + mappings[485] = ItemType.PrismarineBrickStairs; + mappings[482] = ItemType.PrismarineBricks; + mappings[1071] = ItemType.PrismarineCrystals; + mappings[1070] = ItemType.PrismarineShard; + mappings[256] = ItemType.PrismarineSlab; + mappings[484] = ItemType.PrismarineStairs; + mappings[378] = ItemType.PrismarineWall; + mappings[1250] = ItemType.PrizePotterySherd; + mappings[898] = ItemType.Pufferfish; + mappings[875] = ItemType.PufferfishBucket; + mappings[1010] = ItemType.PufferfishSpawnEgg; + mappings[300] = ItemType.Pumpkin; + mappings[1065] = ItemType.PumpkinPie; + mappings[945] = ItemType.PumpkinSeeds; + mappings[1097] = ItemType.PurpleBanner; + mappings[934] = ItemType.PurpleBed; + mappings[1201] = ItemType.PurpleCandle; + mappings[434] = ItemType.PurpleCarpet; + mappings[543] = ItemType.PurpleConcrete; + mappings[559] = ItemType.PurpleConcretePowder; + mappings[914] = ItemType.PurpleDye; + mappings[527] = ItemType.PurpleGlazedTerracotta; + mappings[511] = ItemType.PurpleShulkerBox; + mappings[459] = ItemType.PurpleStainedGlass; + mappings[475] = ItemType.PurpleStainedGlassPane; + mappings[415] = ItemType.PurpleTerracotta; + mappings[190] = ItemType.PurpleWool; + mappings[273] = ItemType.PurpurBlock; + mappings[274] = ItemType.PurpurPillar; + mappings[255] = ItemType.PurpurSlab; + mappings[275] = ItemType.PurpurStairs; + mappings[767] = ItemType.Quartz; + mappings[401] = ItemType.QuartzBlock; + mappings[402] = ItemType.QuartzBricks; + mappings[403] = ItemType.QuartzPillar; + mappings[252] = ItemType.QuartzSlab; + mappings[404] = ItemType.QuartzStairs; + mappings[1072] = ItemType.Rabbit; + mappings[1075] = ItemType.RabbitFoot; + mappings[1076] = ItemType.RabbitHide; + mappings[1011] = ItemType.RabbitSpawnEgg; + mappings[1074] = ItemType.RabbitStew; + mappings[725] = ItemType.Rail; + mappings[1233] = ItemType.RaiserArmorTrimSmithingTemplate; + mappings[1012] = ItemType.RavagerSpawnEgg; + mappings[771] = ItemType.RawCopper; + mappings[70] = ItemType.RawCopperBlock; + mappings[773] = ItemType.RawGold; + mappings[71] = ItemType.RawGoldBlock; + mappings[769] = ItemType.RawIron; + mappings[69] = ItemType.RawIronBlock; + mappings[889] = ItemType.RecoveryCompass; + mappings[1101] = ItemType.RedBanner; + mappings[938] = ItemType.RedBed; + mappings[1205] = ItemType.RedCandle; + mappings[438] = ItemType.RedCarpet; + mappings[547] = ItemType.RedConcrete; + mappings[563] = ItemType.RedConcretePowder; + mappings[918] = ItemType.RedDye; + mappings[531] = ItemType.RedGlazedTerracotta; + mappings[213] = ItemType.RedMushroom; + mappings[331] = ItemType.RedMushroomBlock; + mappings[627] = ItemType.RedNetherBrickSlab; + mappings[610] = ItemType.RedNetherBrickStairs; + mappings[386] = ItemType.RedNetherBrickWall; + mappings[497] = ItemType.RedNetherBricks; + mappings[47] = ItemType.RedSand; + mappings[488] = ItemType.RedSandstone; + mappings[253] = ItemType.RedSandstoneSlab; + mappings[491] = ItemType.RedSandstoneStairs; + mappings[379] = ItemType.RedSandstoneWall; + mappings[515] = ItemType.RedShulkerBox; + mappings[463] = ItemType.RedStainedGlass; + mappings[479] = ItemType.RedStainedGlassPane; + mappings[419] = ItemType.RedTerracotta; + mappings[201] = ItemType.RedTulip; + mappings[194] = ItemType.RedWool; + mappings[635] = ItemType.Redstone; + mappings[637] = ItemType.RedstoneBlock; + mappings[658] = ItemType.RedstoneLamp; + mappings[57] = ItemType.RedstoneOre; + mappings[636] = ItemType.RedstoneTorch; + mappings[329] = ItemType.ReinforcedDeepslate; + mappings[638] = ItemType.Repeater; + mappings[492] = ItemType.RepeatingCommandBlock; + mappings[1189] = ItemType.RespawnAnchor; + mappings[1228] = ItemType.RibArmorTrimSmithingTemplate; + mappings[18] = ItemType.RootedDirt; + mappings[445] = ItemType.RoseBush; + mappings[951] = ItemType.RottenFlesh; + mappings[727] = ItemType.Saddle; + mappings[896] = ItemType.Salmon; + mappings[876] = ItemType.SalmonBucket; + mappings[1013] = ItemType.SalmonSpawnEgg; + mappings[44] = ItemType.Sand; + mappings[169] = ItemType.Sandstone; + mappings[244] = ItemType.SandstoneSlab; + mappings[358] = ItemType.SandstoneStairs; + mappings[387] = ItemType.SandstoneWall; + mappings[634] = ItemType.Scaffolding; + mappings[349] = ItemType.Sculk; + mappings[351] = ItemType.SculkCatalyst; + mappings[653] = ItemType.SculkSensor; + mappings[352] = ItemType.SculkShrieker; + mappings[350] = ItemType.SculkVein; + mappings[757] = ItemType.Scute; + mappings[487] = ItemType.SeaLantern; + mappings[179] = ItemType.SeaPickle; + mappings[178] = ItemType.Seagrass; + mappings[1219] = ItemType.SentryArmorTrimSmithingTemplate; + mappings[1231] = ItemType.ShaperArmorTrimSmithingTemplate; + mappings[1251] = ItemType.SheafPotterySherd; + mappings[942] = ItemType.Shears; + mappings[1014] = ItemType.SheepSpawnEgg; + mappings[1252] = ItemType.ShelterPotterySherd; + mappings[1116] = ItemType.Shield; + mappings[1169] = ItemType.Shroomlight; + mappings[500] = ItemType.ShulkerBox; + mappings[1118] = ItemType.ShulkerShell; + mappings[1015] = ItemType.ShulkerSpawnEgg; + mappings[1232] = ItemType.SilenceArmorTrimSmithingTemplate; + mappings[1016] = ItemType.SilverfishSpawnEgg; + mappings[1018] = ItemType.SkeletonHorseSpawnEgg; + mappings[1057] = ItemType.SkeletonSkull; + mappings[1017] = ItemType.SkeletonSpawnEgg; + mappings[1148] = ItemType.SkullBannerPattern; + mappings[1253] = ItemType.SkullPotterySherd; + mappings[886] = ItemType.SlimeBall; + mappings[642] = ItemType.SlimeBlock; + mappings[1019] = ItemType.SlimeSpawnEgg; + mappings[1207] = ItemType.SmallAmethystBud; + mappings[228] = ItemType.SmallDripleaf; + mappings[1160] = ItemType.SmithingTable; + mappings[1155] = ItemType.Smoker; + mappings[308] = ItemType.SmoothBasalt; + mappings[259] = ItemType.SmoothQuartz; + mappings[624] = ItemType.SmoothQuartzSlab; + mappings[607] = ItemType.SmoothQuartzStairs; + mappings[260] = ItemType.SmoothRedSandstone; + mappings[618] = ItemType.SmoothRedSandstoneSlab; + mappings[600] = ItemType.SmoothRedSandstoneStairs; + mappings[261] = ItemType.SmoothSandstone; + mappings[623] = ItemType.SmoothSandstoneSlab; + mappings[606] = ItemType.SmoothSandstoneStairs; + mappings[262] = ItemType.SmoothStone; + mappings[243] = ItemType.SmoothStoneSlab; + mappings[566] = ItemType.SnifferEgg; + mappings[1020] = ItemType.SnifferSpawnEgg; + mappings[1254] = ItemType.SnortPotterySherd; + mappings[1227] = ItemType.SnoutArmorTrimSmithingTemplate; + mappings[283] = ItemType.Snow; + mappings[285] = ItemType.SnowBlock; + mappings[1021] = ItemType.SnowGolemSpawnEgg; + mappings[872] = ItemType.Snowball; + mappings[1168] = ItemType.SoulCampfire; + mappings[1164] = ItemType.SoulLantern; + mappings[304] = ItemType.SoulSand; + mappings[305] = ItemType.SoulSoil; + mappings[309] = ItemType.SoulTorch; + mappings[276] = ItemType.Spawner; + mappings[1113] = ItemType.SpectralArrow; + mappings[959] = ItemType.SpiderEye; + mappings[1022] = ItemType.SpiderSpawnEgg; + mappings[1229] = ItemType.SpireArmorTrimSmithingTemplate; + mappings[1112] = ItemType.SplashPotion; + mappings[164] = ItemType.Sponge; + mappings[211] = ItemType.SporeBlossom; + mappings[738] = ItemType.SpruceBoat; + mappings[663] = ItemType.SpruceButton; + mappings[739] = ItemType.SpruceChestBoat; + mappings[690] = ItemType.SpruceDoor; + mappings[290] = ItemType.SpruceFence; + mappings[713] = ItemType.SpruceFenceGate; + mappings[858] = ItemType.SpruceHangingSign; + mappings[155] = ItemType.SpruceLeaves; + mappings[111] = ItemType.SpruceLog; + mappings[24] = ItemType.SprucePlanks; + mappings[678] = ItemType.SprucePressurePlate; + mappings[36] = ItemType.SpruceSapling; + mappings[847] = ItemType.SpruceSign; + mappings[231] = ItemType.SpruceSlab; + mappings[362] = ItemType.SpruceStairs; + mappings[702] = ItemType.SpruceTrapdoor; + mappings[145] = ItemType.SpruceWood; + mappings[893] = ItemType.Spyglass; + mappings[1023] = ItemType.SquidSpawnEgg; + mappings[807] = ItemType.Stick; + mappings[641] = ItemType.StickyPiston; + mappings[1] = ItemType.Stone; + mappings[785] = ItemType.StoneAxe; + mappings[249] = ItemType.StoneBrickSlab; + mappings[340] = ItemType.StoneBrickStairs; + mappings[382] = ItemType.StoneBrickWall; + mappings[318] = ItemType.StoneBricks; + mappings[660] = ItemType.StoneButton; + mappings[786] = ItemType.StoneHoe; + mappings[784] = ItemType.StonePickaxe; + mappings[673] = ItemType.StonePressurePlate; + mappings[783] = ItemType.StoneShovel; + mappings[242] = ItemType.StoneSlab; + mappings[605] = ItemType.StoneStairs; + mappings[782] = ItemType.StoneSword; + mappings[1161] = ItemType.Stonecutter; + mappings[1024] = ItemType.StraySpawnEgg; + mappings[1025] = ItemType.StriderSpawnEgg; + mappings[810] = ItemType.String; + mappings[127] = ItemType.StrippedAcaciaLog; + mappings[137] = ItemType.StrippedAcaciaWood; + mappings[143] = ItemType.StrippedBambooBlock; + mappings[125] = ItemType.StrippedBirchLog; + mappings[135] = ItemType.StrippedBirchWood; + mappings[128] = ItemType.StrippedCherryLog; + mappings[138] = ItemType.StrippedCherryWood; + mappings[141] = ItemType.StrippedCrimsonHyphae; + mappings[131] = ItemType.StrippedCrimsonStem; + mappings[129] = ItemType.StrippedDarkOakLog; + mappings[139] = ItemType.StrippedDarkOakWood; + mappings[126] = ItemType.StrippedJungleLog; + mappings[136] = ItemType.StrippedJungleWood; + mappings[130] = ItemType.StrippedMangroveLog; + mappings[140] = ItemType.StrippedMangroveWood; + mappings[123] = ItemType.StrippedOakLog; + mappings[133] = ItemType.StrippedOakWood; + mappings[124] = ItemType.StrippedSpruceLog; + mappings[134] = ItemType.StrippedSpruceWood; + mappings[142] = ItemType.StrippedWarpedHyphae; + mappings[132] = ItemType.StrippedWarpedStem; + mappings[754] = ItemType.StructureBlock; + mappings[499] = ItemType.StructureVoid; + mappings[922] = ItemType.Sugar; + mappings[221] = ItemType.SugarCane; + mappings[443] = ItemType.Sunflower; + mappings[46] = ItemType.SuspiciousGravel; + mappings[45] = ItemType.SuspiciousSand; + mappings[1144] = ItemType.SuspiciousStew; + mappings[1165] = ItemType.SweetBerries; + mappings[880] = ItemType.TadpoleBucket; + mappings[1026] = ItemType.TadpoleSpawnEgg; + mappings[447] = ItemType.TallGrass; + mappings[649] = ItemType.Target; + mappings[440] = ItemType.Terracotta; + mappings[1226] = ItemType.TideArmorTrimSmithingTemplate; + mappings[167] = ItemType.TintedGlass; + mappings[1114] = ItemType.TippedArrow; + mappings[657] = ItemType.Tnt; + mappings[731] = ItemType.TntMinecart; + mappings[269] = ItemType.Torch; + mappings[209] = ItemType.Torchflower; + mappings[1106] = ItemType.TorchflowerSeeds; + mappings[1117] = ItemType.TotemOfUndying; + mappings[1027] = ItemType.TraderLlamaSpawnEgg; + mappings[656] = ItemType.TrappedChest; + mappings[1139] = ItemType.Trident; + mappings[655] = ItemType.TripwireHook; + mappings[897] = ItemType.TropicalFish; + mappings[878] = ItemType.TropicalFishBucket; + mappings[1028] = ItemType.TropicalFishSpawnEgg; + mappings[577] = ItemType.TubeCoral; + mappings[572] = ItemType.TubeCoralBlock; + mappings[587] = ItemType.TubeCoralFan; + mappings[12] = ItemType.Tuff; + mappings[565] = ItemType.TurtleEgg; + mappings[756] = ItemType.TurtleHelmet; + mappings[1029] = ItemType.TurtleSpawnEgg; + mappings[220] = ItemType.TwistingVines; + mappings[1213] = ItemType.VerdantFroglight; + mappings[1225] = ItemType.VexArmorTrimSmithingTemplate; + mappings[1030] = ItemType.VexSpawnEgg; + mappings[1031] = ItemType.VillagerSpawnEgg; + mappings[1032] = ItemType.VindicatorSpawnEgg; + mappings[337] = ItemType.Vine; + mappings[1033] = ItemType.WanderingTraderSpawnEgg; + mappings[1223] = ItemType.WardArmorTrimSmithingTemplate; + mappings[1034] = ItemType.WardenSpawnEgg; + mappings[672] = ItemType.WarpedButton; + mappings[699] = ItemType.WarpedDoor; + mappings[299] = ItemType.WarpedFence; + mappings[722] = ItemType.WarpedFenceGate; + mappings[215] = ItemType.WarpedFungus; + mappings[734] = ItemType.WarpedFungusOnAStick; + mappings[867] = ItemType.WarpedHangingSign; + mappings[153] = ItemType.WarpedHyphae; + mappings[21] = ItemType.WarpedNylium; + mappings[33] = ItemType.WarpedPlanks; + mappings[687] = ItemType.WarpedPressurePlate; + mappings[217] = ItemType.WarpedRoots; + mappings[856] = ItemType.WarpedSign; + mappings[241] = ItemType.WarpedSlab; + mappings[372] = ItemType.WarpedStairs; + mappings[121] = ItemType.WarpedStem; + mappings[711] = ItemType.WarpedTrapdoor; + mappings[496] = ItemType.WarpedWartBlock; + mappings[869] = ItemType.WaterBucket; + mappings[94] = ItemType.WaxedCopperBlock; + mappings[98] = ItemType.WaxedCutCopper; + mappings[106] = ItemType.WaxedCutCopperSlab; + mappings[102] = ItemType.WaxedCutCopperStairs; + mappings[95] = ItemType.WaxedExposedCopper; + mappings[99] = ItemType.WaxedExposedCutCopper; + mappings[107] = ItemType.WaxedExposedCutCopperSlab; + mappings[103] = ItemType.WaxedExposedCutCopperStairs; + mappings[97] = ItemType.WaxedOxidizedCopper; + mappings[101] = ItemType.WaxedOxidizedCutCopper; + mappings[109] = ItemType.WaxedOxidizedCutCopperSlab; + mappings[105] = ItemType.WaxedOxidizedCutCopperStairs; + mappings[96] = ItemType.WaxedWeatheredCopper; + mappings[100] = ItemType.WaxedWeatheredCutCopper; + mappings[108] = ItemType.WaxedWeatheredCutCopperSlab; + mappings[104] = ItemType.WaxedWeatheredCutCopperStairs; + mappings[1230] = ItemType.WayfinderArmorTrimSmithingTemplate; + mappings[80] = ItemType.WeatheredCopper; + mappings[84] = ItemType.WeatheredCutCopper; + mappings[92] = ItemType.WeatheredCutCopperSlab; + mappings[88] = ItemType.WeatheredCutCopperStairs; + mappings[219] = ItemType.WeepingVines; + mappings[165] = ItemType.WetSponge; + mappings[814] = ItemType.Wheat; + mappings[813] = ItemType.WheatSeeds; + mappings[1087] = ItemType.WhiteBanner; + mappings[924] = ItemType.WhiteBed; + mappings[1191] = ItemType.WhiteCandle; + mappings[424] = ItemType.WhiteCarpet; + mappings[533] = ItemType.WhiteConcrete; + mappings[549] = ItemType.WhiteConcretePowder; + mappings[904] = ItemType.WhiteDye; + mappings[517] = ItemType.WhiteGlazedTerracotta; + mappings[501] = ItemType.WhiteShulkerBox; + mappings[449] = ItemType.WhiteStainedGlass; + mappings[465] = ItemType.WhiteStainedGlassPane; + mappings[405] = ItemType.WhiteTerracotta; + mappings[203] = ItemType.WhiteTulip; + mappings[180] = ItemType.WhiteWool; + mappings[1222] = ItemType.WildArmorTrimSmithingTemplate; + mappings[1035] = ItemType.WitchSpawnEgg; + mappings[208] = ItemType.WitherRose; + mappings[1058] = ItemType.WitherSkeletonSkull; + mappings[1037] = ItemType.WitherSkeletonSpawnEgg; + mappings[1036] = ItemType.WitherSpawnEgg; + mappings[1038] = ItemType.WolfSpawnEgg; + mappings[780] = ItemType.WoodenAxe; + mappings[781] = ItemType.WoodenHoe; + mappings[779] = ItemType.WoodenPickaxe; + mappings[778] = ItemType.WoodenShovel; + mappings[777] = ItemType.WoodenSword; + mappings[1046] = ItemType.WritableBook; + mappings[1047] = ItemType.WrittenBook; + mappings[1091] = ItemType.YellowBanner; + mappings[928] = ItemType.YellowBed; + mappings[1195] = ItemType.YellowCandle; + mappings[428] = ItemType.YellowCarpet; + mappings[537] = ItemType.YellowConcrete; + mappings[553] = ItemType.YellowConcretePowder; + mappings[908] = ItemType.YellowDye; + mappings[521] = ItemType.YellowGlazedTerracotta; + mappings[505] = ItemType.YellowShulkerBox; + mappings[453] = ItemType.YellowStainedGlass; + mappings[469] = ItemType.YellowStainedGlassPane; + mappings[409] = ItemType.YellowTerracotta; + mappings[184] = ItemType.YellowWool; + mappings[1039] = ItemType.ZoglinSpawnEgg; + mappings[1060] = ItemType.ZombieHead; + mappings[1041] = ItemType.ZombieHorseSpawnEgg; + mappings[1040] = ItemType.ZombieSpawnEgg; + mappings[1042] = ItemType.ZombieVillagerSpawnEgg; + mappings[1043] = ItemType.ZombifiedPiglinSpawnEgg; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} diff --git a/MinecraftClient/Inventory/ItemType.cs b/MinecraftClient/Inventory/ItemType.cs index da92dec551..d11f5320ed 100644 --- a/MinecraftClient/Inventory/ItemType.cs +++ b/MinecraftClient/Inventory/ItemType.cs @@ -12,7 +12,7 @@ public enum ItemType { Unknown = -2, // Unsupported item type (Forge mod custom item...) - Null = -1, // Unspecified item type (Used in the network protocol) + Null = -1, // Unspecified item type (Used in the network protocol) AcaciaBoat, AcaciaButton, @@ -43,9 +43,12 @@ public enum ItemType AndesiteSlab, AndesiteStairs, AndesiteWall, + AnglerPotterySherd, Anvil, Apple, + ArcherPotterySherd, ArmorStand, + ArmsUpPotterySherd, Arrow, AxolotlBucket, AxolotlSpawnEgg, @@ -120,6 +123,7 @@ public enum ItemType BlackstoneSlab, BlackstoneStairs, BlackstoneWall, + BladePotterySherd, BlastFurnace, BlazePowder, BlazeRod, @@ -150,6 +154,7 @@ public enum ItemType BrainCoralBlock, BrainCoralFan, Bread, + BrewerPotterySherd, BrewingStand, Brick, BrickSlab, @@ -178,9 +183,11 @@ public enum ItemType Bucket, BuddingAmethyst, Bundle, + BurnPotterySherd, Cactus, Cake, Calcite, + CalibratedSculkSensor, CamelSpawnEgg, Campfire, Candle, @@ -320,6 +327,7 @@ public enum ItemType CyanWool, DamagedAnvil, Dandelion, + DangerPotterySherd, DarkOakBoat, DarkOakButton, DarkOakChestBoat, @@ -435,6 +443,7 @@ public enum ItemType EndermiteSpawnEgg, EvokerSpawnEgg, ExperienceBottle, + ExplorerPotterySherd, ExposedCopper, ExposedCutCopper, ExposedCutCopperSlab, @@ -460,6 +469,7 @@ public enum ItemType FloweringAzalea, FloweringAzaleaLeaves, FoxSpawnEgg, + FriendPotterySherd, FrogSpawnEgg, Frogspawn, Furnace, @@ -536,6 +546,8 @@ public enum ItemType HangingRoots, HayBlock, HeartOfTheSea, + HeartPotterySherd, + HeartbreakPotterySherd, HeavyWeightedPressurePlate, HoglinSpawnEgg, HoneyBlock, @@ -548,6 +560,8 @@ public enum ItemType HornCoralBlock, HornCoralFan, HorseSpawnEgg, + HostArmorTrimSmithingTemplate, + HowlPotterySherd, HuskSpawnEgg, Ice, InfestedChiseledStoneBricks, @@ -706,6 +720,7 @@ public enum ItemType MelonSlice, MilkBucket, Minecart, + MinerPotterySherd, MojangBannerPattern, MooshroomSpawnEgg, MossBlock, @@ -718,6 +733,7 @@ public enum ItemType MossyStoneBrickStairs, MossyStoneBrickWall, MossyStoneBricks, + MournerPotterySherd, Mud, MudBrickSlab, MudBrickStairs, @@ -738,6 +754,7 @@ public enum ItemType MusicDiscMellohi, MusicDiscOtherside, MusicDiscPigstep, + MusicDiscRelic, MusicDiscStal, MusicDiscStrad, MusicDiscWait, @@ -846,7 +863,10 @@ public enum ItemType PinkTulip, PinkWool, Piston, + PitcherPlant, + PitcherPod, PlayerHead, + PlentyPotterySherd, Podzol, PointedDripstone, PoisonousPotato, @@ -880,10 +900,6 @@ public enum ItemType Porkchop, Potato, Potion, - PotteryShardArcher, - PotteryShardArmsUp, - PotteryShardPrize, - PotteryShardSkull, PowderSnowBucket, PoweredRail, Prismarine, @@ -895,6 +911,7 @@ public enum ItemType PrismarineSlab, PrismarineStairs, PrismarineWall, + PrizePotterySherd, Pufferfish, PufferfishBucket, PufferfishSpawnEgg, @@ -930,6 +947,7 @@ public enum ItemType RabbitSpawnEgg, RabbitStew, Rail, + RaiserArmorTrimSmithingTemplate, RavagerSpawnEgg, RawCopper, RawCopperBlock, @@ -996,18 +1014,23 @@ public enum ItemType SeaPickle, Seagrass, SentryArmorTrimSmithingTemplate, + ShaperArmorTrimSmithingTemplate, + SheafPotterySherd, Shears, SheepSpawnEgg, + ShelterPotterySherd, Shield, Shroomlight, ShulkerBox, ShulkerShell, ShulkerSpawnEgg, + SilenceArmorTrimSmithingTemplate, SilverfishSpawnEgg, SkeletonHorseSpawnEgg, SkeletonSkull, SkeletonSpawnEgg, SkullBannerPattern, + SkullPotterySherd, SlimeBall, SlimeBlock, SlimeSpawnEgg, @@ -1027,7 +1050,9 @@ public enum ItemType SmoothSandstoneStairs, SmoothStone, SmoothStoneSlab, + SnifferEgg, SnifferSpawnEgg, + SnortPotterySherd, SnoutArmorTrimSmithingTemplate, Snow, SnowBlock, @@ -1111,6 +1136,7 @@ public enum ItemType Sugar, SugarCane, Sunflower, + SuspiciousGravel, SuspiciousSand, SuspiciousStew, SweetBerries, @@ -1187,6 +1213,7 @@ public enum ItemType WaxedWeatheredCutCopper, WaxedWeatheredCutCopperSlab, WaxedWeatheredCutCopperStairs, + WayfinderArmorTrimSmithingTemplate, WeatheredCopper, WeatheredCutCopper, WeatheredCutCopperSlab, @@ -1243,4 +1270,4 @@ public enum ItemType ZombieVillagerSpawnEgg, ZombifiedPiglinSpawnEgg, } -} +} \ No newline at end of file diff --git a/MinecraftClient/Mapping/BlockPalettes/BlockPalette120.cs b/MinecraftClient/Mapping/BlockPalettes/BlockPalette120.cs new file mode 100644 index 0000000000..186916218c --- /dev/null +++ b/MinecraftClient/Mapping/BlockPalettes/BlockPalette120.cs @@ -0,0 +1,1663 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Mapping.BlockPalettes +{ + public class Palette120 : BlockPalette + { + private static readonly Dictionary materials = new(); + + static Palette120() + { + for (int i = 8707; i <= 8730; i++) + materials[i] = Material.AcaciaButton; + for (int i = 11873; i <= 11936; i++) + materials[i] = Material.AcaciaDoor; + for (int i = 11521; i <= 11552; i++) + materials[i] = Material.AcaciaFence; + for (int i = 11265; i <= 11296; i++) + materials[i] = Material.AcaciaFenceGate; + for (int i = 5026; i <= 5089; i++) + materials[i] = Material.AcaciaHangingSign; + for (int i = 349; i <= 376; i++) + materials[i] = Material.AcaciaLeaves; + for (int i = 142; i <= 144; i++) + materials[i] = Material.AcaciaLog; + materials[19] = Material.AcaciaPlanks; + for (int i = 5724; i <= 5725; i++) + materials[i] = Material.AcaciaPressurePlate; + for (int i = 33; i <= 34; i++) + materials[i] = Material.AcaciaSapling; + for (int i = 4398; i <= 4429; i++) + materials[i] = Material.AcaciaSign; + for (int i = 11045; i <= 11050; i++) + materials[i] = Material.AcaciaSlab; + for (int i = 9744; i <= 9823; i++) + materials[i] = Material.AcaciaStairs; + for (int i = 6218; i <= 6281; i++) + materials[i] = Material.AcaciaTrapdoor; + for (int i = 5562; i <= 5569; i++) + materials[i] = Material.AcaciaWallHangingSign; + for (int i = 4786; i <= 4793; i++) + materials[i] = Material.AcaciaWallSign; + for (int i = 201; i <= 203; i++) + materials[i] = Material.AcaciaWood; + for (int i = 9180; i <= 9203; i++) + materials[i] = Material.ActivatorRail; + materials[0] = Material.Air; + materials[2079] = Material.Allium; + materials[20890] = Material.AmethystBlock; + for (int i = 20892; i <= 20903; i++) + materials[i] = Material.AmethystCluster; + materials[19307] = Material.AncientDebris; + materials[6] = Material.Andesite; + for (int i = 13995; i <= 14000; i++) + materials[i] = Material.AndesiteSlab; + for (int i = 13621; i <= 13700; i++) + materials[i] = Material.AndesiteStairs; + for (int i = 16611; i <= 16934; i++) + materials[i] = Material.AndesiteWall; + for (int i = 8967; i <= 8970; i++) + materials[i] = Material.Anvil; + for (int i = 6817; i <= 6820; i++) + materials[i] = Material.AttachedMelonStem; + for (int i = 6813; i <= 6816; i++) + materials[i] = Material.AttachedPumpkinStem; + materials[22369] = Material.Azalea; + for (int i = 461; i <= 488; i++) + materials[i] = Material.AzaleaLeaves; + materials[2080] = Material.AzureBluet; + for (int i = 12804; i <= 12815; i++) + materials[i] = Material.Bamboo; + for (int i = 159; i <= 161; i++) + materials[i] = Material.BambooBlock; + for (int i = 8803; i <= 8826; i++) + materials[i] = Material.BambooButton; + for (int i = 12129; i <= 12192; i++) + materials[i] = Material.BambooDoor; + for (int i = 11649; i <= 11680; i++) + materials[i] = Material.BambooFence; + for (int i = 11393; i <= 11424; i++) + materials[i] = Material.BambooFenceGate; + for (int i = 5474; i <= 5537; i++) + materials[i] = Material.BambooHangingSign; + materials[24] = Material.BambooMosaic; + for (int i = 11075; i <= 11080; i++) + materials[i] = Material.BambooMosaicSlab; + for (int i = 10144; i <= 10223; i++) + materials[i] = Material.BambooMosaicStairs; + materials[23] = Material.BambooPlanks; + for (int i = 5732; i <= 5733; i++) + materials[i] = Material.BambooPressurePlate; + materials[12803] = Material.BambooSapling; + for (int i = 4558; i <= 4589; i++) + materials[i] = Material.BambooSign; + for (int i = 11069; i <= 11074; i++) + materials[i] = Material.BambooSlab; + for (int i = 10064; i <= 10143; i++) + materials[i] = Material.BambooStairs; + for (int i = 6474; i <= 6537; i++) + materials[i] = Material.BambooTrapdoor; + for (int i = 5618; i <= 5625; i++) + materials[i] = Material.BambooWallHangingSign; + for (int i = 4826; i <= 4833; i++) + materials[i] = Material.BambooWallSign; + for (int i = 18267; i <= 18278; i++) + materials[i] = Material.Barrel; + materials[10225] = Material.Barrier; + for (int i = 5853; i <= 5855; i++) + materials[i] = Material.Basalt; + materials[7918] = Material.Beacon; + materials[79] = Material.Bedrock; + for (int i = 19256; i <= 19279; i++) + materials[i] = Material.BeeNest; + for (int i = 19280; i <= 19303; i++) + materials[i] = Material.Beehive; + for (int i = 12368; i <= 12371; i++) + materials[i] = Material.Beetroots; + for (int i = 18330; i <= 18361; i++) + materials[i] = Material.Bell; + for (int i = 22389; i <= 22420; i++) + materials[i] = Material.BigDripleaf; + for (int i = 22421; i <= 22428; i++) + materials[i] = Material.BigDripleafStem; + for (int i = 8659; i <= 8682; i++) + materials[i] = Material.BirchButton; + for (int i = 11745; i <= 11808; i++) + materials[i] = Material.BirchDoor; + for (int i = 11457; i <= 11488; i++) + materials[i] = Material.BirchFence; + for (int i = 11201; i <= 11232; i++) + materials[i] = Material.BirchFenceGate; + for (int i = 4962; i <= 5025; i++) + materials[i] = Material.BirchHangingSign; + for (int i = 293; i <= 320; i++) + materials[i] = Material.BirchLeaves; + for (int i = 136; i <= 138; i++) + materials[i] = Material.BirchLog; + materials[17] = Material.BirchPlanks; + for (int i = 5720; i <= 5721; i++) + materials[i] = Material.BirchPressurePlate; + for (int i = 29; i <= 30; i++) + materials[i] = Material.BirchSapling; + for (int i = 4366; i <= 4397; i++) + materials[i] = Material.BirchSign; + for (int i = 11033; i <= 11038; i++) + materials[i] = Material.BirchSlab; + for (int i = 7746; i <= 7825; i++) + materials[i] = Material.BirchStairs; + for (int i = 6090; i <= 6153; i++) + materials[i] = Material.BirchTrapdoor; + for (int i = 5554; i <= 5561; i++) + materials[i] = Material.BirchWallHangingSign; + for (int i = 4778; i <= 4785; i++) + materials[i] = Material.BirchWallSign; + for (int i = 195; i <= 197; i++) + materials[i] = Material.BirchWood; + for (int i = 10858; i <= 10873; i++) + materials[i] = Material.BlackBanner; + for (int i = 1928; i <= 1943; i++) + materials[i] = Material.BlackBed; + for (int i = 20840; i <= 20855; i++) + materials[i] = Material.BlackCandle; + for (int i = 20888; i <= 20889; i++) + materials[i] = Material.BlackCandleCake; + materials[10602] = Material.BlackCarpet; + materials[12602] = Material.BlackConcrete; + materials[12618] = Material.BlackConcretePowder; + for (int i = 12583; i <= 12586; i++) + materials[i] = Material.BlackGlazedTerracotta; + for (int i = 12517; i <= 12522; i++) + materials[i] = Material.BlackShulkerBox; + materials[5961] = Material.BlackStainedGlass; + for (int i = 9712; i <= 9743; i++) + materials[i] = Material.BlackStainedGlassPane; + materials[9231] = Material.BlackTerracotta; + for (int i = 10934; i <= 10937; i++) + materials[i] = Material.BlackWallBanner; + materials[2062] = Material.BlackWool; + materials[19319] = Material.Blackstone; + for (int i = 19724; i <= 19729; i++) + materials[i] = Material.BlackstoneSlab; + for (int i = 19320; i <= 19399; i++) + materials[i] = Material.BlackstoneStairs; + for (int i = 19400; i <= 19723; i++) + materials[i] = Material.BlackstoneWall; + for (int i = 18287; i <= 18294; i++) + materials[i] = Material.BlastFurnace; + for (int i = 10794; i <= 10809; i++) + materials[i] = Material.BlueBanner; + for (int i = 1864; i <= 1879; i++) + materials[i] = Material.BlueBed; + for (int i = 20776; i <= 20791; i++) + materials[i] = Material.BlueCandle; + for (int i = 20880; i <= 20881; i++) + materials[i] = Material.BlueCandleCake; + materials[10598] = Material.BlueCarpet; + materials[12598] = Material.BlueConcrete; + materials[12614] = Material.BlueConcretePowder; + for (int i = 12567; i <= 12570; i++) + materials[i] = Material.BlueGlazedTerracotta; + materials[12800] = Material.BlueIce; + materials[2078] = Material.BlueOrchid; + for (int i = 12493; i <= 12498; i++) + materials[i] = Material.BlueShulkerBox; + materials[5957] = Material.BlueStainedGlass; + for (int i = 9584; i <= 9615; i++) + materials[i] = Material.BlueStainedGlassPane; + materials[9227] = Material.BlueTerracotta; + for (int i = 10918; i <= 10921; i++) + materials[i] = Material.BlueWallBanner; + materials[2058] = Material.BlueWool; + for (int i = 12405; i <= 12407; i++) + materials[i] = Material.BoneBlock; + materials[2096] = Material.Bookshelf; + for (int i = 12684; i <= 12685; i++) + materials[i] = Material.BrainCoral; + materials[12668] = Material.BrainCoralBlock; + for (int i = 12704; i <= 12705; i++) + materials[i] = Material.BrainCoralFan; + for (int i = 12760; i <= 12767; i++) + materials[i] = Material.BrainCoralWallFan; + for (int i = 7390; i <= 7397; i++) + materials[i] = Material.BrewingStand; + for (int i = 11117; i <= 11122; i++) + materials[i] = Material.BrickSlab; + for (int i = 7029; i <= 7108; i++) + materials[i] = Material.BrickStairs; + for (int i = 14019; i <= 14342; i++) + materials[i] = Material.BrickWall; + materials[2093] = Material.Bricks; + for (int i = 10810; i <= 10825; i++) + materials[i] = Material.BrownBanner; + for (int i = 1880; i <= 1895; i++) + materials[i] = Material.BrownBed; + for (int i = 20792; i <= 20807; i++) + materials[i] = Material.BrownCandle; + for (int i = 20882; i <= 20883; i++) + materials[i] = Material.BrownCandleCake; + materials[10599] = Material.BrownCarpet; + materials[12599] = Material.BrownConcrete; + materials[12615] = Material.BrownConcretePowder; + for (int i = 12571; i <= 12574; i++) + materials[i] = Material.BrownGlazedTerracotta; + materials[2089] = Material.BrownMushroom; + for (int i = 6550; i <= 6613; i++) + materials[i] = Material.BrownMushroomBlock; + for (int i = 12499; i <= 12504; i++) + materials[i] = Material.BrownShulkerBox; + materials[5958] = Material.BrownStainedGlass; + for (int i = 9616; i <= 9647; i++) + materials[i] = Material.BrownStainedGlassPane; + materials[9228] = Material.BrownTerracotta; + for (int i = 10922; i <= 10925; i++) + materials[i] = Material.BrownWallBanner; + materials[2059] = Material.BrownWool; + for (int i = 12819; i <= 12820; i++) + materials[i] = Material.BubbleColumn; + for (int i = 12686; i <= 12687; i++) + materials[i] = Material.BubbleCoral; + materials[12669] = Material.BubbleCoralBlock; + for (int i = 12706; i <= 12707; i++) + materials[i] = Material.BubbleCoralFan; + for (int i = 12768; i <= 12775; i++) + materials[i] = Material.BubbleCoralWallFan; + materials[20891] = Material.BuddingAmethyst; + for (int i = 5782; i <= 5797; i++) + materials[i] = Material.Cactus; + for (int i = 5875; i <= 5881; i++) + materials[i] = Material.Cake; + materials[20941] = Material.Calcite; + for (int i = 21040; i <= 21423; i++) + materials[i] = Material.CalibratedSculkSensor; + for (int i = 18370; i <= 18401; i++) + materials[i] = Material.Campfire; + for (int i = 20584; i <= 20599; i++) + materials[i] = Material.Candle; + for (int i = 20856; i <= 20857; i++) + materials[i] = Material.CandleCake; + for (int i = 8595; i <= 8602; i++) + materials[i] = Material.Carrots; + materials[18295] = Material.CartographyTable; + for (int i = 5867; i <= 5870; i++) + materials[i] = Material.CarvedPumpkin; + materials[7398] = Material.Cauldron; + materials[12818] = Material.CaveAir; + for (int i = 22314; i <= 22365; i++) + materials[i] = Material.CaveVines; + for (int i = 22366; i <= 22367; i++) + materials[i] = Material.CaveVinesPlant; + for (int i = 6774; i <= 6779; i++) + materials[i] = Material.Chain; + for (int i = 12386; i <= 12397; i++) + materials[i] = Material.ChainCommandBlock; + for (int i = 8731; i <= 8754; i++) + materials[i] = Material.CherryButton; + for (int i = 11937; i <= 12000; i++) + materials[i] = Material.CherryDoor; + for (int i = 11553; i <= 11584; i++) + materials[i] = Material.CherryFence; + for (int i = 11297; i <= 11328; i++) + materials[i] = Material.CherryFenceGate; + for (int i = 5090; i <= 5153; i++) + materials[i] = Material.CherryHangingSign; + for (int i = 377; i <= 404; i++) + materials[i] = Material.CherryLeaves; + for (int i = 145; i <= 147; i++) + materials[i] = Material.CherryLog; + materials[20] = Material.CherryPlanks; + for (int i = 5726; i <= 5727; i++) + materials[i] = Material.CherryPressurePlate; + for (int i = 35; i <= 36; i++) + materials[i] = Material.CherrySapling; + for (int i = 4430; i <= 4461; i++) + materials[i] = Material.CherrySign; + for (int i = 11051; i <= 11056; i++) + materials[i] = Material.CherrySlab; + for (int i = 9824; i <= 9903; i++) + materials[i] = Material.CherryStairs; + for (int i = 6282; i <= 6345; i++) + materials[i] = Material.CherryTrapdoor; + for (int i = 5570; i <= 5577; i++) + materials[i] = Material.CherryWallHangingSign; + for (int i = 4794; i <= 4801; i++) + materials[i] = Material.CherryWallSign; + for (int i = 204; i <= 206; i++) + materials[i] = Material.CherryWood; + for (int i = 2954; i <= 2977; i++) + materials[i] = Material.Chest; + for (int i = 8971; i <= 8974; i++) + materials[i] = Material.ChippedAnvil; + for (int i = 2097; i <= 2352; i++) + materials[i] = Material.ChiseledBookshelf; + materials[24096] = Material.ChiseledDeepslate; + materials[20581] = Material.ChiseledNetherBricks; + materials[19733] = Material.ChiseledPolishedBlackstone; + materials[9096] = Material.ChiseledQuartzBlock; + materials[10939] = Material.ChiseledRedSandstone; + materials[536] = Material.ChiseledSandstone; + materials[6541] = Material.ChiseledStoneBricks; + for (int i = 12263; i <= 12268; i++) + materials[i] = Material.ChorusFlower; + for (int i = 12199; i <= 12262; i++) + materials[i] = Material.ChorusPlant; + materials[5798] = Material.Clay; + materials[10604] = Material.CoalBlock; + materials[127] = Material.CoalOre; + materials[11] = Material.CoarseDirt; + materials[22452] = Material.CobbledDeepslate; + for (int i = 22533; i <= 22538; i++) + materials[i] = Material.CobbledDeepslateSlab; + for (int i = 22453; i <= 22532; i++) + materials[i] = Material.CobbledDeepslateStairs; + for (int i = 22539; i <= 22862; i++) + materials[i] = Material.CobbledDeepslateWall; + materials[14] = Material.Cobblestone; + for (int i = 11111; i <= 11116; i++) + materials[i] = Material.CobblestoneSlab; + for (int i = 4682; i <= 4761; i++) + materials[i] = Material.CobblestoneStairs; + for (int i = 7919; i <= 8242; i++) + materials[i] = Material.CobblestoneWall; + materials[2004] = Material.Cobweb; + for (int i = 7419; i <= 7430; i++) + materials[i] = Material.Cocoa; + for (int i = 7906; i <= 7917; i++) + materials[i] = Material.CommandBlock; + for (int i = 9035; i <= 9050; i++) + materials[i] = Material.Comparator; + for (int i = 19231; i <= 19239; i++) + materials[i] = Material.Composter; + for (int i = 12801; i <= 12802; i++) + materials[i] = Material.Conduit; + materials[21566] = Material.CopperBlock; + materials[21567] = Material.CopperOre; + materials[2086] = Material.Cornflower; + materials[24097] = Material.CrackedDeepslateBricks; + materials[24098] = Material.CrackedDeepslateTiles; + materials[20582] = Material.CrackedNetherBricks; + materials[19732] = Material.CrackedPolishedBlackstoneBricks; + materials[6540] = Material.CrackedStoneBricks; + materials[4277] = Material.CraftingTable; + for (int i = 8907; i <= 8922; i++) + materials[i] = Material.CreeperHead; + for (int i = 8923; i <= 8926; i++) + materials[i] = Material.CreeperWallHead; + for (int i = 18959; i <= 18982; i++) + materials[i] = Material.CrimsonButton; + for (int i = 19007; i <= 19070; i++) + materials[i] = Material.CrimsonDoor; + for (int i = 18543; i <= 18574; i++) + materials[i] = Material.CrimsonFence; + for (int i = 18735; i <= 18766; i++) + materials[i] = Material.CrimsonFenceGate; + materials[18468] = Material.CrimsonFungus; + for (int i = 5282; i <= 5345; i++) + materials[i] = Material.CrimsonHangingSign; + for (int i = 18461; i <= 18463; i++) + materials[i] = Material.CrimsonHyphae; + materials[18467] = Material.CrimsonNylium; + materials[18525] = Material.CrimsonPlanks; + for (int i = 18539; i <= 18540; i++) + materials[i] = Material.CrimsonPressurePlate; + materials[18524] = Material.CrimsonRoots; + for (int i = 19135; i <= 19166; i++) + materials[i] = Material.CrimsonSign; + for (int i = 18527; i <= 18532; i++) + materials[i] = Material.CrimsonSlab; + for (int i = 18799; i <= 18878; i++) + materials[i] = Material.CrimsonStairs; + for (int i = 18455; i <= 18457; i++) + materials[i] = Material.CrimsonStem; + for (int i = 18607; i <= 18670; i++) + materials[i] = Material.CrimsonTrapdoor; + for (int i = 5602; i <= 5609; i++) + materials[i] = Material.CrimsonWallHangingSign; + for (int i = 19199; i <= 19206; i++) + materials[i] = Material.CrimsonWallSign; + materials[19308] = Material.CryingObsidian; + materials[21572] = Material.CutCopper; + for (int i = 21911; i <= 21916; i++) + materials[i] = Material.CutCopperSlab; + for (int i = 21813; i <= 21892; i++) + materials[i] = Material.CutCopperStairs; + materials[10940] = Material.CutRedSandstone; + for (int i = 11153; i <= 11158; i++) + materials[i] = Material.CutRedSandstoneSlab; + materials[537] = Material.CutSandstone; + for (int i = 11099; i <= 11104; i++) + materials[i] = Material.CutSandstoneSlab; + for (int i = 10762; i <= 10777; i++) + materials[i] = Material.CyanBanner; + for (int i = 1832; i <= 1847; i++) + materials[i] = Material.CyanBed; + for (int i = 20744; i <= 20759; i++) + materials[i] = Material.CyanCandle; + for (int i = 20876; i <= 20877; i++) + materials[i] = Material.CyanCandleCake; + materials[10596] = Material.CyanCarpet; + materials[12596] = Material.CyanConcrete; + materials[12612] = Material.CyanConcretePowder; + for (int i = 12559; i <= 12562; i++) + materials[i] = Material.CyanGlazedTerracotta; + for (int i = 12481; i <= 12486; i++) + materials[i] = Material.CyanShulkerBox; + materials[5955] = Material.CyanStainedGlass; + for (int i = 9520; i <= 9551; i++) + materials[i] = Material.CyanStainedGlassPane; + materials[9225] = Material.CyanTerracotta; + for (int i = 10910; i <= 10913; i++) + materials[i] = Material.CyanWallBanner; + materials[2056] = Material.CyanWool; + for (int i = 8975; i <= 8978; i++) + materials[i] = Material.DamagedAnvil; + materials[2075] = Material.Dandelion; + for (int i = 8755; i <= 8778; i++) + materials[i] = Material.DarkOakButton; + for (int i = 12001; i <= 12064; i++) + materials[i] = Material.DarkOakDoor; + for (int i = 11585; i <= 11616; i++) + materials[i] = Material.DarkOakFence; + for (int i = 11329; i <= 11360; i++) + materials[i] = Material.DarkOakFenceGate; + for (int i = 5218; i <= 5281; i++) + materials[i] = Material.DarkOakHangingSign; + for (int i = 405; i <= 432; i++) + materials[i] = Material.DarkOakLeaves; + for (int i = 148; i <= 150; i++) + materials[i] = Material.DarkOakLog; + materials[21] = Material.DarkOakPlanks; + for (int i = 5728; i <= 5729; i++) + materials[i] = Material.DarkOakPressurePlate; + for (int i = 37; i <= 38; i++) + materials[i] = Material.DarkOakSapling; + for (int i = 4494; i <= 4525; i++) + materials[i] = Material.DarkOakSign; + for (int i = 11057; i <= 11062; i++) + materials[i] = Material.DarkOakSlab; + for (int i = 9904; i <= 9983; i++) + materials[i] = Material.DarkOakStairs; + for (int i = 6346; i <= 6409; i++) + materials[i] = Material.DarkOakTrapdoor; + for (int i = 5586; i <= 5593; i++) + materials[i] = Material.DarkOakWallHangingSign; + for (int i = 4810; i <= 4817; i++) + materials[i] = Material.DarkOakWallSign; + for (int i = 207; i <= 209; i++) + materials[i] = Material.DarkOakWood; + materials[10324] = Material.DarkPrismarine; + for (int i = 10577; i <= 10582; i++) + materials[i] = Material.DarkPrismarineSlab; + for (int i = 10485; i <= 10564; i++) + materials[i] = Material.DarkPrismarineStairs; + for (int i = 9051; i <= 9082; i++) + materials[i] = Material.DaylightDetector; + for (int i = 12674; i <= 12675; i++) + materials[i] = Material.DeadBrainCoral; + materials[12663] = Material.DeadBrainCoralBlock; + for (int i = 12694; i <= 12695; i++) + materials[i] = Material.DeadBrainCoralFan; + for (int i = 12720; i <= 12727; i++) + materials[i] = Material.DeadBrainCoralWallFan; + for (int i = 12676; i <= 12677; i++) + materials[i] = Material.DeadBubbleCoral; + materials[12664] = Material.DeadBubbleCoralBlock; + for (int i = 12696; i <= 12697; i++) + materials[i] = Material.DeadBubbleCoralFan; + for (int i = 12728; i <= 12735; i++) + materials[i] = Material.DeadBubbleCoralWallFan; + materials[2007] = Material.DeadBush; + for (int i = 12678; i <= 12679; i++) + materials[i] = Material.DeadFireCoral; + materials[12665] = Material.DeadFireCoralBlock; + for (int i = 12698; i <= 12699; i++) + materials[i] = Material.DeadFireCoralFan; + for (int i = 12736; i <= 12743; i++) + materials[i] = Material.DeadFireCoralWallFan; + for (int i = 12680; i <= 12681; i++) + materials[i] = Material.DeadHornCoral; + materials[12666] = Material.DeadHornCoralBlock; + for (int i = 12700; i <= 12701; i++) + materials[i] = Material.DeadHornCoralFan; + for (int i = 12744; i <= 12751; i++) + materials[i] = Material.DeadHornCoralWallFan; + for (int i = 12672; i <= 12673; i++) + materials[i] = Material.DeadTubeCoral; + materials[12662] = Material.DeadTubeCoralBlock; + for (int i = 12692; i <= 12693; i++) + materials[i] = Material.DeadTubeCoralFan; + for (int i = 12712; i <= 12719; i++) + materials[i] = Material.DeadTubeCoralWallFan; + for (int i = 24119; i <= 24134; i++) + materials[i] = Material.DecoratedPot; + for (int i = 22449; i <= 22451; i++) + materials[i] = Material.Deepslate; + for (int i = 23766; i <= 23771; i++) + materials[i] = Material.DeepslateBrickSlab; + for (int i = 23686; i <= 23765; i++) + materials[i] = Material.DeepslateBrickStairs; + for (int i = 23772; i <= 24095; i++) + materials[i] = Material.DeepslateBrickWall; + materials[23685] = Material.DeepslateBricks; + materials[128] = Material.DeepslateCoalOre; + materials[21568] = Material.DeepslateCopperOre; + materials[4275] = Material.DeepslateDiamondOre; + materials[7512] = Material.DeepslateEmeraldOre; + materials[124] = Material.DeepslateGoldOre; + materials[126] = Material.DeepslateIronOre; + materials[521] = Material.DeepslateLapisOre; + for (int i = 5736; i <= 5737; i++) + materials[i] = Material.DeepslateRedstoneOre; + for (int i = 23355; i <= 23360; i++) + materials[i] = Material.DeepslateTileSlab; + for (int i = 23275; i <= 23354; i++) + materials[i] = Material.DeepslateTileStairs; + for (int i = 23361; i <= 23684; i++) + materials[i] = Material.DeepslateTileWall; + materials[23274] = Material.DeepslateTiles; + for (int i = 1968; i <= 1991; i++) + materials[i] = Material.DetectorRail; + materials[4276] = Material.DiamondBlock; + materials[4274] = Material.DiamondOre; + materials[4] = Material.Diorite; + for (int i = 14013; i <= 14018; i++) + materials[i] = Material.DioriteSlab; + for (int i = 13861; i <= 13940; i++) + materials[i] = Material.DioriteStairs; + for (int i = 17907; i <= 18230; i++) + materials[i] = Material.DioriteWall; + materials[10] = Material.Dirt; + materials[12372] = Material.DirtPath; + for (int i = 523; i <= 534; i++) + materials[i] = Material.Dispenser; + materials[7416] = Material.DragonEgg; + for (int i = 8927; i <= 8942; i++) + materials[i] = Material.DragonHead; + for (int i = 8943; i <= 8946; i++) + materials[i] = Material.DragonWallHead; + materials[12646] = Material.DriedKelpBlock; + materials[22313] = Material.DripstoneBlock; + for (int i = 9204; i <= 9215; i++) + materials[i] = Material.Dropper; + materials[7665] = Material.EmeraldBlock; + materials[7511] = Material.EmeraldOre; + materials[7389] = Material.EnchantingTable; + materials[12373] = Material.EndGateway; + materials[7406] = Material.EndPortal; + for (int i = 7407; i <= 7414; i++) + materials[i] = Material.EndPortalFrame; + for (int i = 12193; i <= 12198; i++) + materials[i] = Material.EndRod; + materials[7415] = Material.EndStone; + for (int i = 13971; i <= 13976; i++) + materials[i] = Material.EndStoneBrickSlab; + for (int i = 13221; i <= 13300; i++) + materials[i] = Material.EndStoneBrickStairs; + for (int i = 17583; i <= 17906; i++) + materials[i] = Material.EndStoneBrickWall; + materials[12353] = Material.EndStoneBricks; + for (int i = 7513; i <= 7520; i++) + materials[i] = Material.EnderChest; + materials[21565] = Material.ExposedCopper; + materials[21571] = Material.ExposedCutCopper; + for (int i = 21905; i <= 21910; i++) + materials[i] = Material.ExposedCutCopperSlab; + for (int i = 21733; i <= 21812; i++) + materials[i] = Material.ExposedCutCopperStairs; + for (int i = 4286; i <= 4293; i++) + materials[i] = Material.Farmland; + materials[2006] = Material.Fern; + for (int i = 2360; i <= 2871; i++) + materials[i] = Material.Fire; + for (int i = 12688; i <= 12689; i++) + materials[i] = Material.FireCoral; + materials[12670] = Material.FireCoralBlock; + for (int i = 12708; i <= 12709; i++) + materials[i] = Material.FireCoralFan; + for (int i = 12776; i <= 12783; i++) + materials[i] = Material.FireCoralWallFan; + materials[18296] = Material.FletchingTable; + materials[8567] = Material.FlowerPot; + materials[22370] = Material.FloweringAzalea; + for (int i = 489; i <= 516; i++) + materials[i] = Material.FloweringAzaleaLeaves; + materials[24117] = Material.Frogspawn; + for (int i = 12398; i <= 12401; i++) + materials[i] = Material.FrostedIce; + for (int i = 4294; i <= 4301; i++) + materials[i] = Material.Furnace; + materials[20144] = Material.GildedBlackstone; + materials[519] = Material.Glass; + for (int i = 6780; i <= 6811; i++) + materials[i] = Material.GlassPane; + for (int i = 6869; i <= 6996; i++) + materials[i] = Material.GlowLichen; + materials[5864] = Material.Glowstone; + materials[2091] = Material.GoldBlock; + materials[123] = Material.GoldOre; + materials[2] = Material.Granite; + for (int i = 13989; i <= 13994; i++) + materials[i] = Material.GraniteSlab; + for (int i = 13541; i <= 13620; i++) + materials[i] = Material.GraniteStairs; + for (int i = 15315; i <= 15638; i++) + materials[i] = Material.GraniteWall; + materials[2005] = Material.Grass; + for (int i = 8; i <= 9; i++) + materials[i] = Material.GrassBlock; + materials[118] = Material.Gravel; + for (int i = 10730; i <= 10745; i++) + materials[i] = Material.GrayBanner; + for (int i = 1800; i <= 1815; i++) + materials[i] = Material.GrayBed; + for (int i = 20712; i <= 20727; i++) + materials[i] = Material.GrayCandle; + for (int i = 20872; i <= 20873; i++) + materials[i] = Material.GrayCandleCake; + materials[10594] = Material.GrayCarpet; + materials[12594] = Material.GrayConcrete; + materials[12610] = Material.GrayConcretePowder; + for (int i = 12551; i <= 12554; i++) + materials[i] = Material.GrayGlazedTerracotta; + for (int i = 12469; i <= 12474; i++) + materials[i] = Material.GrayShulkerBox; + materials[5953] = Material.GrayStainedGlass; + for (int i = 9456; i <= 9487; i++) + materials[i] = Material.GrayStainedGlassPane; + materials[9223] = Material.GrayTerracotta; + for (int i = 10902; i <= 10905; i++) + materials[i] = Material.GrayWallBanner; + materials[2054] = Material.GrayWool; + for (int i = 10826; i <= 10841; i++) + materials[i] = Material.GreenBanner; + for (int i = 1896; i <= 1911; i++) + materials[i] = Material.GreenBed; + for (int i = 20808; i <= 20823; i++) + materials[i] = Material.GreenCandle; + for (int i = 20884; i <= 20885; i++) + materials[i] = Material.GreenCandleCake; + materials[10600] = Material.GreenCarpet; + materials[12600] = Material.GreenConcrete; + materials[12616] = Material.GreenConcretePowder; + for (int i = 12575; i <= 12578; i++) + materials[i] = Material.GreenGlazedTerracotta; + for (int i = 12505; i <= 12510; i++) + materials[i] = Material.GreenShulkerBox; + materials[5959] = Material.GreenStainedGlass; + for (int i = 9648; i <= 9679; i++) + materials[i] = Material.GreenStainedGlassPane; + materials[9229] = Material.GreenTerracotta; + for (int i = 10926; i <= 10929; i++) + materials[i] = Material.GreenWallBanner; + materials[2060] = Material.GreenWool; + for (int i = 18297; i <= 18308; i++) + materials[i] = Material.Grindstone; + for (int i = 22445; i <= 22446; i++) + materials[i] = Material.HangingRoots; + for (int i = 10584; i <= 10586; i++) + materials[i] = Material.HayBlock; + for (int i = 9019; i <= 9034; i++) + materials[i] = Material.HeavyWeightedPressurePlate; + materials[19304] = Material.HoneyBlock; + materials[19305] = Material.HoneycombBlock; + for (int i = 9085; i <= 9094; i++) + materials[i] = Material.Hopper; + for (int i = 12690; i <= 12691; i++) + materials[i] = Material.HornCoral; + materials[12671] = Material.HornCoralBlock; + for (int i = 12710; i <= 12711; i++) + materials[i] = Material.HornCoralFan; + for (int i = 12784; i <= 12791; i++) + materials[i] = Material.HornCoralWallFan; + materials[5780] = Material.Ice; + materials[6549] = Material.InfestedChiseledStoneBricks; + materials[6545] = Material.InfestedCobblestone; + materials[6548] = Material.InfestedCrackedStoneBricks; + for (int i = 24099; i <= 24101; i++) + materials[i] = Material.InfestedDeepslate; + materials[6547] = Material.InfestedMossyStoneBricks; + materials[6544] = Material.InfestedStone; + materials[6546] = Material.InfestedStoneBricks; + for (int i = 6742; i <= 6773; i++) + materials[i] = Material.IronBars; + materials[2092] = Material.IronBlock; + for (int i = 5652; i <= 5715; i++) + materials[i] = Material.IronDoor; + materials[125] = Material.IronOre; + for (int i = 10258; i <= 10321; i++) + materials[i] = Material.IronTrapdoor; + for (int i = 5871; i <= 5874; i++) + materials[i] = Material.JackOLantern; + for (int i = 19219; i <= 19230; i++) + materials[i] = Material.Jigsaw; + for (int i = 5815; i <= 5816; i++) + materials[i] = Material.Jukebox; + for (int i = 8683; i <= 8706; i++) + materials[i] = Material.JungleButton; + for (int i = 11809; i <= 11872; i++) + materials[i] = Material.JungleDoor; + for (int i = 11489; i <= 11520; i++) + materials[i] = Material.JungleFence; + for (int i = 11233; i <= 11264; i++) + materials[i] = Material.JungleFenceGate; + for (int i = 5154; i <= 5217; i++) + materials[i] = Material.JungleHangingSign; + for (int i = 321; i <= 348; i++) + materials[i] = Material.JungleLeaves; + for (int i = 139; i <= 141; i++) + materials[i] = Material.JungleLog; + materials[18] = Material.JunglePlanks; + for (int i = 5722; i <= 5723; i++) + materials[i] = Material.JunglePressurePlate; + for (int i = 31; i <= 32; i++) + materials[i] = Material.JungleSapling; + for (int i = 4462; i <= 4493; i++) + materials[i] = Material.JungleSign; + for (int i = 11039; i <= 11044; i++) + materials[i] = Material.JungleSlab; + for (int i = 7826; i <= 7905; i++) + materials[i] = Material.JungleStairs; + for (int i = 6154; i <= 6217; i++) + materials[i] = Material.JungleTrapdoor; + for (int i = 5578; i <= 5585; i++) + materials[i] = Material.JungleWallHangingSign; + for (int i = 4802; i <= 4809; i++) + materials[i] = Material.JungleWallSign; + for (int i = 198; i <= 200; i++) + materials[i] = Material.JungleWood; + for (int i = 12619; i <= 12644; i++) + materials[i] = Material.Kelp; + materials[12645] = Material.KelpPlant; + for (int i = 4654; i <= 4661; i++) + materials[i] = Material.Ladder; + for (int i = 18362; i <= 18365; i++) + materials[i] = Material.Lantern; + materials[522] = Material.LapisBlock; + materials[520] = Material.LapisOre; + for (int i = 20904; i <= 20915; i++) + materials[i] = Material.LargeAmethystBud; + for (int i = 10616; i <= 10617; i++) + materials[i] = Material.LargeFern; + for (int i = 96; i <= 111; i++) + materials[i] = Material.Lava; + materials[7402] = Material.LavaCauldron; + for (int i = 18309; i <= 18324; i++) + materials[i] = Material.Lectern; + for (int i = 5626; i <= 5649; i++) + materials[i] = Material.Lever; + for (int i = 10226; i <= 10257; i++) + materials[i] = Material.Light; + for (int i = 10666; i <= 10681; i++) + materials[i] = Material.LightBlueBanner; + for (int i = 1736; i <= 1751; i++) + materials[i] = Material.LightBlueBed; + for (int i = 20648; i <= 20663; i++) + materials[i] = Material.LightBlueCandle; + for (int i = 20864; i <= 20865; i++) + materials[i] = Material.LightBlueCandleCake; + materials[10590] = Material.LightBlueCarpet; + materials[12590] = Material.LightBlueConcrete; + materials[12606] = Material.LightBlueConcretePowder; + for (int i = 12535; i <= 12538; i++) + materials[i] = Material.LightBlueGlazedTerracotta; + for (int i = 12445; i <= 12450; i++) + materials[i] = Material.LightBlueShulkerBox; + materials[5949] = Material.LightBlueStainedGlass; + for (int i = 9328; i <= 9359; i++) + materials[i] = Material.LightBlueStainedGlassPane; + materials[9219] = Material.LightBlueTerracotta; + for (int i = 10886; i <= 10889; i++) + materials[i] = Material.LightBlueWallBanner; + materials[2050] = Material.LightBlueWool; + for (int i = 10746; i <= 10761; i++) + materials[i] = Material.LightGrayBanner; + for (int i = 1816; i <= 1831; i++) + materials[i] = Material.LightGrayBed; + for (int i = 20728; i <= 20743; i++) + materials[i] = Material.LightGrayCandle; + for (int i = 20874; i <= 20875; i++) + materials[i] = Material.LightGrayCandleCake; + materials[10595] = Material.LightGrayCarpet; + materials[12595] = Material.LightGrayConcrete; + materials[12611] = Material.LightGrayConcretePowder; + for (int i = 12555; i <= 12558; i++) + materials[i] = Material.LightGrayGlazedTerracotta; + for (int i = 12475; i <= 12480; i++) + materials[i] = Material.LightGrayShulkerBox; + materials[5954] = Material.LightGrayStainedGlass; + for (int i = 9488; i <= 9519; i++) + materials[i] = Material.LightGrayStainedGlassPane; + materials[9224] = Material.LightGrayTerracotta; + for (int i = 10906; i <= 10909; i++) + materials[i] = Material.LightGrayWallBanner; + materials[2055] = Material.LightGrayWool; + for (int i = 9003; i <= 9018; i++) + materials[i] = Material.LightWeightedPressurePlate; + for (int i = 22269; i <= 22292; i++) + materials[i] = Material.LightningRod; + for (int i = 10608; i <= 10609; i++) + materials[i] = Material.Lilac; + materials[2088] = Material.LilyOfTheValley; + materials[7271] = Material.LilyPad; + for (int i = 10698; i <= 10713; i++) + materials[i] = Material.LimeBanner; + for (int i = 1768; i <= 1783; i++) + materials[i] = Material.LimeBed; + for (int i = 20680; i <= 20695; i++) + materials[i] = Material.LimeCandle; + for (int i = 20868; i <= 20869; i++) + materials[i] = Material.LimeCandleCake; + materials[10592] = Material.LimeCarpet; + materials[12592] = Material.LimeConcrete; + materials[12608] = Material.LimeConcretePowder; + for (int i = 12543; i <= 12546; i++) + materials[i] = Material.LimeGlazedTerracotta; + for (int i = 12457; i <= 12462; i++) + materials[i] = Material.LimeShulkerBox; + materials[5951] = Material.LimeStainedGlass; + for (int i = 9392; i <= 9423; i++) + materials[i] = Material.LimeStainedGlassPane; + materials[9221] = Material.LimeTerracotta; + for (int i = 10894; i <= 10897; i++) + materials[i] = Material.LimeWallBanner; + materials[2052] = Material.LimeWool; + materials[19318] = Material.Lodestone; + for (int i = 18263; i <= 18266; i++) + materials[i] = Material.Loom; + for (int i = 10650; i <= 10665; i++) + materials[i] = Material.MagentaBanner; + for (int i = 1720; i <= 1735; i++) + materials[i] = Material.MagentaBed; + for (int i = 20632; i <= 20647; i++) + materials[i] = Material.MagentaCandle; + for (int i = 20862; i <= 20863; i++) + materials[i] = Material.MagentaCandleCake; + materials[10589] = Material.MagentaCarpet; + materials[12589] = Material.MagentaConcrete; + materials[12605] = Material.MagentaConcretePowder; + for (int i = 12531; i <= 12534; i++) + materials[i] = Material.MagentaGlazedTerracotta; + for (int i = 12439; i <= 12444; i++) + materials[i] = Material.MagentaShulkerBox; + materials[5948] = Material.MagentaStainedGlass; + for (int i = 9296; i <= 9327; i++) + materials[i] = Material.MagentaStainedGlassPane; + materials[9218] = Material.MagentaTerracotta; + for (int i = 10882; i <= 10885; i++) + materials[i] = Material.MagentaWallBanner; + materials[2049] = Material.MagentaWool; + materials[12402] = Material.MagmaBlock; + for (int i = 8779; i <= 8802; i++) + materials[i] = Material.MangroveButton; + for (int i = 12065; i <= 12128; i++) + materials[i] = Material.MangroveDoor; + for (int i = 11617; i <= 11648; i++) + materials[i] = Material.MangroveFence; + for (int i = 11361; i <= 11392; i++) + materials[i] = Material.MangroveFenceGate; + for (int i = 5410; i <= 5473; i++) + materials[i] = Material.MangroveHangingSign; + for (int i = 433; i <= 460; i++) + materials[i] = Material.MangroveLeaves; + for (int i = 151; i <= 153; i++) + materials[i] = Material.MangroveLog; + materials[22] = Material.MangrovePlanks; + for (int i = 5730; i <= 5731; i++) + materials[i] = Material.MangrovePressurePlate; + for (int i = 39; i <= 78; i++) + materials[i] = Material.MangrovePropagule; + for (int i = 154; i <= 155; i++) + materials[i] = Material.MangroveRoots; + for (int i = 4526; i <= 4557; i++) + materials[i] = Material.MangroveSign; + for (int i = 11063; i <= 11068; i++) + materials[i] = Material.MangroveSlab; + for (int i = 9984; i <= 10063; i++) + materials[i] = Material.MangroveStairs; + for (int i = 6410; i <= 6473; i++) + materials[i] = Material.MangroveTrapdoor; + for (int i = 5594; i <= 5601; i++) + materials[i] = Material.MangroveWallHangingSign; + for (int i = 4818; i <= 4825; i++) + materials[i] = Material.MangroveWallSign; + for (int i = 210; i <= 212; i++) + materials[i] = Material.MangroveWood; + for (int i = 20916; i <= 20927; i++) + materials[i] = Material.MediumAmethystBud; + materials[6812] = Material.Melon; + for (int i = 6829; i <= 6836; i++) + materials[i] = Material.MelonStem; + materials[22388] = Material.MossBlock; + materials[22371] = Material.MossCarpet; + materials[2353] = Material.MossyCobblestone; + for (int i = 13965; i <= 13970; i++) + materials[i] = Material.MossyCobblestoneSlab; + for (int i = 13141; i <= 13220; i++) + materials[i] = Material.MossyCobblestoneStairs; + for (int i = 8243; i <= 8566; i++) + materials[i] = Material.MossyCobblestoneWall; + for (int i = 13953; i <= 13958; i++) + materials[i] = Material.MossyStoneBrickSlab; + for (int i = 12981; i <= 13060; i++) + materials[i] = Material.MossyStoneBrickStairs; + for (int i = 14991; i <= 15314; i++) + materials[i] = Material.MossyStoneBrickWall; + materials[6539] = Material.MossyStoneBricks; + for (int i = 2063; i <= 2074; i++) + materials[i] = Material.MovingPiston; + materials[22448] = Material.Mud; + for (int i = 11129; i <= 11134; i++) + materials[i] = Material.MudBrickSlab; + for (int i = 7189; i <= 7268; i++) + materials[i] = Material.MudBrickStairs; + for (int i = 15963; i <= 16286; i++) + materials[i] = Material.MudBrickWall; + materials[6543] = Material.MudBricks; + for (int i = 156; i <= 158; i++) + materials[i] = Material.MuddyMangroveRoots; + for (int i = 6678; i <= 6741; i++) + materials[i] = Material.MushroomStem; + for (int i = 7269; i <= 7270; i++) + materials[i] = Material.Mycelium; + for (int i = 7273; i <= 7304; i++) + materials[i] = Material.NetherBrickFence; + for (int i = 11135; i <= 11140; i++) + materials[i] = Material.NetherBrickSlab; + for (int i = 7305; i <= 7384; i++) + materials[i] = Material.NetherBrickStairs; + for (int i = 16287; i <= 16610; i++) + materials[i] = Material.NetherBrickWall; + materials[7272] = Material.NetherBricks; + materials[129] = Material.NetherGoldOre; + for (int i = 5865; i <= 5866; i++) + materials[i] = Material.NetherPortal; + materials[9084] = Material.NetherQuartzOre; + materials[18454] = Material.NetherSprouts; + for (int i = 7385; i <= 7388; i++) + materials[i] = Material.NetherWart; + materials[12403] = Material.NetherWartBlock; + materials[19306] = Material.NetheriteBlock; + materials[5850] = Material.Netherrack; + for (int i = 538; i <= 1687; i++) + materials[i] = Material.NoteBlock; + for (int i = 8611; i <= 8634; i++) + materials[i] = Material.OakButton; + for (int i = 4590; i <= 4653; i++) + materials[i] = Material.OakDoor; + for (int i = 5817; i <= 5848; i++) + materials[i] = Material.OakFence; + for (int i = 6997; i <= 7028; i++) + materials[i] = Material.OakFenceGate; + for (int i = 4834; i <= 4897; i++) + materials[i] = Material.OakHangingSign; + for (int i = 237; i <= 264; i++) + materials[i] = Material.OakLeaves; + for (int i = 130; i <= 132; i++) + materials[i] = Material.OakLog; + materials[15] = Material.OakPlanks; + for (int i = 5716; i <= 5717; i++) + materials[i] = Material.OakPressurePlate; + for (int i = 25; i <= 26; i++) + materials[i] = Material.OakSapling; + for (int i = 4302; i <= 4333; i++) + materials[i] = Material.OakSign; + for (int i = 11021; i <= 11026; i++) + materials[i] = Material.OakSlab; + for (int i = 2874; i <= 2953; i++) + materials[i] = Material.OakStairs; + for (int i = 5962; i <= 6025; i++) + materials[i] = Material.OakTrapdoor; + for (int i = 5538; i <= 5545; i++) + materials[i] = Material.OakWallHangingSign; + for (int i = 4762; i <= 4769; i++) + materials[i] = Material.OakWallSign; + for (int i = 189; i <= 191; i++) + materials[i] = Material.OakWood; + for (int i = 12409; i <= 12420; i++) + materials[i] = Material.Observer; + materials[2354] = Material.Obsidian; + for (int i = 24108; i <= 24110; i++) + materials[i] = Material.OchreFroglight; + for (int i = 10634; i <= 10649; i++) + materials[i] = Material.OrangeBanner; + for (int i = 1704; i <= 1719; i++) + materials[i] = Material.OrangeBed; + for (int i = 20616; i <= 20631; i++) + materials[i] = Material.OrangeCandle; + for (int i = 20860; i <= 20861; i++) + materials[i] = Material.OrangeCandleCake; + materials[10588] = Material.OrangeCarpet; + materials[12588] = Material.OrangeConcrete; + materials[12604] = Material.OrangeConcretePowder; + for (int i = 12527; i <= 12530; i++) + materials[i] = Material.OrangeGlazedTerracotta; + for (int i = 12433; i <= 12438; i++) + materials[i] = Material.OrangeShulkerBox; + materials[5947] = Material.OrangeStainedGlass; + for (int i = 9264; i <= 9295; i++) + materials[i] = Material.OrangeStainedGlassPane; + materials[9217] = Material.OrangeTerracotta; + materials[2082] = Material.OrangeTulip; + for (int i = 10878; i <= 10881; i++) + materials[i] = Material.OrangeWallBanner; + materials[2048] = Material.OrangeWool; + materials[2085] = Material.OxeyeDaisy; + materials[21563] = Material.OxidizedCopper; + materials[21569] = Material.OxidizedCutCopper; + for (int i = 21893; i <= 21898; i++) + materials[i] = Material.OxidizedCutCopperSlab; + for (int i = 21573; i <= 21652; i++) + materials[i] = Material.OxidizedCutCopperStairs; + materials[10605] = Material.PackedIce; + materials[6542] = Material.PackedMud; + for (int i = 24114; i <= 24116; i++) + materials[i] = Material.PearlescentFroglight; + for (int i = 10612; i <= 10613; i++) + materials[i] = Material.Peony; + for (int i = 11105; i <= 11110; i++) + materials[i] = Material.PetrifiedOakSlab; + for (int i = 8947; i <= 8962; i++) + materials[i] = Material.PiglinHead; + for (int i = 8963; i <= 8966; i++) + materials[i] = Material.PiglinWallHead; + for (int i = 10714; i <= 10729; i++) + materials[i] = Material.PinkBanner; + for (int i = 1784; i <= 1799; i++) + materials[i] = Material.PinkBed; + for (int i = 20696; i <= 20711; i++) + materials[i] = Material.PinkCandle; + for (int i = 20870; i <= 20871; i++) + materials[i] = Material.PinkCandleCake; + materials[10593] = Material.PinkCarpet; + materials[12593] = Material.PinkConcrete; + materials[12609] = Material.PinkConcretePowder; + for (int i = 12547; i <= 12550; i++) + materials[i] = Material.PinkGlazedTerracotta; + for (int i = 22372; i <= 22387; i++) + materials[i] = Material.PinkPetals; + for (int i = 12463; i <= 12468; i++) + materials[i] = Material.PinkShulkerBox; + materials[5952] = Material.PinkStainedGlass; + for (int i = 9424; i <= 9455; i++) + materials[i] = Material.PinkStainedGlassPane; + materials[9222] = Material.PinkTerracotta; + materials[2084] = Material.PinkTulip; + for (int i = 10898; i <= 10901; i++) + materials[i] = Material.PinkWallBanner; + materials[2053] = Material.PinkWool; + for (int i = 2011; i <= 2022; i++) + materials[i] = Material.Piston; + for (int i = 2023; i <= 2046; i++) + materials[i] = Material.PistonHead; + for (int i = 12356; i <= 12365; i++) + materials[i] = Material.PitcherCrop; + for (int i = 12366; i <= 12367; i++) + materials[i] = Material.PitcherPlant; + for (int i = 8887; i <= 8902; i++) + materials[i] = Material.PlayerHead; + for (int i = 8903; i <= 8906; i++) + materials[i] = Material.PlayerWallHead; + for (int i = 12; i <= 13; i++) + materials[i] = Material.Podzol; + for (int i = 22293; i <= 22312; i++) + materials[i] = Material.PointedDripstone; + materials[7] = Material.PolishedAndesite; + for (int i = 14007; i <= 14012; i++) + materials[i] = Material.PolishedAndesiteSlab; + for (int i = 13781; i <= 13860; i++) + materials[i] = Material.PolishedAndesiteStairs; + for (int i = 5856; i <= 5858; i++) + materials[i] = Material.PolishedBasalt; + materials[19730] = Material.PolishedBlackstone; + for (int i = 19734; i <= 19739; i++) + materials[i] = Material.PolishedBlackstoneBrickSlab; + for (int i = 19740; i <= 19819; i++) + materials[i] = Material.PolishedBlackstoneBrickStairs; + for (int i = 19820; i <= 20143; i++) + materials[i] = Material.PolishedBlackstoneBrickWall; + materials[19731] = Material.PolishedBlackstoneBricks; + for (int i = 20233; i <= 20256; i++) + materials[i] = Material.PolishedBlackstoneButton; + for (int i = 20231; i <= 20232; i++) + materials[i] = Material.PolishedBlackstonePressurePlate; + for (int i = 20225; i <= 20230; i++) + materials[i] = Material.PolishedBlackstoneSlab; + for (int i = 20145; i <= 20224; i++) + materials[i] = Material.PolishedBlackstoneStairs; + for (int i = 20257; i <= 20580; i++) + materials[i] = Material.PolishedBlackstoneWall; + materials[22863] = Material.PolishedDeepslate; + for (int i = 22944; i <= 22949; i++) + materials[i] = Material.PolishedDeepslateSlab; + for (int i = 22864; i <= 22943; i++) + materials[i] = Material.PolishedDeepslateStairs; + for (int i = 22950; i <= 23273; i++) + materials[i] = Material.PolishedDeepslateWall; + materials[5] = Material.PolishedDiorite; + for (int i = 13959; i <= 13964; i++) + materials[i] = Material.PolishedDioriteSlab; + for (int i = 13061; i <= 13140; i++) + materials[i] = Material.PolishedDioriteStairs; + materials[3] = Material.PolishedGranite; + for (int i = 13941; i <= 13946; i++) + materials[i] = Material.PolishedGraniteSlab; + for (int i = 12821; i <= 12900; i++) + materials[i] = Material.PolishedGraniteStairs; + materials[2077] = Material.Poppy; + for (int i = 8603; i <= 8610; i++) + materials[i] = Material.Potatoes; + materials[8573] = Material.PottedAcaciaSapling; + materials[8581] = Material.PottedAllium; + materials[24106] = Material.PottedAzaleaBush; + materials[8582] = Material.PottedAzureBluet; + materials[12816] = Material.PottedBamboo; + materials[8571] = Material.PottedBirchSapling; + materials[8580] = Material.PottedBlueOrchid; + materials[8592] = Material.PottedBrownMushroom; + materials[8594] = Material.PottedCactus; + materials[8574] = Material.PottedCherrySapling; + materials[8588] = Material.PottedCornflower; + materials[19314] = Material.PottedCrimsonFungus; + materials[19316] = Material.PottedCrimsonRoots; + materials[8578] = Material.PottedDandelion; + materials[8575] = Material.PottedDarkOakSapling; + materials[8593] = Material.PottedDeadBush; + materials[8577] = Material.PottedFern; + materials[24107] = Material.PottedFloweringAzaleaBush; + materials[8572] = Material.PottedJungleSapling; + materials[8589] = Material.PottedLilyOfTheValley; + materials[8576] = Material.PottedMangrovePropagule; + materials[8569] = Material.PottedOakSapling; + materials[8584] = Material.PottedOrangeTulip; + materials[8587] = Material.PottedOxeyeDaisy; + materials[8586] = Material.PottedPinkTulip; + materials[8579] = Material.PottedPoppy; + materials[8591] = Material.PottedRedMushroom; + materials[8583] = Material.PottedRedTulip; + materials[8570] = Material.PottedSpruceSapling; + materials[8568] = Material.PottedTorchflower; + materials[19315] = Material.PottedWarpedFungus; + materials[19317] = Material.PottedWarpedRoots; + materials[8585] = Material.PottedWhiteTulip; + materials[8590] = Material.PottedWitherRose; + materials[20943] = Material.PowderSnow; + for (int i = 7403; i <= 7405; i++) + materials[i] = Material.PowderSnowCauldron; + for (int i = 1944; i <= 1967; i++) + materials[i] = Material.PoweredRail; + materials[10322] = Material.Prismarine; + for (int i = 10571; i <= 10576; i++) + materials[i] = Material.PrismarineBrickSlab; + for (int i = 10405; i <= 10484; i++) + materials[i] = Material.PrismarineBrickStairs; + materials[10323] = Material.PrismarineBricks; + for (int i = 10565; i <= 10570; i++) + materials[i] = Material.PrismarineSlab; + for (int i = 10325; i <= 10404; i++) + materials[i] = Material.PrismarineStairs; + for (int i = 14343; i <= 14666; i++) + materials[i] = Material.PrismarineWall; + materials[5849] = Material.Pumpkin; + for (int i = 6821; i <= 6828; i++) + materials[i] = Material.PumpkinStem; + for (int i = 10778; i <= 10793; i++) + materials[i] = Material.PurpleBanner; + for (int i = 1848; i <= 1863; i++) + materials[i] = Material.PurpleBed; + for (int i = 20760; i <= 20775; i++) + materials[i] = Material.PurpleCandle; + for (int i = 20878; i <= 20879; i++) + materials[i] = Material.PurpleCandleCake; + materials[10597] = Material.PurpleCarpet; + materials[12597] = Material.PurpleConcrete; + materials[12613] = Material.PurpleConcretePowder; + for (int i = 12563; i <= 12566; i++) + materials[i] = Material.PurpleGlazedTerracotta; + for (int i = 12487; i <= 12492; i++) + materials[i] = Material.PurpleShulkerBox; + materials[5956] = Material.PurpleStainedGlass; + for (int i = 9552; i <= 9583; i++) + materials[i] = Material.PurpleStainedGlassPane; + materials[9226] = Material.PurpleTerracotta; + for (int i = 10914; i <= 10917; i++) + materials[i] = Material.PurpleWallBanner; + materials[2057] = Material.PurpleWool; + materials[12269] = Material.PurpurBlock; + for (int i = 12270; i <= 12272; i++) + materials[i] = Material.PurpurPillar; + for (int i = 11159; i <= 11164; i++) + materials[i] = Material.PurpurSlab; + for (int i = 12273; i <= 12352; i++) + materials[i] = Material.PurpurStairs; + materials[9095] = Material.QuartzBlock; + materials[20583] = Material.QuartzBricks; + for (int i = 9097; i <= 9099; i++) + materials[i] = Material.QuartzPillar; + for (int i = 11141; i <= 11146; i++) + materials[i] = Material.QuartzSlab; + for (int i = 9100; i <= 9179; i++) + materials[i] = Material.QuartzStairs; + for (int i = 4662; i <= 4681; i++) + materials[i] = Material.Rail; + materials[24104] = Material.RawCopperBlock; + materials[24105] = Material.RawGoldBlock; + materials[24103] = Material.RawIronBlock; + for (int i = 10842; i <= 10857; i++) + materials[i] = Material.RedBanner; + for (int i = 1912; i <= 1927; i++) + materials[i] = Material.RedBed; + for (int i = 20824; i <= 20839; i++) + materials[i] = Material.RedCandle; + for (int i = 20886; i <= 20887; i++) + materials[i] = Material.RedCandleCake; + materials[10601] = Material.RedCarpet; + materials[12601] = Material.RedConcrete; + materials[12617] = Material.RedConcretePowder; + for (int i = 12579; i <= 12582; i++) + materials[i] = Material.RedGlazedTerracotta; + materials[2090] = Material.RedMushroom; + for (int i = 6614; i <= 6677; i++) + materials[i] = Material.RedMushroomBlock; + for (int i = 14001; i <= 14006; i++) + materials[i] = Material.RedNetherBrickSlab; + for (int i = 13701; i <= 13780; i++) + materials[i] = Material.RedNetherBrickStairs; + for (int i = 16935; i <= 17258; i++) + materials[i] = Material.RedNetherBrickWall; + materials[12404] = Material.RedNetherBricks; + materials[117] = Material.RedSand; + materials[10938] = Material.RedSandstone; + for (int i = 11147; i <= 11152; i++) + materials[i] = Material.RedSandstoneSlab; + for (int i = 10941; i <= 11020; i++) + materials[i] = Material.RedSandstoneStairs; + for (int i = 14667; i <= 14990; i++) + materials[i] = Material.RedSandstoneWall; + for (int i = 12511; i <= 12516; i++) + materials[i] = Material.RedShulkerBox; + materials[5960] = Material.RedStainedGlass; + for (int i = 9680; i <= 9711; i++) + materials[i] = Material.RedStainedGlassPane; + materials[9230] = Material.RedTerracotta; + materials[2081] = Material.RedTulip; + for (int i = 10930; i <= 10933; i++) + materials[i] = Material.RedWallBanner; + materials[2061] = Material.RedWool; + materials[9083] = Material.RedstoneBlock; + for (int i = 7417; i <= 7418; i++) + materials[i] = Material.RedstoneLamp; + for (int i = 5734; i <= 5735; i++) + materials[i] = Material.RedstoneOre; + for (int i = 5738; i <= 5739; i++) + materials[i] = Material.RedstoneTorch; + for (int i = 5740; i <= 5747; i++) + materials[i] = Material.RedstoneWallTorch; + for (int i = 2978; i <= 4273; i++) + materials[i] = Material.RedstoneWire; + materials[24118] = Material.ReinforcedDeepslate; + for (int i = 5882; i <= 5945; i++) + materials[i] = Material.Repeater; + for (int i = 12374; i <= 12385; i++) + materials[i] = Material.RepeatingCommandBlock; + for (int i = 19309; i <= 19313; i++) + materials[i] = Material.RespawnAnchor; + materials[22447] = Material.RootedDirt; + for (int i = 10610; i <= 10611; i++) + materials[i] = Material.RoseBush; + materials[112] = Material.Sand; + materials[535] = Material.Sandstone; + for (int i = 11093; i <= 11098; i++) + materials[i] = Material.SandstoneSlab; + for (int i = 7431; i <= 7510; i++) + materials[i] = Material.SandstoneStairs; + for (int i = 17259; i <= 17582; i++) + materials[i] = Material.SandstoneWall; + for (int i = 18231; i <= 18262; i++) + materials[i] = Material.Scaffolding; + materials[21424] = Material.Sculk; + for (int i = 21553; i <= 21554; i++) + materials[i] = Material.SculkCatalyst; + for (int i = 20944; i <= 21039; i++) + materials[i] = Material.SculkSensor; + for (int i = 21555; i <= 21562; i++) + materials[i] = Material.SculkShrieker; + for (int i = 21425; i <= 21552; i++) + materials[i] = Material.SculkVein; + materials[10583] = Material.SeaLantern; + for (int i = 12792; i <= 12799; i++) + materials[i] = Material.SeaPickle; + materials[2008] = Material.Seagrass; + materials[18469] = Material.Shroomlight; + for (int i = 12421; i <= 12426; i++) + materials[i] = Material.ShulkerBox; + for (int i = 8827; i <= 8842; i++) + materials[i] = Material.SkeletonSkull; + for (int i = 8843; i <= 8846; i++) + materials[i] = Material.SkeletonWallSkull; + materials[10224] = Material.SlimeBlock; + for (int i = 20928; i <= 20939; i++) + materials[i] = Material.SmallAmethystBud; + for (int i = 22429; i <= 22444; i++) + materials[i] = Material.SmallDripleaf; + materials[18325] = Material.SmithingTable; + for (int i = 18279; i <= 18286; i++) + materials[i] = Material.Smoker; + materials[24102] = Material.SmoothBasalt; + materials[11167] = Material.SmoothQuartz; + for (int i = 13983; i <= 13988; i++) + materials[i] = Material.SmoothQuartzSlab; + for (int i = 13461; i <= 13540; i++) + materials[i] = Material.SmoothQuartzStairs; + materials[11168] = Material.SmoothRedSandstone; + for (int i = 13947; i <= 13952; i++) + materials[i] = Material.SmoothRedSandstoneSlab; + for (int i = 12901; i <= 12980; i++) + materials[i] = Material.SmoothRedSandstoneStairs; + materials[11166] = Material.SmoothSandstone; + for (int i = 13977; i <= 13982; i++) + materials[i] = Material.SmoothSandstoneSlab; + for (int i = 13381; i <= 13460; i++) + materials[i] = Material.SmoothSandstoneStairs; + materials[11165] = Material.SmoothStone; + for (int i = 11087; i <= 11092; i++) + materials[i] = Material.SmoothStoneSlab; + for (int i = 12659; i <= 12661; i++) + materials[i] = Material.SnifferEgg; + for (int i = 5772; i <= 5779; i++) + materials[i] = Material.Snow; + materials[5781] = Material.SnowBlock; + for (int i = 18402; i <= 18433; i++) + materials[i] = Material.SoulCampfire; + materials[2872] = Material.SoulFire; + for (int i = 18366; i <= 18369; i++) + materials[i] = Material.SoulLantern; + materials[5851] = Material.SoulSand; + materials[5852] = Material.SoulSoil; + materials[5859] = Material.SoulTorch; + for (int i = 5860; i <= 5863; i++) + materials[i] = Material.SoulWallTorch; + materials[2873] = Material.Spawner; + materials[517] = Material.Sponge; + materials[22368] = Material.SporeBlossom; + for (int i = 8635; i <= 8658; i++) + materials[i] = Material.SpruceButton; + for (int i = 11681; i <= 11744; i++) + materials[i] = Material.SpruceDoor; + for (int i = 11425; i <= 11456; i++) + materials[i] = Material.SpruceFence; + for (int i = 11169; i <= 11200; i++) + materials[i] = Material.SpruceFenceGate; + for (int i = 4898; i <= 4961; i++) + materials[i] = Material.SpruceHangingSign; + for (int i = 265; i <= 292; i++) + materials[i] = Material.SpruceLeaves; + for (int i = 133; i <= 135; i++) + materials[i] = Material.SpruceLog; + materials[16] = Material.SprucePlanks; + for (int i = 5718; i <= 5719; i++) + materials[i] = Material.SprucePressurePlate; + for (int i = 27; i <= 28; i++) + materials[i] = Material.SpruceSapling; + for (int i = 4334; i <= 4365; i++) + materials[i] = Material.SpruceSign; + for (int i = 11027; i <= 11032; i++) + materials[i] = Material.SpruceSlab; + for (int i = 7666; i <= 7745; i++) + materials[i] = Material.SpruceStairs; + for (int i = 6026; i <= 6089; i++) + materials[i] = Material.SpruceTrapdoor; + for (int i = 5546; i <= 5553; i++) + materials[i] = Material.SpruceWallHangingSign; + for (int i = 4770; i <= 4777; i++) + materials[i] = Material.SpruceWallSign; + for (int i = 192; i <= 194; i++) + materials[i] = Material.SpruceWood; + for (int i = 1992; i <= 2003; i++) + materials[i] = Material.StickyPiston; + materials[1] = Material.Stone; + for (int i = 11123; i <= 11128; i++) + materials[i] = Material.StoneBrickSlab; + for (int i = 7109; i <= 7188; i++) + materials[i] = Material.StoneBrickStairs; + for (int i = 15639; i <= 15962; i++) + materials[i] = Material.StoneBrickWall; + materials[6538] = Material.StoneBricks; + for (int i = 5748; i <= 5771; i++) + materials[i] = Material.StoneButton; + for (int i = 5650; i <= 5651; i++) + materials[i] = Material.StonePressurePlate; + for (int i = 11081; i <= 11086; i++) + materials[i] = Material.StoneSlab; + for (int i = 13301; i <= 13380; i++) + materials[i] = Material.StoneStairs; + for (int i = 18326; i <= 18329; i++) + materials[i] = Material.Stonecutter; + for (int i = 171; i <= 173; i++) + materials[i] = Material.StrippedAcaciaLog; + for (int i = 225; i <= 227; i++) + materials[i] = Material.StrippedAcaciaWood; + for (int i = 186; i <= 188; i++) + materials[i] = Material.StrippedBambooBlock; + for (int i = 165; i <= 167; i++) + materials[i] = Material.StrippedBirchLog; + for (int i = 219; i <= 221; i++) + materials[i] = Material.StrippedBirchWood; + for (int i = 174; i <= 176; i++) + materials[i] = Material.StrippedCherryLog; + for (int i = 228; i <= 230; i++) + materials[i] = Material.StrippedCherryWood; + for (int i = 18464; i <= 18466; i++) + materials[i] = Material.StrippedCrimsonHyphae; + for (int i = 18458; i <= 18460; i++) + materials[i] = Material.StrippedCrimsonStem; + for (int i = 177; i <= 179; i++) + materials[i] = Material.StrippedDarkOakLog; + for (int i = 231; i <= 233; i++) + materials[i] = Material.StrippedDarkOakWood; + for (int i = 168; i <= 170; i++) + materials[i] = Material.StrippedJungleLog; + for (int i = 222; i <= 224; i++) + materials[i] = Material.StrippedJungleWood; + for (int i = 183; i <= 185; i++) + materials[i] = Material.StrippedMangroveLog; + for (int i = 234; i <= 236; i++) + materials[i] = Material.StrippedMangroveWood; + for (int i = 180; i <= 182; i++) + materials[i] = Material.StrippedOakLog; + for (int i = 213; i <= 215; i++) + materials[i] = Material.StrippedOakWood; + for (int i = 162; i <= 164; i++) + materials[i] = Material.StrippedSpruceLog; + for (int i = 216; i <= 218; i++) + materials[i] = Material.StrippedSpruceWood; + for (int i = 18447; i <= 18449; i++) + materials[i] = Material.StrippedWarpedHyphae; + for (int i = 18441; i <= 18443; i++) + materials[i] = Material.StrippedWarpedStem; + for (int i = 19215; i <= 19218; i++) + materials[i] = Material.StructureBlock; + materials[12408] = Material.StructureVoid; + for (int i = 5799; i <= 5814; i++) + materials[i] = Material.SugarCane; + for (int i = 10606; i <= 10607; i++) + materials[i] = Material.Sunflower; + for (int i = 119; i <= 122; i++) + materials[i] = Material.SuspiciousGravel; + for (int i = 113; i <= 116; i++) + materials[i] = Material.SuspiciousSand; + for (int i = 18434; i <= 18437; i++) + materials[i] = Material.SweetBerryBush; + for (int i = 10614; i <= 10615; i++) + materials[i] = Material.TallGrass; + for (int i = 2009; i <= 2010; i++) + materials[i] = Material.TallSeagrass; + for (int i = 19240; i <= 19255; i++) + materials[i] = Material.Target; + materials[10603] = Material.Terracotta; + materials[20942] = Material.TintedGlass; + for (int i = 2094; i <= 2095; i++) + materials[i] = Material.Tnt; + materials[2355] = Material.Torch; + materials[2076] = Material.Torchflower; + for (int i = 12354; i <= 12355; i++) + materials[i] = Material.TorchflowerCrop; + for (int i = 8979; i <= 9002; i++) + materials[i] = Material.TrappedChest; + for (int i = 7537; i <= 7664; i++) + materials[i] = Material.Tripwire; + for (int i = 7521; i <= 7536; i++) + materials[i] = Material.TripwireHook; + for (int i = 12682; i <= 12683; i++) + materials[i] = Material.TubeCoral; + materials[12667] = Material.TubeCoralBlock; + for (int i = 12702; i <= 12703; i++) + materials[i] = Material.TubeCoralFan; + for (int i = 12752; i <= 12759; i++) + materials[i] = Material.TubeCoralWallFan; + materials[20940] = Material.Tuff; + for (int i = 12647; i <= 12658; i++) + materials[i] = Material.TurtleEgg; + for (int i = 18497; i <= 18522; i++) + materials[i] = Material.TwistingVines; + materials[18523] = Material.TwistingVinesPlant; + for (int i = 24111; i <= 24113; i++) + materials[i] = Material.VerdantFroglight; + for (int i = 6837; i <= 6868; i++) + materials[i] = Material.Vine; + materials[12817] = Material.VoidAir; + for (int i = 2356; i <= 2359; i++) + materials[i] = Material.WallTorch; + for (int i = 18983; i <= 19006; i++) + materials[i] = Material.WarpedButton; + for (int i = 19071; i <= 19134; i++) + materials[i] = Material.WarpedDoor; + for (int i = 18575; i <= 18606; i++) + materials[i] = Material.WarpedFence; + for (int i = 18767; i <= 18798; i++) + materials[i] = Material.WarpedFenceGate; + materials[18451] = Material.WarpedFungus; + for (int i = 5346; i <= 5409; i++) + materials[i] = Material.WarpedHangingSign; + for (int i = 18444; i <= 18446; i++) + materials[i] = Material.WarpedHyphae; + materials[18450] = Material.WarpedNylium; + materials[18526] = Material.WarpedPlanks; + for (int i = 18541; i <= 18542; i++) + materials[i] = Material.WarpedPressurePlate; + materials[18453] = Material.WarpedRoots; + for (int i = 19167; i <= 19198; i++) + materials[i] = Material.WarpedSign; + for (int i = 18533; i <= 18538; i++) + materials[i] = Material.WarpedSlab; + for (int i = 18879; i <= 18958; i++) + materials[i] = Material.WarpedStairs; + for (int i = 18438; i <= 18440; i++) + materials[i] = Material.WarpedStem; + for (int i = 18671; i <= 18734; i++) + materials[i] = Material.WarpedTrapdoor; + for (int i = 5610; i <= 5617; i++) + materials[i] = Material.WarpedWallHangingSign; + for (int i = 19207; i <= 19214; i++) + materials[i] = Material.WarpedWallSign; + materials[18452] = Material.WarpedWartBlock; + for (int i = 80; i <= 95; i++) + materials[i] = Material.Water; + for (int i = 7399; i <= 7401; i++) + materials[i] = Material.WaterCauldron; + materials[21917] = Material.WaxedCopperBlock; + materials[21924] = Material.WaxedCutCopper; + for (int i = 22263; i <= 22268; i++) + materials[i] = Material.WaxedCutCopperSlab; + for (int i = 22165; i <= 22244; i++) + materials[i] = Material.WaxedCutCopperStairs; + materials[21919] = Material.WaxedExposedCopper; + materials[21923] = Material.WaxedExposedCutCopper; + for (int i = 22257; i <= 22262; i++) + materials[i] = Material.WaxedExposedCutCopperSlab; + for (int i = 22085; i <= 22164; i++) + materials[i] = Material.WaxedExposedCutCopperStairs; + materials[21920] = Material.WaxedOxidizedCopper; + materials[21921] = Material.WaxedOxidizedCutCopper; + for (int i = 22245; i <= 22250; i++) + materials[i] = Material.WaxedOxidizedCutCopperSlab; + for (int i = 21925; i <= 22004; i++) + materials[i] = Material.WaxedOxidizedCutCopperStairs; + materials[21918] = Material.WaxedWeatheredCopper; + materials[21922] = Material.WaxedWeatheredCutCopper; + for (int i = 22251; i <= 22256; i++) + materials[i] = Material.WaxedWeatheredCutCopperSlab; + for (int i = 22005; i <= 22084; i++) + materials[i] = Material.WaxedWeatheredCutCopperStairs; + materials[21564] = Material.WeatheredCopper; + materials[21570] = Material.WeatheredCutCopper; + for (int i = 21899; i <= 21904; i++) + materials[i] = Material.WeatheredCutCopperSlab; + for (int i = 21653; i <= 21732; i++) + materials[i] = Material.WeatheredCutCopperStairs; + for (int i = 18470; i <= 18495; i++) + materials[i] = Material.WeepingVines; + materials[18496] = Material.WeepingVinesPlant; + materials[518] = Material.WetSponge; + for (int i = 4278; i <= 4285; i++) + materials[i] = Material.Wheat; + for (int i = 10618; i <= 10633; i++) + materials[i] = Material.WhiteBanner; + for (int i = 1688; i <= 1703; i++) + materials[i] = Material.WhiteBed; + for (int i = 20600; i <= 20615; i++) + materials[i] = Material.WhiteCandle; + for (int i = 20858; i <= 20859; i++) + materials[i] = Material.WhiteCandleCake; + materials[10587] = Material.WhiteCarpet; + materials[12587] = Material.WhiteConcrete; + materials[12603] = Material.WhiteConcretePowder; + for (int i = 12523; i <= 12526; i++) + materials[i] = Material.WhiteGlazedTerracotta; + for (int i = 12427; i <= 12432; i++) + materials[i] = Material.WhiteShulkerBox; + materials[5946] = Material.WhiteStainedGlass; + for (int i = 9232; i <= 9263; i++) + materials[i] = Material.WhiteStainedGlassPane; + materials[9216] = Material.WhiteTerracotta; + materials[2083] = Material.WhiteTulip; + for (int i = 10874; i <= 10877; i++) + materials[i] = Material.WhiteWallBanner; + materials[2047] = Material.WhiteWool; + materials[2087] = Material.WitherRose; + for (int i = 8847; i <= 8862; i++) + materials[i] = Material.WitherSkeletonSkull; + for (int i = 8863; i <= 8866; i++) + materials[i] = Material.WitherSkeletonWallSkull; + for (int i = 10682; i <= 10697; i++) + materials[i] = Material.YellowBanner; + for (int i = 1752; i <= 1767; i++) + materials[i] = Material.YellowBed; + for (int i = 20664; i <= 20679; i++) + materials[i] = Material.YellowCandle; + for (int i = 20866; i <= 20867; i++) + materials[i] = Material.YellowCandleCake; + materials[10591] = Material.YellowCarpet; + materials[12591] = Material.YellowConcrete; + materials[12607] = Material.YellowConcretePowder; + for (int i = 12539; i <= 12542; i++) + materials[i] = Material.YellowGlazedTerracotta; + for (int i = 12451; i <= 12456; i++) + materials[i] = Material.YellowShulkerBox; + materials[5950] = Material.YellowStainedGlass; + for (int i = 9360; i <= 9391; i++) + materials[i] = Material.YellowStainedGlassPane; + materials[9220] = Material.YellowTerracotta; + for (int i = 10890; i <= 10893; i++) + materials[i] = Material.YellowWallBanner; + materials[2051] = Material.YellowWool; + for (int i = 8867; i <= 8882; i++) + materials[i] = Material.ZombieHead; + for (int i = 8883; i <= 8886; i++) + materials[i] = Material.ZombieWallHead; + } + + protected override Dictionary GetDict() + { + return materials; + } + } +} diff --git a/MinecraftClient/Mapping/EntityMetadataPalette.cs b/MinecraftClient/Mapping/EntityMetadataPalette.cs index 9759921f7f..a6999063e9 100644 --- a/MinecraftClient/Mapping/EntityMetadataPalette.cs +++ b/MinecraftClient/Mapping/EntityMetadataPalette.cs @@ -16,17 +16,14 @@ public EntityMetaDataType GetDataType(int typeId) public static EntityMetadataPalette GetPalette(int protocolVersion) { - if (protocolVersion <= Protocol18Handler.MC_1_8_Version) - return new EntityMetadataPalette18(); // 1.8 - else if (protocolVersion <= Protocol18Handler.MC_1_12_2_Version) - return new EntityMetadataPalette1122(); // 1.9 - 1.12.2 - else if (protocolVersion <= Protocol18Handler.MC_1_19_2_Version) - return new EntityMetadataPalette1191(); // 1.13 - 1.19.2 - else if (protocolVersion <= Protocol18Handler.MC_1_19_3_Version) - return new EntityMetadataPalette1193(); // 1.19.3 - else if (protocolVersion <= Protocol18Handler.MC_1_19_4_Version) - return new EntityMetadataPalette1194(); // 1.19.4 - else - throw new NotImplementedException(); + return protocolVersion switch + { + <= Protocol18Handler.MC_1_8_Version => new EntityMetadataPalette18(), // 1.8 + <= Protocol18Handler.MC_1_12_2_Version => new EntityMetadataPalette1122(), // 1.9 - 1.12.2 + <= Protocol18Handler.MC_1_19_2_Version => new EntityMetadataPalette1191(), // 1.13 - 1.19.2 + <= Protocol18Handler.MC_1_19_3_Version => new EntityMetadataPalette1193(), // 1.19.3 + <= Protocol18Handler.MC_1_20_Version => new EntityMetadataPalette1194(), // 1.19.4 - 1.20 + + _ => throw new NotImplementedException() + }; } } \ No newline at end of file diff --git a/MinecraftClient/Mapping/EntityPalettes/EntityPalette120.cs b/MinecraftClient/Mapping/EntityPalettes/EntityPalette120.cs new file mode 100644 index 0000000000..254a9a3ba6 --- /dev/null +++ b/MinecraftClient/Mapping/EntityPalettes/EntityPalette120.cs @@ -0,0 +1,142 @@ +using System.Collections.Generic; + +namespace MinecraftClient.Mapping.EntityPalettes +{ + public class EntityPalette120 : EntityPalette + { + private static readonly Dictionary mappings = new(); + + static EntityPalette120() + { + mappings[0] = EntityType.Allay; + mappings[1] = EntityType.AreaEffectCloud; + mappings[2] = EntityType.ArmorStand; + mappings[3] = EntityType.Arrow; + mappings[4] = EntityType.Axolotl; + mappings[5] = EntityType.Bat; + mappings[6] = EntityType.Bee; + mappings[7] = EntityType.Blaze; + mappings[8] = EntityType.BlockDisplay; + mappings[9] = EntityType.Boat; + mappings[10] = EntityType.Camel; + mappings[11] = EntityType.Cat; + mappings[12] = EntityType.CaveSpider; + mappings[13] = EntityType.ChestBoat; + mappings[14] = EntityType.ChestMinecart; + mappings[15] = EntityType.Chicken; + mappings[16] = EntityType.Cod; + mappings[17] = EntityType.CommandBlockMinecart; + mappings[18] = EntityType.Cow; + mappings[19] = EntityType.Creeper; + mappings[20] = EntityType.Dolphin; + mappings[21] = EntityType.Donkey; + mappings[22] = EntityType.DragonFireball; + mappings[23] = EntityType.Drowned; + mappings[24] = EntityType.Egg; + mappings[25] = EntityType.ElderGuardian; + mappings[26] = EntityType.EndCrystal; + mappings[27] = EntityType.EnderDragon; + mappings[28] = EntityType.EnderPearl; + mappings[29] = EntityType.Enderman; + mappings[30] = EntityType.Endermite; + mappings[31] = EntityType.Evoker; + mappings[32] = EntityType.EvokerFangs; + mappings[33] = EntityType.ExperienceBottle; + mappings[34] = EntityType.ExperienceOrb; + mappings[35] = EntityType.EyeOfEnder; + mappings[36] = EntityType.FallingBlock; + mappings[57] = EntityType.Fireball; + mappings[37] = EntityType.FireworkRocket; + mappings[123] = EntityType.FishingBobber; + mappings[38] = EntityType.Fox; + mappings[39] = EntityType.Frog; + mappings[40] = EntityType.FurnaceMinecart; + mappings[41] = EntityType.Ghast; + mappings[42] = EntityType.Giant; + mappings[43] = EntityType.GlowItemFrame; + mappings[44] = EntityType.GlowSquid; + mappings[45] = EntityType.Goat; + mappings[46] = EntityType.Guardian; + mappings[47] = EntityType.Hoglin; + mappings[48] = EntityType.HopperMinecart; + mappings[49] = EntityType.Horse; + mappings[50] = EntityType.Husk; + mappings[51] = EntityType.Illusioner; + mappings[52] = EntityType.Interaction; + mappings[53] = EntityType.IronGolem; + mappings[54] = EntityType.Item; + mappings[55] = EntityType.ItemDisplay; + mappings[56] = EntityType.ItemFrame; + mappings[58] = EntityType.LeashKnot; + mappings[59] = EntityType.LightningBolt; + mappings[60] = EntityType.Llama; + mappings[61] = EntityType.LlamaSpit; + mappings[62] = EntityType.MagmaCube; + mappings[63] = EntityType.Marker; + mappings[64] = EntityType.Minecart; + mappings[65] = EntityType.Mooshroom; + mappings[66] = EntityType.Mule; + mappings[67] = EntityType.Ocelot; + mappings[68] = EntityType.Painting; + mappings[69] = EntityType.Panda; + mappings[70] = EntityType.Parrot; + mappings[71] = EntityType.Phantom; + mappings[72] = EntityType.Pig; + mappings[73] = EntityType.Piglin; + mappings[74] = EntityType.PiglinBrute; + mappings[75] = EntityType.Pillager; + mappings[122] = EntityType.Player; + mappings[76] = EntityType.PolarBear; + mappings[77] = EntityType.Potion; + mappings[78] = EntityType.Pufferfish; + mappings[79] = EntityType.Rabbit; + mappings[80] = EntityType.Ravager; + mappings[81] = EntityType.Salmon; + mappings[82] = EntityType.Sheep; + mappings[83] = EntityType.Shulker; + mappings[84] = EntityType.ShulkerBullet; + mappings[85] = EntityType.Silverfish; + mappings[86] = EntityType.Skeleton; + mappings[87] = EntityType.SkeletonHorse; + mappings[88] = EntityType.Slime; + mappings[89] = EntityType.SmallFireball; + mappings[90] = EntityType.Sniffer; + mappings[91] = EntityType.SnowGolem; + mappings[92] = EntityType.Snowball; + mappings[93] = EntityType.SpawnerMinecart; + mappings[94] = EntityType.SpectralArrow; + mappings[95] = EntityType.Spider; + mappings[96] = EntityType.Squid; + mappings[97] = EntityType.Stray; + mappings[98] = EntityType.Strider; + mappings[99] = EntityType.Tadpole; + mappings[100] = EntityType.TextDisplay; + mappings[101] = EntityType.Tnt; + mappings[102] = EntityType.TntMinecart; + mappings[103] = EntityType.TraderLlama; + mappings[104] = EntityType.Trident; + mappings[105] = EntityType.TropicalFish; + mappings[106] = EntityType.Turtle; + mappings[107] = EntityType.Vex; + mappings[108] = EntityType.Villager; + mappings[109] = EntityType.Vindicator; + mappings[110] = EntityType.WanderingTrader; + mappings[111] = EntityType.Warden; + mappings[112] = EntityType.Witch; + mappings[113] = EntityType.Wither; + mappings[114] = EntityType.WitherSkeleton; + mappings[115] = EntityType.WitherSkull; + mappings[116] = EntityType.Wolf; + mappings[117] = EntityType.Zoglin; + mappings[118] = EntityType.Zombie; + mappings[119] = EntityType.ZombieHorse; + mappings[120] = EntityType.ZombieVillager; + mappings[121] = EntityType.ZombifiedPiglin; + } + + protected override Dictionary GetDict() + { + return mappings; + } + } +} \ No newline at end of file diff --git a/MinecraftClient/Mapping/Material.cs b/MinecraftClient/Mapping/Material.cs index 4c47e63bae..0693eb8f00 100644 --- a/MinecraftClient/Mapping/Material.cs +++ b/MinecraftClient/Mapping/Material.cs @@ -165,6 +165,7 @@ public enum Material Cactus, Cake, Calcite, + CalibratedSculkSensor, Campfire, Candle, CandleCake, @@ -666,6 +667,8 @@ public enum Material PinkWool, Piston, PistonHead, + PitcherCrop, + PitcherPlant, PlayerHead, PlayerWallHead, Podzol, @@ -842,6 +845,7 @@ public enum Material SmoothSandstoneStairs, SmoothStone, SmoothStoneSlab, + SnifferEgg, Snow, SnowBlock, SoulCampfire, @@ -907,6 +911,7 @@ public enum Material StructureVoid, SugarCane, Sunflower, + SuspiciousGravel, SuspiciousSand, SweetBerryBush, TallGrass, diff --git a/MinecraftClient/Program.cs b/MinecraftClient/Program.cs index 06265949ef..cd74e0b47f 100644 --- a/MinecraftClient/Program.cs +++ b/MinecraftClient/Program.cs @@ -46,7 +46,7 @@ static class Program public const string Version = MCHighestVersion; public const string MCLowestVersion = "1.4.6"; - public const string MCHighestVersion = "1.19.4"; + public const string MCHighestVersion = "1.20"; public static readonly string? BuildInfo = null; private static Tuple? offlinePrompt = null; @@ -860,7 +860,7 @@ public static void HandleFailure(string? errorMessage = null, bool versionError public static Type[] GetTypesInNamespace(string nameSpace, Assembly? assembly = null) { if (assembly == null) { assembly = Assembly.GetExecutingAssembly(); } - return assembly.GetTypes().Where(t => String.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray(); + return assembly.GetTypes().Where(t => string.Equals(t.Namespace, nameSpace, StringComparison.Ordinal)).ToArray(); } /// @@ -870,7 +870,7 @@ static Program() { if (typeof(Program) .Assembly - .GetCustomAttributes(typeof(System.Reflection.AssemblyConfigurationAttribute), false) + .GetCustomAttributes(typeof(AssemblyConfigurationAttribute), false) .FirstOrDefault() is AssemblyConfigurationAttribute attribute) BuildInfo = attribute.Configuration; } diff --git a/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1194.cs b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1194.cs index 6bf06c8387..78bffe47ab 100644 --- a/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1194.cs +++ b/MinecraftClient/Protocol/Handlers/PacketPalettes/PacketPalette1194.cs @@ -111,11 +111,11 @@ public class PacketPalette1194 : PacketTypePalette { 0x66, PacketTypesIn.NBTQueryResponse }, // (Wiki name: Tab Query) { 0x67, PacketTypesIn.CollectItem }, // (Wiki name: Take Item Entity) { 0x68, PacketTypesIn.EntityTeleport }, // (Wiki name: Teleport Entity) - { 0x69, PacketTypesIn.Advancements }, // (Wiki name: Update Advancements) + { 0x69, PacketTypesIn.Advancements }, // (Wiki name: Update Advancements) (Unused) { 0x6A, PacketTypesIn.EntityProperties }, // (Wiki name: Update Attributes) { 0x6B, PacketTypesIn.FeatureFlags }, // Added in 1.19.3 (Not yet clear what is the purpose of this packet) { 0x6C, PacketTypesIn.EntityEffect }, // Changed in 1.19 (Added "Has Factor Data" and "Factor Codec" fields) (Wiki name: Entity Effect) - { 0x6D, PacketTypesIn.DeclareRecipes }, // (Wiki name: Update Recipes) + { 0x6D, PacketTypesIn.DeclareRecipes }, // (Wiki name: Update Recipes) (Unused) { 0x6E, PacketTypesIn.Tags }, // (Wiki name: Update Tags) }; diff --git a/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs b/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs index ee2f2afb0a..d1610a629a 100644 --- a/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs +++ b/MinecraftClient/Protocol/Handlers/PacketType18Handler.cs @@ -46,40 +46,26 @@ public PacketTypePalette GetTypeHandler() /// public PacketTypePalette GetTypeHandler(int protocol) { - PacketTypePalette p; - if (protocol > Protocol18Handler.MC_1_19_4_Version) - throw new NotImplementedException(Translations.exception_palette_packet); - - if (protocol <= Protocol18Handler.MC_1_8_Version) - p = new PacketPalette17(); - else if (protocol <= Protocol18Handler.MC_1_11_2_Version) - p = new PacketPalette110(); - else if (protocol <= Protocol18Handler.MC_1_12_Version) - p = new PacketPalette112(); - else if (protocol <= Protocol18Handler.MC_1_12_2_Version) - p = new PacketPalette1122(); - else if (protocol < Protocol18Handler.MC_1_14_Version) - p = new PacketPalette113(); - else if (protocol < Protocol18Handler.MC_1_15_Version) - p = new PacketPalette114(); - else if (protocol <= Protocol18Handler.MC_1_15_2_Version) - p = new PacketPalette115(); - else if (protocol <= Protocol18Handler.MC_1_16_1_Version) - p = new PacketPalette116(); - else if (protocol <= Protocol18Handler.MC_1_16_5_Version) - p = new PacketPalette1162(); - else if (protocol <= Protocol18Handler.MC_1_17_1_Version) - p = new PacketPalette117(); - else if (protocol <= Protocol18Handler.MC_1_18_2_Version) - p = new PacketPalette118(); - else if (protocol <= Protocol18Handler.MC_1_19_Version) - p = new PacketPalette119(); - else if (protocol <= Protocol18Handler.MC_1_19_2_Version) - p = new PacketPalette1192(); - else if (protocol <= Protocol18Handler.MC_1_19_3_Version) - p = new PacketPalette1193(); - else - p = new PacketPalette1194(); + PacketTypePalette p = protocol switch + { + > Protocol18Handler.MC_1_20_Version => throw new NotImplementedException(Translations + .exception_palette_packet), + <= Protocol18Handler.MC_1_8_Version => new PacketPalette17(), + <= Protocol18Handler.MC_1_11_2_Version => new PacketPalette110(), + <= Protocol18Handler.MC_1_12_Version => new PacketPalette112(), + <= Protocol18Handler.MC_1_12_2_Version => new PacketPalette1122(), + < Protocol18Handler.MC_1_14_Version => new PacketPalette113(), + < Protocol18Handler.MC_1_15_Version => new PacketPalette114(), + <= Protocol18Handler.MC_1_15_2_Version => new PacketPalette115(), + <= Protocol18Handler.MC_1_16_1_Version => new PacketPalette116(), + <= Protocol18Handler.MC_1_16_5_Version => new PacketPalette1162(), + <= Protocol18Handler.MC_1_17_1_Version => new PacketPalette117(), + <= Protocol18Handler.MC_1_18_2_Version => new PacketPalette118(), + <= Protocol18Handler.MC_1_19_Version => new PacketPalette119(), + <= Protocol18Handler.MC_1_19_2_Version => new PacketPalette1192(), + <= Protocol18Handler.MC_1_19_3_Version => new PacketPalette1193(), + _ => new PacketPalette1194() + }; p.SetForgeEnabled(forgeEnabled); return p; diff --git a/MinecraftClient/Protocol/Handlers/Protocol16.cs b/MinecraftClient/Protocol/Handlers/Protocol16.cs index 884f4495e0..53813e1402 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol16.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol16.cs @@ -711,7 +711,7 @@ public bool SendRespawnPacket() catch (SocketException) { return false; } } - public bool SendUpdateSign(Location location, string line1, string line2, string line3, string line4) + public bool SendUpdateSign(Location location, string line1, string line2, string line3, string line4, bool isFrontText = true) { return false; //Currently not implemented } diff --git a/MinecraftClient/Protocol/Handlers/Protocol18.cs b/MinecraftClient/Protocol/Handlers/Protocol18.cs index 623273e11f..8157e1bcae 100644 --- a/MinecraftClient/Protocol/Handlers/Protocol18.cs +++ b/MinecraftClient/Protocol/Handlers/Protocol18.cs @@ -66,6 +66,7 @@ class Protocol18Handler : IMinecraftCom internal const int MC_1_19_2_Version = 760; internal const int MC_1_19_3_Version = 761; internal const int MC_1_19_4_Version = 762; + internal const int MC_1_20_Version = 763; private int compression_treshold = 0; private int autocomplete_transaction_id = 0; @@ -113,97 +114,79 @@ public Protocol18Handler(TcpClient Client, int protocolVersion, IMinecraftComHan randomGen = RandomNumberGenerator.Create(); lastSeenMessagesCollector = protocolVersion >= MC_1_19_3_Version ? new(20) : new(5); - if (handler.GetTerrainEnabled() && protocolVersion > MC_1_19_4_Version) + if (handler.GetTerrainEnabled() && protocolVersion > MC_1_20_Version) { log.Error("§c" + Translations.extra_terrainandmovement_disabled); handler.SetTerrainEnabled(false); } if (handler.GetInventoryEnabled() && - (protocolVersion < MC_1_9_Version || protocolVersion > MC_1_19_4_Version)) + protocolVersion is < MC_1_9_Version or > MC_1_20_Version) { log.Error("§c" + Translations.extra_inventory_disabled); handler.SetInventoryEnabled(false); } if (handler.GetEntityHandlingEnabled() && - (protocolVersion < MC_1_8_Version || protocolVersion > MC_1_19_4_Version)) + protocolVersion is < MC_1_8_Version or > MC_1_20_Version) { log.Error("§c" + Translations.extra_entity_disabled); handler.SetEntityHandlingEnabled(false); } - // Block palette - if (protocolVersion > MC_1_19_4_Version && handler.GetTerrainEnabled()) - throw new NotImplementedException(Translations.exception_palette_block); - - if (protocolVersion >= MC_1_19_4_Version) - Block.Palette = new Palette1194(); - else if (protocolVersion >= MC_1_19_3_Version) - Block.Palette = new Palette1193(); - else if (protocolVersion >= MC_1_19_Version) - Block.Palette = new Palette119(); - else if (protocolVersion >= MC_1_17_Version) - Block.Palette = new Palette117(); - else if (protocolVersion >= MC_1_16_Version) - Block.Palette = new Palette116(); - else if (protocolVersion >= MC_1_15_Version) - Block.Palette = new Palette115(); - else if (protocolVersion >= MC_1_14_Version) - Block.Palette = new Palette114(); - else if (protocolVersion >= MC_1_13_Version) - Block.Palette = new Palette113(); - else - Block.Palette = new Palette112(); - - // Entity palette - if (protocolVersion > MC_1_19_4_Version && handler.GetEntityHandlingEnabled()) - throw new NotImplementedException(Translations.exception_palette_entity); - - if (protocolVersion >= MC_1_19_4_Version) - entityPalette = new EntityPalette1194(); - else if (protocolVersion >= MC_1_19_3_Version) - entityPalette = new EntityPalette1193(); - else if (protocolVersion >= MC_1_19_Version) - entityPalette = new EntityPalette119(); - else if (protocolVersion >= MC_1_17_Version) - entityPalette = new EntityPalette117(); - else if (protocolVersion >= MC_1_16_2_Version) - entityPalette = new EntityPalette1162(); - else if (protocolVersion >= MC_1_16_Version) - entityPalette = new EntityPalette1161(); - else if (protocolVersion >= MC_1_15_Version) - entityPalette = new EntityPalette115(); - else if (protocolVersion >= MC_1_14_Version) - entityPalette = new EntityPalette114(); - else if (protocolVersion >= MC_1_13_Version) - entityPalette = new EntityPalette113(); - else if (protocolVersion >= MC_1_12_Version) - entityPalette = new EntityPalette112(); - else entityPalette = new EntityPalette18(); + Block.Palette = protocolVersion switch + { + // Block palette + > MC_1_20_Version when handler.GetTerrainEnabled() => + throw new NotImplementedException(Translations.exception_palette_block), + MC_1_20_Version => new Palette120(), + MC_1_19_4_Version => new Palette1194(), + MC_1_19_3_Version => new Palette1193(), + >= MC_1_19_Version => new Palette119(), + >= MC_1_17_Version => new Palette117(), + >= MC_1_16_Version => new Palette116(), + >= MC_1_15_Version => new Palette115(), + >= MC_1_14_Version => new Palette114(), + >= MC_1_13_Version => new Palette113(), + _ => new Palette112() + }; + + entityPalette = protocolVersion switch + { + // Entity palette + > MC_1_20_Version when handler.GetEntityHandlingEnabled() => + throw new NotImplementedException(Translations.exception_palette_entity), + MC_1_20_Version => new EntityPalette120(), + MC_1_19_4_Version => new EntityPalette1194(), + MC_1_19_3_Version => new EntityPalette1193(), + >= MC_1_19_Version => new EntityPalette119(), + >= MC_1_17_Version => new EntityPalette117(), + >= MC_1_16_2_Version => new EntityPalette1162(), + >= MC_1_16_Version => new EntityPalette1161(), + >= MC_1_15_Version => new EntityPalette115(), + >= MC_1_14_Version => new EntityPalette114(), + >= MC_1_13_Version => new EntityPalette113(), + >= MC_1_12_Version => new EntityPalette112(), + _ => new EntityPalette18() + }; entityMetadataPalette = EntityMetadataPalette.GetPalette(protocolVersion); - // Item palette - if (protocolVersion > MC_1_19_4_Version && handler.GetInventoryEnabled()) - throw new NotImplementedException(Translations.exception_palette_item); - - if (protocolVersion >= MC_1_19_4_Version) - itemPalette = new ItemPalette1194(); - else if (protocolVersion >= MC_1_19_3_Version) - itemPalette = new ItemPalette1193(); - else if (protocolVersion >= MC_1_19_Version) - itemPalette = new ItemPalette119(); - else if (protocolVersion >= MC_1_18_1_Version) - itemPalette = new ItemPalette118(); - else if (protocolVersion >= MC_1_17_Version) - itemPalette = new ItemPalette117(); - else if (protocolVersion >= MC_1_16_2_Version) - itemPalette = new ItemPalette1162(); - else if (protocolVersion >= MC_1_16_1_Version) - itemPalette = new ItemPalette1161(); - else - itemPalette = new ItemPalette115(); + itemPalette = protocolVersion switch + { + // Item palette + > MC_1_20_Version when handler.GetInventoryEnabled() => + throw new NotImplementedException(Translations.exception_palette_item), + MC_1_20_Version => new ItemPalette120(), + MC_1_19_4_Version => new ItemPalette1194(), + MC_1_19_3_Version => new ItemPalette1193(), + >= MC_1_19_Version => new ItemPalette119(), + >= MC_1_18_1_Version => new ItemPalette118(), + >= MC_1_17_Version => new ItemPalette117(), + >= MC_1_16_2_Version => new ItemPalette1162(), + >= MC_1_16_1_Version => new ItemPalette1161(), + _ => new ItemPalette115() + }; // MessageType // You can find it in https://wiki.vg/Protocol#Player_Chat_Message or /net/minecraft/network/message/MessageType.java @@ -522,7 +505,10 @@ internal bool HandlePacket(int packetID, Queue packetData) dataTypes.ReadNextLocation(packetData); // Death location } } - + + if (protocolVersion >= MC_1_20_Version) + dataTypes.ReadNextVarInt(packetData); // Portal Cooldown - 1.20 and above + break; case PacketTypesIn.SpawnPainting: // Just skip, no need for this return true; @@ -880,7 +866,7 @@ internal bool HandlePacket(int packetID, Queue packetData) dataTypes.SkipNextVarInt(packetData); handler.OnPlayerKilled( - dataTypes.ReadNextInt(packetData), + protocolVersion >= MC_1_20_Version ? -1 : dataTypes.ReadNextInt(packetData), ChatParser.ParseText(dataTypes.ReadNextString(packetData)) ); @@ -1009,6 +995,9 @@ internal bool HandlePacket(int packetID, Queue packetData) } } + if (protocolVersion >= MC_1_20_Version) + dataTypes.ReadNextVarInt(packetData); // Portal Cooldown + handler.OnRespawn(); break; case PacketTypesIn.PlayerPositionAndLook: @@ -1103,6 +1092,7 @@ internal bool HandlePacket(int packetID, Queue packetData) Interlocked.Decrement(ref handler.GetWorld().chunkLoadNotCompleted); // Block Entity data: ignored + // Trust edges: ignored (Removed in 1.20) // Light data: ignored } else @@ -1359,7 +1349,10 @@ internal bool HandlePacket(int packetID, Queue packetData) int sectionX = (int)(chunkSection >> 42); int sectionY = (int)((chunkSection << 44) >> 44); int sectionZ = (int)((chunkSection << 22) >> 42); - dataTypes.ReadNextBool(packetData); // Useless boolean (Related to light update) + + if(protocolVersion < MC_1_20_Version) + dataTypes.ReadNextBool(packetData); // Useless boolean (Related to light update) + int blocksSize = dataTypes.ReadNextVarInt(packetData); for (int i = 0; i < blocksSize; i++) { @@ -2188,22 +2181,23 @@ internal bool HandlePacket(int packetID, Queue packetData) dataTypes.ReadNextMetadata(packetData, itemPalette, entityMetadataPalette); // Also make a palette for field? Will be a lot of work - int healthField; // See https://wiki.vg/Entity_metadata#Living_Entity - if (protocolVersion > MC_1_19_4_Version) - throw new NotImplementedException(Translations.exception_palette_healthfield); - else if (protocolVersion >= MC_1_17_Version) // 1.17 and above - healthField = 9; - else if (protocolVersion >= MC_1_14_Version) // 1.14 and above - healthField = 8; - else if (protocolVersion >= MC_1_10_Version) // 1.10 and above - healthField = 7; - else if (protocolVersion >= MC_1_8_Version) // 1.8 and above - healthField = 6; - else - throw new NotImplementedException(Translations.exception_palette_healthfield); + int healthField = protocolVersion switch + { + > MC_1_20_Version => throw new NotImplementedException(Translations + .exception_palette_healthfield), + // 1.17 and above + >= MC_1_17_Version => 9, + // 1.14 and above + >= MC_1_14_Version => 8, + // 1.10 and above + >= MC_1_10_Version => 7, + // 1.8 and above + >= MC_1_8_Version => 6, + _ => throw new NotImplementedException(Translations.exception_palette_healthfield) + }; - if (metadata.TryGetValue(healthField, out object? healthObj) && healthObj != null && - healthObj.GetType() == typeof(float)) + if (metadata.TryGetValue(healthField, out var healthObj) && healthObj != null && + healthObj is float) handler.OnEntityHealth(EntityID, (float)healthObj); handler.OnEntityMetadata(EntityID, metadata); @@ -2343,6 +2337,17 @@ internal bool HandlePacket(int packetID, Queue packetData) } break; + + case PacketTypesIn.OpenSignEditor: + var signLocation = dataTypes.ReadNextLocation(packetData); + var isFrontText = true; + + if (protocolVersion >= MC_1_20_Version) + isFrontText = dataTypes.ReadNextBool(packetData); + + // TODO: Use + break; + default: return false; //Ignored packet } @@ -3950,7 +3955,7 @@ public bool SendCloseWindow(int windowId) } } - public bool SendUpdateSign(Location sign, string line1, string line2, string line3, string line4) + public bool SendUpdateSign(Location sign, string line1, string line2, string line3, string line4, bool isFrontText = true) { try { @@ -3965,6 +3970,8 @@ public bool SendUpdateSign(Location sign, string line1, string line2, string lin List packet = new(); packet.AddRange(dataTypes.GetLocation(sign)); + if(protocolVersion >= MC_1_20_Version) + packet.AddRange(dataTypes.GetBool((isFrontText))); packet.AddRange(dataTypes.GetString(line1)); packet.AddRange(dataTypes.GetString(line2)); packet.AddRange(dataTypes.GetString(line3)); diff --git a/MinecraftClient/Protocol/IMinecraftCom.cs b/MinecraftClient/Protocol/IMinecraftCom.cs index e8135452fe..eb5d03ed27 100644 --- a/MinecraftClient/Protocol/IMinecraftCom.cs +++ b/MinecraftClient/Protocol/IMinecraftCom.cs @@ -220,7 +220,7 @@ public interface IMinecraftCom : IDisposable, IAutoComplete /// Location /// Block face /// Sequence ID (use for synchronization) - /// True if packet was succcessfully sent + /// True if packet was successfully sent bool SendPlayerDigging(int status, Location location, Direction face, int sequenceId); /// @@ -231,8 +231,9 @@ public interface IMinecraftCom : IDisposable, IAutoComplete /// New line 2 /// New line 3 /// New line 4 - /// True if packet was succcessfully sent - bool SendUpdateSign(Location location, string line1, string line2, string line3, string line4); + /// Are we editing the front or the back of the sign. 1.20 + + /// True if packet was successfully sent + bool SendUpdateSign(Location location, string line1, string line2, string line3, string line4, bool isFrontText = true); /// /// Update command block diff --git a/MinecraftClient/Protocol/ProtocolHandler.cs b/MinecraftClient/Protocol/ProtocolHandler.cs index 90cd938da9..c3a2853cde 100644 --- a/MinecraftClient/Protocol/ProtocolHandler.cs +++ b/MinecraftClient/Protocol/ProtocolHandler.cs @@ -134,7 +134,7 @@ public static IMinecraftCom GetProtocolHandler(TcpClient Client, int ProtocolVer 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, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762 }; + int[] supportedVersions_Protocol18 = { 4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573, 575, 578, 735, 736, 751, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763 }; if (Array.IndexOf(supportedVersions_Protocol18, ProtocolVersion) > -1) return new Protocol18Handler(Client, ProtocolVersion, Handler, forgeInfo); @@ -317,6 +317,8 @@ public static int MCVer2ProtocolVersion(string MCVersion) return 761; case "1.19.4": return 762; + case "1.20": + return 763; default: return 0; } @@ -325,7 +327,7 @@ public static int MCVer2ProtocolVersion(string MCVersion) { try { - return Int32.Parse(MCVersion, NumberStyles.Any, CultureInfo.CurrentCulture); + return int.Parse(MCVersion, NumberStyles.Any, CultureInfo.CurrentCulture); } catch { @@ -342,61 +344,62 @@ public static int MCVer2ProtocolVersion(string MCVersion) /// The 1.X.X version number, or 0.0 if could not determine protocol version public static string ProtocolVersion2MCVer(int protocol) { - switch (protocol) + return protocol switch { - case 22: return "1.0"; - case 23: return "1.1"; - case 28: return "1.2.3"; - case 29: return "1.2.5"; - case 39: return "1.3.2"; + 22 => "1.0", + 23 => "1.1", + 28 => "1.2.3", + 29 => "1.2.5", + 39 => "1.3.2", // case 47: return "1.4.2"; - case 48: return "1.4.3"; - case 49: return "1.4.5"; - case 51: return "1.4.6"; - case 60: return "1.5.1"; - case 62: return "1.5.2"; - case 72: return "1.6"; - case 73: return "1.6.1"; - case 3: return "1.7.1"; - case 4: return "1.7.2"; - case 5: return "1.7.6"; - case 47: return "1.8"; - case 107: return "1.9"; - case 108: return "1.9.1"; - case 109: return "1.9.2"; - case 110: return "1.9.3"; - case 210: return "1.10"; - case 315: return "1.11"; - case 316: return "1.11.1"; - case 335: return "1.12"; - case 338: return "1.12.1"; - case 340: return "1.12.2"; - case 393: return "1.13"; - case 401: return "1.13.1"; - case 404: return "1.13.2"; - case 477: return "1.14"; - case 480: return "1.14.1"; - case 485: return "1.14.2"; - case 490: return "1.14.3"; - case 498: return "1.14.4"; - case 573: return "1.15"; - case 575: return "1.15.1"; - case 578: return "1.15.2"; - case 735: return "1.16"; - case 736: return "1.16.1"; - case 751: return "1.16.2"; - case 753: return "1.16.3"; - case 754: return "1.16.5"; - case 755: return "1.17"; - case 756: return "1.17.1"; - case 757: return "1.18.1"; - case 758: return "1.18.2"; - case 759: return "1.19"; - case 760: return "1.19.2"; - case 761: return "1.19.3"; - case 762: return "1.19.4"; - default: return "0.0"; - } + 48 => "1.4.3", + 49 => "1.4.5", + 51 => "1.4.6", + 60 => "1.5.1", + 62 => "1.5.2", + 72 => "1.6", + 73 => "1.6.1", + 3 => "1.7.1", + 4 => "1.7.2", + 5 => "1.7.6", + 47 => "1.8", + 107 => "1.9", + 108 => "1.9.1", + 109 => "1.9.2", + 110 => "1.9.3", + 210 => "1.10", + 315 => "1.11", + 316 => "1.11.1", + 335 => "1.12", + 338 => "1.12.1", + 340 => "1.12.2", + 393 => "1.13", + 401 => "1.13.1", + 404 => "1.13.2", + 477 => "1.14", + 480 => "1.14.1", + 485 => "1.14.2", + 490 => "1.14.3", + 498 => "1.14.4", + 573 => "1.15", + 575 => "1.15.1", + 578 => "1.15.2", + 735 => "1.16", + 736 => "1.16.1", + 751 => "1.16.2", + 753 => "1.16.3", + 754 => "1.16.5", + 755 => "1.17", + 756 => "1.17.1", + 757 => "1.18.1", + 758 => "1.18.2", + 759 => "1.19", + 760 => "1.19.2", + 761 => "1.19.3", + 762 => "1.19.4", + 763 => "1.20", + _ => "0.0" + }; } ///