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

View file

@ -311,7 +311,6 @@ namespace MinecraftClient.ChatBots
// local variable for use in parsing config
string section = "";
Dictionary<string, Recipe> recipes = new Dictionary<string, Recipe>();
string lastRecipe = "";
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)
{
if (!handler.GetTerrainEnabled())
if (!handler.GetInventoryEnabled())
return "Please enable InventoryHandling in the config file first.";
if (hasArg(command))

View file

@ -26,14 +26,14 @@ namespace MinecraftClient.Inventory
public Dictionary<string, object> NBT;
/// <summary>
/// Create an item with Type ID, Count and Metadata
/// Create an item with ItemType, Count and Metadata
/// </summary>
/// <param name="ID">Item Type ID</param>
/// <param name="Count">Item Count</param>
/// <param name="itemType">Type of the item</param>
/// <param name="count">Item Count</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.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
{
public class EntityPalette116 : EntityPalette
public class EntityPalette1161 : EntityPalette
{
private static Dictionary<int, EntityType> mappings = new Dictionary<int, EntityType>();
static EntityPalette116()
static EntityPalette1161()
{
mappings[0] = EntityType.AreaEffectCloud;
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,
Cat,
CaveSpider,
ChestMinecart,
Chicken,
Cod,
CommandBlockMinecart,
Cow,
Creeper,
Dolphin,
Donkey,
DragonFireball,
Drowned,
Egg,
ElderGuardian,
EndCrystal,
EnderDragon,
Enderman,
Endermite,
EnderPearl,
Evoker,
EvokerFangs,
ExperienceBottle,
ExperienceOrb,
EyeOfEnder,
FallingBlock,
Fireball,
FireworkRocket,
FishingBobber,
Fox,
FurnaceMinecart,
Ghast,
Giant,
Guardian,
Hoglin,
HopperMinecart,
Horse,
Husk,
Illusioner,
IronGolem,
Item,
ItemFrame,
Fireball,
LeashKnot,
LightningBolt,
Llama,
LlamaSpit,
MagmaCube,
Minecart,
ChestMinecart,
CommandBlockMinecart,
FurnaceMinecart,
HopperMinecart,
SpawnerMinecart,
TntMinecart,
Mule,
Mooshroom,
Mule,
Ocelot,
Painting,
Panda,
@ -76,9 +77,11 @@ namespace MinecraftClient.Mapping
Phantom,
Pig,
Piglin,
PiglinBrute,
Pillager,
Player,
PolarBear,
Tnt,
Potion,
Pufferfish,
Rabbit,
Ravager,
@ -91,20 +94,18 @@ namespace MinecraftClient.Mapping
SkeletonHorse,
Slime,
SmallFireball,
SnowGolem,
Snowball,
SnowGolem,
SpawnerMinecart,
SpectralArrow,
Spider,
Squid,
Stray,
Strider,
Egg,
EnderPearl,
ExperienceBottle,
Player,
Potion,
Trident,
Tnt,
TntMinecart,
TraderLlama,
Trident,
TropicalFish,
Turtle,
Vex,
@ -119,7 +120,8 @@ namespace MinecraftClient.Mapping
Zoglin,
Zombie,
ZombieHorse,
ZombieVillager,
ZombiePigman,
ZombieVillager,
ZombifiedPiglin,
}
}

View file

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

View file

@ -120,9 +120,13 @@
<Compile Include="Inventory\Effects.cs" />
<Compile Include="Inventory\Hand.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\ItemTypeExtensions.cs" />
<Compile Include="Inventory\ItemTypeGenerator.cs" />
<Compile Include="Inventory\WindowActionType.cs" />
<Compile Include="Mapping\BlockPalettes\Palette112.cs" />
<Compile Include="Mapping\BlockPalettes\Palette113.cs" />
@ -138,7 +142,8 @@
<Compile Include="Mapping\EntityPalettes\EntityPalette.cs" />
<Compile Include="Mapping\EntityPalettes\EntityPalette114.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\EntityPalettes\EntityPaletteGenerator.cs" />
<Compile Include="Mapping\EntityTypeExtensions.cs" />

View file

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

View file

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

View file

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

View file

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

View file

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