Add support for Minecraft 1.16.2 (#1214)

* Implement MC version 1.16.2 basic support
All packets ID update done
Tested in 1.16.2 craftbukkit server
* Implement MC 1.16.2 entity handling
New EntityPalette
* Add back protocol version checking for entity handling
Was removed during testing and forgot to add it back
* Implement inventory handling for MC 1.16+
Item ID got changed in 1.16+ so a palette is needed.
* Fix ChangeSlot command
What a joke
* Handle 1.16 new entity properties name
Convert new naming style to old style
* Revert "Handle 1.16 new entity properties name"
This reverts commit 52c7d29062.
* Update AutoAttack to use the new entity properties key
* Fix item type to ID conversion
* Sort item types by name
* Remove ZombiePigmanSpawnEgg
User ZombifiedPiglinSpawnEgg instead (new name for same item)
* Add missing 1.16.2 version strings
* Remove old ItemTypeGenerator
* Sort entity types by name
* Palette loading, instructions, NotImplemented err
Co-authored-by: ORelio <ORelio@users.noreply.github.com>
This commit is contained in:
ReinforceZwei 2020-08-17 23:08:50 +08:00 committed by GitHub
parent ee5199f760
commit 6bbb7236e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
21 changed files with 4296 additions and 988 deletions

View file

@ -83,18 +83,21 @@ namespace MinecraftClient.ChatBots
public override void OnPlayerProperty(Dictionary<string, double> prop) public override void OnPlayerProperty(Dictionary<string, double> prop)
{ {
// adjust auto attack cooldown for maximum attack damage foreach (var attackSpeedKey in new[] { "generic.attackSpeed", "minecraft:generic.attack_speed" })
if (prop.ContainsKey("generic.attackSpeed"))
{ {
if (attackSpeed != prop["generic.attackSpeed"]) // adjust auto attack cooldown for maximum attack damage
if (prop.ContainsKey(attackSpeedKey))
{
if (attackSpeed != prop[attackSpeedKey])
{ {
serverTPS = GetServerTPS(); serverTPS = GetServerTPS();
attackSpeed = prop["generic.attackSpeed"]; attackSpeed = prop[attackSpeedKey];
attackCooldownSecond = 1 / attackSpeed * (serverTPS / 20.0); // server tps will affect the cooldown attackCooldownSecond = 1 / attackSpeed * (serverTPS / 20.0); // server tps will affect the cooldown
attackCooldown = Convert.ToInt32(Math.Truncate(attackCooldownSecond / 0.1) + 1); attackCooldown = Convert.ToInt32(Math.Truncate(attackCooldownSecond / 0.1) + 1);
} }
} }
} }
}
public override void OnServerTpsUpdate(double tps) public override void OnServerTpsUpdate(double tps)
{ {

View file

@ -311,7 +311,6 @@ namespace MinecraftClient.ChatBots
// local variable for use in parsing config // local variable for use in parsing config
string section = ""; string section = "";
Dictionary<string, Recipe> recipes = new Dictionary<string, Recipe>(); Dictionary<string, Recipe> recipes = new Dictionary<string, Recipe>();
string lastRecipe = "";
foreach (string l in content) foreach (string l in content)
{ {

View file

@ -12,7 +12,7 @@ namespace MinecraftClient.Commands
public override string Run(McClient handler, string command, Dictionary<string, object> localVars) public override string Run(McClient handler, string command, Dictionary<string, object> localVars)
{ {
if (!handler.GetTerrainEnabled()) if (!handler.GetInventoryEnabled())
return "Please enable InventoryHandling in the config file first."; return "Please enable InventoryHandling in the config file first.";
if (hasArg(command)) if (hasArg(command))

View file

@ -26,14 +26,14 @@ namespace MinecraftClient.Inventory
public Dictionary<string, object> NBT; public Dictionary<string, object> NBT;
/// <summary> /// <summary>
/// Create an item with Type ID, Count and Metadata /// Create an item with ItemType, Count and Metadata
/// </summary> /// </summary>
/// <param name="ID">Item Type ID</param> /// <param name="itemType">Type of the item</param>
/// <param name="Count">Item Count</param> /// <param name="count">Item Count</param>
/// <param name="nbt">Item Metadata</param> /// <param name="nbt">Item Metadata</param>
public Item(int id, int count, Dictionary<string, object> nbt) public Item(ItemType itemType, int count, Dictionary<string, object> nbt)
{ {
this.Type = (ItemType)id; this.Type = itemType;
this.Count = count; this.Count = count;
this.NBT = nbt; this.NBT = nbt;
} }

View file

@ -0,0 +1,32 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MinecraftClient.Inventory.ItemPalettes
{
public abstract class ItemPalette
{
protected abstract Dictionary<int, ItemType> GetDict();
private readonly Dictionary<ItemType, int> DictReverse = new Dictionary<ItemType, int>();
public ItemPalette()
{
// Index reverse mappings for use in ToId()
foreach (KeyValuePair<int, ItemType> entry in GetDict())
DictReverse.Add(entry.Value, entry.Key);
}
public ItemType FromId(int id)
{
return GetDict()[id];
}
public int ToId(ItemType itemType)
{
if (itemType == ItemType.Null)
return -1;
return DictReverse[itemType];
}
}
}

View file

@ -0,0 +1,907 @@
using System;
using System.Collections.Generic;
namespace MinecraftClient.Inventory.ItemPalettes
{
/// <summary>
/// For MC 1.15.2 or below
/// Generated by ItemPaletteGenerator.cs
/// </summary>
public class ItemPalette115 : ItemPalette
{
private static Dictionary<int, ItemType> mappings = new Dictionary<int, ItemType>();
static ItemPalette115()
{
mappings[0] = ItemType.Air;
mappings[1] = ItemType.Stone;
mappings[2] = ItemType.Granite;
mappings[3] = ItemType.PolishedGranite;
mappings[4] = ItemType.Diorite;
mappings[5] = ItemType.PolishedDiorite;
mappings[6] = ItemType.Andesite;
mappings[7] = ItemType.PolishedAndesite;
mappings[8] = ItemType.GrassBlock;
mappings[9] = ItemType.Dirt;
mappings[10] = ItemType.CoarseDirt;
mappings[11] = ItemType.Podzol;
mappings[12] = ItemType.Cobblestone;
mappings[13] = ItemType.OakPlanks;
mappings[14] = ItemType.SprucePlanks;
mappings[15] = ItemType.BirchPlanks;
mappings[16] = ItemType.JunglePlanks;
mappings[17] = ItemType.AcaciaPlanks;
mappings[18] = ItemType.DarkOakPlanks;
mappings[19] = ItemType.OakSapling;
mappings[20] = ItemType.SpruceSapling;
mappings[21] = ItemType.BirchSapling;
mappings[22] = ItemType.JungleSapling;
mappings[23] = ItemType.AcaciaSapling;
mappings[24] = ItemType.DarkOakSapling;
mappings[25] = ItemType.Bedrock;
mappings[26] = ItemType.Sand;
mappings[27] = ItemType.RedSand;
mappings[28] = ItemType.Gravel;
mappings[29] = ItemType.GoldOre;
mappings[30] = ItemType.IronOre;
mappings[31] = ItemType.CoalOre;
mappings[32] = ItemType.OakLog;
mappings[33] = ItemType.SpruceLog;
mappings[34] = ItemType.BirchLog;
mappings[35] = ItemType.JungleLog;
mappings[36] = ItemType.AcaciaLog;
mappings[37] = ItemType.DarkOakLog;
mappings[38] = ItemType.StrippedOakLog;
mappings[39] = ItemType.StrippedSpruceLog;
mappings[40] = ItemType.StrippedBirchLog;
mappings[41] = ItemType.StrippedJungleLog;
mappings[42] = ItemType.StrippedAcaciaLog;
mappings[43] = ItemType.StrippedDarkOakLog;
mappings[44] = ItemType.StrippedOakWood;
mappings[45] = ItemType.StrippedSpruceWood;
mappings[46] = ItemType.StrippedBirchWood;
mappings[47] = ItemType.StrippedJungleWood;
mappings[48] = ItemType.StrippedAcaciaWood;
mappings[49] = ItemType.StrippedDarkOakWood;
mappings[50] = ItemType.OakWood;
mappings[51] = ItemType.SpruceWood;
mappings[52] = ItemType.BirchWood;
mappings[53] = ItemType.JungleWood;
mappings[54] = ItemType.AcaciaWood;
mappings[55] = ItemType.DarkOakWood;
mappings[56] = ItemType.OakLeaves;
mappings[57] = ItemType.SpruceLeaves;
mappings[58] = ItemType.BirchLeaves;
mappings[59] = ItemType.JungleLeaves;
mappings[60] = ItemType.AcaciaLeaves;
mappings[61] = ItemType.DarkOakLeaves;
mappings[62] = ItemType.Sponge;
mappings[63] = ItemType.WetSponge;
mappings[64] = ItemType.Glass;
mappings[65] = ItemType.LapisOre;
mappings[66] = ItemType.LapisBlock;
mappings[67] = ItemType.Dispenser;
mappings[68] = ItemType.Sandstone;
mappings[69] = ItemType.ChiseledSandstone;
mappings[70] = ItemType.CutSandstone;
mappings[71] = ItemType.NoteBlock;
mappings[72] = ItemType.PoweredRail;
mappings[73] = ItemType.DetectorRail;
mappings[74] = ItemType.StickyPiston;
mappings[75] = ItemType.Cobweb;
mappings[76] = ItemType.Grass;
mappings[77] = ItemType.Fern;
mappings[78] = ItemType.DeadBush;
mappings[79] = ItemType.Seagrass;
mappings[80] = ItemType.SeaPickle;
mappings[81] = ItemType.Piston;
mappings[82] = ItemType.WhiteWool;
mappings[83] = ItemType.OrangeWool;
mappings[84] = ItemType.MagentaWool;
mappings[85] = ItemType.LightBlueWool;
mappings[86] = ItemType.YellowWool;
mappings[87] = ItemType.LimeWool;
mappings[88] = ItemType.PinkWool;
mappings[89] = ItemType.GrayWool;
mappings[90] = ItemType.LightGrayWool;
mappings[91] = ItemType.CyanWool;
mappings[92] = ItemType.PurpleWool;
mappings[93] = ItemType.BlueWool;
mappings[94] = ItemType.BrownWool;
mappings[95] = ItemType.GreenWool;
mappings[96] = ItemType.RedWool;
mappings[97] = ItemType.BlackWool;
mappings[98] = ItemType.Dandelion;
mappings[99] = ItemType.Poppy;
mappings[100] = ItemType.BlueOrchid;
mappings[101] = ItemType.Allium;
mappings[102] = ItemType.AzureBluet;
mappings[103] = ItemType.RedTulip;
mappings[104] = ItemType.OrangeTulip;
mappings[105] = ItemType.WhiteTulip;
mappings[106] = ItemType.PinkTulip;
mappings[107] = ItemType.OxeyeDaisy;
mappings[108] = ItemType.Cornflower;
mappings[109] = ItemType.LilyOfTheValley;
mappings[110] = ItemType.WitherRose;
mappings[111] = ItemType.BrownMushroom;
mappings[112] = ItemType.RedMushroom;
mappings[113] = ItemType.GoldBlock;
mappings[114] = ItemType.IronBlock;
mappings[115] = ItemType.OakSlab;
mappings[116] = ItemType.SpruceSlab;
mappings[117] = ItemType.BirchSlab;
mappings[118] = ItemType.JungleSlab;
mappings[119] = ItemType.AcaciaSlab;
mappings[120] = ItemType.DarkOakSlab;
mappings[121] = ItemType.StoneSlab;
mappings[122] = ItemType.SmoothStoneSlab;
mappings[123] = ItemType.SandstoneSlab;
mappings[124] = ItemType.CutSandstoneSlab;
mappings[125] = ItemType.PetrifiedOakSlab;
mappings[126] = ItemType.CobblestoneSlab;
mappings[127] = ItemType.BrickSlab;
mappings[128] = ItemType.StoneBrickSlab;
mappings[129] = ItemType.NetherBrickSlab;
mappings[130] = ItemType.QuartzSlab;
mappings[131] = ItemType.RedSandstoneSlab;
mappings[132] = ItemType.CutRedSandstoneSlab;
mappings[133] = ItemType.PurpurSlab;
mappings[134] = ItemType.PrismarineSlab;
mappings[135] = ItemType.PrismarineBrickSlab;
mappings[136] = ItemType.DarkPrismarineSlab;
mappings[137] = ItemType.SmoothQuartz;
mappings[138] = ItemType.SmoothRedSandstone;
mappings[139] = ItemType.SmoothSandstone;
mappings[140] = ItemType.SmoothStone;
mappings[141] = ItemType.Bricks;
mappings[142] = ItemType.Tnt;
mappings[143] = ItemType.Bookshelf;
mappings[144] = ItemType.MossyCobblestone;
mappings[145] = ItemType.Obsidian;
mappings[146] = ItemType.Torch;
mappings[147] = ItemType.EndRod;
mappings[148] = ItemType.ChorusPlant;
mappings[149] = ItemType.ChorusFlower;
mappings[150] = ItemType.PurpurBlock;
mappings[151] = ItemType.PurpurPillar;
mappings[152] = ItemType.PurpurStairs;
mappings[153] = ItemType.Spawner;
mappings[154] = ItemType.OakStairs;
mappings[155] = ItemType.Chest;
mappings[156] = ItemType.DiamondOre;
mappings[157] = ItemType.DiamondBlock;
mappings[158] = ItemType.CraftingTable;
mappings[159] = ItemType.Farmland;
mappings[160] = ItemType.Furnace;
mappings[161] = ItemType.Ladder;
mappings[162] = ItemType.Rail;
mappings[163] = ItemType.CobblestoneStairs;
mappings[164] = ItemType.Lever;
mappings[165] = ItemType.StonePressurePlate;
mappings[166] = ItemType.OakPressurePlate;
mappings[167] = ItemType.SprucePressurePlate;
mappings[168] = ItemType.BirchPressurePlate;
mappings[169] = ItemType.JunglePressurePlate;
mappings[170] = ItemType.AcaciaPressurePlate;
mappings[171] = ItemType.DarkOakPressurePlate;
mappings[172] = ItemType.RedstoneOre;
mappings[173] = ItemType.RedstoneTorch;
mappings[174] = ItemType.StoneButton;
mappings[175] = ItemType.Snow;
mappings[176] = ItemType.Ice;
mappings[177] = ItemType.SnowBlock;
mappings[178] = ItemType.Cactus;
mappings[179] = ItemType.Clay;
mappings[180] = ItemType.Jukebox;
mappings[181] = ItemType.OakFence;
mappings[182] = ItemType.SpruceFence;
mappings[183] = ItemType.BirchFence;
mappings[184] = ItemType.JungleFence;
mappings[185] = ItemType.AcaciaFence;
mappings[186] = ItemType.DarkOakFence;
mappings[187] = ItemType.Pumpkin;
mappings[188] = ItemType.CarvedPumpkin;
mappings[189] = ItemType.Netherrack;
mappings[190] = ItemType.SoulSand;
mappings[191] = ItemType.Glowstone;
mappings[192] = ItemType.JackOLantern;
mappings[193] = ItemType.OakTrapdoor;
mappings[194] = ItemType.SpruceTrapdoor;
mappings[195] = ItemType.BirchTrapdoor;
mappings[196] = ItemType.JungleTrapdoor;
mappings[197] = ItemType.AcaciaTrapdoor;
mappings[198] = ItemType.DarkOakTrapdoor;
mappings[199] = ItemType.InfestedStone;
mappings[200] = ItemType.InfestedCobblestone;
mappings[201] = ItemType.InfestedStoneBricks;
mappings[202] = ItemType.InfestedMossyStoneBricks;
mappings[203] = ItemType.InfestedCrackedStoneBricks;
mappings[204] = ItemType.InfestedChiseledStoneBricks;
mappings[205] = ItemType.StoneBricks;
mappings[206] = ItemType.MossyStoneBricks;
mappings[207] = ItemType.CrackedStoneBricks;
mappings[208] = ItemType.ChiseledStoneBricks;
mappings[209] = ItemType.BrownMushroomBlock;
mappings[210] = ItemType.RedMushroomBlock;
mappings[211] = ItemType.MushroomStem;
mappings[212] = ItemType.IronBars;
mappings[213] = ItemType.GlassPane;
mappings[214] = ItemType.Melon;
mappings[215] = ItemType.Vine;
mappings[216] = ItemType.OakFenceGate;
mappings[217] = ItemType.SpruceFenceGate;
mappings[218] = ItemType.BirchFenceGate;
mappings[219] = ItemType.JungleFenceGate;
mappings[220] = ItemType.AcaciaFenceGate;
mappings[221] = ItemType.DarkOakFenceGate;
mappings[222] = ItemType.BrickStairs;
mappings[223] = ItemType.StoneBrickStairs;
mappings[224] = ItemType.Mycelium;
mappings[225] = ItemType.LilyPad;
mappings[226] = ItemType.NetherBricks;
mappings[227] = ItemType.NetherBrickFence;
mappings[228] = ItemType.NetherBrickStairs;
mappings[229] = ItemType.EnchantingTable;
mappings[230] = ItemType.EndPortalFrame;
mappings[231] = ItemType.EndStone;
mappings[232] = ItemType.EndStoneBricks;
mappings[233] = ItemType.DragonEgg;
mappings[234] = ItemType.RedstoneLamp;
mappings[235] = ItemType.SandstoneStairs;
mappings[236] = ItemType.EmeraldOre;
mappings[237] = ItemType.EnderChest;
mappings[238] = ItemType.TripwireHook;
mappings[239] = ItemType.EmeraldBlock;
mappings[240] = ItemType.SpruceStairs;
mappings[241] = ItemType.BirchStairs;
mappings[242] = ItemType.JungleStairs;
mappings[243] = ItemType.CommandBlock;
mappings[244] = ItemType.Beacon;
mappings[245] = ItemType.CobblestoneWall;
mappings[246] = ItemType.MossyCobblestoneWall;
mappings[247] = ItemType.BrickWall;
mappings[248] = ItemType.PrismarineWall;
mappings[249] = ItemType.RedSandstoneWall;
mappings[250] = ItemType.MossyStoneBrickWall;
mappings[251] = ItemType.GraniteWall;
mappings[252] = ItemType.StoneBrickWall;
mappings[253] = ItemType.NetherBrickWall;
mappings[254] = ItemType.AndesiteWall;
mappings[255] = ItemType.RedNetherBrickWall;
mappings[256] = ItemType.SandstoneWall;
mappings[257] = ItemType.EndStoneBrickWall;
mappings[258] = ItemType.DioriteWall;
mappings[259] = ItemType.OakButton;
mappings[260] = ItemType.SpruceButton;
mappings[261] = ItemType.BirchButton;
mappings[262] = ItemType.JungleButton;
mappings[263] = ItemType.AcaciaButton;
mappings[264] = ItemType.DarkOakButton;
mappings[265] = ItemType.Anvil;
mappings[266] = ItemType.ChippedAnvil;
mappings[267] = ItemType.DamagedAnvil;
mappings[268] = ItemType.TrappedChest;
mappings[269] = ItemType.LightWeightedPressurePlate;
mappings[270] = ItemType.HeavyWeightedPressurePlate;
mappings[271] = ItemType.DaylightDetector;
mappings[272] = ItemType.RedstoneBlock;
mappings[273] = ItemType.NetherQuartzOre;
mappings[274] = ItemType.Hopper;
mappings[275] = ItemType.ChiseledQuartzBlock;
mappings[276] = ItemType.QuartzBlock;
mappings[277] = ItemType.QuartzPillar;
mappings[278] = ItemType.QuartzStairs;
mappings[279] = ItemType.ActivatorRail;
mappings[280] = ItemType.Dropper;
mappings[281] = ItemType.WhiteTerracotta;
mappings[282] = ItemType.OrangeTerracotta;
mappings[283] = ItemType.MagentaTerracotta;
mappings[284] = ItemType.LightBlueTerracotta;
mappings[285] = ItemType.YellowTerracotta;
mappings[286] = ItemType.LimeTerracotta;
mappings[287] = ItemType.PinkTerracotta;
mappings[288] = ItemType.GrayTerracotta;
mappings[289] = ItemType.LightGrayTerracotta;
mappings[290] = ItemType.CyanTerracotta;
mappings[291] = ItemType.PurpleTerracotta;
mappings[292] = ItemType.BlueTerracotta;
mappings[293] = ItemType.BrownTerracotta;
mappings[294] = ItemType.GreenTerracotta;
mappings[295] = ItemType.RedTerracotta;
mappings[296] = ItemType.BlackTerracotta;
mappings[297] = ItemType.Barrier;
mappings[298] = ItemType.IronTrapdoor;
mappings[299] = ItemType.HayBlock;
mappings[300] = ItemType.WhiteCarpet;
mappings[301] = ItemType.OrangeCarpet;
mappings[302] = ItemType.MagentaCarpet;
mappings[303] = ItemType.LightBlueCarpet;
mappings[304] = ItemType.YellowCarpet;
mappings[305] = ItemType.LimeCarpet;
mappings[306] = ItemType.PinkCarpet;
mappings[307] = ItemType.GrayCarpet;
mappings[308] = ItemType.LightGrayCarpet;
mappings[309] = ItemType.CyanCarpet;
mappings[310] = ItemType.PurpleCarpet;
mappings[311] = ItemType.BlueCarpet;
mappings[312] = ItemType.BrownCarpet;
mappings[313] = ItemType.GreenCarpet;
mappings[314] = ItemType.RedCarpet;
mappings[315] = ItemType.BlackCarpet;
mappings[316] = ItemType.Terracotta;
mappings[317] = ItemType.CoalBlock;
mappings[318] = ItemType.PackedIce;
mappings[319] = ItemType.AcaciaStairs;
mappings[320] = ItemType.DarkOakStairs;
mappings[321] = ItemType.SlimeBlock;
mappings[322] = ItemType.GrassPath;
mappings[323] = ItemType.Sunflower;
mappings[324] = ItemType.Lilac;
mappings[325] = ItemType.RoseBush;
mappings[326] = ItemType.Peony;
mappings[327] = ItemType.TallGrass;
mappings[328] = ItemType.LargeFern;
mappings[329] = ItemType.WhiteStainedGlass;
mappings[330] = ItemType.OrangeStainedGlass;
mappings[331] = ItemType.MagentaStainedGlass;
mappings[332] = ItemType.LightBlueStainedGlass;
mappings[333] = ItemType.YellowStainedGlass;
mappings[334] = ItemType.LimeStainedGlass;
mappings[335] = ItemType.PinkStainedGlass;
mappings[336] = ItemType.GrayStainedGlass;
mappings[337] = ItemType.LightGrayStainedGlass;
mappings[338] = ItemType.CyanStainedGlass;
mappings[339] = ItemType.PurpleStainedGlass;
mappings[340] = ItemType.BlueStainedGlass;
mappings[341] = ItemType.BrownStainedGlass;
mappings[342] = ItemType.GreenStainedGlass;
mappings[343] = ItemType.RedStainedGlass;
mappings[344] = ItemType.BlackStainedGlass;
mappings[345] = ItemType.WhiteStainedGlassPane;
mappings[346] = ItemType.OrangeStainedGlassPane;
mappings[347] = ItemType.MagentaStainedGlassPane;
mappings[348] = ItemType.LightBlueStainedGlassPane;
mappings[349] = ItemType.YellowStainedGlassPane;
mappings[350] = ItemType.LimeStainedGlassPane;
mappings[351] = ItemType.PinkStainedGlassPane;
mappings[352] = ItemType.GrayStainedGlassPane;
mappings[353] = ItemType.LightGrayStainedGlassPane;
mappings[354] = ItemType.CyanStainedGlassPane;
mappings[355] = ItemType.PurpleStainedGlassPane;
mappings[356] = ItemType.BlueStainedGlassPane;
mappings[357] = ItemType.BrownStainedGlassPane;
mappings[358] = ItemType.GreenStainedGlassPane;
mappings[359] = ItemType.RedStainedGlassPane;
mappings[360] = ItemType.BlackStainedGlassPane;
mappings[361] = ItemType.Prismarine;
mappings[362] = ItemType.PrismarineBricks;
mappings[363] = ItemType.DarkPrismarine;
mappings[364] = ItemType.PrismarineStairs;
mappings[365] = ItemType.PrismarineBrickStairs;
mappings[366] = ItemType.DarkPrismarineStairs;
mappings[367] = ItemType.SeaLantern;
mappings[368] = ItemType.RedSandstone;
mappings[369] = ItemType.ChiseledRedSandstone;
mappings[370] = ItemType.CutRedSandstone;
mappings[371] = ItemType.RedSandstoneStairs;
mappings[372] = ItemType.RepeatingCommandBlock;
mappings[373] = ItemType.ChainCommandBlock;
mappings[374] = ItemType.MagmaBlock;
mappings[375] = ItemType.NetherWartBlock;
mappings[376] = ItemType.RedNetherBricks;
mappings[377] = ItemType.BoneBlock;
mappings[378] = ItemType.StructureVoid;
mappings[379] = ItemType.Observer;
mappings[380] = ItemType.ShulkerBox;
mappings[381] = ItemType.WhiteShulkerBox;
mappings[382] = ItemType.OrangeShulkerBox;
mappings[383] = ItemType.MagentaShulkerBox;
mappings[384] = ItemType.LightBlueShulkerBox;
mappings[385] = ItemType.YellowShulkerBox;
mappings[386] = ItemType.LimeShulkerBox;
mappings[387] = ItemType.PinkShulkerBox;
mappings[388] = ItemType.GrayShulkerBox;
mappings[389] = ItemType.LightGrayShulkerBox;
mappings[390] = ItemType.CyanShulkerBox;
mappings[391] = ItemType.PurpleShulkerBox;
mappings[392] = ItemType.BlueShulkerBox;
mappings[393] = ItemType.BrownShulkerBox;
mappings[394] = ItemType.GreenShulkerBox;
mappings[395] = ItemType.RedShulkerBox;
mappings[396] = ItemType.BlackShulkerBox;
mappings[397] = ItemType.WhiteGlazedTerracotta;
mappings[398] = ItemType.OrangeGlazedTerracotta;
mappings[399] = ItemType.MagentaGlazedTerracotta;
mappings[400] = ItemType.LightBlueGlazedTerracotta;
mappings[401] = ItemType.YellowGlazedTerracotta;
mappings[402] = ItemType.LimeGlazedTerracotta;
mappings[403] = ItemType.PinkGlazedTerracotta;
mappings[404] = ItemType.GrayGlazedTerracotta;
mappings[405] = ItemType.LightGrayGlazedTerracotta;
mappings[406] = ItemType.CyanGlazedTerracotta;
mappings[407] = ItemType.PurpleGlazedTerracotta;
mappings[408] = ItemType.BlueGlazedTerracotta;
mappings[409] = ItemType.BrownGlazedTerracotta;
mappings[410] = ItemType.GreenGlazedTerracotta;
mappings[411] = ItemType.RedGlazedTerracotta;
mappings[412] = ItemType.BlackGlazedTerracotta;
mappings[413] = ItemType.WhiteConcrete;
mappings[414] = ItemType.OrangeConcrete;
mappings[415] = ItemType.MagentaConcrete;
mappings[416] = ItemType.LightBlueConcrete;
mappings[417] = ItemType.YellowConcrete;
mappings[418] = ItemType.LimeConcrete;
mappings[419] = ItemType.PinkConcrete;
mappings[420] = ItemType.GrayConcrete;
mappings[421] = ItemType.LightGrayConcrete;
mappings[422] = ItemType.CyanConcrete;
mappings[423] = ItemType.PurpleConcrete;
mappings[424] = ItemType.BlueConcrete;
mappings[425] = ItemType.BrownConcrete;
mappings[426] = ItemType.GreenConcrete;
mappings[427] = ItemType.RedConcrete;
mappings[428] = ItemType.BlackConcrete;
mappings[429] = ItemType.WhiteConcretePowder;
mappings[430] = ItemType.OrangeConcretePowder;
mappings[431] = ItemType.MagentaConcretePowder;
mappings[432] = ItemType.LightBlueConcretePowder;
mappings[433] = ItemType.YellowConcretePowder;
mappings[434] = ItemType.LimeConcretePowder;
mappings[435] = ItemType.PinkConcretePowder;
mappings[436] = ItemType.GrayConcretePowder;
mappings[437] = ItemType.LightGrayConcretePowder;
mappings[438] = ItemType.CyanConcretePowder;
mappings[439] = ItemType.PurpleConcretePowder;
mappings[440] = ItemType.BlueConcretePowder;
mappings[441] = ItemType.BrownConcretePowder;
mappings[442] = ItemType.GreenConcretePowder;
mappings[443] = ItemType.RedConcretePowder;
mappings[444] = ItemType.BlackConcretePowder;
mappings[445] = ItemType.TurtleEgg;
mappings[446] = ItemType.DeadTubeCoralBlock;
mappings[447] = ItemType.DeadBrainCoralBlock;
mappings[448] = ItemType.DeadBubbleCoralBlock;
mappings[449] = ItemType.DeadFireCoralBlock;
mappings[450] = ItemType.DeadHornCoralBlock;
mappings[451] = ItemType.TubeCoralBlock;
mappings[452] = ItemType.BrainCoralBlock;
mappings[453] = ItemType.BubbleCoralBlock;
mappings[454] = ItemType.FireCoralBlock;
mappings[455] = ItemType.HornCoralBlock;
mappings[456] = ItemType.TubeCoral;
mappings[457] = ItemType.BrainCoral;
mappings[458] = ItemType.BubbleCoral;
mappings[459] = ItemType.FireCoral;
mappings[460] = ItemType.HornCoral;
mappings[461] = ItemType.DeadBrainCoral;
mappings[462] = ItemType.DeadBubbleCoral;
mappings[463] = ItemType.DeadFireCoral;
mappings[464] = ItemType.DeadHornCoral;
mappings[465] = ItemType.DeadTubeCoral;
mappings[466] = ItemType.TubeCoralFan;
mappings[467] = ItemType.BrainCoralFan;
mappings[468] = ItemType.BubbleCoralFan;
mappings[469] = ItemType.FireCoralFan;
mappings[470] = ItemType.HornCoralFan;
mappings[471] = ItemType.DeadTubeCoralFan;
mappings[472] = ItemType.DeadBrainCoralFan;
mappings[473] = ItemType.DeadBubbleCoralFan;
mappings[474] = ItemType.DeadFireCoralFan;
mappings[475] = ItemType.DeadHornCoralFan;
mappings[476] = ItemType.BlueIce;
mappings[477] = ItemType.Conduit;
mappings[478] = ItemType.PolishedGraniteStairs;
mappings[479] = ItemType.SmoothRedSandstoneStairs;
mappings[480] = ItemType.MossyStoneBrickStairs;
mappings[481] = ItemType.PolishedDioriteStairs;
mappings[482] = ItemType.MossyCobblestoneStairs;
mappings[483] = ItemType.EndStoneBrickStairs;
mappings[484] = ItemType.StoneStairs;
mappings[485] = ItemType.SmoothSandstoneStairs;
mappings[486] = ItemType.SmoothQuartzStairs;
mappings[487] = ItemType.GraniteStairs;
mappings[488] = ItemType.AndesiteStairs;
mappings[489] = ItemType.RedNetherBrickStairs;
mappings[490] = ItemType.PolishedAndesiteStairs;
mappings[491] = ItemType.DioriteStairs;
mappings[492] = ItemType.PolishedGraniteSlab;
mappings[493] = ItemType.SmoothRedSandstoneSlab;
mappings[494] = ItemType.MossyStoneBrickSlab;
mappings[495] = ItemType.PolishedDioriteSlab;
mappings[496] = ItemType.MossyCobblestoneSlab;
mappings[497] = ItemType.EndStoneBrickSlab;
mappings[498] = ItemType.SmoothSandstoneSlab;
mappings[499] = ItemType.SmoothQuartzSlab;
mappings[500] = ItemType.GraniteSlab;
mappings[501] = ItemType.AndesiteSlab;
mappings[502] = ItemType.RedNetherBrickSlab;
mappings[503] = ItemType.PolishedAndesiteSlab;
mappings[504] = ItemType.DioriteSlab;
mappings[505] = ItemType.Scaffolding;
mappings[506] = ItemType.IronDoor;
mappings[507] = ItemType.OakDoor;
mappings[508] = ItemType.SpruceDoor;
mappings[509] = ItemType.BirchDoor;
mappings[510] = ItemType.JungleDoor;
mappings[511] = ItemType.AcaciaDoor;
mappings[512] = ItemType.DarkOakDoor;
mappings[513] = ItemType.Repeater;
mappings[514] = ItemType.Comparator;
mappings[515] = ItemType.StructureBlock;
mappings[516] = ItemType.Jigsaw;
mappings[517] = ItemType.Composter;
mappings[518] = ItemType.TurtleHelmet;
mappings[519] = ItemType.Scute;
mappings[520] = ItemType.IronShovel;
mappings[521] = ItemType.IronPickaxe;
mappings[522] = ItemType.IronAxe;
mappings[523] = ItemType.FlintAndSteel;
mappings[524] = ItemType.Apple;
mappings[525] = ItemType.Bow;
mappings[526] = ItemType.Arrow;
mappings[527] = ItemType.Coal;
mappings[528] = ItemType.Charcoal;
mappings[529] = ItemType.Diamond;
mappings[530] = ItemType.IronIngot;
mappings[531] = ItemType.GoldIngot;
mappings[532] = ItemType.IronSword;
mappings[533] = ItemType.WoodenSword;
mappings[534] = ItemType.WoodenShovel;
mappings[535] = ItemType.WoodenPickaxe;
mappings[536] = ItemType.WoodenAxe;
mappings[537] = ItemType.StoneSword;
mappings[538] = ItemType.StoneShovel;
mappings[539] = ItemType.StonePickaxe;
mappings[540] = ItemType.StoneAxe;
mappings[541] = ItemType.DiamondSword;
mappings[542] = ItemType.DiamondShovel;
mappings[543] = ItemType.DiamondPickaxe;
mappings[544] = ItemType.DiamondAxe;
mappings[545] = ItemType.Stick;
mappings[546] = ItemType.Bowl;
mappings[547] = ItemType.MushroomStew;
mappings[548] = ItemType.GoldenSword;
mappings[549] = ItemType.GoldenShovel;
mappings[550] = ItemType.GoldenPickaxe;
mappings[551] = ItemType.GoldenAxe;
mappings[552] = ItemType.String;
mappings[553] = ItemType.Feather;
mappings[554] = ItemType.Gunpowder;
mappings[555] = ItemType.WoodenHoe;
mappings[556] = ItemType.StoneHoe;
mappings[557] = ItemType.IronHoe;
mappings[558] = ItemType.DiamondHoe;
mappings[559] = ItemType.GoldenHoe;
mappings[560] = ItemType.WheatSeeds;
mappings[561] = ItemType.Wheat;
mappings[562] = ItemType.Bread;
mappings[563] = ItemType.LeatherHelmet;
mappings[564] = ItemType.LeatherChestplate;
mappings[565] = ItemType.LeatherLeggings;
mappings[566] = ItemType.LeatherBoots;
mappings[567] = ItemType.ChainmailHelmet;
mappings[568] = ItemType.ChainmailChestplate;
mappings[569] = ItemType.ChainmailLeggings;
mappings[570] = ItemType.ChainmailBoots;
mappings[571] = ItemType.IronHelmet;
mappings[572] = ItemType.IronChestplate;
mappings[573] = ItemType.IronLeggings;
mappings[574] = ItemType.IronBoots;
mappings[575] = ItemType.DiamondHelmet;
mappings[576] = ItemType.DiamondChestplate;
mappings[577] = ItemType.DiamondLeggings;
mappings[578] = ItemType.DiamondBoots;
mappings[579] = ItemType.GoldenHelmet;
mappings[580] = ItemType.GoldenChestplate;
mappings[581] = ItemType.GoldenLeggings;
mappings[582] = ItemType.GoldenBoots;
mappings[583] = ItemType.Flint;
mappings[584] = ItemType.Porkchop;
mappings[585] = ItemType.CookedPorkchop;
mappings[586] = ItemType.Painting;
mappings[587] = ItemType.GoldenApple;
mappings[588] = ItemType.EnchantedGoldenApple;
mappings[589] = ItemType.OakSign;
mappings[590] = ItemType.SpruceSign;
mappings[591] = ItemType.BirchSign;
mappings[592] = ItemType.JungleSign;
mappings[593] = ItemType.AcaciaSign;
mappings[594] = ItemType.DarkOakSign;
mappings[595] = ItemType.Bucket;
mappings[596] = ItemType.WaterBucket;
mappings[597] = ItemType.LavaBucket;
mappings[598] = ItemType.Minecart;
mappings[599] = ItemType.Saddle;
mappings[600] = ItemType.Redstone;
mappings[601] = ItemType.Snowball;
mappings[602] = ItemType.OakBoat;
mappings[603] = ItemType.Leather;
mappings[604] = ItemType.MilkBucket;
mappings[605] = ItemType.PufferfishBucket;
mappings[606] = ItemType.SalmonBucket;
mappings[607] = ItemType.CodBucket;
mappings[608] = ItemType.TropicalFishBucket;
mappings[609] = ItemType.Brick;
mappings[610] = ItemType.ClayBall;
mappings[611] = ItemType.SugarCane;
mappings[612] = ItemType.Kelp;
mappings[613] = ItemType.DriedKelpBlock;
mappings[614] = ItemType.Bamboo;
mappings[615] = ItemType.Paper;
mappings[616] = ItemType.Book;
mappings[617] = ItemType.SlimeBall;
mappings[618] = ItemType.ChestMinecart;
mappings[619] = ItemType.FurnaceMinecart;
mappings[620] = ItemType.Egg;
mappings[621] = ItemType.Compass;
mappings[622] = ItemType.FishingRod;
mappings[623] = ItemType.Clock;
mappings[624] = ItemType.GlowstoneDust;
mappings[625] = ItemType.Cod;
mappings[626] = ItemType.Salmon;
mappings[627] = ItemType.TropicalFish;
mappings[628] = ItemType.Pufferfish;
mappings[629] = ItemType.CookedCod;
mappings[630] = ItemType.CookedSalmon;
mappings[631] = ItemType.InkSac;
mappings[632] = ItemType.RedDye;
mappings[633] = ItemType.GreenDye;
mappings[634] = ItemType.CocoaBeans;
mappings[635] = ItemType.LapisLazuli;
mappings[636] = ItemType.PurpleDye;
mappings[637] = ItemType.CyanDye;
mappings[638] = ItemType.LightGrayDye;
mappings[639] = ItemType.GrayDye;
mappings[640] = ItemType.PinkDye;
mappings[641] = ItemType.LimeDye;
mappings[642] = ItemType.YellowDye;
mappings[643] = ItemType.LightBlueDye;
mappings[644] = ItemType.MagentaDye;
mappings[645] = ItemType.OrangeDye;
mappings[646] = ItemType.BoneMeal;
mappings[647] = ItemType.BlueDye;
mappings[648] = ItemType.BrownDye;
mappings[649] = ItemType.BlackDye;
mappings[650] = ItemType.WhiteDye;
mappings[651] = ItemType.Bone;
mappings[652] = ItemType.Sugar;
mappings[653] = ItemType.Cake;
mappings[654] = ItemType.WhiteBed;
mappings[655] = ItemType.OrangeBed;
mappings[656] = ItemType.MagentaBed;
mappings[657] = ItemType.LightBlueBed;
mappings[658] = ItemType.YellowBed;
mappings[659] = ItemType.LimeBed;
mappings[660] = ItemType.PinkBed;
mappings[661] = ItemType.GrayBed;
mappings[662] = ItemType.LightGrayBed;
mappings[663] = ItemType.CyanBed;
mappings[664] = ItemType.PurpleBed;
mappings[665] = ItemType.BlueBed;
mappings[666] = ItemType.BrownBed;
mappings[667] = ItemType.GreenBed;
mappings[668] = ItemType.RedBed;
mappings[669] = ItemType.BlackBed;
mappings[670] = ItemType.Cookie;
mappings[671] = ItemType.FilledMap;
mappings[672] = ItemType.Shears;
mappings[673] = ItemType.MelonSlice;
mappings[674] = ItemType.DriedKelp;
mappings[675] = ItemType.PumpkinSeeds;
mappings[676] = ItemType.MelonSeeds;
mappings[677] = ItemType.Beef;
mappings[678] = ItemType.CookedBeef;
mappings[679] = ItemType.Chicken;
mappings[680] = ItemType.CookedChicken;
mappings[681] = ItemType.RottenFlesh;
mappings[682] = ItemType.EnderPearl;
mappings[683] = ItemType.BlazeRod;
mappings[684] = ItemType.GhastTear;
mappings[685] = ItemType.GoldNugget;
mappings[686] = ItemType.NetherWart;
mappings[687] = ItemType.Potion;
mappings[688] = ItemType.GlassBottle;
mappings[689] = ItemType.SpiderEye;
mappings[690] = ItemType.FermentedSpiderEye;
mappings[691] = ItemType.BlazePowder;
mappings[692] = ItemType.MagmaCream;
mappings[693] = ItemType.BrewingStand;
mappings[694] = ItemType.Cauldron;
mappings[695] = ItemType.EnderEye;
mappings[696] = ItemType.GlisteringMelonSlice;
mappings[697] = ItemType.BatSpawnEgg;
mappings[698] = ItemType.BeeSpawnEgg;
mappings[699] = ItemType.BlazeSpawnEgg;
mappings[700] = ItemType.CatSpawnEgg;
mappings[701] = ItemType.CaveSpiderSpawnEgg;
mappings[702] = ItemType.ChickenSpawnEgg;
mappings[703] = ItemType.CodSpawnEgg;
mappings[704] = ItemType.CowSpawnEgg;
mappings[705] = ItemType.CreeperSpawnEgg;
mappings[706] = ItemType.DolphinSpawnEgg;
mappings[707] = ItemType.DonkeySpawnEgg;
mappings[708] = ItemType.DrownedSpawnEgg;
mappings[709] = ItemType.ElderGuardianSpawnEgg;
mappings[710] = ItemType.EndermanSpawnEgg;
mappings[711] = ItemType.EndermiteSpawnEgg;
mappings[712] = ItemType.EvokerSpawnEgg;
mappings[713] = ItemType.FoxSpawnEgg;
mappings[714] = ItemType.GhastSpawnEgg;
mappings[715] = ItemType.GuardianSpawnEgg;
mappings[716] = ItemType.HorseSpawnEgg;
mappings[717] = ItemType.HuskSpawnEgg;
mappings[718] = ItemType.LlamaSpawnEgg;
mappings[719] = ItemType.MagmaCubeSpawnEgg;
mappings[720] = ItemType.MooshroomSpawnEgg;
mappings[721] = ItemType.MuleSpawnEgg;
mappings[722] = ItemType.OcelotSpawnEgg;
mappings[723] = ItemType.PandaSpawnEgg;
mappings[724] = ItemType.ParrotSpawnEgg;
mappings[725] = ItemType.PhantomSpawnEgg;
mappings[726] = ItemType.PigSpawnEgg;
mappings[727] = ItemType.PillagerSpawnEgg;
mappings[728] = ItemType.PolarBearSpawnEgg;
mappings[729] = ItemType.PufferfishSpawnEgg;
mappings[730] = ItemType.RabbitSpawnEgg;
mappings[731] = ItemType.RavagerSpawnEgg;
mappings[732] = ItemType.SalmonSpawnEgg;
mappings[733] = ItemType.SheepSpawnEgg;
mappings[734] = ItemType.ShulkerSpawnEgg;
mappings[735] = ItemType.SilverfishSpawnEgg;
mappings[736] = ItemType.SkeletonSpawnEgg;
mappings[737] = ItemType.SkeletonHorseSpawnEgg;
mappings[738] = ItemType.SlimeSpawnEgg;
mappings[739] = ItemType.SpiderSpawnEgg;
mappings[740] = ItemType.SquidSpawnEgg;
mappings[741] = ItemType.StraySpawnEgg;
mappings[742] = ItemType.TraderLlamaSpawnEgg;
mappings[743] = ItemType.TropicalFishSpawnEgg;
mappings[744] = ItemType.TurtleSpawnEgg;
mappings[745] = ItemType.VexSpawnEgg;
mappings[746] = ItemType.VillagerSpawnEgg;
mappings[747] = ItemType.VindicatorSpawnEgg;
mappings[748] = ItemType.WanderingTraderSpawnEgg;
mappings[749] = ItemType.WitchSpawnEgg;
mappings[750] = ItemType.WitherSkeletonSpawnEgg;
mappings[751] = ItemType.WolfSpawnEgg;
mappings[752] = ItemType.ZombieSpawnEgg;
mappings[753] = ItemType.ZombieHorseSpawnEgg;
mappings[754] = ItemType.ZombifiedPiglinSpawnEgg;
mappings[755] = ItemType.ZombieVillagerSpawnEgg;
mappings[756] = ItemType.ExperienceBottle;
mappings[757] = ItemType.FireCharge;
mappings[758] = ItemType.WritableBook;
mappings[759] = ItemType.WrittenBook;
mappings[760] = ItemType.Emerald;
mappings[761] = ItemType.ItemFrame;
mappings[762] = ItemType.FlowerPot;
mappings[763] = ItemType.Carrot;
mappings[764] = ItemType.Potato;
mappings[765] = ItemType.BakedPotato;
mappings[766] = ItemType.PoisonousPotato;
mappings[767] = ItemType.Map;
mappings[768] = ItemType.GoldenCarrot;
mappings[769] = ItemType.SkeletonSkull;
mappings[770] = ItemType.WitherSkeletonSkull;
mappings[771] = ItemType.PlayerHead;
mappings[772] = ItemType.ZombieHead;
mappings[773] = ItemType.CreeperHead;
mappings[774] = ItemType.DragonHead;
mappings[775] = ItemType.CarrotOnAStick;
mappings[776] = ItemType.NetherStar;
mappings[777] = ItemType.PumpkinPie;
mappings[778] = ItemType.FireworkRocket;
mappings[779] = ItemType.FireworkStar;
mappings[780] = ItemType.EnchantedBook;
mappings[781] = ItemType.NetherBrick;
mappings[782] = ItemType.Quartz;
mappings[783] = ItemType.TntMinecart;
mappings[784] = ItemType.HopperMinecart;
mappings[785] = ItemType.PrismarineShard;
mappings[786] = ItemType.PrismarineCrystals;
mappings[787] = ItemType.Rabbit;
mappings[788] = ItemType.CookedRabbit;
mappings[789] = ItemType.RabbitStew;
mappings[790] = ItemType.RabbitFoot;
mappings[791] = ItemType.RabbitHide;
mappings[792] = ItemType.ArmorStand;
mappings[793] = ItemType.IronHorseArmor;
mappings[794] = ItemType.GoldenHorseArmor;
mappings[795] = ItemType.DiamondHorseArmor;
mappings[796] = ItemType.LeatherHorseArmor;
mappings[797] = ItemType.Lead;
mappings[798] = ItemType.NameTag;
mappings[799] = ItemType.CommandBlockMinecart;
mappings[800] = ItemType.Mutton;
mappings[801] = ItemType.CookedMutton;
mappings[802] = ItemType.WhiteBanner;
mappings[803] = ItemType.OrangeBanner;
mappings[804] = ItemType.MagentaBanner;
mappings[805] = ItemType.LightBlueBanner;
mappings[806] = ItemType.YellowBanner;
mappings[807] = ItemType.LimeBanner;
mappings[808] = ItemType.PinkBanner;
mappings[809] = ItemType.GrayBanner;
mappings[810] = ItemType.LightGrayBanner;
mappings[811] = ItemType.CyanBanner;
mappings[812] = ItemType.PurpleBanner;
mappings[813] = ItemType.BlueBanner;
mappings[814] = ItemType.BrownBanner;
mappings[815] = ItemType.GreenBanner;
mappings[816] = ItemType.RedBanner;
mappings[817] = ItemType.BlackBanner;
mappings[818] = ItemType.EndCrystal;
mappings[819] = ItemType.ChorusFruit;
mappings[820] = ItemType.PoppedChorusFruit;
mappings[821] = ItemType.Beetroot;
mappings[822] = ItemType.BeetrootSeeds;
mappings[823] = ItemType.BeetrootSoup;
mappings[824] = ItemType.DragonBreath;
mappings[825] = ItemType.SplashPotion;
mappings[826] = ItemType.SpectralArrow;
mappings[827] = ItemType.TippedArrow;
mappings[828] = ItemType.LingeringPotion;
mappings[829] = ItemType.Shield;
mappings[830] = ItemType.Elytra;
mappings[831] = ItemType.SpruceBoat;
mappings[832] = ItemType.BirchBoat;
mappings[833] = ItemType.JungleBoat;
mappings[834] = ItemType.AcaciaBoat;
mappings[835] = ItemType.DarkOakBoat;
mappings[836] = ItemType.TotemOfUndying;
mappings[837] = ItemType.ShulkerShell;
mappings[838] = ItemType.IronNugget;
mappings[839] = ItemType.KnowledgeBook;
mappings[840] = ItemType.DebugStick;
mappings[841] = ItemType.MusicDisc13;
mappings[842] = ItemType.MusicDiscCat;
mappings[843] = ItemType.MusicDiscBlocks;
mappings[844] = ItemType.MusicDiscChirp;
mappings[845] = ItemType.MusicDiscFar;
mappings[846] = ItemType.MusicDiscMall;
mappings[847] = ItemType.MusicDiscMellohi;
mappings[848] = ItemType.MusicDiscStal;
mappings[849] = ItemType.MusicDiscStrad;
mappings[850] = ItemType.MusicDiscWard;
mappings[851] = ItemType.MusicDisc11;
mappings[852] = ItemType.MusicDiscWait;
mappings[853] = ItemType.Trident;
mappings[854] = ItemType.PhantomMembrane;
mappings[855] = ItemType.NautilusShell;
mappings[856] = ItemType.HeartOfTheSea;
mappings[857] = ItemType.Crossbow;
mappings[858] = ItemType.SuspiciousStew;
mappings[859] = ItemType.Loom;
mappings[860] = ItemType.FlowerBannerPattern;
mappings[861] = ItemType.CreeperBannerPattern;
mappings[862] = ItemType.SkullBannerPattern;
mappings[863] = ItemType.MojangBannerPattern;
mappings[864] = ItemType.GlobeBannerPattern;
mappings[865] = ItemType.Barrel;
mappings[866] = ItemType.Smoker;
mappings[867] = ItemType.BlastFurnace;
mappings[868] = ItemType.CartographyTable;
mappings[869] = ItemType.FletchingTable;
mappings[870] = ItemType.Grindstone;
mappings[871] = ItemType.Lectern;
mappings[872] = ItemType.SmithingTable;
mappings[873] = ItemType.Stonecutter;
mappings[874] = ItemType.Bell;
mappings[875] = ItemType.Lantern;
mappings[876] = ItemType.SweetBerries;
mappings[877] = ItemType.Campfire;
mappings[878] = ItemType.Honeycomb;
mappings[879] = ItemType.BeeNest;
mappings[880] = ItemType.Beehive;
mappings[881] = ItemType.HoneyBottle;
mappings[882] = ItemType.HoneyBlock;
mappings[883] = ItemType.HoneycombBlock;
}
protected override Dictionary<int, ItemType> GetDict()
{
return mappings;
}
}
}

View file

@ -0,0 +1,998 @@
using System;
using System.Collections.Generic;
namespace MinecraftClient.Inventory.ItemPalettes
{
/// <summary>
/// For MC 1.16 - 1.16.1
/// Generated by ItemPaletteGenerator.cs
/// </summary>
public class ItemPalette1161 : ItemPalette
{
private static Dictionary<int, ItemType> mappings = new Dictionary<int, ItemType>();
static ItemPalette1161()
{
mappings[0] = ItemType.Air;
mappings[1] = ItemType.Stone;
mappings[2] = ItemType.Granite;
mappings[3] = ItemType.PolishedGranite;
mappings[4] = ItemType.Diorite;
mappings[5] = ItemType.PolishedDiorite;
mappings[6] = ItemType.Andesite;
mappings[7] = ItemType.PolishedAndesite;
mappings[8] = ItemType.GrassBlock;
mappings[9] = ItemType.Dirt;
mappings[10] = ItemType.CoarseDirt;
mappings[11] = ItemType.Podzol;
mappings[12] = ItemType.CrimsonNylium;
mappings[13] = ItemType.WarpedNylium;
mappings[14] = ItemType.Cobblestone;
mappings[15] = ItemType.OakPlanks;
mappings[16] = ItemType.SprucePlanks;
mappings[17] = ItemType.BirchPlanks;
mappings[18] = ItemType.JunglePlanks;
mappings[19] = ItemType.AcaciaPlanks;
mappings[20] = ItemType.DarkOakPlanks;
mappings[21] = ItemType.CrimsonPlanks;
mappings[22] = ItemType.WarpedPlanks;
mappings[23] = ItemType.OakSapling;
mappings[24] = ItemType.SpruceSapling;
mappings[25] = ItemType.BirchSapling;
mappings[26] = ItemType.JungleSapling;
mappings[27] = ItemType.AcaciaSapling;
mappings[28] = ItemType.DarkOakSapling;
mappings[29] = ItemType.Bedrock;
mappings[30] = ItemType.Sand;
mappings[31] = ItemType.RedSand;
mappings[32] = ItemType.Gravel;
mappings[33] = ItemType.GoldOre;
mappings[34] = ItemType.IronOre;
mappings[35] = ItemType.CoalOre;
mappings[36] = ItemType.NetherGoldOre;
mappings[37] = ItemType.OakLog;
mappings[38] = ItemType.SpruceLog;
mappings[39] = ItemType.BirchLog;
mappings[40] = ItemType.JungleLog;
mappings[41] = ItemType.AcaciaLog;
mappings[42] = ItemType.DarkOakLog;
mappings[43] = ItemType.CrimsonStem;
mappings[44] = ItemType.WarpedStem;
mappings[45] = ItemType.StrippedOakLog;
mappings[46] = ItemType.StrippedSpruceLog;
mappings[47] = ItemType.StrippedBirchLog;
mappings[48] = ItemType.StrippedJungleLog;
mappings[49] = ItemType.StrippedAcaciaLog;
mappings[50] = ItemType.StrippedDarkOakLog;
mappings[51] = ItemType.StrippedCrimsonStem;
mappings[52] = ItemType.StrippedWarpedStem;
mappings[53] = ItemType.StrippedOakWood;
mappings[54] = ItemType.StrippedSpruceWood;
mappings[55] = ItemType.StrippedBirchWood;
mappings[56] = ItemType.StrippedJungleWood;
mappings[57] = ItemType.StrippedAcaciaWood;
mappings[58] = ItemType.StrippedDarkOakWood;
mappings[59] = ItemType.StrippedCrimsonHyphae;
mappings[60] = ItemType.StrippedWarpedHyphae;
mappings[61] = ItemType.OakWood;
mappings[62] = ItemType.SpruceWood;
mappings[63] = ItemType.BirchWood;
mappings[64] = ItemType.JungleWood;
mappings[65] = ItemType.AcaciaWood;
mappings[66] = ItemType.DarkOakWood;
mappings[67] = ItemType.CrimsonHyphae;
mappings[68] = ItemType.WarpedHyphae;
mappings[69] = ItemType.OakLeaves;
mappings[70] = ItemType.SpruceLeaves;
mappings[71] = ItemType.BirchLeaves;
mappings[72] = ItemType.JungleLeaves;
mappings[73] = ItemType.AcaciaLeaves;
mappings[74] = ItemType.DarkOakLeaves;
mappings[75] = ItemType.Sponge;
mappings[76] = ItemType.WetSponge;
mappings[77] = ItemType.Glass;
mappings[78] = ItemType.LapisOre;
mappings[79] = ItemType.LapisBlock;
mappings[80] = ItemType.Dispenser;
mappings[81] = ItemType.Sandstone;
mappings[82] = ItemType.ChiseledSandstone;
mappings[83] = ItemType.CutSandstone;
mappings[84] = ItemType.NoteBlock;
mappings[85] = ItemType.PoweredRail;
mappings[86] = ItemType.DetectorRail;
mappings[87] = ItemType.StickyPiston;
mappings[88] = ItemType.Cobweb;
mappings[89] = ItemType.Grass;
mappings[90] = ItemType.Fern;
mappings[91] = ItemType.DeadBush;
mappings[92] = ItemType.Seagrass;
mappings[93] = ItemType.SeaPickle;
mappings[94] = ItemType.Piston;
mappings[95] = ItemType.WhiteWool;
mappings[96] = ItemType.OrangeWool;
mappings[97] = ItemType.MagentaWool;
mappings[98] = ItemType.LightBlueWool;
mappings[99] = ItemType.YellowWool;
mappings[100] = ItemType.LimeWool;
mappings[101] = ItemType.PinkWool;
mappings[102] = ItemType.GrayWool;
mappings[103] = ItemType.LightGrayWool;
mappings[104] = ItemType.CyanWool;
mappings[105] = ItemType.PurpleWool;
mappings[106] = ItemType.BlueWool;
mappings[107] = ItemType.BrownWool;
mappings[108] = ItemType.GreenWool;
mappings[109] = ItemType.RedWool;
mappings[110] = ItemType.BlackWool;
mappings[111] = ItemType.Dandelion;
mappings[112] = ItemType.Poppy;
mappings[113] = ItemType.BlueOrchid;
mappings[114] = ItemType.Allium;
mappings[115] = ItemType.AzureBluet;
mappings[116] = ItemType.RedTulip;
mappings[117] = ItemType.OrangeTulip;
mappings[118] = ItemType.WhiteTulip;
mappings[119] = ItemType.PinkTulip;
mappings[120] = ItemType.OxeyeDaisy;
mappings[121] = ItemType.Cornflower;
mappings[122] = ItemType.LilyOfTheValley;
mappings[123] = ItemType.WitherRose;
mappings[124] = ItemType.BrownMushroom;
mappings[125] = ItemType.RedMushroom;
mappings[126] = ItemType.CrimsonFungus;
mappings[127] = ItemType.WarpedFungus;
mappings[128] = ItemType.CrimsonRoots;
mappings[129] = ItemType.WarpedRoots;
mappings[130] = ItemType.NetherSprouts;
mappings[131] = ItemType.WeepingVines;
mappings[132] = ItemType.TwistingVines;
mappings[133] = ItemType.SugarCane;
mappings[134] = ItemType.Kelp;
mappings[135] = ItemType.Bamboo;
mappings[136] = ItemType.GoldBlock;
mappings[137] = ItemType.IronBlock;
mappings[138] = ItemType.OakSlab;
mappings[139] = ItemType.SpruceSlab;
mappings[140] = ItemType.BirchSlab;
mappings[141] = ItemType.JungleSlab;
mappings[142] = ItemType.AcaciaSlab;
mappings[143] = ItemType.DarkOakSlab;
mappings[144] = ItemType.CrimsonSlab;
mappings[145] = ItemType.WarpedSlab;
mappings[146] = ItemType.StoneSlab;
mappings[147] = ItemType.SmoothStoneSlab;
mappings[148] = ItemType.SandstoneSlab;
mappings[149] = ItemType.CutSandstoneSlab;
mappings[150] = ItemType.PetrifiedOakSlab;
mappings[151] = ItemType.CobblestoneSlab;
mappings[152] = ItemType.BrickSlab;
mappings[153] = ItemType.StoneBrickSlab;
mappings[154] = ItemType.NetherBrickSlab;
mappings[155] = ItemType.QuartzSlab;
mappings[156] = ItemType.RedSandstoneSlab;
mappings[157] = ItemType.CutRedSandstoneSlab;
mappings[158] = ItemType.PurpurSlab;
mappings[159] = ItemType.PrismarineSlab;
mappings[160] = ItemType.PrismarineBrickSlab;
mappings[161] = ItemType.DarkPrismarineSlab;
mappings[162] = ItemType.SmoothQuartz;
mappings[163] = ItemType.SmoothRedSandstone;
mappings[164] = ItemType.SmoothSandstone;
mappings[165] = ItemType.SmoothStone;
mappings[166] = ItemType.Bricks;
mappings[167] = ItemType.Tnt;
mappings[168] = ItemType.Bookshelf;
mappings[169] = ItemType.MossyCobblestone;
mappings[170] = ItemType.Obsidian;
mappings[171] = ItemType.Torch;
mappings[172] = ItemType.EndRod;
mappings[173] = ItemType.ChorusPlant;
mappings[174] = ItemType.ChorusFlower;
mappings[175] = ItemType.PurpurBlock;
mappings[176] = ItemType.PurpurPillar;
mappings[177] = ItemType.PurpurStairs;
mappings[178] = ItemType.Spawner;
mappings[179] = ItemType.OakStairs;
mappings[180] = ItemType.Chest;
mappings[181] = ItemType.DiamondOre;
mappings[182] = ItemType.DiamondBlock;
mappings[183] = ItemType.CraftingTable;
mappings[184] = ItemType.Farmland;
mappings[185] = ItemType.Furnace;
mappings[186] = ItemType.Ladder;
mappings[187] = ItemType.Rail;
mappings[188] = ItemType.CobblestoneStairs;
mappings[189] = ItemType.Lever;
mappings[190] = ItemType.StonePressurePlate;
mappings[191] = ItemType.OakPressurePlate;
mappings[192] = ItemType.SprucePressurePlate;
mappings[193] = ItemType.BirchPressurePlate;
mappings[194] = ItemType.JunglePressurePlate;
mappings[195] = ItemType.AcaciaPressurePlate;
mappings[196] = ItemType.DarkOakPressurePlate;
mappings[197] = ItemType.CrimsonPressurePlate;
mappings[198] = ItemType.WarpedPressurePlate;
mappings[199] = ItemType.PolishedBlackstonePressurePlate;
mappings[200] = ItemType.RedstoneOre;
mappings[201] = ItemType.RedstoneTorch;
mappings[202] = ItemType.Snow;
mappings[203] = ItemType.Ice;
mappings[204] = ItemType.SnowBlock;
mappings[205] = ItemType.Cactus;
mappings[206] = ItemType.Clay;
mappings[207] = ItemType.Jukebox;
mappings[208] = ItemType.OakFence;
mappings[209] = ItemType.SpruceFence;
mappings[210] = ItemType.BirchFence;
mappings[211] = ItemType.JungleFence;
mappings[212] = ItemType.AcaciaFence;
mappings[213] = ItemType.DarkOakFence;
mappings[214] = ItemType.CrimsonFence;
mappings[215] = ItemType.WarpedFence;
mappings[216] = ItemType.Pumpkin;
mappings[217] = ItemType.CarvedPumpkin;
mappings[218] = ItemType.Netherrack;
mappings[219] = ItemType.SoulSand;
mappings[220] = ItemType.SoulSoil;
mappings[221] = ItemType.Basalt;
mappings[222] = ItemType.PolishedBasalt;
mappings[223] = ItemType.SoulTorch;
mappings[224] = ItemType.Glowstone;
mappings[225] = ItemType.JackOLantern;
mappings[226] = ItemType.OakTrapdoor;
mappings[227] = ItemType.SpruceTrapdoor;
mappings[228] = ItemType.BirchTrapdoor;
mappings[229] = ItemType.JungleTrapdoor;
mappings[230] = ItemType.AcaciaTrapdoor;
mappings[231] = ItemType.DarkOakTrapdoor;
mappings[232] = ItemType.CrimsonTrapdoor;
mappings[233] = ItemType.WarpedTrapdoor;
mappings[234] = ItemType.InfestedStone;
mappings[235] = ItemType.InfestedCobblestone;
mappings[236] = ItemType.InfestedStoneBricks;
mappings[237] = ItemType.InfestedMossyStoneBricks;
mappings[238] = ItemType.InfestedCrackedStoneBricks;
mappings[239] = ItemType.InfestedChiseledStoneBricks;
mappings[240] = ItemType.StoneBricks;
mappings[241] = ItemType.MossyStoneBricks;
mappings[242] = ItemType.CrackedStoneBricks;
mappings[243] = ItemType.ChiseledStoneBricks;
mappings[244] = ItemType.BrownMushroomBlock;
mappings[245] = ItemType.RedMushroomBlock;
mappings[246] = ItemType.MushroomStem;
mappings[247] = ItemType.IronBars;
mappings[248] = ItemType.Chain;
mappings[249] = ItemType.GlassPane;
mappings[250] = ItemType.Melon;
mappings[251] = ItemType.Vine;
mappings[252] = ItemType.OakFenceGate;
mappings[253] = ItemType.SpruceFenceGate;
mappings[254] = ItemType.BirchFenceGate;
mappings[255] = ItemType.JungleFenceGate;
mappings[256] = ItemType.AcaciaFenceGate;
mappings[257] = ItemType.DarkOakFenceGate;
mappings[258] = ItemType.CrimsonFenceGate;
mappings[259] = ItemType.WarpedFenceGate;
mappings[260] = ItemType.BrickStairs;
mappings[261] = ItemType.StoneBrickStairs;
mappings[262] = ItemType.Mycelium;
mappings[263] = ItemType.LilyPad;
mappings[264] = ItemType.NetherBricks;
mappings[265] = ItemType.CrackedNetherBricks;
mappings[266] = ItemType.ChiseledNetherBricks;
mappings[267] = ItemType.NetherBrickFence;
mappings[268] = ItemType.NetherBrickStairs;
mappings[269] = ItemType.EnchantingTable;
mappings[270] = ItemType.EndPortalFrame;
mappings[271] = ItemType.EndStone;
mappings[272] = ItemType.EndStoneBricks;
mappings[273] = ItemType.DragonEgg;
mappings[274] = ItemType.RedstoneLamp;
mappings[275] = ItemType.SandstoneStairs;
mappings[276] = ItemType.EmeraldOre;
mappings[277] = ItemType.EnderChest;
mappings[278] = ItemType.TripwireHook;
mappings[279] = ItemType.EmeraldBlock;
mappings[280] = ItemType.SpruceStairs;
mappings[281] = ItemType.BirchStairs;
mappings[282] = ItemType.JungleStairs;
mappings[283] = ItemType.CrimsonStairs;
mappings[284] = ItemType.WarpedStairs;
mappings[285] = ItemType.CommandBlock;
mappings[286] = ItemType.Beacon;
mappings[287] = ItemType.CobblestoneWall;
mappings[288] = ItemType.MossyCobblestoneWall;
mappings[289] = ItemType.BrickWall;
mappings[290] = ItemType.PrismarineWall;
mappings[291] = ItemType.RedSandstoneWall;
mappings[292] = ItemType.MossyStoneBrickWall;
mappings[293] = ItemType.GraniteWall;
mappings[294] = ItemType.StoneBrickWall;
mappings[295] = ItemType.NetherBrickWall;
mappings[296] = ItemType.AndesiteWall;
mappings[297] = ItemType.RedNetherBrickWall;
mappings[298] = ItemType.SandstoneWall;
mappings[299] = ItemType.EndStoneBrickWall;
mappings[300] = ItemType.DioriteWall;
mappings[301] = ItemType.BlackstoneWall;
mappings[302] = ItemType.PolishedBlackstoneWall;
mappings[303] = ItemType.PolishedBlackstoneBrickWall;
mappings[304] = ItemType.StoneButton;
mappings[305] = ItemType.OakButton;
mappings[306] = ItemType.SpruceButton;
mappings[307] = ItemType.BirchButton;
mappings[308] = ItemType.JungleButton;
mappings[309] = ItemType.AcaciaButton;
mappings[310] = ItemType.DarkOakButton;
mappings[311] = ItemType.CrimsonButton;
mappings[312] = ItemType.WarpedButton;
mappings[313] = ItemType.PolishedBlackstoneButton;
mappings[314] = ItemType.Anvil;
mappings[315] = ItemType.ChippedAnvil;
mappings[316] = ItemType.DamagedAnvil;
mappings[317] = ItemType.TrappedChest;
mappings[318] = ItemType.LightWeightedPressurePlate;
mappings[319] = ItemType.HeavyWeightedPressurePlate;
mappings[320] = ItemType.DaylightDetector;
mappings[321] = ItemType.RedstoneBlock;
mappings[322] = ItemType.NetherQuartzOre;
mappings[323] = ItemType.Hopper;
mappings[324] = ItemType.ChiseledQuartzBlock;
mappings[325] = ItemType.QuartzBlock;
mappings[326] = ItemType.QuartzBricks;
mappings[327] = ItemType.QuartzPillar;
mappings[328] = ItemType.QuartzStairs;
mappings[329] = ItemType.ActivatorRail;
mappings[330] = ItemType.Dropper;
mappings[331] = ItemType.WhiteTerracotta;
mappings[332] = ItemType.OrangeTerracotta;
mappings[333] = ItemType.MagentaTerracotta;
mappings[334] = ItemType.LightBlueTerracotta;
mappings[335] = ItemType.YellowTerracotta;
mappings[336] = ItemType.LimeTerracotta;
mappings[337] = ItemType.PinkTerracotta;
mappings[338] = ItemType.GrayTerracotta;
mappings[339] = ItemType.LightGrayTerracotta;
mappings[340] = ItemType.CyanTerracotta;
mappings[341] = ItemType.PurpleTerracotta;
mappings[342] = ItemType.BlueTerracotta;
mappings[343] = ItemType.BrownTerracotta;
mappings[344] = ItemType.GreenTerracotta;
mappings[345] = ItemType.RedTerracotta;
mappings[346] = ItemType.BlackTerracotta;
mappings[347] = ItemType.Barrier;
mappings[348] = ItemType.IronTrapdoor;
mappings[349] = ItemType.HayBlock;
mappings[350] = ItemType.WhiteCarpet;
mappings[351] = ItemType.OrangeCarpet;
mappings[352] = ItemType.MagentaCarpet;
mappings[353] = ItemType.LightBlueCarpet;
mappings[354] = ItemType.YellowCarpet;
mappings[355] = ItemType.LimeCarpet;
mappings[356] = ItemType.PinkCarpet;
mappings[357] = ItemType.GrayCarpet;
mappings[358] = ItemType.LightGrayCarpet;
mappings[359] = ItemType.CyanCarpet;
mappings[360] = ItemType.PurpleCarpet;
mappings[361] = ItemType.BlueCarpet;
mappings[362] = ItemType.BrownCarpet;
mappings[363] = ItemType.GreenCarpet;
mappings[364] = ItemType.RedCarpet;
mappings[365] = ItemType.BlackCarpet;
mappings[366] = ItemType.Terracotta;
mappings[367] = ItemType.CoalBlock;
mappings[368] = ItemType.PackedIce;
mappings[369] = ItemType.AcaciaStairs;
mappings[370] = ItemType.DarkOakStairs;
mappings[371] = ItemType.SlimeBlock;
mappings[372] = ItemType.GrassPath;
mappings[373] = ItemType.Sunflower;
mappings[374] = ItemType.Lilac;
mappings[375] = ItemType.RoseBush;
mappings[376] = ItemType.Peony;
mappings[377] = ItemType.TallGrass;
mappings[378] = ItemType.LargeFern;
mappings[379] = ItemType.WhiteStainedGlass;
mappings[380] = ItemType.OrangeStainedGlass;
mappings[381] = ItemType.MagentaStainedGlass;
mappings[382] = ItemType.LightBlueStainedGlass;
mappings[383] = ItemType.YellowStainedGlass;
mappings[384] = ItemType.LimeStainedGlass;
mappings[385] = ItemType.PinkStainedGlass;
mappings[386] = ItemType.GrayStainedGlass;
mappings[387] = ItemType.LightGrayStainedGlass;
mappings[388] = ItemType.CyanStainedGlass;
mappings[389] = ItemType.PurpleStainedGlass;
mappings[390] = ItemType.BlueStainedGlass;
mappings[391] = ItemType.BrownStainedGlass;
mappings[392] = ItemType.GreenStainedGlass;
mappings[393] = ItemType.RedStainedGlass;
mappings[394] = ItemType.BlackStainedGlass;
mappings[395] = ItemType.WhiteStainedGlassPane;
mappings[396] = ItemType.OrangeStainedGlassPane;
mappings[397] = ItemType.MagentaStainedGlassPane;
mappings[398] = ItemType.LightBlueStainedGlassPane;
mappings[399] = ItemType.YellowStainedGlassPane;
mappings[400] = ItemType.LimeStainedGlassPane;
mappings[401] = ItemType.PinkStainedGlassPane;
mappings[402] = ItemType.GrayStainedGlassPane;
mappings[403] = ItemType.LightGrayStainedGlassPane;
mappings[404] = ItemType.CyanStainedGlassPane;
mappings[405] = ItemType.PurpleStainedGlassPane;
mappings[406] = ItemType.BlueStainedGlassPane;
mappings[407] = ItemType.BrownStainedGlassPane;
mappings[408] = ItemType.GreenStainedGlassPane;
mappings[409] = ItemType.RedStainedGlassPane;
mappings[410] = ItemType.BlackStainedGlassPane;
mappings[411] = ItemType.Prismarine;
mappings[412] = ItemType.PrismarineBricks;
mappings[413] = ItemType.DarkPrismarine;
mappings[414] = ItemType.PrismarineStairs;
mappings[415] = ItemType.PrismarineBrickStairs;
mappings[416] = ItemType.DarkPrismarineStairs;
mappings[417] = ItemType.SeaLantern;
mappings[418] = ItemType.RedSandstone;
mappings[419] = ItemType.ChiseledRedSandstone;
mappings[420] = ItemType.CutRedSandstone;
mappings[421] = ItemType.RedSandstoneStairs;
mappings[422] = ItemType.RepeatingCommandBlock;
mappings[423] = ItemType.ChainCommandBlock;
mappings[424] = ItemType.MagmaBlock;
mappings[425] = ItemType.NetherWartBlock;
mappings[426] = ItemType.WarpedWartBlock;
mappings[427] = ItemType.RedNetherBricks;
mappings[428] = ItemType.BoneBlock;
mappings[429] = ItemType.StructureVoid;
mappings[430] = ItemType.Observer;
mappings[431] = ItemType.ShulkerBox;
mappings[432] = ItemType.WhiteShulkerBox;
mappings[433] = ItemType.OrangeShulkerBox;
mappings[434] = ItemType.MagentaShulkerBox;
mappings[435] = ItemType.LightBlueShulkerBox;
mappings[436] = ItemType.YellowShulkerBox;
mappings[437] = ItemType.LimeShulkerBox;
mappings[438] = ItemType.PinkShulkerBox;
mappings[439] = ItemType.GrayShulkerBox;
mappings[440] = ItemType.LightGrayShulkerBox;
mappings[441] = ItemType.CyanShulkerBox;
mappings[442] = ItemType.PurpleShulkerBox;
mappings[443] = ItemType.BlueShulkerBox;
mappings[444] = ItemType.BrownShulkerBox;
mappings[445] = ItemType.GreenShulkerBox;
mappings[446] = ItemType.RedShulkerBox;
mappings[447] = ItemType.BlackShulkerBox;
mappings[448] = ItemType.WhiteGlazedTerracotta;
mappings[449] = ItemType.OrangeGlazedTerracotta;
mappings[450] = ItemType.MagentaGlazedTerracotta;
mappings[451] = ItemType.LightBlueGlazedTerracotta;
mappings[452] = ItemType.YellowGlazedTerracotta;
mappings[453] = ItemType.LimeGlazedTerracotta;
mappings[454] = ItemType.PinkGlazedTerracotta;
mappings[455] = ItemType.GrayGlazedTerracotta;
mappings[456] = ItemType.LightGrayGlazedTerracotta;
mappings[457] = ItemType.CyanGlazedTerracotta;
mappings[458] = ItemType.PurpleGlazedTerracotta;
mappings[459] = ItemType.BlueGlazedTerracotta;
mappings[460] = ItemType.BrownGlazedTerracotta;
mappings[461] = ItemType.GreenGlazedTerracotta;
mappings[462] = ItemType.RedGlazedTerracotta;
mappings[463] = ItemType.BlackGlazedTerracotta;
mappings[464] = ItemType.WhiteConcrete;
mappings[465] = ItemType.OrangeConcrete;
mappings[466] = ItemType.MagentaConcrete;
mappings[467] = ItemType.LightBlueConcrete;
mappings[468] = ItemType.YellowConcrete;
mappings[469] = ItemType.LimeConcrete;
mappings[470] = ItemType.PinkConcrete;
mappings[471] = ItemType.GrayConcrete;
mappings[472] = ItemType.LightGrayConcrete;
mappings[473] = ItemType.CyanConcrete;
mappings[474] = ItemType.PurpleConcrete;
mappings[475] = ItemType.BlueConcrete;
mappings[476] = ItemType.BrownConcrete;
mappings[477] = ItemType.GreenConcrete;
mappings[478] = ItemType.RedConcrete;
mappings[479] = ItemType.BlackConcrete;
mappings[480] = ItemType.WhiteConcretePowder;
mappings[481] = ItemType.OrangeConcretePowder;
mappings[482] = ItemType.MagentaConcretePowder;
mappings[483] = ItemType.LightBlueConcretePowder;
mappings[484] = ItemType.YellowConcretePowder;
mappings[485] = ItemType.LimeConcretePowder;
mappings[486] = ItemType.PinkConcretePowder;
mappings[487] = ItemType.GrayConcretePowder;
mappings[488] = ItemType.LightGrayConcretePowder;
mappings[489] = ItemType.CyanConcretePowder;
mappings[490] = ItemType.PurpleConcretePowder;
mappings[491] = ItemType.BlueConcretePowder;
mappings[492] = ItemType.BrownConcretePowder;
mappings[493] = ItemType.GreenConcretePowder;
mappings[494] = ItemType.RedConcretePowder;
mappings[495] = ItemType.BlackConcretePowder;
mappings[496] = ItemType.TurtleEgg;
mappings[497] = ItemType.DeadTubeCoralBlock;
mappings[498] = ItemType.DeadBrainCoralBlock;
mappings[499] = ItemType.DeadBubbleCoralBlock;
mappings[500] = ItemType.DeadFireCoralBlock;
mappings[501] = ItemType.DeadHornCoralBlock;
mappings[502] = ItemType.TubeCoralBlock;
mappings[503] = ItemType.BrainCoralBlock;
mappings[504] = ItemType.BubbleCoralBlock;
mappings[505] = ItemType.FireCoralBlock;
mappings[506] = ItemType.HornCoralBlock;
mappings[507] = ItemType.TubeCoral;
mappings[508] = ItemType.BrainCoral;
mappings[509] = ItemType.BubbleCoral;
mappings[510] = ItemType.FireCoral;
mappings[511] = ItemType.HornCoral;
mappings[512] = ItemType.DeadBrainCoral;
mappings[513] = ItemType.DeadBubbleCoral;
mappings[514] = ItemType.DeadFireCoral;
mappings[515] = ItemType.DeadHornCoral;
mappings[516] = ItemType.DeadTubeCoral;
mappings[517] = ItemType.TubeCoralFan;
mappings[518] = ItemType.BrainCoralFan;
mappings[519] = ItemType.BubbleCoralFan;
mappings[520] = ItemType.FireCoralFan;
mappings[521] = ItemType.HornCoralFan;
mappings[522] = ItemType.DeadTubeCoralFan;
mappings[523] = ItemType.DeadBrainCoralFan;
mappings[524] = ItemType.DeadBubbleCoralFan;
mappings[525] = ItemType.DeadFireCoralFan;
mappings[526] = ItemType.DeadHornCoralFan;
mappings[527] = ItemType.BlueIce;
mappings[528] = ItemType.Conduit;
mappings[529] = ItemType.PolishedGraniteStairs;
mappings[530] = ItemType.SmoothRedSandstoneStairs;
mappings[531] = ItemType.MossyStoneBrickStairs;
mappings[532] = ItemType.PolishedDioriteStairs;
mappings[533] = ItemType.MossyCobblestoneStairs;
mappings[534] = ItemType.EndStoneBrickStairs;
mappings[535] = ItemType.StoneStairs;
mappings[536] = ItemType.SmoothSandstoneStairs;
mappings[537] = ItemType.SmoothQuartzStairs;
mappings[538] = ItemType.GraniteStairs;
mappings[539] = ItemType.AndesiteStairs;
mappings[540] = ItemType.RedNetherBrickStairs;
mappings[541] = ItemType.PolishedAndesiteStairs;
mappings[542] = ItemType.DioriteStairs;
mappings[543] = ItemType.PolishedGraniteSlab;
mappings[544] = ItemType.SmoothRedSandstoneSlab;
mappings[545] = ItemType.MossyStoneBrickSlab;
mappings[546] = ItemType.PolishedDioriteSlab;
mappings[547] = ItemType.MossyCobblestoneSlab;
mappings[548] = ItemType.EndStoneBrickSlab;
mappings[549] = ItemType.SmoothSandstoneSlab;
mappings[550] = ItemType.SmoothQuartzSlab;
mappings[551] = ItemType.GraniteSlab;
mappings[552] = ItemType.AndesiteSlab;
mappings[553] = ItemType.RedNetherBrickSlab;
mappings[554] = ItemType.PolishedAndesiteSlab;
mappings[555] = ItemType.DioriteSlab;
mappings[556] = ItemType.Scaffolding;
mappings[557] = ItemType.IronDoor;
mappings[558] = ItemType.OakDoor;
mappings[559] = ItemType.SpruceDoor;
mappings[560] = ItemType.BirchDoor;
mappings[561] = ItemType.JungleDoor;
mappings[562] = ItemType.AcaciaDoor;
mappings[563] = ItemType.DarkOakDoor;
mappings[564] = ItemType.CrimsonDoor;
mappings[565] = ItemType.WarpedDoor;
mappings[566] = ItemType.Repeater;
mappings[567] = ItemType.Comparator;
mappings[568] = ItemType.StructureBlock;
mappings[569] = ItemType.Jigsaw;
mappings[570] = ItemType.TurtleHelmet;
mappings[571] = ItemType.Scute;
mappings[572] = ItemType.IronShovel;
mappings[573] = ItemType.IronPickaxe;
mappings[574] = ItemType.IronAxe;
mappings[575] = ItemType.FlintAndSteel;
mappings[576] = ItemType.Apple;
mappings[577] = ItemType.Bow;
mappings[578] = ItemType.Arrow;
mappings[579] = ItemType.Coal;
mappings[580] = ItemType.Charcoal;
mappings[581] = ItemType.Diamond;
mappings[582] = ItemType.IronIngot;
mappings[583] = ItemType.GoldIngot;
mappings[584] = ItemType.NetheriteIngot;
mappings[585] = ItemType.NetheriteScrap;
mappings[586] = ItemType.IronSword;
mappings[587] = ItemType.WoodenSword;
mappings[588] = ItemType.WoodenShovel;
mappings[589] = ItemType.WoodenPickaxe;
mappings[590] = ItemType.WoodenAxe;
mappings[591] = ItemType.StoneSword;
mappings[592] = ItemType.StoneShovel;
mappings[593] = ItemType.StonePickaxe;
mappings[594] = ItemType.StoneAxe;
mappings[595] = ItemType.DiamondSword;
mappings[596] = ItemType.DiamondShovel;
mappings[597] = ItemType.DiamondPickaxe;
mappings[598] = ItemType.DiamondAxe;
mappings[599] = ItemType.Stick;
mappings[600] = ItemType.Bowl;
mappings[601] = ItemType.MushroomStew;
mappings[602] = ItemType.GoldenSword;
mappings[603] = ItemType.GoldenShovel;
mappings[604] = ItemType.GoldenPickaxe;
mappings[605] = ItemType.GoldenAxe;
mappings[606] = ItemType.NetheriteSword;
mappings[607] = ItemType.NetheriteShovel;
mappings[608] = ItemType.NetheritePickaxe;
mappings[609] = ItemType.NetheriteAxe;
mappings[610] = ItemType.String;
mappings[611] = ItemType.Feather;
mappings[612] = ItemType.Gunpowder;
mappings[613] = ItemType.WoodenHoe;
mappings[614] = ItemType.StoneHoe;
mappings[615] = ItemType.IronHoe;
mappings[616] = ItemType.DiamondHoe;
mappings[617] = ItemType.GoldenHoe;
mappings[618] = ItemType.NetheriteHoe;
mappings[619] = ItemType.WheatSeeds;
mappings[620] = ItemType.Wheat;
mappings[621] = ItemType.Bread;
mappings[622] = ItemType.LeatherHelmet;
mappings[623] = ItemType.LeatherChestplate;
mappings[624] = ItemType.LeatherLeggings;
mappings[625] = ItemType.LeatherBoots;
mappings[626] = ItemType.ChainmailHelmet;
mappings[627] = ItemType.ChainmailChestplate;
mappings[628] = ItemType.ChainmailLeggings;
mappings[629] = ItemType.ChainmailBoots;
mappings[630] = ItemType.IronHelmet;
mappings[631] = ItemType.IronChestplate;
mappings[632] = ItemType.IronLeggings;
mappings[633] = ItemType.IronBoots;
mappings[634] = ItemType.DiamondHelmet;
mappings[635] = ItemType.DiamondChestplate;
mappings[636] = ItemType.DiamondLeggings;
mappings[637] = ItemType.DiamondBoots;
mappings[638] = ItemType.GoldenHelmet;
mappings[639] = ItemType.GoldenChestplate;
mappings[640] = ItemType.GoldenLeggings;
mappings[641] = ItemType.GoldenBoots;
mappings[642] = ItemType.NetheriteHelmet;
mappings[643] = ItemType.NetheriteChestplate;
mappings[644] = ItemType.NetheriteLeggings;
mappings[645] = ItemType.NetheriteBoots;
mappings[646] = ItemType.Flint;
mappings[647] = ItemType.Porkchop;
mappings[648] = ItemType.CookedPorkchop;
mappings[649] = ItemType.Painting;
mappings[650] = ItemType.GoldenApple;
mappings[651] = ItemType.EnchantedGoldenApple;
mappings[652] = ItemType.OakSign;
mappings[653] = ItemType.SpruceSign;
mappings[654] = ItemType.BirchSign;
mappings[655] = ItemType.JungleSign;
mappings[656] = ItemType.AcaciaSign;
mappings[657] = ItemType.DarkOakSign;
mappings[658] = ItemType.CrimsonSign;
mappings[659] = ItemType.WarpedSign;
mappings[660] = ItemType.Bucket;
mappings[661] = ItemType.WaterBucket;
mappings[662] = ItemType.LavaBucket;
mappings[663] = ItemType.Minecart;
mappings[664] = ItemType.Saddle;
mappings[665] = ItemType.Redstone;
mappings[666] = ItemType.Snowball;
mappings[667] = ItemType.OakBoat;
mappings[668] = ItemType.Leather;
mappings[669] = ItemType.MilkBucket;
mappings[670] = ItemType.PufferfishBucket;
mappings[671] = ItemType.SalmonBucket;
mappings[672] = ItemType.CodBucket;
mappings[673] = ItemType.TropicalFishBucket;
mappings[674] = ItemType.Brick;
mappings[675] = ItemType.ClayBall;
mappings[676] = ItemType.DriedKelpBlock;
mappings[677] = ItemType.Paper;
mappings[678] = ItemType.Book;
mappings[679] = ItemType.SlimeBall;
mappings[680] = ItemType.ChestMinecart;
mappings[681] = ItemType.FurnaceMinecart;
mappings[682] = ItemType.Egg;
mappings[683] = ItemType.Compass;
mappings[684] = ItemType.FishingRod;
mappings[685] = ItemType.Clock;
mappings[686] = ItemType.GlowstoneDust;
mappings[687] = ItemType.Cod;
mappings[688] = ItemType.Salmon;
mappings[689] = ItemType.TropicalFish;
mappings[690] = ItemType.Pufferfish;
mappings[691] = ItemType.CookedCod;
mappings[692] = ItemType.CookedSalmon;
mappings[693] = ItemType.InkSac;
mappings[694] = ItemType.RedDye;
mappings[695] = ItemType.GreenDye;
mappings[696] = ItemType.CocoaBeans;
mappings[697] = ItemType.LapisLazuli;
mappings[698] = ItemType.PurpleDye;
mappings[699] = ItemType.CyanDye;
mappings[700] = ItemType.LightGrayDye;
mappings[701] = ItemType.GrayDye;
mappings[702] = ItemType.PinkDye;
mappings[703] = ItemType.LimeDye;
mappings[704] = ItemType.YellowDye;
mappings[705] = ItemType.LightBlueDye;
mappings[706] = ItemType.MagentaDye;
mappings[707] = ItemType.OrangeDye;
mappings[708] = ItemType.BoneMeal;
mappings[709] = ItemType.BlueDye;
mappings[710] = ItemType.BrownDye;
mappings[711] = ItemType.BlackDye;
mappings[712] = ItemType.WhiteDye;
mappings[713] = ItemType.Bone;
mappings[714] = ItemType.Sugar;
mappings[715] = ItemType.Cake;
mappings[716] = ItemType.WhiteBed;
mappings[717] = ItemType.OrangeBed;
mappings[718] = ItemType.MagentaBed;
mappings[719] = ItemType.LightBlueBed;
mappings[720] = ItemType.YellowBed;
mappings[721] = ItemType.LimeBed;
mappings[722] = ItemType.PinkBed;
mappings[723] = ItemType.GrayBed;
mappings[724] = ItemType.LightGrayBed;
mappings[725] = ItemType.CyanBed;
mappings[726] = ItemType.PurpleBed;
mappings[727] = ItemType.BlueBed;
mappings[728] = ItemType.BrownBed;
mappings[729] = ItemType.GreenBed;
mappings[730] = ItemType.RedBed;
mappings[731] = ItemType.BlackBed;
mappings[732] = ItemType.Cookie;
mappings[733] = ItemType.FilledMap;
mappings[734] = ItemType.Shears;
mappings[735] = ItemType.MelonSlice;
mappings[736] = ItemType.DriedKelp;
mappings[737] = ItemType.PumpkinSeeds;
mappings[738] = ItemType.MelonSeeds;
mappings[739] = ItemType.Beef;
mappings[740] = ItemType.CookedBeef;
mappings[741] = ItemType.Chicken;
mappings[742] = ItemType.CookedChicken;
mappings[743] = ItemType.RottenFlesh;
mappings[744] = ItemType.EnderPearl;
mappings[745] = ItemType.BlazeRod;
mappings[746] = ItemType.GhastTear;
mappings[747] = ItemType.GoldNugget;
mappings[748] = ItemType.NetherWart;
mappings[749] = ItemType.Potion;
mappings[750] = ItemType.GlassBottle;
mappings[751] = ItemType.SpiderEye;
mappings[752] = ItemType.FermentedSpiderEye;
mappings[753] = ItemType.BlazePowder;
mappings[754] = ItemType.MagmaCream;
mappings[755] = ItemType.BrewingStand;
mappings[756] = ItemType.Cauldron;
mappings[757] = ItemType.EnderEye;
mappings[758] = ItemType.GlisteringMelonSlice;
mappings[759] = ItemType.BatSpawnEgg;
mappings[760] = ItemType.BeeSpawnEgg;
mappings[761] = ItemType.BlazeSpawnEgg;
mappings[762] = ItemType.CatSpawnEgg;
mappings[763] = ItemType.CaveSpiderSpawnEgg;
mappings[764] = ItemType.ChickenSpawnEgg;
mappings[765] = ItemType.CodSpawnEgg;
mappings[766] = ItemType.CowSpawnEgg;
mappings[767] = ItemType.CreeperSpawnEgg;
mappings[768] = ItemType.DolphinSpawnEgg;
mappings[769] = ItemType.DonkeySpawnEgg;
mappings[770] = ItemType.DrownedSpawnEgg;
mappings[771] = ItemType.ElderGuardianSpawnEgg;
mappings[772] = ItemType.EndermanSpawnEgg;
mappings[773] = ItemType.EndermiteSpawnEgg;
mappings[774] = ItemType.EvokerSpawnEgg;
mappings[775] = ItemType.FoxSpawnEgg;
mappings[776] = ItemType.GhastSpawnEgg;
mappings[777] = ItemType.GuardianSpawnEgg;
mappings[778] = ItemType.HoglinSpawnEgg;
mappings[779] = ItemType.HorseSpawnEgg;
mappings[780] = ItemType.HuskSpawnEgg;
mappings[781] = ItemType.LlamaSpawnEgg;
mappings[782] = ItemType.MagmaCubeSpawnEgg;
mappings[783] = ItemType.MooshroomSpawnEgg;
mappings[784] = ItemType.MuleSpawnEgg;
mappings[785] = ItemType.OcelotSpawnEgg;
mappings[786] = ItemType.PandaSpawnEgg;
mappings[787] = ItemType.ParrotSpawnEgg;
mappings[788] = ItemType.PhantomSpawnEgg;
mappings[789] = ItemType.PigSpawnEgg;
mappings[790] = ItemType.PiglinSpawnEgg;
mappings[791] = ItemType.PillagerSpawnEgg;
mappings[792] = ItemType.PolarBearSpawnEgg;
mappings[793] = ItemType.PufferfishSpawnEgg;
mappings[794] = ItemType.RabbitSpawnEgg;
mappings[795] = ItemType.RavagerSpawnEgg;
mappings[796] = ItemType.SalmonSpawnEgg;
mappings[797] = ItemType.SheepSpawnEgg;
mappings[798] = ItemType.ShulkerSpawnEgg;
mappings[799] = ItemType.SilverfishSpawnEgg;
mappings[800] = ItemType.SkeletonSpawnEgg;
mappings[801] = ItemType.SkeletonHorseSpawnEgg;
mappings[802] = ItemType.SlimeSpawnEgg;
mappings[803] = ItemType.SpiderSpawnEgg;
mappings[804] = ItemType.SquidSpawnEgg;
mappings[805] = ItemType.StraySpawnEgg;
mappings[806] = ItemType.StriderSpawnEgg;
mappings[807] = ItemType.TraderLlamaSpawnEgg;
mappings[808] = ItemType.TropicalFishSpawnEgg;
mappings[809] = ItemType.TurtleSpawnEgg;
mappings[810] = ItemType.VexSpawnEgg;
mappings[811] = ItemType.VillagerSpawnEgg;
mappings[812] = ItemType.VindicatorSpawnEgg;
mappings[813] = ItemType.WanderingTraderSpawnEgg;
mappings[814] = ItemType.WitchSpawnEgg;
mappings[815] = ItemType.WitherSkeletonSpawnEgg;
mappings[816] = ItemType.WolfSpawnEgg;
mappings[817] = ItemType.ZoglinSpawnEgg;
mappings[818] = ItemType.ZombieSpawnEgg;
mappings[819] = ItemType.ZombieHorseSpawnEgg;
mappings[820] = ItemType.ZombieVillagerSpawnEgg;
mappings[821] = ItemType.ZombifiedPiglinSpawnEgg;
mappings[822] = ItemType.ExperienceBottle;
mappings[823] = ItemType.FireCharge;
mappings[824] = ItemType.WritableBook;
mappings[825] = ItemType.WrittenBook;
mappings[826] = ItemType.Emerald;
mappings[827] = ItemType.ItemFrame;
mappings[828] = ItemType.FlowerPot;
mappings[829] = ItemType.Carrot;
mappings[830] = ItemType.Potato;
mappings[831] = ItemType.BakedPotato;
mappings[832] = ItemType.PoisonousPotato;
mappings[833] = ItemType.Map;
mappings[834] = ItemType.GoldenCarrot;
mappings[835] = ItemType.SkeletonSkull;
mappings[836] = ItemType.WitherSkeletonSkull;
mappings[837] = ItemType.PlayerHead;
mappings[838] = ItemType.ZombieHead;
mappings[839] = ItemType.CreeperHead;
mappings[840] = ItemType.DragonHead;
mappings[841] = ItemType.CarrotOnAStick;
mappings[842] = ItemType.WarpedFungusOnAStick;
mappings[843] = ItemType.NetherStar;
mappings[844] = ItemType.PumpkinPie;
mappings[845] = ItemType.FireworkRocket;
mappings[846] = ItemType.FireworkStar;
mappings[847] = ItemType.EnchantedBook;
mappings[848] = ItemType.NetherBrick;
mappings[849] = ItemType.Quartz;
mappings[850] = ItemType.TntMinecart;
mappings[851] = ItemType.HopperMinecart;
mappings[852] = ItemType.PrismarineShard;
mappings[853] = ItemType.PrismarineCrystals;
mappings[854] = ItemType.Rabbit;
mappings[855] = ItemType.CookedRabbit;
mappings[856] = ItemType.RabbitStew;
mappings[857] = ItemType.RabbitFoot;
mappings[858] = ItemType.RabbitHide;
mappings[859] = ItemType.ArmorStand;
mappings[860] = ItemType.IronHorseArmor;
mappings[861] = ItemType.GoldenHorseArmor;
mappings[862] = ItemType.DiamondHorseArmor;
mappings[863] = ItemType.LeatherHorseArmor;
mappings[864] = ItemType.Lead;
mappings[865] = ItemType.NameTag;
mappings[866] = ItemType.CommandBlockMinecart;
mappings[867] = ItemType.Mutton;
mappings[868] = ItemType.CookedMutton;
mappings[869] = ItemType.WhiteBanner;
mappings[870] = ItemType.OrangeBanner;
mappings[871] = ItemType.MagentaBanner;
mappings[872] = ItemType.LightBlueBanner;
mappings[873] = ItemType.YellowBanner;
mappings[874] = ItemType.LimeBanner;
mappings[875] = ItemType.PinkBanner;
mappings[876] = ItemType.GrayBanner;
mappings[877] = ItemType.LightGrayBanner;
mappings[878] = ItemType.CyanBanner;
mappings[879] = ItemType.PurpleBanner;
mappings[880] = ItemType.BlueBanner;
mappings[881] = ItemType.BrownBanner;
mappings[882] = ItemType.GreenBanner;
mappings[883] = ItemType.RedBanner;
mappings[884] = ItemType.BlackBanner;
mappings[885] = ItemType.EndCrystal;
mappings[886] = ItemType.ChorusFruit;
mappings[887] = ItemType.PoppedChorusFruit;
mappings[888] = ItemType.Beetroot;
mappings[889] = ItemType.BeetrootSeeds;
mappings[890] = ItemType.BeetrootSoup;
mappings[891] = ItemType.DragonBreath;
mappings[892] = ItemType.SplashPotion;
mappings[893] = ItemType.SpectralArrow;
mappings[894] = ItemType.TippedArrow;
mappings[895] = ItemType.LingeringPotion;
mappings[896] = ItemType.Shield;
mappings[897] = ItemType.Elytra;
mappings[898] = ItemType.SpruceBoat;
mappings[899] = ItemType.BirchBoat;
mappings[900] = ItemType.JungleBoat;
mappings[901] = ItemType.AcaciaBoat;
mappings[902] = ItemType.DarkOakBoat;
mappings[903] = ItemType.TotemOfUndying;
mappings[904] = ItemType.ShulkerShell;
mappings[905] = ItemType.IronNugget;
mappings[906] = ItemType.KnowledgeBook;
mappings[907] = ItemType.DebugStick;
mappings[908] = ItemType.MusicDisc13;
mappings[909] = ItemType.MusicDiscCat;
mappings[910] = ItemType.MusicDiscBlocks;
mappings[911] = ItemType.MusicDiscChirp;
mappings[912] = ItemType.MusicDiscFar;
mappings[913] = ItemType.MusicDiscMall;
mappings[914] = ItemType.MusicDiscMellohi;
mappings[915] = ItemType.MusicDiscStal;
mappings[916] = ItemType.MusicDiscStrad;
mappings[917] = ItemType.MusicDiscWard;
mappings[918] = ItemType.MusicDisc11;
mappings[919] = ItemType.MusicDiscWait;
mappings[920] = ItemType.MusicDiscPigstep;
mappings[921] = ItemType.Trident;
mappings[922] = ItemType.PhantomMembrane;
mappings[923] = ItemType.NautilusShell;
mappings[924] = ItemType.HeartOfTheSea;
mappings[925] = ItemType.Crossbow;
mappings[926] = ItemType.SuspiciousStew;
mappings[927] = ItemType.Loom;
mappings[928] = ItemType.FlowerBannerPattern;
mappings[929] = ItemType.CreeperBannerPattern;
mappings[930] = ItemType.SkullBannerPattern;
mappings[931] = ItemType.MojangBannerPattern;
mappings[932] = ItemType.GlobeBannerPattern;
mappings[933] = ItemType.PiglinBannerPattern;
mappings[934] = ItemType.Composter;
mappings[935] = ItemType.Barrel;
mappings[936] = ItemType.Smoker;
mappings[937] = ItemType.BlastFurnace;
mappings[938] = ItemType.CartographyTable;
mappings[939] = ItemType.FletchingTable;
mappings[940] = ItemType.Grindstone;
mappings[941] = ItemType.Lectern;
mappings[942] = ItemType.SmithingTable;
mappings[943] = ItemType.Stonecutter;
mappings[944] = ItemType.Bell;
mappings[945] = ItemType.Lantern;
mappings[946] = ItemType.SoulLantern;
mappings[947] = ItemType.SweetBerries;
mappings[948] = ItemType.Campfire;
mappings[949] = ItemType.SoulCampfire;
mappings[950] = ItemType.Shroomlight;
mappings[951] = ItemType.Honeycomb;
mappings[952] = ItemType.BeeNest;
mappings[953] = ItemType.Beehive;
mappings[954] = ItemType.HoneyBottle;
mappings[955] = ItemType.HoneyBlock;
mappings[956] = ItemType.HoneycombBlock;
mappings[957] = ItemType.Lodestone;
mappings[958] = ItemType.NetheriteBlock;
mappings[959] = ItemType.AncientDebris;
mappings[960] = ItemType.Target;
mappings[961] = ItemType.CryingObsidian;
mappings[962] = ItemType.Blackstone;
mappings[963] = ItemType.BlackstoneSlab;
mappings[964] = ItemType.BlackstoneStairs;
mappings[965] = ItemType.GildedBlackstone;
mappings[966] = ItemType.PolishedBlackstone;
mappings[967] = ItemType.PolishedBlackstoneSlab;
mappings[968] = ItemType.PolishedBlackstoneStairs;
mappings[969] = ItemType.ChiseledPolishedBlackstone;
mappings[970] = ItemType.PolishedBlackstoneBricks;
mappings[971] = ItemType.PolishedBlackstoneBrickSlab;
mappings[972] = ItemType.PolishedBlackstoneBrickStairs;
mappings[973] = ItemType.CrackedPolishedBlackstoneBricks;
mappings[974] = ItemType.RespawnAnchor;
}
protected override Dictionary<int, ItemType> GetDict()
{
return mappings;
}
}
}

View file

@ -0,0 +1,999 @@
using System;
using System.Collections.Generic;
namespace MinecraftClient.Inventory.ItemPalettes
{
/// <summary>
/// For MC 1.16.2
/// Generated by ItemPaletteGenerator.cs
/// </summary>
public class ItemPalette1162 : ItemPalette
{
private static Dictionary<int, ItemType> mappings = new Dictionary<int, ItemType>();
static ItemPalette1162()
{
mappings[0] = ItemType.Air;
mappings[1] = ItemType.Stone;
mappings[2] = ItemType.Granite;
mappings[3] = ItemType.PolishedGranite;
mappings[4] = ItemType.Diorite;
mappings[5] = ItemType.PolishedDiorite;
mappings[6] = ItemType.Andesite;
mappings[7] = ItemType.PolishedAndesite;
mappings[8] = ItemType.GrassBlock;
mappings[9] = ItemType.Dirt;
mappings[10] = ItemType.CoarseDirt;
mappings[11] = ItemType.Podzol;
mappings[12] = ItemType.CrimsonNylium;
mappings[13] = ItemType.WarpedNylium;
mappings[14] = ItemType.Cobblestone;
mappings[15] = ItemType.OakPlanks;
mappings[16] = ItemType.SprucePlanks;
mappings[17] = ItemType.BirchPlanks;
mappings[18] = ItemType.JunglePlanks;
mappings[19] = ItemType.AcaciaPlanks;
mappings[20] = ItemType.DarkOakPlanks;
mappings[21] = ItemType.CrimsonPlanks;
mappings[22] = ItemType.WarpedPlanks;
mappings[23] = ItemType.OakSapling;
mappings[24] = ItemType.SpruceSapling;
mappings[25] = ItemType.BirchSapling;
mappings[26] = ItemType.JungleSapling;
mappings[27] = ItemType.AcaciaSapling;
mappings[28] = ItemType.DarkOakSapling;
mappings[29] = ItemType.Bedrock;
mappings[30] = ItemType.Sand;
mappings[31] = ItemType.RedSand;
mappings[32] = ItemType.Gravel;
mappings[33] = ItemType.GoldOre;
mappings[34] = ItemType.IronOre;
mappings[35] = ItemType.CoalOre;
mappings[36] = ItemType.NetherGoldOre;
mappings[37] = ItemType.OakLog;
mappings[38] = ItemType.SpruceLog;
mappings[39] = ItemType.BirchLog;
mappings[40] = ItemType.JungleLog;
mappings[41] = ItemType.AcaciaLog;
mappings[42] = ItemType.DarkOakLog;
mappings[43] = ItemType.CrimsonStem;
mappings[44] = ItemType.WarpedStem;
mappings[45] = ItemType.StrippedOakLog;
mappings[46] = ItemType.StrippedSpruceLog;
mappings[47] = ItemType.StrippedBirchLog;
mappings[48] = ItemType.StrippedJungleLog;
mappings[49] = ItemType.StrippedAcaciaLog;
mappings[50] = ItemType.StrippedDarkOakLog;
mappings[51] = ItemType.StrippedCrimsonStem;
mappings[52] = ItemType.StrippedWarpedStem;
mappings[53] = ItemType.StrippedOakWood;
mappings[54] = ItemType.StrippedSpruceWood;
mappings[55] = ItemType.StrippedBirchWood;
mappings[56] = ItemType.StrippedJungleWood;
mappings[57] = ItemType.StrippedAcaciaWood;
mappings[58] = ItemType.StrippedDarkOakWood;
mappings[59] = ItemType.StrippedCrimsonHyphae;
mappings[60] = ItemType.StrippedWarpedHyphae;
mappings[61] = ItemType.OakWood;
mappings[62] = ItemType.SpruceWood;
mappings[63] = ItemType.BirchWood;
mappings[64] = ItemType.JungleWood;
mappings[65] = ItemType.AcaciaWood;
mappings[66] = ItemType.DarkOakWood;
mappings[67] = ItemType.CrimsonHyphae;
mappings[68] = ItemType.WarpedHyphae;
mappings[69] = ItemType.OakLeaves;
mappings[70] = ItemType.SpruceLeaves;
mappings[71] = ItemType.BirchLeaves;
mappings[72] = ItemType.JungleLeaves;
mappings[73] = ItemType.AcaciaLeaves;
mappings[74] = ItemType.DarkOakLeaves;
mappings[75] = ItemType.Sponge;
mappings[76] = ItemType.WetSponge;
mappings[77] = ItemType.Glass;
mappings[78] = ItemType.LapisOre;
mappings[79] = ItemType.LapisBlock;
mappings[80] = ItemType.Dispenser;
mappings[81] = ItemType.Sandstone;
mappings[82] = ItemType.ChiseledSandstone;
mappings[83] = ItemType.CutSandstone;
mappings[84] = ItemType.NoteBlock;
mappings[85] = ItemType.PoweredRail;
mappings[86] = ItemType.DetectorRail;
mappings[87] = ItemType.StickyPiston;
mappings[88] = ItemType.Cobweb;
mappings[89] = ItemType.Grass;
mappings[90] = ItemType.Fern;
mappings[91] = ItemType.DeadBush;
mappings[92] = ItemType.Seagrass;
mappings[93] = ItemType.SeaPickle;
mappings[94] = ItemType.Piston;
mappings[95] = ItemType.WhiteWool;
mappings[96] = ItemType.OrangeWool;
mappings[97] = ItemType.MagentaWool;
mappings[98] = ItemType.LightBlueWool;
mappings[99] = ItemType.YellowWool;
mappings[100] = ItemType.LimeWool;
mappings[101] = ItemType.PinkWool;
mappings[102] = ItemType.GrayWool;
mappings[103] = ItemType.LightGrayWool;
mappings[104] = ItemType.CyanWool;
mappings[105] = ItemType.PurpleWool;
mappings[106] = ItemType.BlueWool;
mappings[107] = ItemType.BrownWool;
mappings[108] = ItemType.GreenWool;
mappings[109] = ItemType.RedWool;
mappings[110] = ItemType.BlackWool;
mappings[111] = ItemType.Dandelion;
mappings[112] = ItemType.Poppy;
mappings[113] = ItemType.BlueOrchid;
mappings[114] = ItemType.Allium;
mappings[115] = ItemType.AzureBluet;
mappings[116] = ItemType.RedTulip;
mappings[117] = ItemType.OrangeTulip;
mappings[118] = ItemType.WhiteTulip;
mappings[119] = ItemType.PinkTulip;
mappings[120] = ItemType.OxeyeDaisy;
mappings[121] = ItemType.Cornflower;
mappings[122] = ItemType.LilyOfTheValley;
mappings[123] = ItemType.WitherRose;
mappings[124] = ItemType.BrownMushroom;
mappings[125] = ItemType.RedMushroom;
mappings[126] = ItemType.CrimsonFungus;
mappings[127] = ItemType.WarpedFungus;
mappings[128] = ItemType.CrimsonRoots;
mappings[129] = ItemType.WarpedRoots;
mappings[130] = ItemType.NetherSprouts;
mappings[131] = ItemType.WeepingVines;
mappings[132] = ItemType.TwistingVines;
mappings[133] = ItemType.SugarCane;
mappings[134] = ItemType.Kelp;
mappings[135] = ItemType.Bamboo;
mappings[136] = ItemType.GoldBlock;
mappings[137] = ItemType.IronBlock;
mappings[138] = ItemType.OakSlab;
mappings[139] = ItemType.SpruceSlab;
mappings[140] = ItemType.BirchSlab;
mappings[141] = ItemType.JungleSlab;
mappings[142] = ItemType.AcaciaSlab;
mappings[143] = ItemType.DarkOakSlab;
mappings[144] = ItemType.CrimsonSlab;
mappings[145] = ItemType.WarpedSlab;
mappings[146] = ItemType.StoneSlab;
mappings[147] = ItemType.SmoothStoneSlab;
mappings[148] = ItemType.SandstoneSlab;
mappings[149] = ItemType.CutSandstoneSlab;
mappings[150] = ItemType.PetrifiedOakSlab;
mappings[151] = ItemType.CobblestoneSlab;
mappings[152] = ItemType.BrickSlab;
mappings[153] = ItemType.StoneBrickSlab;
mappings[154] = ItemType.NetherBrickSlab;
mappings[155] = ItemType.QuartzSlab;
mappings[156] = ItemType.RedSandstoneSlab;
mappings[157] = ItemType.CutRedSandstoneSlab;
mappings[158] = ItemType.PurpurSlab;
mappings[159] = ItemType.PrismarineSlab;
mappings[160] = ItemType.PrismarineBrickSlab;
mappings[161] = ItemType.DarkPrismarineSlab;
mappings[162] = ItemType.SmoothQuartz;
mappings[163] = ItemType.SmoothRedSandstone;
mappings[164] = ItemType.SmoothSandstone;
mappings[165] = ItemType.SmoothStone;
mappings[166] = ItemType.Bricks;
mappings[167] = ItemType.Tnt;
mappings[168] = ItemType.Bookshelf;
mappings[169] = ItemType.MossyCobblestone;
mappings[170] = ItemType.Obsidian;
mappings[171] = ItemType.Torch;
mappings[172] = ItemType.EndRod;
mappings[173] = ItemType.ChorusPlant;
mappings[174] = ItemType.ChorusFlower;
mappings[175] = ItemType.PurpurBlock;
mappings[176] = ItemType.PurpurPillar;
mappings[177] = ItemType.PurpurStairs;
mappings[178] = ItemType.Spawner;
mappings[179] = ItemType.OakStairs;
mappings[180] = ItemType.Chest;
mappings[181] = ItemType.DiamondOre;
mappings[182] = ItemType.DiamondBlock;
mappings[183] = ItemType.CraftingTable;
mappings[184] = ItemType.Farmland;
mappings[185] = ItemType.Furnace;
mappings[186] = ItemType.Ladder;
mappings[187] = ItemType.Rail;
mappings[188] = ItemType.CobblestoneStairs;
mappings[189] = ItemType.Lever;
mappings[190] = ItemType.StonePressurePlate;
mappings[191] = ItemType.OakPressurePlate;
mappings[192] = ItemType.SprucePressurePlate;
mappings[193] = ItemType.BirchPressurePlate;
mappings[194] = ItemType.JunglePressurePlate;
mappings[195] = ItemType.AcaciaPressurePlate;
mappings[196] = ItemType.DarkOakPressurePlate;
mappings[197] = ItemType.CrimsonPressurePlate;
mappings[198] = ItemType.WarpedPressurePlate;
mappings[199] = ItemType.PolishedBlackstonePressurePlate;
mappings[200] = ItemType.RedstoneOre;
mappings[201] = ItemType.RedstoneTorch;
mappings[202] = ItemType.Snow;
mappings[203] = ItemType.Ice;
mappings[204] = ItemType.SnowBlock;
mappings[205] = ItemType.Cactus;
mappings[206] = ItemType.Clay;
mappings[207] = ItemType.Jukebox;
mappings[208] = ItemType.OakFence;
mappings[209] = ItemType.SpruceFence;
mappings[210] = ItemType.BirchFence;
mappings[211] = ItemType.JungleFence;
mappings[212] = ItemType.AcaciaFence;
mappings[213] = ItemType.DarkOakFence;
mappings[214] = ItemType.CrimsonFence;
mappings[215] = ItemType.WarpedFence;
mappings[216] = ItemType.Pumpkin;
mappings[217] = ItemType.CarvedPumpkin;
mappings[218] = ItemType.Netherrack;
mappings[219] = ItemType.SoulSand;
mappings[220] = ItemType.SoulSoil;
mappings[221] = ItemType.Basalt;
mappings[222] = ItemType.PolishedBasalt;
mappings[223] = ItemType.SoulTorch;
mappings[224] = ItemType.Glowstone;
mappings[225] = ItemType.JackOLantern;
mappings[226] = ItemType.OakTrapdoor;
mappings[227] = ItemType.SpruceTrapdoor;
mappings[228] = ItemType.BirchTrapdoor;
mappings[229] = ItemType.JungleTrapdoor;
mappings[230] = ItemType.AcaciaTrapdoor;
mappings[231] = ItemType.DarkOakTrapdoor;
mappings[232] = ItemType.CrimsonTrapdoor;
mappings[233] = ItemType.WarpedTrapdoor;
mappings[234] = ItemType.InfestedStone;
mappings[235] = ItemType.InfestedCobblestone;
mappings[236] = ItemType.InfestedStoneBricks;
mappings[237] = ItemType.InfestedMossyStoneBricks;
mappings[238] = ItemType.InfestedCrackedStoneBricks;
mappings[239] = ItemType.InfestedChiseledStoneBricks;
mappings[240] = ItemType.StoneBricks;
mappings[241] = ItemType.MossyStoneBricks;
mappings[242] = ItemType.CrackedStoneBricks;
mappings[243] = ItemType.ChiseledStoneBricks;
mappings[244] = ItemType.BrownMushroomBlock;
mappings[245] = ItemType.RedMushroomBlock;
mappings[246] = ItemType.MushroomStem;
mappings[247] = ItemType.IronBars;
mappings[248] = ItemType.Chain;
mappings[249] = ItemType.GlassPane;
mappings[250] = ItemType.Melon;
mappings[251] = ItemType.Vine;
mappings[252] = ItemType.OakFenceGate;
mappings[253] = ItemType.SpruceFenceGate;
mappings[254] = ItemType.BirchFenceGate;
mappings[255] = ItemType.JungleFenceGate;
mappings[256] = ItemType.AcaciaFenceGate;
mappings[257] = ItemType.DarkOakFenceGate;
mappings[258] = ItemType.CrimsonFenceGate;
mappings[259] = ItemType.WarpedFenceGate;
mappings[260] = ItemType.BrickStairs;
mappings[261] = ItemType.StoneBrickStairs;
mappings[262] = ItemType.Mycelium;
mappings[263] = ItemType.LilyPad;
mappings[264] = ItemType.NetherBricks;
mappings[265] = ItemType.CrackedNetherBricks;
mappings[266] = ItemType.ChiseledNetherBricks;
mappings[267] = ItemType.NetherBrickFence;
mappings[268] = ItemType.NetherBrickStairs;
mappings[269] = ItemType.EnchantingTable;
mappings[270] = ItemType.EndPortalFrame;
mappings[271] = ItemType.EndStone;
mappings[272] = ItemType.EndStoneBricks;
mappings[273] = ItemType.DragonEgg;
mappings[274] = ItemType.RedstoneLamp;
mappings[275] = ItemType.SandstoneStairs;
mappings[276] = ItemType.EmeraldOre;
mappings[277] = ItemType.EnderChest;
mappings[278] = ItemType.TripwireHook;
mappings[279] = ItemType.EmeraldBlock;
mappings[280] = ItemType.SpruceStairs;
mappings[281] = ItemType.BirchStairs;
mappings[282] = ItemType.JungleStairs;
mappings[283] = ItemType.CrimsonStairs;
mappings[284] = ItemType.WarpedStairs;
mappings[285] = ItemType.CommandBlock;
mappings[286] = ItemType.Beacon;
mappings[287] = ItemType.CobblestoneWall;
mappings[288] = ItemType.MossyCobblestoneWall;
mappings[289] = ItemType.BrickWall;
mappings[290] = ItemType.PrismarineWall;
mappings[291] = ItemType.RedSandstoneWall;
mappings[292] = ItemType.MossyStoneBrickWall;
mappings[293] = ItemType.GraniteWall;
mappings[294] = ItemType.StoneBrickWall;
mappings[295] = ItemType.NetherBrickWall;
mappings[296] = ItemType.AndesiteWall;
mappings[297] = ItemType.RedNetherBrickWall;
mappings[298] = ItemType.SandstoneWall;
mappings[299] = ItemType.EndStoneBrickWall;
mappings[300] = ItemType.DioriteWall;
mappings[301] = ItemType.BlackstoneWall;
mappings[302] = ItemType.PolishedBlackstoneWall;
mappings[303] = ItemType.PolishedBlackstoneBrickWall;
mappings[304] = ItemType.StoneButton;
mappings[305] = ItemType.OakButton;
mappings[306] = ItemType.SpruceButton;
mappings[307] = ItemType.BirchButton;
mappings[308] = ItemType.JungleButton;
mappings[309] = ItemType.AcaciaButton;
mappings[310] = ItemType.DarkOakButton;
mappings[311] = ItemType.CrimsonButton;
mappings[312] = ItemType.WarpedButton;
mappings[313] = ItemType.PolishedBlackstoneButton;
mappings[314] = ItemType.Anvil;
mappings[315] = ItemType.ChippedAnvil;
mappings[316] = ItemType.DamagedAnvil;
mappings[317] = ItemType.TrappedChest;
mappings[318] = ItemType.LightWeightedPressurePlate;
mappings[319] = ItemType.HeavyWeightedPressurePlate;
mappings[320] = ItemType.DaylightDetector;
mappings[321] = ItemType.RedstoneBlock;
mappings[322] = ItemType.NetherQuartzOre;
mappings[323] = ItemType.Hopper;
mappings[324] = ItemType.ChiseledQuartzBlock;
mappings[325] = ItemType.QuartzBlock;
mappings[326] = ItemType.QuartzBricks;
mappings[327] = ItemType.QuartzPillar;
mappings[328] = ItemType.QuartzStairs;
mappings[329] = ItemType.ActivatorRail;
mappings[330] = ItemType.Dropper;
mappings[331] = ItemType.WhiteTerracotta;
mappings[332] = ItemType.OrangeTerracotta;
mappings[333] = ItemType.MagentaTerracotta;
mappings[334] = ItemType.LightBlueTerracotta;
mappings[335] = ItemType.YellowTerracotta;
mappings[336] = ItemType.LimeTerracotta;
mappings[337] = ItemType.PinkTerracotta;
mappings[338] = ItemType.GrayTerracotta;
mappings[339] = ItemType.LightGrayTerracotta;
mappings[340] = ItemType.CyanTerracotta;
mappings[341] = ItemType.PurpleTerracotta;
mappings[342] = ItemType.BlueTerracotta;
mappings[343] = ItemType.BrownTerracotta;
mappings[344] = ItemType.GreenTerracotta;
mappings[345] = ItemType.RedTerracotta;
mappings[346] = ItemType.BlackTerracotta;
mappings[347] = ItemType.Barrier;
mappings[348] = ItemType.IronTrapdoor;
mappings[349] = ItemType.HayBlock;
mappings[350] = ItemType.WhiteCarpet;
mappings[351] = ItemType.OrangeCarpet;
mappings[352] = ItemType.MagentaCarpet;
mappings[353] = ItemType.LightBlueCarpet;
mappings[354] = ItemType.YellowCarpet;
mappings[355] = ItemType.LimeCarpet;
mappings[356] = ItemType.PinkCarpet;
mappings[357] = ItemType.GrayCarpet;
mappings[358] = ItemType.LightGrayCarpet;
mappings[359] = ItemType.CyanCarpet;
mappings[360] = ItemType.PurpleCarpet;
mappings[361] = ItemType.BlueCarpet;
mappings[362] = ItemType.BrownCarpet;
mappings[363] = ItemType.GreenCarpet;
mappings[364] = ItemType.RedCarpet;
mappings[365] = ItemType.BlackCarpet;
mappings[366] = ItemType.Terracotta;
mappings[367] = ItemType.CoalBlock;
mappings[368] = ItemType.PackedIce;
mappings[369] = ItemType.AcaciaStairs;
mappings[370] = ItemType.DarkOakStairs;
mappings[371] = ItemType.SlimeBlock;
mappings[372] = ItemType.GrassPath;
mappings[373] = ItemType.Sunflower;
mappings[374] = ItemType.Lilac;
mappings[375] = ItemType.RoseBush;
mappings[376] = ItemType.Peony;
mappings[377] = ItemType.TallGrass;
mappings[378] = ItemType.LargeFern;
mappings[379] = ItemType.WhiteStainedGlass;
mappings[380] = ItemType.OrangeStainedGlass;
mappings[381] = ItemType.MagentaStainedGlass;
mappings[382] = ItemType.LightBlueStainedGlass;
mappings[383] = ItemType.YellowStainedGlass;
mappings[384] = ItemType.LimeStainedGlass;
mappings[385] = ItemType.PinkStainedGlass;
mappings[386] = ItemType.GrayStainedGlass;
mappings[387] = ItemType.LightGrayStainedGlass;
mappings[388] = ItemType.CyanStainedGlass;
mappings[389] = ItemType.PurpleStainedGlass;
mappings[390] = ItemType.BlueStainedGlass;
mappings[391] = ItemType.BrownStainedGlass;
mappings[392] = ItemType.GreenStainedGlass;
mappings[393] = ItemType.RedStainedGlass;
mappings[394] = ItemType.BlackStainedGlass;
mappings[395] = ItemType.WhiteStainedGlassPane;
mappings[396] = ItemType.OrangeStainedGlassPane;
mappings[397] = ItemType.MagentaStainedGlassPane;
mappings[398] = ItemType.LightBlueStainedGlassPane;
mappings[399] = ItemType.YellowStainedGlassPane;
mappings[400] = ItemType.LimeStainedGlassPane;
mappings[401] = ItemType.PinkStainedGlassPane;
mappings[402] = ItemType.GrayStainedGlassPane;
mappings[403] = ItemType.LightGrayStainedGlassPane;
mappings[404] = ItemType.CyanStainedGlassPane;
mappings[405] = ItemType.PurpleStainedGlassPane;
mappings[406] = ItemType.BlueStainedGlassPane;
mappings[407] = ItemType.BrownStainedGlassPane;
mappings[408] = ItemType.GreenStainedGlassPane;
mappings[409] = ItemType.RedStainedGlassPane;
mappings[410] = ItemType.BlackStainedGlassPane;
mappings[411] = ItemType.Prismarine;
mappings[412] = ItemType.PrismarineBricks;
mappings[413] = ItemType.DarkPrismarine;
mappings[414] = ItemType.PrismarineStairs;
mappings[415] = ItemType.PrismarineBrickStairs;
mappings[416] = ItemType.DarkPrismarineStairs;
mappings[417] = ItemType.SeaLantern;
mappings[418] = ItemType.RedSandstone;
mappings[419] = ItemType.ChiseledRedSandstone;
mappings[420] = ItemType.CutRedSandstone;
mappings[421] = ItemType.RedSandstoneStairs;
mappings[422] = ItemType.RepeatingCommandBlock;
mappings[423] = ItemType.ChainCommandBlock;
mappings[424] = ItemType.MagmaBlock;
mappings[425] = ItemType.NetherWartBlock;
mappings[426] = ItemType.WarpedWartBlock;
mappings[427] = ItemType.RedNetherBricks;
mappings[428] = ItemType.BoneBlock;
mappings[429] = ItemType.StructureVoid;
mappings[430] = ItemType.Observer;
mappings[431] = ItemType.ShulkerBox;
mappings[432] = ItemType.WhiteShulkerBox;
mappings[433] = ItemType.OrangeShulkerBox;
mappings[434] = ItemType.MagentaShulkerBox;
mappings[435] = ItemType.LightBlueShulkerBox;
mappings[436] = ItemType.YellowShulkerBox;
mappings[437] = ItemType.LimeShulkerBox;
mappings[438] = ItemType.PinkShulkerBox;
mappings[439] = ItemType.GrayShulkerBox;
mappings[440] = ItemType.LightGrayShulkerBox;
mappings[441] = ItemType.CyanShulkerBox;
mappings[442] = ItemType.PurpleShulkerBox;
mappings[443] = ItemType.BlueShulkerBox;
mappings[444] = ItemType.BrownShulkerBox;
mappings[445] = ItemType.GreenShulkerBox;
mappings[446] = ItemType.RedShulkerBox;
mappings[447] = ItemType.BlackShulkerBox;
mappings[448] = ItemType.WhiteGlazedTerracotta;
mappings[449] = ItemType.OrangeGlazedTerracotta;
mappings[450] = ItemType.MagentaGlazedTerracotta;
mappings[451] = ItemType.LightBlueGlazedTerracotta;
mappings[452] = ItemType.YellowGlazedTerracotta;
mappings[453] = ItemType.LimeGlazedTerracotta;
mappings[454] = ItemType.PinkGlazedTerracotta;
mappings[455] = ItemType.GrayGlazedTerracotta;
mappings[456] = ItemType.LightGrayGlazedTerracotta;
mappings[457] = ItemType.CyanGlazedTerracotta;
mappings[458] = ItemType.PurpleGlazedTerracotta;
mappings[459] = ItemType.BlueGlazedTerracotta;
mappings[460] = ItemType.BrownGlazedTerracotta;
mappings[461] = ItemType.GreenGlazedTerracotta;
mappings[462] = ItemType.RedGlazedTerracotta;
mappings[463] = ItemType.BlackGlazedTerracotta;
mappings[464] = ItemType.WhiteConcrete;
mappings[465] = ItemType.OrangeConcrete;
mappings[466] = ItemType.MagentaConcrete;
mappings[467] = ItemType.LightBlueConcrete;
mappings[468] = ItemType.YellowConcrete;
mappings[469] = ItemType.LimeConcrete;
mappings[470] = ItemType.PinkConcrete;
mappings[471] = ItemType.GrayConcrete;
mappings[472] = ItemType.LightGrayConcrete;
mappings[473] = ItemType.CyanConcrete;
mappings[474] = ItemType.PurpleConcrete;
mappings[475] = ItemType.BlueConcrete;
mappings[476] = ItemType.BrownConcrete;
mappings[477] = ItemType.GreenConcrete;
mappings[478] = ItemType.RedConcrete;
mappings[479] = ItemType.BlackConcrete;
mappings[480] = ItemType.WhiteConcretePowder;
mappings[481] = ItemType.OrangeConcretePowder;
mappings[482] = ItemType.MagentaConcretePowder;
mappings[483] = ItemType.LightBlueConcretePowder;
mappings[484] = ItemType.YellowConcretePowder;
mappings[485] = ItemType.LimeConcretePowder;
mappings[486] = ItemType.PinkConcretePowder;
mappings[487] = ItemType.GrayConcretePowder;
mappings[488] = ItemType.LightGrayConcretePowder;
mappings[489] = ItemType.CyanConcretePowder;
mappings[490] = ItemType.PurpleConcretePowder;
mappings[491] = ItemType.BlueConcretePowder;
mappings[492] = ItemType.BrownConcretePowder;
mappings[493] = ItemType.GreenConcretePowder;
mappings[494] = ItemType.RedConcretePowder;
mappings[495] = ItemType.BlackConcretePowder;
mappings[496] = ItemType.TurtleEgg;
mappings[497] = ItemType.DeadTubeCoralBlock;
mappings[498] = ItemType.DeadBrainCoralBlock;
mappings[499] = ItemType.DeadBubbleCoralBlock;
mappings[500] = ItemType.DeadFireCoralBlock;
mappings[501] = ItemType.DeadHornCoralBlock;
mappings[502] = ItemType.TubeCoralBlock;
mappings[503] = ItemType.BrainCoralBlock;
mappings[504] = ItemType.BubbleCoralBlock;
mappings[505] = ItemType.FireCoralBlock;
mappings[506] = ItemType.HornCoralBlock;
mappings[507] = ItemType.TubeCoral;
mappings[508] = ItemType.BrainCoral;
mappings[509] = ItemType.BubbleCoral;
mappings[510] = ItemType.FireCoral;
mappings[511] = ItemType.HornCoral;
mappings[512] = ItemType.DeadBrainCoral;
mappings[513] = ItemType.DeadBubbleCoral;
mappings[514] = ItemType.DeadFireCoral;
mappings[515] = ItemType.DeadHornCoral;
mappings[516] = ItemType.DeadTubeCoral;
mappings[517] = ItemType.TubeCoralFan;
mappings[518] = ItemType.BrainCoralFan;
mappings[519] = ItemType.BubbleCoralFan;
mappings[520] = ItemType.FireCoralFan;
mappings[521] = ItemType.HornCoralFan;
mappings[522] = ItemType.DeadTubeCoralFan;
mappings[523] = ItemType.DeadBrainCoralFan;
mappings[524] = ItemType.DeadBubbleCoralFan;
mappings[525] = ItemType.DeadFireCoralFan;
mappings[526] = ItemType.DeadHornCoralFan;
mappings[527] = ItemType.BlueIce;
mappings[528] = ItemType.Conduit;
mappings[529] = ItemType.PolishedGraniteStairs;
mappings[530] = ItemType.SmoothRedSandstoneStairs;
mappings[531] = ItemType.MossyStoneBrickStairs;
mappings[532] = ItemType.PolishedDioriteStairs;
mappings[533] = ItemType.MossyCobblestoneStairs;
mappings[534] = ItemType.EndStoneBrickStairs;
mappings[535] = ItemType.StoneStairs;
mappings[536] = ItemType.SmoothSandstoneStairs;
mappings[537] = ItemType.SmoothQuartzStairs;
mappings[538] = ItemType.GraniteStairs;
mappings[539] = ItemType.AndesiteStairs;
mappings[540] = ItemType.RedNetherBrickStairs;
mappings[541] = ItemType.PolishedAndesiteStairs;
mappings[542] = ItemType.DioriteStairs;
mappings[543] = ItemType.PolishedGraniteSlab;
mappings[544] = ItemType.SmoothRedSandstoneSlab;
mappings[545] = ItemType.MossyStoneBrickSlab;
mappings[546] = ItemType.PolishedDioriteSlab;
mappings[547] = ItemType.MossyCobblestoneSlab;
mappings[548] = ItemType.EndStoneBrickSlab;
mappings[549] = ItemType.SmoothSandstoneSlab;
mappings[550] = ItemType.SmoothQuartzSlab;
mappings[551] = ItemType.GraniteSlab;
mappings[552] = ItemType.AndesiteSlab;
mappings[553] = ItemType.RedNetherBrickSlab;
mappings[554] = ItemType.PolishedAndesiteSlab;
mappings[555] = ItemType.DioriteSlab;
mappings[556] = ItemType.Scaffolding;
mappings[557] = ItemType.IronDoor;
mappings[558] = ItemType.OakDoor;
mappings[559] = ItemType.SpruceDoor;
mappings[560] = ItemType.BirchDoor;
mappings[561] = ItemType.JungleDoor;
mappings[562] = ItemType.AcaciaDoor;
mappings[563] = ItemType.DarkOakDoor;
mappings[564] = ItemType.CrimsonDoor;
mappings[565] = ItemType.WarpedDoor;
mappings[566] = ItemType.Repeater;
mappings[567] = ItemType.Comparator;
mappings[568] = ItemType.StructureBlock;
mappings[569] = ItemType.Jigsaw;
mappings[570] = ItemType.TurtleHelmet;
mappings[571] = ItemType.Scute;
mappings[572] = ItemType.FlintAndSteel;
mappings[573] = ItemType.Apple;
mappings[574] = ItemType.Bow;
mappings[575] = ItemType.Arrow;
mappings[576] = ItemType.Coal;
mappings[577] = ItemType.Charcoal;
mappings[578] = ItemType.Diamond;
mappings[579] = ItemType.IronIngot;
mappings[580] = ItemType.GoldIngot;
mappings[581] = ItemType.NetheriteIngot;
mappings[582] = ItemType.NetheriteScrap;
mappings[583] = ItemType.WoodenSword;
mappings[584] = ItemType.WoodenShovel;
mappings[585] = ItemType.WoodenPickaxe;
mappings[586] = ItemType.WoodenAxe;
mappings[587] = ItemType.WoodenHoe;
mappings[588] = ItemType.StoneSword;
mappings[589] = ItemType.StoneShovel;
mappings[590] = ItemType.StonePickaxe;
mappings[591] = ItemType.StoneAxe;
mappings[592] = ItemType.StoneHoe;
mappings[593] = ItemType.GoldenSword;
mappings[594] = ItemType.GoldenShovel;
mappings[595] = ItemType.GoldenPickaxe;
mappings[596] = ItemType.GoldenAxe;
mappings[597] = ItemType.GoldenHoe;
mappings[598] = ItemType.IronSword;
mappings[599] = ItemType.IronShovel;
mappings[600] = ItemType.IronPickaxe;
mappings[601] = ItemType.IronAxe;
mappings[602] = ItemType.IronHoe;
mappings[603] = ItemType.DiamondSword;
mappings[604] = ItemType.DiamondShovel;
mappings[605] = ItemType.DiamondPickaxe;
mappings[606] = ItemType.DiamondAxe;
mappings[607] = ItemType.DiamondHoe;
mappings[608] = ItemType.NetheriteSword;
mappings[609] = ItemType.NetheriteShovel;
mappings[610] = ItemType.NetheritePickaxe;
mappings[611] = ItemType.NetheriteAxe;
mappings[612] = ItemType.NetheriteHoe;
mappings[613] = ItemType.Stick;
mappings[614] = ItemType.Bowl;
mappings[615] = ItemType.MushroomStew;
mappings[616] = ItemType.String;
mappings[617] = ItemType.Feather;
mappings[618] = ItemType.Gunpowder;
mappings[619] = ItemType.WheatSeeds;
mappings[620] = ItemType.Wheat;
mappings[621] = ItemType.Bread;
mappings[622] = ItemType.LeatherHelmet;
mappings[623] = ItemType.LeatherChestplate;
mappings[624] = ItemType.LeatherLeggings;
mappings[625] = ItemType.LeatherBoots;
mappings[626] = ItemType.ChainmailHelmet;
mappings[627] = ItemType.ChainmailChestplate;
mappings[628] = ItemType.ChainmailLeggings;
mappings[629] = ItemType.ChainmailBoots;
mappings[630] = ItemType.IronHelmet;
mappings[631] = ItemType.IronChestplate;
mappings[632] = ItemType.IronLeggings;
mappings[633] = ItemType.IronBoots;
mappings[634] = ItemType.DiamondHelmet;
mappings[635] = ItemType.DiamondChestplate;
mappings[636] = ItemType.DiamondLeggings;
mappings[637] = ItemType.DiamondBoots;
mappings[638] = ItemType.GoldenHelmet;
mappings[639] = ItemType.GoldenChestplate;
mappings[640] = ItemType.GoldenLeggings;
mappings[641] = ItemType.GoldenBoots;
mappings[642] = ItemType.NetheriteHelmet;
mappings[643] = ItemType.NetheriteChestplate;
mappings[644] = ItemType.NetheriteLeggings;
mappings[645] = ItemType.NetheriteBoots;
mappings[646] = ItemType.Flint;
mappings[647] = ItemType.Porkchop;
mappings[648] = ItemType.CookedPorkchop;
mappings[649] = ItemType.Painting;
mappings[650] = ItemType.GoldenApple;
mappings[651] = ItemType.EnchantedGoldenApple;
mappings[652] = ItemType.OakSign;
mappings[653] = ItemType.SpruceSign;
mappings[654] = ItemType.BirchSign;
mappings[655] = ItemType.JungleSign;
mappings[656] = ItemType.AcaciaSign;
mappings[657] = ItemType.DarkOakSign;
mappings[658] = ItemType.CrimsonSign;
mappings[659] = ItemType.WarpedSign;
mappings[660] = ItemType.Bucket;
mappings[661] = ItemType.WaterBucket;
mappings[662] = ItemType.LavaBucket;
mappings[663] = ItemType.Minecart;
mappings[664] = ItemType.Saddle;
mappings[665] = ItemType.Redstone;
mappings[666] = ItemType.Snowball;
mappings[667] = ItemType.OakBoat;
mappings[668] = ItemType.Leather;
mappings[669] = ItemType.MilkBucket;
mappings[670] = ItemType.PufferfishBucket;
mappings[671] = ItemType.SalmonBucket;
mappings[672] = ItemType.CodBucket;
mappings[673] = ItemType.TropicalFishBucket;
mappings[674] = ItemType.Brick;
mappings[675] = ItemType.ClayBall;
mappings[676] = ItemType.DriedKelpBlock;
mappings[677] = ItemType.Paper;
mappings[678] = ItemType.Book;
mappings[679] = ItemType.SlimeBall;
mappings[680] = ItemType.ChestMinecart;
mappings[681] = ItemType.FurnaceMinecart;
mappings[682] = ItemType.Egg;
mappings[683] = ItemType.Compass;
mappings[684] = ItemType.FishingRod;
mappings[685] = ItemType.Clock;
mappings[686] = ItemType.GlowstoneDust;
mappings[687] = ItemType.Cod;
mappings[688] = ItemType.Salmon;
mappings[689] = ItemType.TropicalFish;
mappings[690] = ItemType.Pufferfish;
mappings[691] = ItemType.CookedCod;
mappings[692] = ItemType.CookedSalmon;
mappings[693] = ItemType.InkSac;
mappings[694] = ItemType.CocoaBeans;
mappings[695] = ItemType.LapisLazuli;
mappings[696] = ItemType.WhiteDye;
mappings[697] = ItemType.OrangeDye;
mappings[698] = ItemType.MagentaDye;
mappings[699] = ItemType.LightBlueDye;
mappings[700] = ItemType.YellowDye;
mappings[701] = ItemType.LimeDye;
mappings[702] = ItemType.PinkDye;
mappings[703] = ItemType.GrayDye;
mappings[704] = ItemType.LightGrayDye;
mappings[705] = ItemType.CyanDye;
mappings[706] = ItemType.PurpleDye;
mappings[707] = ItemType.BlueDye;
mappings[708] = ItemType.BrownDye;
mappings[709] = ItemType.GreenDye;
mappings[710] = ItemType.RedDye;
mappings[711] = ItemType.BlackDye;
mappings[712] = ItemType.BoneMeal;
mappings[713] = ItemType.Bone;
mappings[714] = ItemType.Sugar;
mappings[715] = ItemType.Cake;
mappings[716] = ItemType.WhiteBed;
mappings[717] = ItemType.OrangeBed;
mappings[718] = ItemType.MagentaBed;
mappings[719] = ItemType.LightBlueBed;
mappings[720] = ItemType.YellowBed;
mappings[721] = ItemType.LimeBed;
mappings[722] = ItemType.PinkBed;
mappings[723] = ItemType.GrayBed;
mappings[724] = ItemType.LightGrayBed;
mappings[725] = ItemType.CyanBed;
mappings[726] = ItemType.PurpleBed;
mappings[727] = ItemType.BlueBed;
mappings[728] = ItemType.BrownBed;
mappings[729] = ItemType.GreenBed;
mappings[730] = ItemType.RedBed;
mappings[731] = ItemType.BlackBed;
mappings[732] = ItemType.Cookie;
mappings[733] = ItemType.FilledMap;
mappings[734] = ItemType.Shears;
mappings[735] = ItemType.MelonSlice;
mappings[736] = ItemType.DriedKelp;
mappings[737] = ItemType.PumpkinSeeds;
mappings[738] = ItemType.MelonSeeds;
mappings[739] = ItemType.Beef;
mappings[740] = ItemType.CookedBeef;
mappings[741] = ItemType.Chicken;
mappings[742] = ItemType.CookedChicken;
mappings[743] = ItemType.RottenFlesh;
mappings[744] = ItemType.EnderPearl;
mappings[745] = ItemType.BlazeRod;
mappings[746] = ItemType.GhastTear;
mappings[747] = ItemType.GoldNugget;
mappings[748] = ItemType.NetherWart;
mappings[749] = ItemType.Potion;
mappings[750] = ItemType.GlassBottle;
mappings[751] = ItemType.SpiderEye;
mappings[752] = ItemType.FermentedSpiderEye;
mappings[753] = ItemType.BlazePowder;
mappings[754] = ItemType.MagmaCream;
mappings[755] = ItemType.BrewingStand;
mappings[756] = ItemType.Cauldron;
mappings[757] = ItemType.EnderEye;
mappings[758] = ItemType.GlisteringMelonSlice;
mappings[759] = ItemType.BatSpawnEgg;
mappings[760] = ItemType.BeeSpawnEgg;
mappings[761] = ItemType.BlazeSpawnEgg;
mappings[762] = ItemType.CatSpawnEgg;
mappings[763] = ItemType.CaveSpiderSpawnEgg;
mappings[764] = ItemType.ChickenSpawnEgg;
mappings[765] = ItemType.CodSpawnEgg;
mappings[766] = ItemType.CowSpawnEgg;
mappings[767] = ItemType.CreeperSpawnEgg;
mappings[768] = ItemType.DolphinSpawnEgg;
mappings[769] = ItemType.DonkeySpawnEgg;
mappings[770] = ItemType.DrownedSpawnEgg;
mappings[771] = ItemType.ElderGuardianSpawnEgg;
mappings[772] = ItemType.EndermanSpawnEgg;
mappings[773] = ItemType.EndermiteSpawnEgg;
mappings[774] = ItemType.EvokerSpawnEgg;
mappings[775] = ItemType.FoxSpawnEgg;
mappings[776] = ItemType.GhastSpawnEgg;
mappings[777] = ItemType.GuardianSpawnEgg;
mappings[778] = ItemType.HoglinSpawnEgg;
mappings[779] = ItemType.HorseSpawnEgg;
mappings[780] = ItemType.HuskSpawnEgg;
mappings[781] = ItemType.LlamaSpawnEgg;
mappings[782] = ItemType.MagmaCubeSpawnEgg;
mappings[783] = ItemType.MooshroomSpawnEgg;
mappings[784] = ItemType.MuleSpawnEgg;
mappings[785] = ItemType.OcelotSpawnEgg;
mappings[786] = ItemType.PandaSpawnEgg;
mappings[787] = ItemType.ParrotSpawnEgg;
mappings[788] = ItemType.PhantomSpawnEgg;
mappings[789] = ItemType.PigSpawnEgg;
mappings[790] = ItemType.PiglinSpawnEgg;
mappings[791] = ItemType.PiglinBruteSpawnEgg;
mappings[792] = ItemType.PillagerSpawnEgg;
mappings[793] = ItemType.PolarBearSpawnEgg;
mappings[794] = ItemType.PufferfishSpawnEgg;
mappings[795] = ItemType.RabbitSpawnEgg;
mappings[796] = ItemType.RavagerSpawnEgg;
mappings[797] = ItemType.SalmonSpawnEgg;
mappings[798] = ItemType.SheepSpawnEgg;
mappings[799] = ItemType.ShulkerSpawnEgg;
mappings[800] = ItemType.SilverfishSpawnEgg;
mappings[801] = ItemType.SkeletonSpawnEgg;
mappings[802] = ItemType.SkeletonHorseSpawnEgg;
mappings[803] = ItemType.SlimeSpawnEgg;
mappings[804] = ItemType.SpiderSpawnEgg;
mappings[805] = ItemType.SquidSpawnEgg;
mappings[806] = ItemType.StraySpawnEgg;
mappings[807] = ItemType.StriderSpawnEgg;
mappings[808] = ItemType.TraderLlamaSpawnEgg;
mappings[809] = ItemType.TropicalFishSpawnEgg;
mappings[810] = ItemType.TurtleSpawnEgg;
mappings[811] = ItemType.VexSpawnEgg;
mappings[812] = ItemType.VillagerSpawnEgg;
mappings[813] = ItemType.VindicatorSpawnEgg;
mappings[814] = ItemType.WanderingTraderSpawnEgg;
mappings[815] = ItemType.WitchSpawnEgg;
mappings[816] = ItemType.WitherSkeletonSpawnEgg;
mappings[817] = ItemType.WolfSpawnEgg;
mappings[818] = ItemType.ZoglinSpawnEgg;
mappings[819] = ItemType.ZombieSpawnEgg;
mappings[820] = ItemType.ZombieHorseSpawnEgg;
mappings[821] = ItemType.ZombieVillagerSpawnEgg;
mappings[822] = ItemType.ZombifiedPiglinSpawnEgg;
mappings[823] = ItemType.ExperienceBottle;
mappings[824] = ItemType.FireCharge;
mappings[825] = ItemType.WritableBook;
mappings[826] = ItemType.WrittenBook;
mappings[827] = ItemType.Emerald;
mappings[828] = ItemType.ItemFrame;
mappings[829] = ItemType.FlowerPot;
mappings[830] = ItemType.Carrot;
mappings[831] = ItemType.Potato;
mappings[832] = ItemType.BakedPotato;
mappings[833] = ItemType.PoisonousPotato;
mappings[834] = ItemType.Map;
mappings[835] = ItemType.GoldenCarrot;
mappings[836] = ItemType.SkeletonSkull;
mappings[837] = ItemType.WitherSkeletonSkull;
mappings[838] = ItemType.PlayerHead;
mappings[839] = ItemType.ZombieHead;
mappings[840] = ItemType.CreeperHead;
mappings[841] = ItemType.DragonHead;
mappings[842] = ItemType.CarrotOnAStick;
mappings[843] = ItemType.WarpedFungusOnAStick;
mappings[844] = ItemType.NetherStar;
mappings[845] = ItemType.PumpkinPie;
mappings[846] = ItemType.FireworkRocket;
mappings[847] = ItemType.FireworkStar;
mappings[848] = ItemType.EnchantedBook;
mappings[849] = ItemType.NetherBrick;
mappings[850] = ItemType.Quartz;
mappings[851] = ItemType.TntMinecart;
mappings[852] = ItemType.HopperMinecart;
mappings[853] = ItemType.PrismarineShard;
mappings[854] = ItemType.PrismarineCrystals;
mappings[855] = ItemType.Rabbit;
mappings[856] = ItemType.CookedRabbit;
mappings[857] = ItemType.RabbitStew;
mappings[858] = ItemType.RabbitFoot;
mappings[859] = ItemType.RabbitHide;
mappings[860] = ItemType.ArmorStand;
mappings[861] = ItemType.IronHorseArmor;
mappings[862] = ItemType.GoldenHorseArmor;
mappings[863] = ItemType.DiamondHorseArmor;
mappings[864] = ItemType.LeatherHorseArmor;
mappings[865] = ItemType.Lead;
mappings[866] = ItemType.NameTag;
mappings[867] = ItemType.CommandBlockMinecart;
mappings[868] = ItemType.Mutton;
mappings[869] = ItemType.CookedMutton;
mappings[870] = ItemType.WhiteBanner;
mappings[871] = ItemType.OrangeBanner;
mappings[872] = ItemType.MagentaBanner;
mappings[873] = ItemType.LightBlueBanner;
mappings[874] = ItemType.YellowBanner;
mappings[875] = ItemType.LimeBanner;
mappings[876] = ItemType.PinkBanner;
mappings[877] = ItemType.GrayBanner;
mappings[878] = ItemType.LightGrayBanner;
mappings[879] = ItemType.CyanBanner;
mappings[880] = ItemType.PurpleBanner;
mappings[881] = ItemType.BlueBanner;
mappings[882] = ItemType.BrownBanner;
mappings[883] = ItemType.GreenBanner;
mappings[884] = ItemType.RedBanner;
mappings[885] = ItemType.BlackBanner;
mappings[886] = ItemType.EndCrystal;
mappings[887] = ItemType.ChorusFruit;
mappings[888] = ItemType.PoppedChorusFruit;
mappings[889] = ItemType.Beetroot;
mappings[890] = ItemType.BeetrootSeeds;
mappings[891] = ItemType.BeetrootSoup;
mappings[892] = ItemType.DragonBreath;
mappings[893] = ItemType.SplashPotion;
mappings[894] = ItemType.SpectralArrow;
mappings[895] = ItemType.TippedArrow;
mappings[896] = ItemType.LingeringPotion;
mappings[897] = ItemType.Shield;
mappings[898] = ItemType.Elytra;
mappings[899] = ItemType.SpruceBoat;
mappings[900] = ItemType.BirchBoat;
mappings[901] = ItemType.JungleBoat;
mappings[902] = ItemType.AcaciaBoat;
mappings[903] = ItemType.DarkOakBoat;
mappings[904] = ItemType.TotemOfUndying;
mappings[905] = ItemType.ShulkerShell;
mappings[906] = ItemType.IronNugget;
mappings[907] = ItemType.KnowledgeBook;
mappings[908] = ItemType.DebugStick;
mappings[909] = ItemType.MusicDisc13;
mappings[910] = ItemType.MusicDiscCat;
mappings[911] = ItemType.MusicDiscBlocks;
mappings[912] = ItemType.MusicDiscChirp;
mappings[913] = ItemType.MusicDiscFar;
mappings[914] = ItemType.MusicDiscMall;
mappings[915] = ItemType.MusicDiscMellohi;
mappings[916] = ItemType.MusicDiscStal;
mappings[917] = ItemType.MusicDiscStrad;
mappings[918] = ItemType.MusicDiscWard;
mappings[919] = ItemType.MusicDisc11;
mappings[920] = ItemType.MusicDiscWait;
mappings[921] = ItemType.MusicDiscPigstep;
mappings[922] = ItemType.Trident;
mappings[923] = ItemType.PhantomMembrane;
mappings[924] = ItemType.NautilusShell;
mappings[925] = ItemType.HeartOfTheSea;
mappings[926] = ItemType.Crossbow;
mappings[927] = ItemType.SuspiciousStew;
mappings[928] = ItemType.Loom;
mappings[929] = ItemType.FlowerBannerPattern;
mappings[930] = ItemType.CreeperBannerPattern;
mappings[931] = ItemType.SkullBannerPattern;
mappings[932] = ItemType.MojangBannerPattern;
mappings[933] = ItemType.GlobeBannerPattern;
mappings[934] = ItemType.PiglinBannerPattern;
mappings[935] = ItemType.Composter;
mappings[936] = ItemType.Barrel;
mappings[937] = ItemType.Smoker;
mappings[938] = ItemType.BlastFurnace;
mappings[939] = ItemType.CartographyTable;
mappings[940] = ItemType.FletchingTable;
mappings[941] = ItemType.Grindstone;
mappings[942] = ItemType.Lectern;
mappings[943] = ItemType.SmithingTable;
mappings[944] = ItemType.Stonecutter;
mappings[945] = ItemType.Bell;
mappings[946] = ItemType.Lantern;
mappings[947] = ItemType.SoulLantern;
mappings[948] = ItemType.SweetBerries;
mappings[949] = ItemType.Campfire;
mappings[950] = ItemType.SoulCampfire;
mappings[951] = ItemType.Shroomlight;
mappings[952] = ItemType.Honeycomb;
mappings[953] = ItemType.BeeNest;
mappings[954] = ItemType.Beehive;
mappings[955] = ItemType.HoneyBottle;
mappings[956] = ItemType.HoneyBlock;
mappings[957] = ItemType.HoneycombBlock;
mappings[958] = ItemType.Lodestone;
mappings[959] = ItemType.NetheriteBlock;
mappings[960] = ItemType.AncientDebris;
mappings[961] = ItemType.Target;
mappings[962] = ItemType.CryingObsidian;
mappings[963] = ItemType.Blackstone;
mappings[964] = ItemType.BlackstoneSlab;
mappings[965] = ItemType.BlackstoneStairs;
mappings[966] = ItemType.GildedBlackstone;
mappings[967] = ItemType.PolishedBlackstone;
mappings[968] = ItemType.PolishedBlackstoneSlab;
mappings[969] = ItemType.PolishedBlackstoneStairs;
mappings[970] = ItemType.ChiseledPolishedBlackstone;
mappings[971] = ItemType.PolishedBlackstoneBricks;
mappings[972] = ItemType.PolishedBlackstoneBrickSlab;
mappings[973] = ItemType.PolishedBlackstoneBrickStairs;
mappings[974] = ItemType.CrackedPolishedBlackstoneBricks;
mappings[975] = ItemType.RespawnAnchor;
}
protected override Dictionary<int, ItemType> GetDict()
{
return mappings;
}
}
}

View file

@ -0,0 +1,28 @@
using MinecraftClient.Protocol;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace MinecraftClient.Inventory.ItemPalettes
{
public static class ItemPaletteGenerator
{
/// <summary>
/// Place below line to Program.cs
/// Inventory.ItemPalettes.ItemPaletteGenerator.GenerateItemType(@"your\path\to\registries.json");
/// See https://wiki.vg/Data_Generators for getting those .json
/// </summary>
/// <param name="registriesJsonFile"></param>
public static void GenerateItemType(string registriesJsonFile)
{
DataTypeGenerator.GenerateEnumWithPalette(
registriesJsonFile,
"minecraft:item",
"ItemType",
"MinecraftClient.Inventory",
"ItemPalette",
"MinecraftClient.Inventory.ItemPalettes");
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,20 +0,0 @@
using MinecraftClient.Protocol;
namespace MinecraftClient.Inventory
{
/// <summary>
/// Generator for MCC ItemType enumeration
/// </summary>
public static class ItemTypeGenerator
{
/// <summary>
/// Generate ItemType.cs from Minecraft registries.json
/// </summary>
/// <param name="registriesJsonFile">path to registries.json</param>
/// <remarks>java -cp minecraft_server.jar net.minecraft.data.Main --reports</remarks>
public static void GenerateItemTypes(string registriesJsonFile)
{
DataTypeGenerator.GenerateEnum(registriesJsonFile, "minecraft:item", "ItemType", "MinecraftClient.Inventory");
}
}
}

View file

@ -3,11 +3,11 @@ using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityPalettes namespace MinecraftClient.Mapping.EntityPalettes
{ {
public class EntityPalette116 : EntityPalette public class EntityPalette1161 : EntityPalette
{ {
private static Dictionary<int, EntityType> mappings = new Dictionary<int, EntityType>(); private static Dictionary<int, EntityType> mappings = new Dictionary<int, EntityType>();
static EntityPalette116() static EntityPalette1161()
{ {
mappings[0] = EntityType.AreaEffectCloud; mappings[0] = EntityType.AreaEffectCloud;
mappings[1] = EntityType.ArmorStand; mappings[1] = EntityType.ArmorStand;

View file

@ -0,0 +1,127 @@
using System;
using System.Collections.Generic;
namespace MinecraftClient.Mapping.EntityPalettes
{
public class EntityPalette1162 : EntityPalette
{
private static Dictionary<int, EntityType> mappings = new Dictionary<int, EntityType>();
static EntityPalette1162()
{
mappings[0] = EntityType.AreaEffectCloud;
mappings[1] = EntityType.ArmorStand;
mappings[2] = EntityType.Arrow;
mappings[3] = EntityType.Bat;
mappings[4] = EntityType.Bee;
mappings[5] = EntityType.Blaze;
mappings[6] = EntityType.Boat;
mappings[7] = EntityType.Cat;
mappings[8] = EntityType.CaveSpider;
mappings[9] = EntityType.Chicken;
mappings[10] = EntityType.Cod;
mappings[11] = EntityType.Cow;
mappings[12] = EntityType.Creeper;
mappings[13] = EntityType.Dolphin;
mappings[14] = EntityType.Donkey;
mappings[15] = EntityType.DragonFireball;
mappings[16] = EntityType.Drowned;
mappings[17] = EntityType.ElderGuardian;
mappings[18] = EntityType.EndCrystal;
mappings[19] = EntityType.EnderDragon;
mappings[20] = EntityType.Enderman;
mappings[21] = EntityType.Endermite;
mappings[22] = EntityType.Evoker;
mappings[23] = EntityType.EvokerFangs;
mappings[24] = EntityType.ExperienceOrb;
mappings[25] = EntityType.EyeOfEnder;
mappings[26] = EntityType.FallingBlock;
mappings[27] = EntityType.FireworkRocket;
mappings[28] = EntityType.Fox;
mappings[29] = EntityType.Ghast;
mappings[30] = EntityType.Giant;
mappings[31] = EntityType.Guardian;
mappings[32] = EntityType.Hoglin;
mappings[33] = EntityType.Horse;
mappings[34] = EntityType.Husk;
mappings[35] = EntityType.Illusioner;
mappings[36] = EntityType.IronGolem;
mappings[37] = EntityType.Item;
mappings[38] = EntityType.ItemFrame;
mappings[39] = EntityType.Fireball;
mappings[40] = EntityType.LeashKnot;
mappings[41] = EntityType.LightningBolt;
mappings[42] = EntityType.Llama;
mappings[43] = EntityType.LlamaSpit;
mappings[44] = EntityType.MagmaCube;
mappings[45] = EntityType.Minecart;
mappings[46] = EntityType.ChestMinecart;
mappings[47] = EntityType.CommandBlockMinecart;
mappings[48] = EntityType.FurnaceMinecart;
mappings[49] = EntityType.HopperMinecart;
mappings[50] = EntityType.SpawnerMinecart;
mappings[51] = EntityType.TntMinecart;
mappings[52] = EntityType.Mule;
mappings[53] = EntityType.Mooshroom;
mappings[54] = EntityType.Ocelot;
mappings[55] = EntityType.Painting;
mappings[56] = EntityType.Panda;
mappings[57] = EntityType.Parrot;
mappings[58] = EntityType.Phantom;
mappings[59] = EntityType.Pig;
mappings[60] = EntityType.Piglin;
mappings[61] = EntityType.PiglinBrute;
mappings[62] = EntityType.Pillager;
mappings[63] = EntityType.PolarBear;
mappings[64] = EntityType.Tnt;
mappings[65] = EntityType.Pufferfish;
mappings[66] = EntityType.Rabbit;
mappings[67] = EntityType.Ravager;
mappings[68] = EntityType.Salmon;
mappings[69] = EntityType.Sheep;
mappings[70] = EntityType.Shulker;
mappings[71] = EntityType.ShulkerBullet;
mappings[72] = EntityType.Silverfish;
mappings[73] = EntityType.Skeleton;
mappings[74] = EntityType.SkeletonHorse;
mappings[75] = EntityType.Slime;
mappings[76] = EntityType.SmallFireball;
mappings[77] = EntityType.SnowGolem;
mappings[78] = EntityType.Snowball;
mappings[79] = EntityType.SpectralArrow;
mappings[80] = EntityType.Spider;
mappings[81] = EntityType.Squid;
mappings[82] = EntityType.Stray;
mappings[83] = EntityType.Strider;
mappings[84] = EntityType.Egg;
mappings[85] = EntityType.EnderPearl;
mappings[86] = EntityType.ExperienceBottle;
mappings[87] = EntityType.Potion;
mappings[88] = EntityType.Trident;
mappings[89] = EntityType.TraderLlama;
mappings[90] = EntityType.TropicalFish;
mappings[91] = EntityType.Turtle;
mappings[92] = EntityType.Vex;
mappings[93] = EntityType.Villager;
mappings[94] = EntityType.Vindicator;
mappings[95] = EntityType.WanderingTrader;
mappings[96] = EntityType.Witch;
mappings[97] = EntityType.Wither;
mappings[98] = EntityType.WitherSkeleton;
mappings[99] = EntityType.WitherSkull;
mappings[100] = EntityType.Wolf;
mappings[101] = EntityType.Zoglin;
mappings[102] = EntityType.Zombie;
mappings[103] = EntityType.ZombieHorse;
mappings[104] = EntityType.ZombieVillager;
mappings[105] = EntityType.ZombifiedPiglin;
mappings[106] = EntityType.Player;
mappings[107] = EntityType.FishingBobber;
}
protected override Dictionary<int, EntityType> GetDict()
{
return mappings;
}
}
}

View file

@ -23,52 +23,53 @@ namespace MinecraftClient.Mapping
Boat, Boat,
Cat, Cat,
CaveSpider, CaveSpider,
ChestMinecart,
Chicken, Chicken,
Cod, Cod,
CommandBlockMinecart,
Cow, Cow,
Creeper, Creeper,
Dolphin, Dolphin,
Donkey, Donkey,
DragonFireball, DragonFireball,
Drowned, Drowned,
Egg,
ElderGuardian, ElderGuardian,
EndCrystal, EndCrystal,
EnderDragon, EnderDragon,
Enderman, Enderman,
Endermite, Endermite,
EnderPearl,
Evoker, Evoker,
EvokerFangs, EvokerFangs,
ExperienceBottle,
ExperienceOrb, ExperienceOrb,
EyeOfEnder, EyeOfEnder,
FallingBlock, FallingBlock,
Fireball,
FireworkRocket, FireworkRocket,
FishingBobber, FishingBobber,
Fox, Fox,
FurnaceMinecart,
Ghast, Ghast,
Giant, Giant,
Guardian, Guardian,
Hoglin, Hoglin,
HopperMinecart,
Horse, Horse,
Husk, Husk,
Illusioner, Illusioner,
IronGolem, IronGolem,
Item, Item,
ItemFrame, ItemFrame,
Fireball,
LeashKnot, LeashKnot,
LightningBolt, LightningBolt,
Llama, Llama,
LlamaSpit, LlamaSpit,
MagmaCube, MagmaCube,
Minecart, Minecart,
ChestMinecart,
CommandBlockMinecart,
FurnaceMinecart,
HopperMinecart,
SpawnerMinecart,
TntMinecart,
Mule,
Mooshroom, Mooshroom,
Mule,
Ocelot, Ocelot,
Painting, Painting,
Panda, Panda,
@ -76,9 +77,11 @@ namespace MinecraftClient.Mapping
Phantom, Phantom,
Pig, Pig,
Piglin, Piglin,
PiglinBrute,
Pillager, Pillager,
Player,
PolarBear, PolarBear,
Tnt, Potion,
Pufferfish, Pufferfish,
Rabbit, Rabbit,
Ravager, Ravager,
@ -91,20 +94,18 @@ namespace MinecraftClient.Mapping
SkeletonHorse, SkeletonHorse,
Slime, Slime,
SmallFireball, SmallFireball,
SnowGolem,
Snowball, Snowball,
SnowGolem,
SpawnerMinecart,
SpectralArrow, SpectralArrow,
Spider, Spider,
Squid, Squid,
Stray, Stray,
Strider, Strider,
Egg, Tnt,
EnderPearl, TntMinecart,
ExperienceBottle,
Player,
Potion,
Trident,
TraderLlama, TraderLlama,
Trident,
TropicalFish, TropicalFish,
Turtle, Turtle,
Vex, Vex,
@ -119,7 +120,8 @@ namespace MinecraftClient.Mapping
Zoglin, Zoglin,
Zombie, Zombie,
ZombieHorse, ZombieHorse,
ZombieVillager,
ZombiePigman, ZombiePigman,
ZombieVillager,
ZombifiedPiglin,
} }
} }

View file

@ -1101,7 +1101,7 @@ namespace MinecraftClient
{ {
// Drop 1 item count from cursor // Drop 1 item count from cursor
var itemTmp = playerInventory.Items[-1]; var itemTmp = playerInventory.Items[-1];
var itemClone = new Item((int)itemTmp.Type, 1, itemTmp.NBT); var itemClone = new Item(itemTmp.Type, 1, itemTmp.NBT);
inventory.Items[slotId] = itemClone; inventory.Items[slotId] = itemClone;
playerInventory.Items[-1].Count--; playerInventory.Items[-1].Count--;
} }
@ -1130,14 +1130,14 @@ namespace MinecraftClient
{ {
// Can be evenly divided // Can be evenly divided
Item itemTmp = inventory.Items[slotId]; Item itemTmp = inventory.Items[slotId];
playerInventory.Items[-1] = new Item((int)itemTmp.Type, itemTmp.Count / 2, itemTmp.NBT); playerInventory.Items[-1] = new Item(itemTmp.Type, itemTmp.Count / 2, itemTmp.NBT);
inventory.Items[slotId].Count = itemTmp.Count / 2; inventory.Items[slotId].Count = itemTmp.Count / 2;
} }
else else
{ {
// Cannot be evenly divided. item count on cursor is always larger than item on inventory // Cannot be evenly divided. item count on cursor is always larger than item on inventory
Item itemTmp = inventory.Items[slotId]; Item itemTmp = inventory.Items[slotId];
playerInventory.Items[-1] = new Item((int)itemTmp.Type, (itemTmp.Count + 1) / 2, itemTmp.NBT); playerInventory.Items[-1] = new Item(itemTmp.Type, (itemTmp.Count + 1) / 2, itemTmp.NBT);
inventory.Items[slotId].Count = (itemTmp.Count - 1) / 2; inventory.Items[slotId].Count = (itemTmp.Count - 1) / 2;
} }
} }
@ -1210,7 +1210,7 @@ namespace MinecraftClient
if (emptySlot != -2) if (emptySlot != -2)
{ {
var itemTmp = inventory.Items[slotId]; var itemTmp = inventory.Items[slotId];
inventory.Items[emptySlot] = new Item((int)itemTmp.Type, itemTmp.Count, itemTmp.NBT); inventory.Items[emptySlot] = new Item(itemTmp.Type, itemTmp.Count, itemTmp.NBT);
inventory.Items.Remove(slotId); inventory.Items.Remove(slotId);
} }
} }
@ -1257,7 +1257,7 @@ namespace MinecraftClient
if (emptySlot != -2) if (emptySlot != -2)
{ {
var itemTmp = inventory.Items[slotId]; var itemTmp = inventory.Items[slotId];
inventory.Items[emptySlot] = new Item((int)itemTmp.Type, itemTmp.Count, itemTmp.NBT); inventory.Items[emptySlot] = new Item(itemTmp.Type, itemTmp.Count, itemTmp.NBT);
inventory.Items.Remove(slotId); inventory.Items.Remove(slotId);
} }
} }

View file

@ -120,9 +120,13 @@
<Compile Include="Inventory\Effects.cs" /> <Compile Include="Inventory\Effects.cs" />
<Compile Include="Inventory\Hand.cs" /> <Compile Include="Inventory\Hand.cs" />
<Compile Include="Inventory\Item.cs" /> <Compile Include="Inventory\Item.cs" />
<Compile Include="Inventory\ItemPalettes\ItemPalette.cs" />
<Compile Include="Inventory\ItemPalettes\ItemPalette115.cs" />
<Compile Include="Inventory\ItemPalettes\ItemPalette1161.cs" />
<Compile Include="Inventory\ItemPalettes\ItemPalette1162.cs" />
<Compile Include="Inventory\ItemPalettes\ItemPaletteGenerator.cs" />
<Compile Include="Inventory\ItemType.cs" /> <Compile Include="Inventory\ItemType.cs" />
<Compile Include="Inventory\ItemTypeExtensions.cs" /> <Compile Include="Inventory\ItemTypeExtensions.cs" />
<Compile Include="Inventory\ItemTypeGenerator.cs" />
<Compile Include="Inventory\WindowActionType.cs" /> <Compile Include="Inventory\WindowActionType.cs" />
<Compile Include="Mapping\BlockPalettes\Palette112.cs" /> <Compile Include="Mapping\BlockPalettes\Palette112.cs" />
<Compile Include="Mapping\BlockPalettes\Palette113.cs" /> <Compile Include="Mapping\BlockPalettes\Palette113.cs" />
@ -138,7 +142,8 @@
<Compile Include="Mapping\EntityPalettes\EntityPalette.cs" /> <Compile Include="Mapping\EntityPalettes\EntityPalette.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPalette114.cs" /> <Compile Include="Mapping\EntityPalettes\EntityPalette114.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPalette115.cs" /> <Compile Include="Mapping\EntityPalettes\EntityPalette115.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPalette116.cs" /> <Compile Include="Mapping\EntityPalettes\EntityPalette1161.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPalette1162.cs" />
<Compile Include="Mapping\EntityType.cs" /> <Compile Include="Mapping\EntityType.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPaletteGenerator.cs" /> <Compile Include="Mapping\EntityPalettes\EntityPaletteGenerator.cs" />
<Compile Include="Mapping\EntityTypeExtensions.cs" /> <Compile Include="Mapping\EntityTypeExtensions.cs" />

View file

@ -32,7 +32,7 @@ namespace MinecraftClient
public const string Version = MCHighestVersion; public const string Version = MCHighestVersion;
public const string MCLowestVersion = "1.4.6"; public const string MCLowestVersion = "1.4.6";
public const string MCHighestVersion = "1.16.1"; public const string MCHighestVersion = "1.16.2";
public static readonly string BuildInfo = null; public static readonly string BuildInfo = null;
private static Thread offlinePrompt = null; private static Thread offlinePrompt = null;

View file

@ -7,6 +7,7 @@ using MinecraftClient.Mapping;
using MinecraftClient.Crypto; using MinecraftClient.Crypto;
using MinecraftClient.Inventory; using MinecraftClient.Inventory;
using MinecraftClient.Mapping.EntityPalettes; using MinecraftClient.Mapping.EntityPalettes;
using MinecraftClient.Inventory.ItemPalettes;
namespace MinecraftClient.Protocol.Handlers namespace MinecraftClient.Protocol.Handlers
{ {
@ -325,7 +326,7 @@ namespace MinecraftClient.Protocol.Handlers
/// Read a single item slot from a cache of bytes and remove it from the cache /// Read a single item slot from a cache of bytes and remove it from the cache
/// </summary> /// </summary>
/// <returns>The item that was read or NULL for an empty slot</returns> /// <returns>The item that was read or NULL for an empty slot</returns>
public Item ReadNextItemSlot(Queue<byte> cache) public Item ReadNextItemSlot(Queue<byte> cache, ItemPalette itemPalette)
{ {
List<byte> slotData = new List<byte>(); List<byte> slotData = new List<byte>();
if (protocolversion > Protocol18Handler.MC113Version) if (protocolversion > Protocol18Handler.MC113Version)
@ -334,10 +335,10 @@ namespace MinecraftClient.Protocol.Handlers
bool itemPresent = ReadNextBool(cache); bool itemPresent = ReadNextBool(cache);
if (itemPresent) if (itemPresent)
{ {
int itemID = ReadNextVarInt(cache); ItemType type = itemPalette.FromId(ReadNextVarInt(cache));
byte itemCount = ReadNextByte(cache); byte itemCount = ReadNextByte(cache);
Dictionary<string, object> nbt = ReadNextNbt(cache); Dictionary<string, object> nbt = ReadNextNbt(cache);
return new Item(itemID, itemCount, nbt); return new Item(type, itemCount, nbt);
} }
else return null; else return null;
} }
@ -350,7 +351,7 @@ namespace MinecraftClient.Protocol.Handlers
byte itemCount = ReadNextByte(cache); byte itemCount = ReadNextByte(cache);
short itemDamage = ReadNextShort(cache); short itemDamage = ReadNextShort(cache);
Dictionary<string, object> nbt = ReadNextNbt(cache); Dictionary<string, object> nbt = ReadNextNbt(cache);
return new Item(itemID, itemCount, nbt); return new Item(itemPalette.FromId(itemID), itemCount, nbt);
} }
} }
@ -494,7 +495,7 @@ namespace MinecraftClient.Protocol.Handlers
} }
} }
public Dictionary<int, object> ReadNextMetadata(Queue<byte> cache) public Dictionary<int, object> ReadNextMetadata(Queue<byte> cache, ItemPalette itemPalette)
{ {
Dictionary<int, object> data = new Dictionary<int, object>(); Dictionary<int, object> data = new Dictionary<int, object>();
byte key = ReadNextByte(cache); byte key = ReadNextByte(cache);
@ -544,7 +545,7 @@ namespace MinecraftClient.Protocol.Handlers
} }
break; break;
case 6: // Slot case 6: // Slot
value = ReadNextItemSlot(cache); value = ReadNextItemSlot(cache, itemPalette);
break; break;
case 7: // Boolean case 7: // Boolean
value = ReadNextBool(cache); value = ReadNextBool(cache);
@ -601,7 +602,7 @@ namespace MinecraftClient.Protocol.Handlers
ReadNextVarInt(cache); ReadNextVarInt(cache);
break; break;
case 32: case 32:
ReadNextItemSlot(cache); ReadNextItemSlot(cache, itemPalette);
break; break;
} }
break; break;
@ -954,8 +955,9 @@ namespace MinecraftClient.Protocol.Handlers
/// Get a byte array representing the given item as an item slot /// Get a byte array representing the given item as an item slot
/// </summary> /// </summary>
/// <param name="item">Item</param> /// <param name="item">Item</param>
/// <param name="itemPalette">Item Palette</param>
/// <returns>Item slot representation</returns> /// <returns>Item slot representation</returns>
public byte[] GetItemSlot(Item item) public byte[] GetItemSlot(Item item, ItemPalette itemPalette)
{ {
List<byte> slotData = new List<byte>(); List<byte> slotData = new List<byte>();
if (protocolversion > Protocol18Handler.MC113Version) if (protocolversion > Protocol18Handler.MC113Version)
@ -966,7 +968,7 @@ namespace MinecraftClient.Protocol.Handlers
else else
{ {
slotData.Add(1); // Item is present slotData.Add(1); // Item is present
slotData.AddRange(GetVarInt((int)item.Type)); slotData.AddRange(GetVarInt(itemPalette.ToId(item.Type)));
slotData.Add((byte)item.Count); slotData.Add((byte)item.Count);
slotData.AddRange(GetNbt(item.NBT)); slotData.AddRange(GetNbt(item.NBT));
} }
@ -978,7 +980,7 @@ namespace MinecraftClient.Protocol.Handlers
slotData.AddRange(GetShort(-1)); slotData.AddRange(GetShort(-1));
else else
{ {
slotData.AddRange(GetShort((short)item.Type)); slotData.AddRange(GetShort((short)itemPalette.ToId(item.Type)));
slotData.Add((byte)item.Count); slotData.Add((byte)item.Count);
slotData.AddRange(GetNbt(item.NBT)); slotData.AddRange(GetNbt(item.NBT));
} }

View file

@ -15,6 +15,7 @@ using MinecraftClient.Inventory;
using System.Windows.Forms; using System.Windows.Forms;
using System.Data.SqlClient; using System.Data.SqlClient;
using System.Diagnostics; using System.Diagnostics;
using MinecraftClient.Inventory.ItemPalettes;
namespace MinecraftClient.Protocol.Handlers namespace MinecraftClient.Protocol.Handlers
{ {
@ -43,6 +44,7 @@ namespace MinecraftClient.Protocol.Handlers
internal const int MC1152Version = 578; internal const int MC1152Version = 578;
internal const int MC116Version = 735; internal const int MC116Version = 735;
internal const int MC1161Version = 736; internal const int MC1161Version = 736;
internal const int MC1162Version = 751;
private int compression_treshold = 0; private int compression_treshold = 0;
private bool autocomplete_received = false; private bool autocomplete_received = false;
@ -57,6 +59,7 @@ namespace MinecraftClient.Protocol.Handlers
Protocol18Terrain pTerrain; Protocol18Terrain pTerrain;
IMinecraftComHandler handler; IMinecraftComHandler handler;
EntityPalette entityPalette; EntityPalette entityPalette;
ItemPalette itemPalette;
SocketWrapper socketWrapper; SocketWrapper socketWrapper;
DataTypes dataTypes; DataTypes dataTypes;
Thread netRead; Thread netRead;
@ -78,18 +81,19 @@ namespace MinecraftClient.Protocol.Handlers
handler.SetTerrainEnabled(false); handler.SetTerrainEnabled(false);
} }
if (handler.GetInventoryEnabled() && (protocolversion < MC110Version || protocolversion > MC1152Version)) if (handler.GetInventoryEnabled() && (protocolversion < MC110Version || protocolversion > MC1162Version))
{ {
ConsoleIO.WriteLineFormatted("§8Inventories are currently not handled for that MC version."); ConsoleIO.WriteLineFormatted("§8Inventories are currently not handled for that MC version.");
handler.SetInventoryEnabled(false); handler.SetInventoryEnabled(false);
} }
if (handler.GetEntityHandlingEnabled() && (protocolversion < MC110Version || protocolversion > MC1161Version)) if (handler.GetEntityHandlingEnabled() && (protocolversion < MC110Version || protocolversion > MC1162Version))
{ {
ConsoleIO.WriteLineFormatted("§8Entities are currently not handled for that MC version."); ConsoleIO.WriteLineFormatted("§8Entities are currently not handled for that MC version.");
handler.SetEntityHandlingEnabled(false); handler.SetEntityHandlingEnabled(false);
} }
// Block palette
if (protocolversion >= MC113Version) if (protocolversion >= MC113Version)
{ {
if (protocolVersion > MC1152Version && handler.GetTerrainEnabled()) if (protocolVersion > MC1152Version && handler.GetTerrainEnabled())
@ -102,12 +106,15 @@ namespace MinecraftClient.Protocol.Handlers
} }
else Block.Palette = new Palette112(); else Block.Palette = new Palette112();
// Entity palette
if (protocolversion >= MC113Version) if (protocolversion >= MC113Version)
{ {
if (protocolversion > MC1161Version && handler.GetEntityHandlingEnabled()) if (protocolversion > MC1162Version && handler.GetEntityHandlingEnabled())
throw new NotImplementedException("Please update entity types handling for this Minecraft version. See EntityType.cs"); throw new NotImplementedException("Please update entity types handling for this Minecraft version. See EntityType.cs");
if (protocolversion >= MC116Version) if (protocolversion >= MC1162Version)
entityPalette = new EntityPalette116(); entityPalette = new EntityPalette1162();
else if (protocolversion >= MC116Version)
entityPalette = new EntityPalette1161();
else if (protocolversion >= MC115Version) else if (protocolversion >= MC115Version)
entityPalette = new EntityPalette115(); entityPalette = new EntityPalette115();
else if (protocolVersion >= MC114Version) else if (protocolVersion >= MC114Version)
@ -115,6 +122,17 @@ namespace MinecraftClient.Protocol.Handlers
else entityPalette = new EntityPalette113(); else entityPalette = new EntityPalette113();
} }
else entityPalette = new EntityPalette112(); else entityPalette = new EntityPalette112();
// Item palette
if (protocolversion >= MC116Version)
{
if (protocolversion > MC1162Version && handler.GetInventoryEnabled())
throw new NotImplementedException("Please update item types handling for this Minecraft version. See ItemType.cs");
if (protocolversion >= MC1162Version)
itemPalette = new ItemPalette1162();
else itemPalette = new ItemPalette1161();
}
else itemPalette = new ItemPalette115();
} }
/// <summary> /// <summary>
@ -233,6 +251,10 @@ namespace MinecraftClient.Protocol.Handlers
handler.OnGameJoined(); handler.OnGameJoined();
int playerEntityID = dataTypes.ReadNextInt(packetData); int playerEntityID = dataTypes.ReadNextInt(packetData);
handler.OnReceivePlayerEntityID(playerEntityID); handler.OnReceivePlayerEntityID(playerEntityID);
if (protocolversion >= MC1162Version)
dataTypes.ReadNextBool(packetData); // Is hardcore - 1.16.2 and above
handler.OnGamemodeUpdate(Guid.Empty, dataTypes.ReadNextByte(packetData)); handler.OnGamemodeUpdate(Guid.Empty, dataTypes.ReadNextByte(packetData));
if (protocolversion >= MC116Version) if (protocolversion >= MC116Version)
@ -247,8 +269,11 @@ namespace MinecraftClient.Protocol.Handlers
//Current dimension - String identifier in 1.16, varInt below 1.16, byte below 1.9.1 //Current dimension - String identifier in 1.16, varInt below 1.16, byte below 1.9.1
if (protocolversion >= MC116Version) if (protocolversion >= MC116Version)
{ {
// TODO handle dimensions for 1.16+, needed for terrain handling if (protocolversion >= MC1162Version)
dataTypes.ReadNextNbt(packetData);
else
dataTypes.ReadNextString(packetData); dataTypes.ReadNextString(packetData);
// TODO handle dimensions for 1.16+, needed for terrain handling
this.currentDimension = 0; this.currentDimension = 0;
} }
else if (protocolversion >= MC191Version) else if (protocolversion >= MC191Version)
@ -263,7 +288,10 @@ namespace MinecraftClient.Protocol.Handlers
if (protocolversion >= MC115Version) if (protocolversion >= MC115Version)
dataTypes.ReadNextLong(packetData); // Hashed world seed - 1.15 and above dataTypes.ReadNextLong(packetData); // Hashed world seed - 1.15 and above
dataTypes.ReadNextByte(packetData); // Max Players if (protocolversion >= MC1162Version)
dataTypes.ReadNextVarInt(packetData); // Max Players - 1.16.2 and above
else
dataTypes.ReadNextByte(packetData); // Max Players - 1.16.1 and below
if (protocolversion < MC116Version) if (protocolversion < MC116Version)
dataTypes.ReadNextString(packetData); // Level Type - 1.15 and below dataTypes.ReadNextString(packetData); // Level Type - 1.15 and below
@ -687,7 +715,7 @@ namespace MinecraftClient.Protocol.Handlers
Dictionary<int, Item> inventorySlots = new Dictionary<int, Item>(); Dictionary<int, Item> inventorySlots = new Dictionary<int, Item>();
for (short slotId = 0; slotId < elements; slotId++) for (short slotId = 0; slotId < elements; slotId++)
{ {
Item item = dataTypes.ReadNextItemSlot(packetData); Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette);
if (item != null) if (item != null)
inventorySlots[slotId] = item; inventorySlots[slotId] = item;
} }
@ -699,7 +727,7 @@ namespace MinecraftClient.Protocol.Handlers
{ {
byte windowID = dataTypes.ReadNextByte(packetData); byte windowID = dataTypes.ReadNextByte(packetData);
short slotID = dataTypes.ReadNextShort(packetData); short slotID = dataTypes.ReadNextShort(packetData);
Item item = dataTypes.ReadNextItemSlot(packetData); Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette);
handler.OnSetSlot(windowID, slotID, item); handler.OnSetSlot(windowID, slotID, item);
} }
break; break;
@ -739,9 +767,25 @@ namespace MinecraftClient.Protocol.Handlers
if (handler.GetEntityHandlingEnabled()) if (handler.GetEntityHandlingEnabled())
{ {
int entityid = dataTypes.ReadNextVarInt(packetData); int entityid = dataTypes.ReadNextVarInt(packetData);
int slot2 = dataTypes.ReadNextVarInt(packetData); if (protocolversion >= MC116Version)
Item item = dataTypes.ReadNextItemSlot(packetData); {
bool hasNext;
do
{
byte bitsData = dataTypes.ReadNextByte(packetData);
// Top bit set if another entry follows, and otherwise unset if this is the last item in the array
hasNext = (bitsData >> 7) == 1 ? true : false;
int slot2 = bitsData >> 1;
Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette);
handler.OnEntityEquipment(entityid, slot2, item); handler.OnEntityEquipment(entityid, slot2, item);
} while (hasNext);
}
else
{
int slot2 = dataTypes.ReadNextVarInt(packetData);
Item item = dataTypes.ReadNextItemSlot(packetData, itemPalette);
handler.OnEntityEquipment(entityid, slot2, item);
}
} }
break; break;
case PacketIncomingType.SpawnLivingEntity: case PacketIncomingType.SpawnLivingEntity:
@ -865,7 +909,7 @@ namespace MinecraftClient.Protocol.Handlers
if (handler.GetEntityHandlingEnabled()) if (handler.GetEntityHandlingEnabled())
{ {
int EntityID = dataTypes.ReadNextVarInt(packetData); int EntityID = dataTypes.ReadNextVarInt(packetData);
Dictionary<int, object> metadata = dataTypes.ReadNextMetadata(packetData); Dictionary<int, object> metadata = dataTypes.ReadNextMetadata(packetData, itemPalette); // need itemPalette because metadata need to read slot item
int healthField = protocolversion >= MC114Version ? 8 : 7; // Health is field no. 7 in 1.10+ and 8 in 1.14+ int healthField = protocolversion >= MC114Version ? 8 : 7; // Health is field no. 7 in 1.10+ and 8 in 1.14+
if (metadata.ContainsKey(healthField) && metadata[healthField].GetType() == typeof(float)) if (metadata.ContainsKey(healthField) && metadata[healthField].GetType() == typeof(float))
handler.OnEntityHealth(EntityID, (float)metadata[healthField]); handler.OnEntityHealth(EntityID, (float)metadata[healthField]);
@ -1641,18 +1685,18 @@ namespace MinecraftClient.Protocol.Handlers
case WindowActionType.LeftClick: button = 0; break; case WindowActionType.LeftClick: button = 0; break;
case WindowActionType.RightClick: button = 1; break; case WindowActionType.RightClick: button = 1; break;
case WindowActionType.MiddleClick: button = 2; mode = 3; break; case WindowActionType.MiddleClick: button = 2; mode = 3; break;
case WindowActionType.ShiftClick: button = 0; mode = 1; item = new Item(-1, 0, null); break; case WindowActionType.ShiftClick: button = 0; mode = 1; item = new Item(ItemType.Null, 0, null); break;
case WindowActionType.DropItem: button = 0; mode = 4; item = new Item(-1, 0, null); break; case WindowActionType.DropItem: button = 0; mode = 4; item = new Item(ItemType.Null, 0, null); break;
case WindowActionType.DropItemStack: button = 1; mode = 4; item = new Item(-1, 0, null); break; case WindowActionType.DropItemStack: button = 1; mode = 4; item = new Item(ItemType.Null, 0, null); break;
case WindowActionType.StartDragLeft: button = 0; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.StartDragLeft: button = 0; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.StartDragRight: button = 4; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.StartDragRight: button = 4; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.StartDragMiddle: button = 8; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.StartDragMiddle: button = 8; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.EndDragLeft: button = 2; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.EndDragLeft: button = 2; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.EndDragRight: button = 6; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.EndDragRight: button = 6; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.EndDragMiddle: button = 10; mode = 5; item = new Item(-1, 0, null); slotId = -999; break; case WindowActionType.EndDragMiddle: button = 10; mode = 5; item = new Item(ItemType.Null, 0, null); slotId = -999; break;
case WindowActionType.AddDragLeft: button = 1; mode = 5; item = new Item(-1, 0, null); break; case WindowActionType.AddDragLeft: button = 1; mode = 5; item = new Item(ItemType.Null, 0, null); break;
case WindowActionType.AddDragRight: button = 5; mode = 5; item = new Item(-1, 0, null); break; case WindowActionType.AddDragRight: button = 5; mode = 5; item = new Item(ItemType.Null, 0, null); break;
case WindowActionType.AddDragMiddle: button = 9; mode = 5; item = new Item(-1, 0, null); break; case WindowActionType.AddDragMiddle: button = 9; mode = 5; item = new Item(ItemType.Null, 0, null); break;
} }
List<byte> packet = new List<byte>(); List<byte> packet = new List<byte>();
@ -1665,7 +1709,7 @@ namespace MinecraftClient.Protocol.Handlers
packet.AddRange(dataTypes.GetVarInt(mode)); packet.AddRange(dataTypes.GetVarInt(mode));
else packet.Add(mode); else packet.Add(mode);
packet.AddRange(dataTypes.GetItemSlot(item)); packet.AddRange(dataTypes.GetItemSlot(item, itemPalette));
SendPacket(PacketOutgoingType.ClickWindow, packet); SendPacket(PacketOutgoingType.ClickWindow, packet);
return true; return true;
@ -1681,7 +1725,7 @@ namespace MinecraftClient.Protocol.Handlers
{ {
List<byte> packet = new List<byte>(); List<byte> packet = new List<byte>();
packet.AddRange(dataTypes.GetShort((short)slot)); packet.AddRange(dataTypes.GetShort((short)slot));
packet.AddRange(dataTypes.GetItemSlot(new Item((int)itemType, count, nbt))); packet.AddRange(dataTypes.GetItemSlot(new Item(itemType, count, nbt), itemPalette));
SendPacket(PacketOutgoingType.CreativeInventoryAction, packet); SendPacket(PacketOutgoingType.CreativeInventoryAction, packet);
return true; return true;
} }

View file

@ -366,8 +366,10 @@ namespace MinecraftClient.Protocol.Handlers
case 0x4D: return PacketIncomingType.UpdateScore; case 0x4D: return PacketIncomingType.UpdateScore;
} }
} else { }
switch (packetID) // MC 1.16+ else if (protocol <= Protocol18Handler.MC1161Version)
{
switch (packetID) // MC 1.16 and 1.16.1
{ {
case 0x20: return PacketIncomingType.KeepAlive; case 0x20: return PacketIncomingType.KeepAlive;
case 0x25: return PacketIncomingType.JoinGame; case 0x25: return PacketIncomingType.JoinGame;
@ -414,6 +416,55 @@ namespace MinecraftClient.Protocol.Handlers
case 0x4D: return PacketIncomingType.UpdateScore; case 0x4D: return PacketIncomingType.UpdateScore;
} }
} }
else
{
switch (packetID) // MC 1.16.2
{
case 0x1F: return PacketIncomingType.KeepAlive;
case 0x24: return PacketIncomingType.JoinGame;
case 0x0E: return PacketIncomingType.ChatMessage;
case 0x39: return PacketIncomingType.Respawn;
case 0x35: return PacketIncomingType.PlayerPositionAndLook;
case 0x20: return PacketIncomingType.ChunkData;
case 0x3B: return PacketIncomingType.MultiBlockChange;
case 0x0B: return PacketIncomingType.BlockChange;
// MapChunkBulk does not exist since 1.9
case 0x1C: return PacketIncomingType.UnloadChunk;
case 0x32: return PacketIncomingType.PlayerListUpdate;
case 0x0F: return PacketIncomingType.TabCompleteResult;
case 0x17: return PacketIncomingType.PluginMessage;
case 0x19: return PacketIncomingType.KickPacket;
// NetworkCompressionTreshold does not exist since 1.9
case 0x38: return PacketIncomingType.ResourcePackSend;
case 0x12: return PacketIncomingType.CloseWindow;
case 0x2D: return PacketIncomingType.OpenWindow;
case 0x13: return PacketIncomingType.WindowItems;
case 0x11: return PacketIncomingType.WindowConfirmation;
case 0x15: return PacketIncomingType.SetSlot;
case 0x00: return PacketIncomingType.SpawnEntity;
case 0x02: return PacketIncomingType.SpawnLivingEntity;
case 0x04: return PacketIncomingType.SpawnPlayer;
case 0x36: return PacketIncomingType.DestroyEntities;
case 0x16: return PacketIncomingType.SetCooldown;
case 0x27: return PacketIncomingType.EntityPosition;
case 0x28: return PacketIncomingType.EntityPositionAndRotation;
case 0x58: return PacketIncomingType.EntityProperties;
case 0x56: return PacketIncomingType.EntityTeleport;
case 0x46: return PacketIncomingType.EntityVelocity;
case 0x47: return PacketIncomingType.EntityEquipment;
case 0x59: return PacketIncomingType.EntityEffect;
case 0x44: return PacketIncomingType.EntityMetadata;
case 0x4E: return PacketIncomingType.TimeUpdate;
case 0x49: return PacketIncomingType.UpdateHealth;
case 0x48: return PacketIncomingType.SetExperience;
case 0x3F: return PacketIncomingType.HeldItemChange;
case 0x1B: return PacketIncomingType.Explosion;
case 0x25: return PacketIncomingType.MapData;
case 0x4F: return PacketIncomingType.Title;
case 0x4A: return PacketIncomingType.ScoreboardObjective;
case 0x4D: return PacketIncomingType.UpdateScore;
}
}
return PacketIncomingType.UnknownPacket; return PacketIncomingType.UnknownPacket;
} }
@ -606,7 +657,7 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.UpdateCommandBlock: return 0x24; case PacketOutgoingType.UpdateCommandBlock: return 0x24;
} }
} }
else else if (protocol <= Protocol18Handler.MC1161Version) // MC 1.16 and 1.16.1
{ {
switch (packet) switch (packet)
{ {
@ -635,6 +686,35 @@ namespace MinecraftClient.Protocol.Handlers
case PacketOutgoingType.UpdateCommandBlock: return 0x25; case PacketOutgoingType.UpdateCommandBlock: return 0x25;
} }
} }
else
{
switch (packet)
{
case PacketOutgoingType.KeepAlive: return 0x10;
case PacketOutgoingType.ResourcePackStatus: return 0x21;
case PacketOutgoingType.ChatMessage: return 0x03;
case PacketOutgoingType.ClientStatus: return 0x04;
case PacketOutgoingType.ClientSettings: return 0x05;
case PacketOutgoingType.PluginMessage: return 0x0B;
case PacketOutgoingType.TabComplete: return 0x06;
case PacketOutgoingType.EntityAction: return 0x1C;
case PacketOutgoingType.PlayerPosition: return 0x12;
case PacketOutgoingType.PlayerPositionAndLook: return 0x13;
case PacketOutgoingType.TeleportConfirm: return 0x00;
case PacketOutgoingType.HeldItemChange: return 0x25;
case PacketOutgoingType.InteractEntity: return 0x0E;
case PacketOutgoingType.UseItem: return 0x2F;
case PacketOutgoingType.ClickWindow: return 0x09;
case PacketOutgoingType.CloseWindow: return 0x0A;
case PacketOutgoingType.WindowConfirmation: return 0x07;
case PacketOutgoingType.PlayerBlockPlacement: return 0x2E;
case PacketOutgoingType.CreativeInventoryAction: return 0x28;
case PacketOutgoingType.Animation: return 0x2C;
case PacketOutgoingType.PlayerDigging: return 0x1B;
case PacketOutgoingType.UpdateSign: return 0x2B;
case PacketOutgoingType.UpdateCommandBlock: return 0x26;
}
}
throw new System.ComponentModel.InvalidEnumArgumentException("Unknown PacketOutgoingType (protocol=" + protocol + ")", (int)packet, typeof(PacketOutgoingType)); throw new System.ComponentModel.InvalidEnumArgumentException("Unknown PacketOutgoingType (protocol=" + protocol + ")", (int)packet, typeof(PacketOutgoingType));
} }

View file

@ -126,7 +126,7 @@ namespace MinecraftClient.Protocol
int[] supportedVersions_Protocol16 = { 51, 60, 61, 72, 73, 74, 78 }; int[] supportedVersions_Protocol16 = { 51, 60, 61, 72, 73, 74, 78 };
if (Array.IndexOf(supportedVersions_Protocol16, ProtocolVersion) > -1) if (Array.IndexOf(supportedVersions_Protocol16, ProtocolVersion) > -1)
return new Protocol16Handler(Client, ProtocolVersion, Handler); return new Protocol16Handler(Client, ProtocolVersion, Handler);
int[] supportedVersions_Protocol18 = { 4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573, 575, 578, 735, 736}; int[] supportedVersions_Protocol18 = { 4, 5, 47, 107, 108, 109, 110, 210, 315, 316, 335, 338, 340, 393, 401, 404, 477, 480, 485, 490, 498, 573, 575, 578, 735, 736, 751 };
if (Array.IndexOf(supportedVersions_Protocol18, ProtocolVersion) > -1) if (Array.IndexOf(supportedVersions_Protocol18, ProtocolVersion) > -1)
return new Protocol18Handler(Client, ProtocolVersion, Handler, forgeInfo); return new Protocol18Handler(Client, ProtocolVersion, Handler, forgeInfo);
throw new NotSupportedException("The protocol version no." + ProtocolVersion + " is not supported."); throw new NotSupportedException("The protocol version no." + ProtocolVersion + " is not supported.");
@ -238,6 +238,8 @@ namespace MinecraftClient.Protocol
return 735; return 735;
case "1.16.1": case "1.16.1":
return 736; return 736;
case "1.16.2":
return 751;
default: default:
return 0; return 0;
} }