From c79d54dc4f03c2b6df5d44367750429fae2e31d0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 16:28:05 +0000 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=88=20Add=20Minecraft=20pc=201.21.11?= =?UTF-8?q?=20data?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/dataPaths.json | 27 + data/pc/1.21.11/protocol.json | 10252 ++++++++++++++++++++++++++++++++ data/pc/1.21.11/version.json | 6 + data/pc/1.21.8/proto.yml | 3494 +++++++++++ data/pc/common/versions.json | 5 +- data/pc/latest/proto.yml | 2 +- 6 files changed, 13783 insertions(+), 3 deletions(-) create mode 100644 data/pc/1.21.11/protocol.json create mode 100644 data/pc/1.21.11/version.json create mode 100644 data/pc/1.21.8/proto.yml diff --git a/data/dataPaths.json b/data/dataPaths.json index 93fe49dba..ed98024b6 100644 --- a/data/dataPaths.json +++ b/data/dataPaths.json @@ -1637,6 +1637,33 @@ "tints": "pc/1.21.8", "version": "pc/1.21.8", "windows": "pc/1.16.1", + "proto": "pc/1.21.8" + }, + "1.21.11": { + "attributes": "pc/1.21.8", + "blockCollisionShapes": "pc/1.21.8", + "blocks": "pc/1.21.8", + "blockLoot": "pc/1.20", + "biomes": "pc/1.21.8", + "commands": "pc/1.20.3", + "effects": "pc/1.21.8", + "enchantments": "pc/1.21.8", + "entities": "pc/1.21.8", + "entityLoot": "pc/1.20", + "foods": "pc/1.21.8", + "instruments": "pc/1.21.8", + "items": "pc/1.21.8", + "language": "pc/1.21.8", + "loginPacket": "pc/1.21.3", + "mapIcons": "pc/1.20.2", + "materials": "pc/1.21.8", + "particles": "pc/1.21.8", + "protocol": "pc/1.21.11", + "recipes": "pc/1.21.8", + "sounds": "pc/1.21.8", + "tints": "pc/1.21.8", + "version": "pc/1.21.11", + "windows": "pc/1.16.1", "proto": "pc/latest" } }, diff --git a/data/pc/1.21.11/protocol.json b/data/pc/1.21.11/protocol.json new file mode 100644 index 000000000..ee96ff7db --- /dev/null +++ b/data/pc/1.21.11/protocol.json @@ -0,0 +1,10252 @@ +{ + "types": { + "varint": "native", + "varlong": "native", + "optvarint": "varint", + "pstring": "native", + "buffer": "native", + "u8": "native", + "u16": "native", + "u32": "native", + "u64": "native", + "i8": "native", + "i16": "native", + "i32": "native", + "i64": "native", + "bool": "native", + "f32": "native", + "f64": "native", + "UUID": "native", + "option": "native", + "entityMetadataLoop": "native", + "topBitSetTerminatedArray": "native", + "bitfield": "native", + "bitflags": "native", + "container": "native", + "switch": "native", + "void": "native", + "array": "native", + "restBuffer": "native", + "anonymousNbt": "native", + "anonOptionalNbt": "native", + "registryEntryHolder": "native", + "registryEntryHolderSet": "native", + "ByteArray": [ + "buffer", + { + "countType": "varint" + } + ], + "string": [ + "pstring", + { + "countType": "varint" + } + ], + "vec2f": [ + "container", + [ + { + "name": "x", + "type": "f32" + }, + { + "name": "y", + "type": "f32" + } + ] + ], + "vec3f": [ + "container", + [ + { + "name": "x", + "type": "f32" + }, + { + "name": "y", + "type": "f32" + }, + { + "name": "z", + "type": "f32" + } + ] + ], + "vec4f": [ + "container", + [ + { + "name": "x", + "type": "f32" + }, + { + "name": "y", + "type": "f32" + }, + { + "name": "z", + "type": "f32" + }, + { + "name": "w", + "type": "f32" + } + ] + ], + "vec3f64": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + } + ] + ], + "vec3i": [ + "container", + [ + { + "name": "x", + "type": "varint" + }, + { + "name": "y", + "type": "varint" + }, + { + "name": "z", + "type": "varint" + } + ] + ], + "IDSet": [ + "registryEntryHolderSet", + { + "base": { + "name": "name", + "type": "string" + }, + "otherwise": { + "name": "ids", + "type": "varint" + } + } + ], + "ContainerID": "varint", + "SlotComponentType": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "custom_data", + "1": "max_stack_size", + "2": "max_damage", + "3": "damage", + "4": "unbreakable", + "5": "custom_name", + "6": "item_name", + "7": "item_model", + "8": "lore", + "9": "rarity", + "10": "enchantments", + "11": "can_place_on", + "12": "can_break", + "13": "attribute_modifiers", + "14": "custom_model_data", + "15": "tooltip_display", + "16": "repair_cost", + "17": "creative_slot_lock", + "18": "enchantment_glint_override", + "19": "intangible_projectile", + "20": "food", + "21": "consumable", + "22": "use_remainder", + "23": "use_cooldown", + "24": "damage_resistant", + "25": "tool", + "26": "weapon", + "27": "enchantable", + "28": "equippable", + "29": "repairable", + "30": "glider", + "31": "tooltip_style", + "32": "death_protection", + "33": "blocks_attacks", + "34": "stored_enchantments", + "35": "dyed_color", + "36": "map_color", + "37": "map_id", + "38": "map_decorations", + "39": "map_post_processing", + "40": "potion_duration_scale", + "41": "charged_projectiles", + "42": "bundle_contents", + "43": "potion_contents", + "44": "suspicious_stew_effects", + "45": "writable_book_content", + "46": "written_book_content", + "47": "trim", + "48": "debug_stick_state", + "49": "entity_data", + "50": "bucket_entity_data", + "51": "block_entity_data", + "52": "instrument", + "53": "provides_trim_material", + "54": "ominous_bottle_amplifier", + "55": "jukebox_playable", + "56": "provides_banner_patterns", + "57": "recipes", + "58": "lodestone_tracker", + "59": "firework_explosion", + "60": "fireworks", + "61": "profile", + "62": "note_block_sound", + "63": "banner_patterns", + "64": "base_color", + "65": "pot_decorations", + "66": "container", + "67": "block_state", + "68": "bees", + "69": "lock", + "70": "container_loot", + "71": "break_sound", + "72": "villager/variant", + "73": "wolf/variant", + "74": "wolf/sound_variant", + "75": "wolf/collar", + "76": "fox/variant", + "77": "salmon/size", + "78": "parrot/variant", + "79": "tropical_fish/pattern", + "80": "tropical_fish/base_color", + "81": "tropical_fish/pattern_color", + "82": "mooshroom/variant", + "83": "rabbit/variant", + "84": "pig/variant", + "85": "cow/variant", + "86": "chicken/variant", + "87": "frog/variant", + "88": "horse/variant", + "89": "painting/variant", + "90": "llama/variant", + "91": "axolotl/variant", + "92": "cat/variant", + "93": "cat/collar", + "94": "sheep/color", + "95": "shulker/color" + } + } + ], + "SlotComponent": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "custom_data": "anonymousNbt", + "max_stack_size": "varint", + "max_damage": "varint", + "damage": "varint", + "unbreakable": "void", + "custom_name": "anonymousNbt", + "item_name": "anonymousNbt", + "item_model": "string", + "lore": [ + "array", + { + "countType": "varint", + "type": "anonymousNbt" + } + ], + "rarity": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "common", + "1": "uncommon", + "2": "rare", + "3": "epic" + } + } + ], + "enchantments": [ + "container", + [ + { + "name": "enchantments", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "level", + "type": "varint" + } + ] + ] + } + ] + } + ] + ], + "stored_enchantments": [ + "container", + [ + { + "name": "enchantments", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "level", + "type": "varint" + } + ] + ] + } + ] + } + ] + ], + "can_place_on": [ + "container", + [ + { + "name": "predicates", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemBlockPredicate" + } + ] + } + ] + ], + "can_break": [ + "container", + [ + { + "name": "predicates", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemBlockPredicate" + } + ] + } + ] + ], + "attribute_modifiers": [ + "container", + [ + { + "name": "attributes", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "typeId", + "type": "varint" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "f64" + }, + { + "name": "operation", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "add", + "1": "multiply_base", + "2": "multiply_total" + } + } + ] + }, + { + "name": "slot", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "any", + "1": "main_hand", + "2": "off_hand", + "3": "hand", + "4": "feet", + "5": "legs", + "6": "chest", + "7": "head", + "8": "armor", + "9": "body", + "10": "saddle" + } + } + ] + } + ] + ] + } + ] + }, + { + "name": "display", + "type": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "default", + "1": "hidden", + "2": "override" + } + } + ] + }, + { + "name": "component", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "override": "anonymousNbt" + } + } + ] + } + ] + ] + } + ] + ], + "custom_model_data": [ + "container", + [ + { + "name": "floats", + "type": [ + "array", + { + "countType": "varint", + "type": "f32" + } + ] + }, + { + "name": "flags", + "type": [ + "array", + { + "countType": "varint", + "type": "bool" + } + ] + }, + { + "name": "strings", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "colors", + "type": [ + "array", + { + "countType": "varint", + "type": "i32" + } + ] + } + ] + ], + "tooltip_display": [ + "container", + [ + { + "name": "hideTooltip", + "type": "bool" + }, + { + "name": "hiddenComponents", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "repair_cost": "varint", + "creative_slot_lock": "void", + "enchantment_glint_override": "bool", + "intangible_projectile": "void", + "blocks_attacks": [ + "container", + [ + { + "name": "blockDelaySeconds", + "type": "f32" + }, + { + "name": "disableCooldownScale", + "type": "f32" + }, + { + "name": "damageReductions", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "horizontalBlockingAngle", + "type": "f32" + }, + { + "name": "type", + "type": [ + "option", + "IDSet" + ] + }, + { + "name": "base", + "type": "f32" + }, + { + "name": "factor", + "type": "f32" + } + ] + ] + } + ] + }, + { + "name": "itemDamage", + "type": [ + "container", + [ + { + "name": "threshold", + "type": "f32" + }, + { + "name": "base", + "type": "f32" + }, + { + "name": "factor", + "type": "f32" + } + ] + ] + }, + { + "name": "bypassedBy", + "type": [ + "option", + "string" + ] + }, + { + "name": "blockSound", + "type": [ + "option", + "ItemSoundHolder" + ] + }, + { + "name": "disableSound", + "type": [ + "option", + "ItemSoundHolder" + ] + } + ] + ], + "food": [ + "container", + [ + { + "name": "nutrition", + "type": "varint" + }, + { + "name": "saturationModifier", + "type": "f32" + }, + { + "name": "canAlwaysEat", + "type": "bool" + } + ] + ], + "consumable": [ + "container", + [ + { + "name": "consume_seconds", + "type": "f32" + }, + { + "name": "animation", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "none", + "1": "eat", + "2": "drink", + "3": "block", + "4": "bow", + "5": "spear", + "6": "crossbow", + "7": "spyglass", + "8": "toot_horn", + "9": "brush", + "10": "bundle" + } + } + ] + }, + { + "name": "sound", + "type": "ItemSoundHolder" + }, + { + "name": "makes_particles", + "type": "bool" + }, + { + "name": "effects", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemConsumeEffect" + } + ] + } + ] + ], + "use_remainder": "Slot", + "use_cooldown": [ + "container", + [ + { + "name": "seconds", + "type": "f32" + }, + { + "name": "cooldownGroup", + "type": [ + "option", + "string" + ] + } + ] + ], + "damage_resistant": "string", + "tool": [ + "container", + [ + { + "name": "rules", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "blocks", + "type": "IDSet" + }, + { + "name": "speed", + "type": [ + "option", + "f32" + ] + }, + { + "name": "correctDropForBlocks", + "type": [ + "option", + "bool" + ] + } + ] + ] + } + ] + }, + { + "name": "defaultMiningSpeed", + "type": "f32" + }, + { + "name": "damagePerBlock", + "type": "varint" + }, + { + "name": "canDestroyBlocksInCreative", + "type": "bool" + } + ] + ], + "weapon": [ + "container", + [ + { + "name": "itemDamagePerAttack", + "type": "varint" + }, + { + "name": "disableBlockingForSeconds", + "type": "f32" + } + ] + ], + "enchantable": "varint", + "equippable": [ + "container", + [ + { + "name": "slot", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "main_hand", + "1": "off_hand", + "2": "feet", + "3": "legs", + "4": "chest", + "5": "head", + "6": "body", + "7": "saddle" + } + } + ] + }, + { + "name": "sound", + "type": "ItemSoundHolder" + }, + { + "name": "model", + "type": [ + "option", + "string" + ] + }, + { + "name": "cameraOverlay", + "type": [ + "option", + "string" + ] + }, + { + "name": "allowedEntities", + "type": [ + "option", + "IDSet" + ] + }, + { + "name": "dispensable", + "type": "bool" + }, + { + "name": "swappable", + "type": "bool" + }, + { + "name": "damageable", + "type": "bool" + }, + { + "name": "equipOnInteract", + "type": "bool" + }, + { + "name": "shearable", + "type": "bool" + }, + { + "name": "shearingSound", + "type": "ItemSoundHolder" + } + ] + ], + "repairable": [ + "container", + [ + { + "name": "items", + "type": "IDSet" + } + ] + ], + "glider": "void", + "tooltip_style": "string", + "death_protection": [ + "container", + [ + { + "name": "effects", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemConsumeEffect" + } + ] + } + ] + ], + "dyed_color": "i32", + "map_color": "i32", + "map_id": "varint", + "map_decorations": "anonymousNbt", + "map_post_processing": "varint", + "potion_duration_scale": "f32", + "charged_projectiles": [ + "container", + [ + { + "name": "projectiles", + "type": [ + "array", + { + "countType": "varint", + "type": "Slot" + } + ] + } + ] + ], + "bundle_contents": [ + "container", + [ + { + "name": "contents", + "type": [ + "array", + { + "countType": "varint", + "type": "Slot" + } + ] + } + ] + ], + "potion_contents": [ + "container", + [ + { + "name": "potionId", + "type": [ + "option", + "varint" + ] + }, + { + "name": "customColor", + "type": [ + "option", + "i32" + ] + }, + { + "name": "customEffects", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemPotionEffect" + } + ] + }, + { + "name": "customName", + "type": [ + "option", + "string" + ] + } + ] + ], + "suspicious_stew_effects": [ + "container", + [ + { + "name": "effects", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "effect", + "type": "varint" + }, + { + "name": "duration", + "type": "varint" + } + ] + ] + } + ] + } + ] + ], + "writable_book_content": [ + "container", + [ + { + "name": "pages", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemBookPage" + } + ] + } + ] + ], + "written_book_content": [ + "container", + [ + { + "name": "rawTitle", + "type": "string" + }, + { + "name": "filteredTitle", + "type": [ + "option", + "string" + ] + }, + { + "name": "author", + "type": "string" + }, + { + "name": "generation", + "type": "varint" + }, + { + "name": "pages", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemWrittenBookPage" + } + ] + }, + { + "name": "resolved", + "type": "bool" + } + ] + ], + "trim": [ + "container", + [ + { + "name": "material", + "type": [ + "registryEntryHolder", + { + "baseName": "materialId", + "otherwise": { + "name": "data", + "type": "ArmorTrimMaterial" + } + } + ] + }, + { + "name": "pattern", + "type": [ + "registryEntryHolder", + { + "baseName": "patternId", + "otherwise": { + "name": "data", + "type": "ArmorTrimPattern" + } + } + ] + } + ] + ], + "debug_stick_state": "anonymousNbt", + "entity_data": "anonymousNbt", + "bucket_entity_data": "anonymousNbt", + "block_entity_data": "anonymousNbt", + "instrument": [ + "container", + [ + { + "name": "hasHolder", + "type": "bool" + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "hasHolder", + "fields": { + "true": [ + "registryEntryHolder", + { + "baseName": "instrumentId", + "otherwise": { + "name": "data", + "type": "InstrumentData" + } + } + ], + "false": "string" + } + } + ] + } + ] + ], + "provides_trim_material": [ + "container", + [ + { + "name": "hasHolder", + "type": "bool" + }, + { + "name": "material", + "type": [ + "switch", + { + "compareTo": "hasHolder", + "fields": { + "true": [ + "registryEntryHolder", + { + "baseName": "materialId", + "otherwise": { + "name": "data", + "type": "ArmorTrimMaterial" + } + } + ], + "false": "string" + } + } + ] + } + ] + ], + "ominous_bottle_amplifier": "varint", + "jukebox_playable": [ + "container", + [ + { + "name": "hasHolder", + "type": "bool" + }, + { + "name": "song", + "type": [ + "switch", + { + "compareTo": "hasHolder", + "fields": { + "true": [ + "registryEntryHolder", + { + "baseName": "songId", + "otherwise": { + "name": "data", + "type": "JukeboxSongData" + } + } + ], + "false": "string" + } + } + ] + } + ] + ], + "provides_banner_patterns": "string", + "recipes": "anonymousNbt", + "lodestone_tracker": [ + "container", + [ + { + "name": "globalPosition", + "type": [ + "option", + [ + "container", + [ + { + "name": "dimension", + "type": "string" + }, + { + "name": "position", + "type": "position" + } + ] + ] + ] + }, + { + "name": "tracked", + "type": "bool" + } + ] + ], + "firework_explosion": "ItemFireworkExplosion", + "fireworks": [ + "container", + [ + { + "name": "flightDuration", + "type": "varint" + }, + { + "name": "explosions", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemFireworkExplosion" + } + ] + } + ] + ], + "profile": [ + "container", + [ + { + "name": "name", + "type": [ + "option", + "string" + ] + }, + { + "name": "uuid", + "type": [ + "option", + "UUID" + ] + }, + { + "name": "properties", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + }, + { + "name": "signature", + "type": [ + "option", + "string" + ] + } + ] + ] + } + ] + } + ] + ], + "note_block_sound": "string", + "banner_patterns": [ + "container", + [ + { + "name": "layers", + "type": [ + "array", + { + "countType": "varint", + "type": "BannerPatternLayer" + } + ] + } + ] + ], + "base_color": "varint", + "pot_decorations": [ + "container", + [ + { + "name": "decorations", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "container": [ + "container", + [ + { + "name": "contents", + "type": [ + "array", + { + "countType": "varint", + "type": "Slot" + } + ] + } + ] + ], + "block_state": [ + "container", + [ + { + "name": "properties", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + ] + } + ] + } + ] + ], + "bees": [ + "container", + [ + { + "name": "bees", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "nbtData", + "type": "anonymousNbt" + }, + { + "name": "ticksInHive", + "type": "varint" + }, + { + "name": "minTicksInHive", + "type": "varint" + } + ] + ] + } + ] + } + ] + ], + "lock": "anonymousNbt", + "container_loot": "anonymousNbt", + "break_sound": "ItemSoundHolder", + "villager/variant": "varint", + "wolf/variant": "varint", + "wolf/sound_variant": "varint", + "wolf/collar": "varint", + "fox/variant": "varint", + "salmon/size": "varint", + "parrot/variant": "varint", + "tropical_fish/pattern": "varint", + "tropical_fish/base_color": "varint", + "tropical_fish/pattern_color": "varint", + "mooshroom/variant": "varint", + "rabbit/variant": "varint", + "pig/variant": "varint", + "cow/variant": "varint", + "chicken/variant": [ + "registryEntryHolder", + { + "baseName": "variantId", + "otherwise": { + "name": "variantData", + "type": "string" + } + } + ], + "frog/variant": "varint", + "horse/variant": "varint", + "painting/variant": [ + "registryEntryHolder", + { + "baseName": "variantId", + "otherwise": { + "name": "data", + "type": "EntityMetadataPaintingVariant" + } + } + ], + "llama/variant": "varint", + "axolotl/variant": "varint", + "cat/variant": "varint", + "cat/collar": "varint", + "sheep/color": "varint", + "shulker/color": "varint" + } + } + ] + } + ] + ], + "ItemSoundEvent": [ + "container", + [ + { + "name": "soundName", + "type": "string" + }, + { + "name": "fixedRange", + "type": [ + "option", + "f32" + ] + } + ] + ], + "ItemSoundHolder": [ + "registryEntryHolder", + { + "baseName": "soundId", + "otherwise": { + "name": "data", + "type": "ItemSoundEvent" + } + } + ], + "ItemFireworkExplosion": [ + "container", + [ + { + "name": "shape", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "small_ball", + "1": "large_ball", + "2": "star", + "3": "creeper", + "4": "burst" + } + } + ] + }, + { + "name": "colors", + "type": [ + "array", + { + "countType": "varint", + "type": "i32" + } + ] + }, + { + "name": "fadeColors", + "type": [ + "array", + { + "countType": "varint", + "type": "i32" + } + ] + }, + { + "name": "hasTrail", + "type": "bool" + }, + { + "name": "hasTwinkle", + "type": "bool" + } + ] + ], + "ItemEffectDetail": [ + "container", + [ + { + "name": "amplifier", + "type": "varint" + }, + { + "name": "duration", + "type": "varint" + }, + { + "name": "ambient", + "type": "bool" + }, + { + "name": "showParticles", + "type": "bool" + }, + { + "name": "showIcon", + "type": "bool" + }, + { + "name": "hiddenEffect", + "type": [ + "option", + "ItemEffectDetail" + ] + } + ] + ], + "ItemPotionEffect": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "details", + "type": "ItemEffectDetail" + } + ] + ], + "ItemBlockProperty": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "isExactMatch", + "type": "bool" + }, + { + "name": "value", + "type": [ + "switch", + { + "compareTo": "isExactMatch", + "fields": { + "true": [ + "container", + [ + { + "name": "exactValue", + "type": "string" + } + ] + ], + "false": [ + "container", + [ + { + "name": "minValue", + "type": "string" + }, + { + "name": "maxValue", + "type": "string" + } + ] + ] + } + } + ] + } + ] + ], + "ExactComponentMatcher": [ + "array", + { + "countType": "varint", + "type": "SlotComponent" + } + ], + "DataComponentMatchers": [ + "container", + [ + { + "name": "exactMatchers", + "type": "ExactComponentMatcher" + }, + { + "name": "partialMatchers", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "ItemBlockPredicate": [ + "container", + [ + { + "name": "blockSet", + "type": [ + "option", + [ + "registryEntryHolderSet", + { + "base": { + "name": "name", + "type": "string" + }, + "otherwise": { + "name": "blockIds", + "type": "varint" + } + } + ] + ] + }, + { + "name": "properties", + "type": [ + "option", + [ + "array", + { + "countType": "varint", + "type": "ItemBlockProperty" + } + ] + ] + }, + { + "name": "nbt", + "type": "anonOptionalNbt" + }, + { + "name": "components", + "type": "DataComponentMatchers" + } + ] + ], + "ItemBookPage": [ + "container", + [ + { + "name": "content", + "type": "string" + }, + { + "name": "filteredContent", + "type": [ + "option", + "string" + ] + } + ] + ], + "ItemWrittenBookPage": [ + "container", + [ + { + "name": "content", + "type": "anonymousNbt" + }, + { + "name": "filteredContent", + "type": "anonOptionalNbt" + } + ] + ], + "ItemConsumeEffect": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "apply_effects", + "1": "remove_effects", + "2": "clear_all_effects", + "3": "teleport_randomly", + "4": "play_sound" + } + } + ] + }, + { + "anon": true, + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "apply_effects": [ + "container", + [ + { + "name": "effects", + "type": [ + "array", + { + "countType": "varint", + "type": "ItemPotionEffect" + } + ] + }, + { + "name": "probability", + "type": "f32" + } + ] + ], + "remove_effects": [ + "container", + [ + { + "name": "effects", + "type": "IDSet" + } + ] + ], + "clear_all_effects": "void", + "teleport_randomly": [ + "container", + [ + { + "name": "diameter", + "type": "f32" + } + ] + ], + "play_sound": [ + "container", + [ + { + "name": "sound", + "type": "ItemSoundHolder" + } + ] + ] + } + } + ] + } + ] + ], + "ArmorTrimMaterial": [ + "container", + [ + { + "name": "assetBase", + "type": "string" + }, + { + "name": "overrideArmorAssets", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + ] + } + ] + }, + { + "name": "description", + "type": "anonymousNbt" + } + ] + ], + "ArmorTrimPattern": [ + "container", + [ + { + "name": "assetId", + "type": "string" + }, + { + "name": "description", + "type": "anonymousNbt" + }, + { + "name": "decal", + "type": "bool" + } + ] + ], + "InstrumentData": [ + "container", + [ + { + "name": "soundEvent", + "type": "ItemSoundHolder" + }, + { + "name": "useDuration", + "type": "f32" + }, + { + "name": "range", + "type": "f32" + }, + { + "name": "description", + "type": "anonymousNbt" + } + ] + ], + "JukeboxSongData": [ + "container", + [ + { + "name": "soundEvent", + "type": "ItemSoundHolder" + }, + { + "name": "description", + "type": "anonymousNbt" + }, + { + "name": "lengthInSeconds", + "type": "f32" + }, + { + "name": "comparatorOutput", + "type": "varint" + } + ] + ], + "BannerPattern": [ + "container", + [ + { + "name": "assetId", + "type": "string" + }, + { + "name": "translationKey", + "type": "string" + } + ] + ], + "BannerPatternLayer": [ + "container", + [ + { + "name": "pattern", + "type": [ + "registryEntryHolder", + { + "baseName": "patternId", + "otherwise": { + "name": "data", + "type": "BannerPattern" + } + } + ] + }, + { + "name": "colorId", + "type": "varint" + } + ] + ], + "UntrustedSlotComponent": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + }, + { + "name": "data", + "type": "ByteArray" + } + ] + ], + "UntrustedSlot": [ + "container", + [ + { + "name": "itemCount", + "type": "varint" + }, + { + "anon": true, + "type": [ + "switch", + { + "compareTo": "itemCount", + "fields": { + "0": "void", + "false": "void" + }, + "default": [ + "container", + [ + { + "name": "itemId", + "type": "varint" + }, + { + "name": "addedComponentCount", + "type": "varint" + }, + { + "name": "removedComponentCount", + "type": "varint" + }, + { + "name": "components", + "type": [ + "array", + { + "count": "addedComponentCount", + "type": "UntrustedSlotComponent" + } + ] + }, + { + "name": "removeComponents", + "type": [ + "array", + { + "count": "removedComponentCount", + "type": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + } + ] + ] + } + ] + } + ] + ] + } + ] + } + ] + ], + "Slot": [ + "container", + [ + { + "name": "itemCount", + "type": "varint" + }, + { + "anon": true, + "type": [ + "switch", + { + "compareTo": "itemCount", + "fields": { + "0": "void" + }, + "default": [ + "container", + [ + { + "name": "itemId", + "type": "varint" + }, + { + "name": "addedComponentCount", + "type": "varint" + }, + { + "name": "removedComponentCount", + "type": "varint" + }, + { + "name": "components", + "type": [ + "array", + { + "count": "addedComponentCount", + "type": "SlotComponent" + } + ] + }, + { + "name": "removeComponents", + "type": [ + "array", + { + "count": "removedComponentCount", + "type": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + } + ] + ] + } + ] + } + ] + ] + } + ] + } + ] + ], + "HashedSlot": [ + "container", + [ + { + "name": "itemId", + "type": "varint" + }, + { + "name": "itemCount", + "type": "varint" + }, + { + "name": "components", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + }, + { + "name": "hash", + "type": "i32" + } + ] + ] + } + ] + }, + { + "name": "removeComponents", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "type", + "type": "SlotComponentType" + } + ] + ] + } + ] + } + ] + ], + "Particle": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "angry_villager", + "1": "block", + "2": "block_marker", + "3": "bubble", + "4": "cloud", + "5": "crit", + "6": "damage_indicator", + "7": "dragon_breath", + "8": "dripping_lava", + "9": "falling_lava", + "10": "landing_lava", + "11": "dripping_water", + "12": "falling_water", + "13": "dust", + "14": "dust_color_transition", + "15": "effect", + "16": "elder_guardian", + "17": "enchanted_hit", + "18": "enchant", + "19": "end_rod", + "20": "entity_effect", + "21": "explosion_emitter", + "22": "explosion", + "23": "gust", + "24": "small_gust", + "25": "gust_emitter_large", + "26": "gust_emitter_small", + "27": "sonic_boom", + "28": "falling_dust", + "29": "firework", + "30": "fishing", + "31": "flame", + "32": "infested", + "33": "cherry_leaves", + "34": "pale_oak_leaves", + "35": "tinted_leaves", + "36": "sculk_soul", + "37": "sculk_charge", + "38": "sculk_charge_pop", + "39": "soul_fire_flame", + "40": "soul", + "41": "flash", + "42": "happy_villager", + "43": "composter", + "44": "heart", + "45": "instant_effect", + "46": "item", + "47": "vibration", + "48": "trail", + "49": "item_slime", + "50": "item_cobweb", + "51": "item_snowball", + "52": "large_smoke", + "53": "lava", + "54": "mycelium", + "55": "note", + "56": "poof", + "57": "portal", + "58": "rain", + "59": "smoke", + "60": "white_smoke", + "61": "sneeze", + "62": "spit", + "63": "squid_ink", + "64": "sweep_attack", + "65": "totem_of_undying", + "66": "underwater", + "67": "splash", + "68": "witch", + "69": "bubble_pop", + "70": "current_down", + "71": "bubble_column_up", + "72": "nautilus", + "73": "dolphin", + "74": "campfire_cosy_smoke", + "75": "campfire_signal_smoke", + "76": "dripping_honey", + "77": "falling_honey", + "78": "landing_honey", + "79": "falling_nectar", + "80": "falling_spore_blossom", + "81": "ash", + "82": "crimson_spore", + "83": "warped_spore", + "84": "spore_blossom_air", + "85": "dripping_obsidian_tear", + "86": "falling_obsidian_tear", + "87": "landing_obsidian_tear", + "88": "reverse_portal", + "89": "white_ash", + "90": "small_flame", + "91": "snowflake", + "92": "dripping_dripstone_lava", + "93": "falling_dripstone_lava", + "94": "dripping_dripstone_water", + "95": "falling_dripstone_water", + "96": "glow_squid_ink", + "97": "glow", + "98": "wax_on", + "99": "wax_off", + "100": "electric_spark", + "101": "scrape", + "102": "shriek", + "103": "egg_crack", + "104": "dust_plume", + "105": "trial_spawner_detected_player", + "106": "trial_spawner_detected_player_ominous", + "107": "vault_connection", + "108": "dust_pillar", + "109": "ominous_spawning", + "110": "raid_omen", + "111": "trial_omen", + "112": "block_crumble", + "113": "firefly" + } + } + ] + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "block": "varint", + "block_marker": "varint", + "falling_dust": "varint", + "dust_pillar": "varint", + "block_crumble": "varint", + "dust": [ + "container", + [ + { + "name": "red", + "type": "f32" + }, + { + "name": "green", + "type": "f32" + }, + { + "name": "blue", + "type": "f32" + }, + { + "name": "scale", + "type": "f32" + } + ] + ], + "dust_color_transition": [ + "container", + [ + { + "name": "fromRed", + "type": "f32" + }, + { + "name": "fromGreen", + "type": "f32" + }, + { + "name": "fromBlue", + "type": "f32" + }, + { + "name": "scale", + "type": "f32" + }, + { + "name": "toRed", + "type": "f32" + }, + { + "name": "toGreen", + "type": "f32" + }, + { + "name": "toBlue", + "type": "f32" + } + ] + ], + "entity_effect": "i32", + "item": "Slot", + "sculk_charge": "f32", + "shriek": "varint", + "vibration": [ + "container", + [ + { + "name": "positionType", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "block", + "1": "entity" + } + } + ] + }, + { + "name": "position", + "type": [ + "switch", + { + "compareTo": "positionType", + "fields": { + "block": "position", + "entity": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "entityEyeHeight", + "type": "f32" + } + ] + ] + } + } + ] + }, + { + "name": "ticks", + "type": "varint" + } + ] + ], + "trail": [ + "container", + [ + { + "name": "target", + "type": "vec3f64" + }, + { + "name": "color", + "type": "u8" + } + ] + ], + "tinted_leaves": "i32", + "firefly": "void" + } + } + ] + } + ] + ], + "ingredient": [ + "array", + { + "countType": "varint", + "type": "Slot" + } + ], + "position": [ + "bitfield", + [ + { + "name": "x", + "size": 26, + "signed": true + }, + { + "name": "z", + "size": 26, + "signed": true + }, + { + "name": "y", + "size": 12, + "signed": true + } + ] + ], + "soundSource": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "master", + "1": "music", + "2": "record", + "3": "weather", + "4": "block", + "5": "hostile", + "6": "neutral", + "7": "player", + "8": "ambient", + "9": "voice", + "10": "ui" + } + } + ], + "packedChunkPos": [ + "container", + [ + { + "name": "z", + "type": "i32" + }, + { + "name": "x", + "type": "i32" + } + ] + ], + "previousMessages": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "signature", + "type": [ + "switch", + { + "compareTo": "id", + "fields": { + "0": [ + "buffer", + { + "count": 256 + } + ] + }, + "default": "void" + } + ] + } + ] + ] + } + ], + "entityMetadataEntry": [ + "container", + [ + { + "name": "key", + "type": "u8" + }, + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "byte", + "1": "int", + "2": "long", + "3": "float", + "4": "string", + "5": "component", + "6": "optional_component", + "7": "item_stack", + "8": "boolean", + "9": "rotations", + "10": "block_pos", + "11": "optional_block_pos", + "12": "direction", + "13": "optional_uuid", + "14": "block_state", + "15": "optional_block_state", + "16": "compound_tag", + "17": "particle", + "18": "particles", + "19": "villager_data", + "20": "optional_unsigned_int", + "21": "pose", + "22": "cat_variant", + "23": "cow_variant", + "24": "wolf_variant", + "25": "wolf_sound_variant", + "26": "frog_variant", + "27": "pig_variant", + "28": "chicken_variant", + "29": "optional_global_pos", + "30": "painting_variant", + "31": "sniffer_state", + "32": "armadillo_state", + "33": "vector3", + "34": "quaternion" + } + } + ] + }, + { + "name": "value", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "byte": "i8", + "int": "varint", + "long": "varlong", + "float": "f32", + "string": "string", + "component": "anonymousNbt", + "optional_component": [ + "option", + "anonymousNbt" + ], + "item_stack": "Slot", + "boolean": "bool", + "rotations": [ + "container", + [ + { + "name": "pitch", + "type": "f32" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "roll", + "type": "f32" + } + ] + ], + "block_pos": "position", + "optional_block_pos": [ + "option", + "position" + ], + "direction": "varint", + "optional_uuid": [ + "option", + "UUID" + ], + "block_state": "varint", + "optional_block_state": "optvarint", + "compound_tag": "anonymousNbt", + "particle": "Particle", + "particles": [ + "array", + { + "countType": "varint", + "type": "Particle" + } + ], + "villager_data": [ + "container", + [ + { + "name": "villagerType", + "type": "varint" + }, + { + "name": "villagerProfession", + "type": "varint" + }, + { + "name": "level", + "type": "varint" + } + ] + ], + "optional_unsigned_int": "optvarint", + "pose": "varint", + "cat_variant": "varint", + "cow_variant": "varint", + "wolf_variant": "varint", + "wolf_sound_variant": "varint", + "frog_variant": "varint", + "pig_variant": "varint", + "chicken_variant": [ + "registryEntryHolder", + { + "baseName": "variantId", + "otherwise": { + "name": "variantData", + "type": "string" + } + } + ], + "optional_global_pos": [ + "option", + "string" + ], + "painting_variant": [ + "registryEntryHolder", + { + "baseName": "variantId", + "otherwise": { + "name": "variantData", + "type": "EntityMetadataPaintingVariant" + } + } + ], + "sniffer_state": "varint", + "armadillo_state": "varint", + "vector3": "vec3f", + "quaternion": "vec4f" + } + } + ] + } + ] + ], + "EntityMetadataPaintingVariant": [ + "container", + [ + { + "name": "width", + "type": "i32" + }, + { + "name": "height", + "type": "i32" + }, + { + "name": "assetId", + "type": "string" + }, + { + "name": "title", + "type": [ + "option", + "anonymousNbt" + ] + }, + { + "name": "author", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ], + "entityMetadata": [ + "entityMetadataLoop", + { + "endVal": 255, + "type": "entityMetadataEntry" + } + ], + "tags": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "tagName", + "type": "string" + }, + { + "name": "entries", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ] + } + ], + "chunkBlockEntity": [ + "container", + [ + { + "anon": true, + "type": [ + "bitfield", + [ + { + "name": "x", + "size": 4, + "signed": false + }, + { + "name": "z", + "size": 4, + "signed": false + } + ] + ] + }, + { + "name": "y", + "type": "i16" + }, + { + "name": "type", + "type": "varint" + }, + { + "name": "nbtData", + "type": "anonOptionalNbt" + } + ] + ], + "chat_session": [ + "option", + [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "publicKey", + "type": [ + "container", + [ + { + "name": "expireTime", + "type": "i64" + }, + { + "name": "keyBytes", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + }, + { + "name": "keySignature", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + } + ] + ] + } + ] + ] + ], + "game_profile": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "properties", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + }, + { + "name": "signature", + "type": [ + "option", + "string" + ] + } + ] + ] + } + ] + } + ] + ], + "command_node": [ + "container", + [ + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 2, + "signed": false + }, + { + "name": "allows_restricted", + "size": 1, + "signed": false + }, + { + "name": "has_custom_suggestions", + "size": 1, + "signed": false + }, + { + "name": "has_redirect_node", + "size": 1, + "signed": false + }, + { + "name": "has_command", + "size": 1, + "signed": false + }, + { + "name": "command_node_type", + "size": 2, + "signed": false + } + ] + ] + }, + { + "name": "children", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + }, + { + "name": "redirectNode", + "type": [ + "switch", + { + "compareTo": "flags/has_redirect_node", + "fields": { + "1": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "extraNodeData", + "type": [ + "switch", + { + "compareTo": "flags/command_node_type", + "fields": { + "0": "void", + "1": [ + "container", + [ + { + "name": "name", + "type": "string" + } + ] + ], + "2": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "parser", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "brigadier:bool", + "1": "brigadier:float", + "2": "brigadier:double", + "3": "brigadier:integer", + "4": "brigadier:long", + "5": "brigadier:string", + "6": "minecraft:entity", + "7": "minecraft:game_profile", + "8": "minecraft:block_pos", + "9": "minecraft:column_pos", + "10": "minecraft:vec3", + "11": "minecraft:vec2", + "12": "minecraft:block_state", + "13": "minecraft:block_predicate", + "14": "minecraft:item_stack", + "15": "minecraft:item_predicate", + "16": "minecraft:color", + "17": "minecraft:hex_color", + "18": "minecraft:component", + "19": "minecraft:style", + "20": "minecraft:message", + "21": "minecraft:nbt", + "22": "minecraft:nbt_tag", + "23": "minecraft:nbt_path", + "24": "minecraft:objective", + "25": "minecraft:objective_criteria", + "26": "minecraft:operation", + "27": "minecraft:particle", + "28": "minecraft:angle", + "29": "minecraft:rotation", + "30": "minecraft:scoreboard_slot", + "31": "minecraft:score_holder", + "32": "minecraft:swizzle", + "33": "minecraft:team", + "34": "minecraft:item_slot", + "35": "minecraft:item_slots", + "36": "minecraft:resource_location", + "37": "minecraft:function", + "38": "minecraft:entity_anchor", + "39": "minecraft:int_range", + "40": "minecraft:float_range", + "41": "minecraft:dimension", + "42": "minecraft:gamemode", + "43": "minecraft:time", + "44": "minecraft:resource_or_tag", + "45": "minecraft:resource_or_tag_key", + "46": "minecraft:resource", + "47": "minecraft:resource_key", + "48": "minecraft:resource_selector", + "49": "minecraft:template_mirror", + "50": "minecraft:template_rotation", + "51": "minecraft:heightmap", + "52": "minecraft:loot_table", + "53": "minecraft:loot_predicate", + "54": "minecraft:loot_modifier", + "55": "minecraft:dialog", + "56": "minecraft:uuid" + } + } + ] + }, + { + "name": "properties", + "type": [ + "switch", + { + "compareTo": "parser", + "fields": { + "brigadier:bool": "void", + "brigadier:float": [ + "container", + [ + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + }, + { + "name": "min", + "type": [ + "switch", + { + "compareTo": "flags/min_present", + "fields": { + "1": "f32" + }, + "default": "void" + } + ] + }, + { + "name": "max", + "type": [ + "switch", + { + "compareTo": "flags/max_present", + "fields": { + "1": "f32" + }, + "default": "void" + } + ] + } + ] + ], + "brigadier:double": [ + "container", + [ + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + }, + { + "name": "min", + "type": [ + "switch", + { + "compareTo": "flags/min_present", + "fields": { + "1": "f64" + }, + "default": "void" + } + ] + }, + { + "name": "max", + "type": [ + "switch", + { + "compareTo": "flags/max_present", + "fields": { + "1": "f64" + }, + "default": "void" + } + ] + } + ] + ], + "brigadier:integer": [ + "container", + [ + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + }, + { + "name": "min", + "type": [ + "switch", + { + "compareTo": "flags/min_present", + "fields": { + "1": "i32" + }, + "default": "void" + } + ] + }, + { + "name": "max", + "type": [ + "switch", + { + "compareTo": "flags/max_present", + "fields": { + "1": "i32" + }, + "default": "void" + } + ] + } + ] + ], + "brigadier:long": [ + "container", + [ + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + }, + { + "name": "min", + "type": [ + "switch", + { + "compareTo": "flags/min_present", + "fields": { + "1": "i64" + }, + "default": "void" + } + ] + }, + { + "name": "max", + "type": [ + "switch", + { + "compareTo": "flags/max_present", + "fields": { + "1": "i64" + }, + "default": "void" + } + ] + } + ] + ], + "brigadier:string": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "SINGLE_WORD", + "1": "QUOTABLE_PHRASE", + "2": "GREEDY_PHRASE" + } + } + ], + "minecraft:entity": [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "onlyAllowPlayers", + "size": 1, + "signed": false + }, + { + "name": "onlyAllowEntities", + "size": 1, + "signed": false + } + ] + ], + "minecraft:game_profile": "void", + "minecraft:block_pos": "void", + "minecraft:column_pos": "void", + "minecraft:vec3": "void", + "minecraft:vec2": "void", + "minecraft:block_state": "void", + "minecraft:block_predicate": "void", + "minecraft:item_stack": "void", + "minecraft:item_predicate": "void", + "minecraft:color": "void", + "minecraft:hex_color": "void", + "minecraft:component": "void", + "minecraft:message": "void", + "minecraft:nbt": "void", + "minecraft:nbt_path": "void", + "minecraft:objective": "void", + "minecraft:objective_criteria": "void", + "minecraft:operation": "void", + "minecraft:particle": "void", + "minecraft:angle": "void", + "minecraft:rotation": "void", + "minecraft:scoreboard_slot": "void", + "minecraft:score_holder": [ + "bitfield", + [ + { + "name": "unused", + "size": 7, + "signed": false + }, + { + "name": "allowMultiple", + "size": 1, + "signed": false + } + ] + ], + "minecraft:swizzle": "void", + "minecraft:team": "void", + "minecraft:item_slot": "void", + "minecraft:resource_location": "void", + "minecraft:function": "void", + "minecraft:entity_anchor": "void", + "minecraft:int_range": "void", + "minecraft:float_range": "void", + "minecraft:dimension": "void", + "minecraft:gamemode": "void", + "minecraft:time": [ + "container", + [ + { + "name": "min", + "type": "i32" + } + ] + ], + "minecraft:resource_or_tag": [ + "container", + [ + { + "name": "registry", + "type": "string" + } + ] + ], + "minecraft:resource_or_tag_key": [ + "container", + [ + { + "name": "registry", + "type": "string" + } + ] + ], + "minecraft:resource": [ + "container", + [ + { + "name": "registry", + "type": "string" + } + ] + ], + "minecraft:resource_key": [ + "container", + [ + { + "name": "registry", + "type": "string" + } + ] + ], + "minecraft:resource_selector": [ + "container", + [ + { + "name": "registry", + "type": "string" + } + ] + ], + "minecraft:template_mirror": "void", + "minecraft:template_rotation": "void", + "minecraft:heightmap": "void", + "minecraft:dialog": "void", + "minecraft:uuid": "void" + } + } + ] + }, + { + "name": "suggestionType", + "type": [ + "switch", + { + "compareTo": "../flags/has_custom_suggestions", + "fields": { + "1": "string" + }, + "default": "void" + } + ] + } + ] + ] + } + } + ] + } + ] + ], + "packet_common_settings": [ + "container", + [ + { + "name": "locale", + "type": "string" + }, + { + "name": "viewDistance", + "type": "i8" + }, + { + "name": "chatFlags", + "type": "varint" + }, + { + "name": "chatColors", + "type": "bool" + }, + { + "name": "skinParts", + "type": "u8" + }, + { + "name": "mainHand", + "type": "varint" + }, + { + "name": "enableTextFiltering", + "type": "bool" + }, + { + "name": "enableServerListing", + "type": "bool" + }, + { + "name": "particleStatus", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "all", + "1": "decreased", + "2": "minimal" + } + } + ] + } + ] + ], + "packet_common_cookie_request": [ + "container", + [ + { + "name": "cookie", + "type": "string" + } + ] + ], + "packet_common_store_cookie": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": "ByteArray" + } + ] + ], + "packet_common_transfer": [ + "container", + [ + { + "name": "host", + "type": "string" + }, + { + "name": "port", + "type": "varint" + } + ] + ], + "packet_common_cookie_response": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": [ + "option", + "ByteArray" + ] + } + ] + ], + "packet_common_select_known_packs": [ + "container", + [ + { + "name": "packs", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "namespace", + "type": "string" + }, + { + "name": "id", + "type": "string" + }, + { + "name": "version", + "type": "string" + } + ] + ] + } + ] + } + ] + ], + "packet_common_custom_report_details": [ + "container", + [ + { + "name": "details", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": "string" + } + ] + ] + } + ] + } + ] + ], + "packet_common_remove_resource_pack": [ + "container", + [ + { + "name": "uuid", + "type": [ + "option", + "UUID" + ] + } + ] + ], + "packet_common_add_resource_pack": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "url", + "type": "string" + }, + { + "name": "hash", + "type": "string" + }, + { + "name": "forced", + "type": "bool" + }, + { + "name": "promptMessage", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ], + "ServerLinkType": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "bug_report", + "1": "community_guidelines", + "2": "support", + "3": "status", + "4": "feedback", + "5": "community", + "6": "website", + "7": "forums", + "8": "news", + "9": "announcements" + } + } + ], + "packet_common_server_links": [ + "container", + [ + { + "name": "links", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "hasKnownType", + "type": "bool" + }, + { + "name": "knownType", + "type": [ + "switch", + { + "compareTo": "hasKnownType", + "fields": { + "true": "ServerLinkType" + } + } + ] + }, + { + "name": "unknownType", + "type": [ + "switch", + { + "compareTo": "hasKnownType", + "fields": { + "false": "anonymousNbt" + } + } + ] + }, + { + "name": "link", + "type": "string" + } + ] + ] + } + ] + } + ] + ], + "packet_common_clear_dialog": [ + "container", + [] + ], + "packet_common_custom_click_action": [ + "container", + [ + { + "name": "id", + "type": "string" + }, + { + "name": "nbt", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ] + }, + "handshaking": { + "toClient": { + "types": { + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": {} + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": {} + } + ] + } + ] + ] + } + }, + "toServer": { + "types": { + "packet_set_protocol": [ + "container", + [ + { + "name": "protocolVersion", + "type": "varint" + }, + { + "name": "serverHost", + "type": "string" + }, + { + "name": "serverPort", + "type": "u16" + }, + { + "name": "nextState", + "type": "varint" + } + ] + ], + "packet_legacy_server_list_ping": [ + "container", + [ + { + "name": "payload", + "type": "u8" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "set_protocol", + "0xfe": "legacy_server_list_ping" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "set_protocol": "packet_set_protocol", + "legacy_server_list_ping": "packet_legacy_server_list_ping" + } + } + ] + } + ] + ] + } + } + }, + "status": { + "toClient": { + "types": { + "packet_server_info": [ + "container", + [ + { + "name": "response", + "type": "string" + } + ] + ], + "packet_ping": [ + "container", + [ + { + "name": "time", + "type": "i64" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "server_info", + "0x01": "ping" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "server_info": "packet_server_info", + "ping": "packet_ping" + } + } + ] + } + ] + ] + } + }, + "toServer": { + "types": { + "packet_ping_start": [ + "container", + [] + ], + "packet_ping": [ + "container", + [ + { + "name": "time", + "type": "i64" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "ping_start", + "0x01": "ping" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "ping_start": "packet_ping_start", + "ping": "packet_ping" + } + } + ] + } + ] + ] + } + } + }, + "login": { + "toClient": { + "types": { + "packet_disconnect": [ + "container", + [ + { + "name": "reason", + "type": "string" + } + ] + ], + "packet_encryption_begin": [ + "container", + [ + { + "name": "serverId", + "type": "string" + }, + { + "name": "publicKey", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + }, + { + "name": "verifyToken", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + }, + { + "name": "shouldAuthenticate", + "type": "bool" + } + ] + ], + "packet_success": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "username", + "type": "string" + }, + { + "name": "properties", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "value", + "type": "string" + }, + { + "name": "signature", + "type": [ + "option", + "string" + ] + } + ] + ] + } + ] + } + ] + ], + "packet_compress": [ + "container", + [ + { + "name": "threshold", + "type": "varint" + } + ] + ], + "packet_login_plugin_request": [ + "container", + [ + { + "name": "messageId", + "type": "varint" + }, + { + "name": "channel", + "type": "string" + }, + { + "name": "data", + "type": "restBuffer" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "disconnect", + "0x01": "encryption_begin", + "0x02": "success", + "0x03": "compress", + "0x04": "login_plugin_request", + "0x05": "cookie_request" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "disconnect": "packet_disconnect", + "encryption_begin": "packet_encryption_begin", + "success": "packet_success", + "compress": "packet_compress", + "login_plugin_request": "packet_login_plugin_request", + "cookie_request": "packet_common_cookie_request" + } + } + ] + } + ] + ] + } + }, + "toServer": { + "types": { + "packet_login_start": [ + "container", + [ + { + "name": "username", + "type": "string" + }, + { + "name": "playerUUID", + "type": "UUID" + } + ] + ], + "packet_encryption_begin": [ + "container", + [ + { + "name": "sharedSecret", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + }, + { + "name": "verifyToken", + "type": [ + "buffer", + { + "countType": "varint" + } + ] + } + ] + ], + "packet_login_plugin_response": [ + "container", + [ + { + "name": "messageId", + "type": "varint" + }, + { + "name": "data", + "type": [ + "option", + "restBuffer" + ] + } + ] + ], + "packet_login_acknowledged": [ + "container", + [] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "login_start", + "0x01": "encryption_begin", + "0x02": "login_plugin_response", + "0x03": "login_acknowledged", + "0x04": "cookie_response" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "login_start": "packet_login_start", + "encryption_begin": "packet_encryption_begin", + "login_plugin_response": "packet_login_plugin_response", + "login_acknowledged": "packet_login_acknowledged", + "cookie_response": "packet_common_cookie_response" + } + } + ] + } + ] + ] + } + } + }, + "configuration": { + "toClient": { + "types": { + "packet_custom_payload": [ + "container", + [ + { + "name": "channel", + "type": "string" + }, + { + "name": "data", + "type": "restBuffer" + } + ] + ], + "packet_disconnect": [ + "container", + [ + { + "name": "reason", + "type": "anonymousNbt" + } + ] + ], + "packet_finish_configuration": [ + "container", + [] + ], + "packet_keep_alive": [ + "container", + [ + { + "name": "keepAliveId", + "type": "i64" + } + ] + ], + "packet_ping": [ + "container", + [ + { + "name": "id", + "type": "i32" + } + ] + ], + "packet_reset_chat": [ + "container", + [] + ], + "packet_registry_data": [ + "container", + [ + { + "name": "id", + "type": "string" + }, + { + "name": "entries", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ] + } + ] + } + ] + ], + "packet_feature_flags": [ + "container", + [ + { + "name": "features", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + } + ] + ], + "packet_tags": [ + "container", + [ + { + "name": "tags", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "tagType", + "type": "string" + }, + { + "name": "tags", + "type": "tags" + } + ] + ] + } + ] + } + ] + ], + "packet_show_dialog": [ + "container", + [ + { + "name": "dialog", + "type": "anonymousNbt" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "cookie_request", + "0x01": "custom_payload", + "0x02": "disconnect", + "0x03": "finish_configuration", + "0x04": "keep_alive", + "0x05": "ping", + "0x06": "reset_chat", + "0x07": "registry_data", + "0x08": "remove_resource_pack", + "0x09": "add_resource_pack", + "0x0a": "store_cookie", + "0x0b": "transfer", + "0x0c": "feature_flags", + "0x0d": "tags", + "0x0e": "select_known_packs", + "0x0f": "custom_report_details", + "0x10": "server_links", + "0x11": "clear_dialog", + "0x12": "show_dialog" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "cookie_request": "packet_common_cookie_request", + "custom_payload": "packet_custom_payload", + "disconnect": "packet_disconnect", + "finish_configuration": "packet_finish_configuration", + "keep_alive": "packet_keep_alive", + "ping": "packet_ping", + "reset_chat": "packet_reset_chat", + "registry_data": "packet_registry_data", + "remove_resource_pack": "packet_common_remove_resource_pack", + "add_resource_pack": "packet_common_add_resource_pack", + "store_cookie": "packet_common_store_cookie", + "transfer": "packet_common_transfer", + "feature_flags": "packet_feature_flags", + "tags": "packet_tags", + "select_known_packs": "packet_common_select_known_packs", + "custom_report_details": "packet_common_custom_report_details", + "server_links": "packet_common_server_links", + "clear_dialog": "packet_common_clear_dialog", + "show_dialog": "packet_show_dialog" + } + } + ] + } + ] + ] + } + }, + "toServer": { + "types": { + "packet_custom_payload": [ + "container", + [ + { + "name": "channel", + "type": "string" + }, + { + "name": "data", + "type": "restBuffer" + } + ] + ], + "packet_finish_configuration": [ + "container", + [] + ], + "packet_keep_alive": [ + "container", + [ + { + "name": "keepAliveId", + "type": "i64" + } + ] + ], + "packet_pong": [ + "container", + [ + { + "name": "id", + "type": "i32" + } + ] + ], + "packet_resource_pack_receive": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "result", + "type": "varint" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "settings", + "0x01": "cookie_response", + "0x02": "custom_payload", + "0x03": "finish_configuration", + "0x04": "keep_alive", + "0x05": "pong", + "0x06": "resource_pack_receive", + "0x07": "select_known_packs", + "0x08": "custom_click_action" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "settings": "packet_common_settings", + "cookie_response": "packet_common_cookie_response", + "custom_payload": "packet_custom_payload", + "finish_configuration": "packet_finish_configuration", + "keep_alive": "packet_keep_alive", + "pong": "packet_pong", + "resource_pack_receive": "packet_resource_pack_receive", + "select_known_packs": "packet_common_select_known_packs", + "custom_click_action": "packet_common_custom_click_action" + } + } + ] + } + ] + ] + } + } + }, + "play": { + "toClient": { + "types": { + "SlotDisplay": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "empty", + "1": "any_fuel", + "2": "item", + "3": "item_stack", + "4": "tag", + "5": "smithing_trim", + "6": "with_remainder", + "7": "composite" + } + } + ] + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "empty": "void", + "any_fuel": "void", + "item": "varint", + "item_stack": "Slot", + "tag": "string", + "smithing_trim": [ + "container", + [ + { + "name": "base", + "type": "SlotDisplay" + }, + { + "name": "material", + "type": "SlotDisplay" + }, + { + "name": "pattern", + "type": [ + "registryEntryHolder", + { + "baseName": "patternId", + "otherwise": { + "name": "data", + "type": "ArmorTrimPattern" + } + } + ] + } + ] + ], + "with_remainder": [ + "container", + [ + { + "name": "input", + "type": "SlotDisplay" + }, + { + "name": "remainder", + "type": "SlotDisplay" + } + ] + ], + "composite": [ + "array", + { + "countType": "varint", + "type": "SlotDisplay" + } + ] + } + } + ] + } + ] + ], + "RecipeDisplay": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "crafting_shapeless", + "1": "crafting_shaped", + "2": "furnace", + "3": "stonecutter", + "4": "smithing" + } + } + ] + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "crafting_shapeless": [ + "container", + [ + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "SlotDisplay" + } + ] + }, + { + "name": "result", + "type": "SlotDisplay" + }, + { + "name": "craftingStation", + "type": "SlotDisplay" + } + ] + ], + "crafting_shaped": [ + "container", + [ + { + "name": "width", + "type": "varint" + }, + { + "name": "height", + "type": "varint" + }, + { + "name": "ingredients", + "type": [ + "array", + { + "countType": "varint", + "type": "SlotDisplay" + } + ] + }, + { + "name": "result", + "type": "SlotDisplay" + }, + { + "name": "craftingStation", + "type": "SlotDisplay" + } + ] + ], + "furnace": [ + "container", + [ + { + "name": "ingredient", + "type": "SlotDisplay" + }, + { + "name": "fuel", + "type": "SlotDisplay" + }, + { + "name": "result", + "type": "SlotDisplay" + }, + { + "name": "craftingStation", + "type": "SlotDisplay" + }, + { + "name": "duration", + "type": "varint" + }, + { + "name": "experience", + "type": "f32" + } + ] + ], + "stonecutter": [ + "container", + [ + { + "name": "ingredient", + "type": "SlotDisplay" + }, + { + "name": "result", + "type": "SlotDisplay" + }, + { + "name": "craftingStation", + "type": "SlotDisplay" + } + ] + ], + "smithing": [ + "container", + [ + { + "name": "template", + "type": "SlotDisplay" + }, + { + "name": "base", + "type": "SlotDisplay" + }, + { + "name": "addition", + "type": "SlotDisplay" + }, + { + "name": "result", + "type": "SlotDisplay" + }, + { + "name": "craftingStation", + "type": "SlotDisplay" + } + ] + ] + } + } + ] + } + ] + ], + "SpawnInfo": [ + "container", + [ + { + "name": "dimension", + "type": "varint" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "hashedSeed", + "type": "i64" + }, + { + "name": "gamemode", + "type": [ + "mapper", + { + "type": "i8", + "mappings": { + "0": "survival", + "1": "creative", + "2": "adventure", + "3": "spectator" + } + } + ] + }, + { + "name": "previousGamemode", + "type": "u8" + }, + { + "name": "isDebug", + "type": "bool" + }, + { + "name": "isFlat", + "type": "bool" + }, + { + "name": "death", + "type": [ + "option", + [ + "container", + [ + { + "name": "dimensionName", + "type": "string" + }, + { + "name": "location", + "type": "position" + } + ] + ] + ] + }, + { + "name": "portalCooldown", + "type": "varint" + }, + { + "name": "seaLevel", + "type": "varint" + } + ] + ], + "packet_spawn_entity": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "objectUUID", + "type": "UUID" + }, + { + "name": "type", + "type": "varint" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "pitch", + "type": "i8" + }, + { + "name": "yaw", + "type": "i8" + }, + { + "name": "headPitch", + "type": "i8" + }, + { + "name": "objectData", + "type": "varint" + }, + { + "name": "velocityX", + "type": "i16" + }, + { + "name": "velocityY", + "type": "i16" + }, + { + "name": "velocityZ", + "type": "i16" + } + ] + ], + "packet_animation": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "animation", + "type": "u8" + } + ] + ], + "packet_statistics": [ + "container", + [ + { + "name": "entries", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "categoryId", + "type": "varint" + }, + { + "name": "statisticId", + "type": "varint" + }, + { + "name": "value", + "type": "varint" + } + ] + ] + } + ] + } + ] + ], + "packet_acknowledge_player_digging": [ + "container", + [ + { + "name": "sequenceId", + "type": "varint" + } + ] + ], + "packet_block_break_animation": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "location", + "type": "position" + }, + { + "name": "destroyStage", + "type": "i8" + } + ] + ], + "packet_tile_entity_data": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "action", + "type": "varint" + }, + { + "name": "nbtData", + "type": "anonOptionalNbt" + } + ] + ], + "packet_block_action": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "byte1", + "type": "u8" + }, + { + "name": "byte2", + "type": "u8" + }, + { + "name": "blockId", + "type": "varint" + } + ] + ], + "packet_block_change": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "type", + "type": "varint" + } + ] + ], + "packet_boss_bar": [ + "container", + [ + { + "name": "entityUUID", + "type": "UUID" + }, + { + "name": "action", + "type": "varint" + }, + { + "name": "title", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "anonymousNbt", + "3": "anonymousNbt" + }, + "default": "void" + } + ] + }, + { + "name": "health", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "f32", + "2": "f32" + }, + "default": "void" + } + ] + }, + { + "name": "color", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "varint", + "4": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "dividers", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "varint", + "4": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "flags", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "u8", + "5": "u8" + }, + "default": "void" + } + ] + } + ] + ], + "packet_difficulty": [ + "container", + [ + { + "name": "difficulty", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "peaceful", + "1": "easy", + "2": "normal", + "3": "hard" + } + } + ] + }, + { + "name": "difficultyLocked", + "type": "bool" + } + ] + ], + "packet_chunk_batch_finished": [ + "container", + [ + { + "name": "batchSize", + "type": "varint" + } + ] + ], + "packet_chunk_batch_start": [ + "container", + [] + ], + "packet_chunk_biomes": [ + "container", + [ + { + "name": "biomes", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "position", + "type": "packedChunkPos" + }, + { + "name": "data", + "type": "ByteArray" + } + ] + ] + } + ] + } + ] + ], + "packet_clear_titles": [ + "container", + [ + { + "name": "reset", + "type": "bool" + } + ] + ], + "packet_tab_complete": [ + "container", + [ + { + "name": "transactionId", + "type": "varint" + }, + { + "name": "start", + "type": "varint" + }, + { + "name": "length", + "type": "varint" + }, + { + "name": "matches", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "match", + "type": "string" + }, + { + "name": "tooltip", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ] + } + ] + } + ] + ], + "packet_declare_commands": [ + "container", + [ + { + "name": "nodes", + "type": [ + "array", + { + "countType": "varint", + "type": "command_node" + } + ] + }, + { + "name": "rootIndex", + "type": "varint" + } + ] + ], + "packet_close_window": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + } + ] + ], + "packet_window_items": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "stateId", + "type": "varint" + }, + { + "name": "items", + "type": [ + "array", + { + "countType": "varint", + "type": "Slot" + } + ] + }, + { + "name": "carriedItem", + "type": "Slot" + } + ] + ], + "packet_craft_progress_bar": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "property", + "type": "i16" + }, + { + "name": "value", + "type": "i16" + } + ] + ], + "packet_set_slot": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "stateId", + "type": "varint" + }, + { + "name": "slot", + "type": "i16" + }, + { + "name": "item", + "type": "Slot" + } + ] + ], + "packet_set_cooldown": [ + "container", + [ + { + "name": "cooldownGroup", + "type": "string" + }, + { + "name": "cooldownTicks", + "type": "varint" + } + ] + ], + "packet_chat_suggestions": [ + "container", + [ + { + "name": "action", + "type": "varint" + }, + { + "name": "entries", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + } + ] + ], + "packet_custom_payload": [ + "container", + [ + { + "name": "channel", + "type": "string" + }, + { + "name": "data", + "type": "restBuffer" + } + ] + ], + "packet_damage_event": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "sourceTypeId", + "type": "varint" + }, + { + "name": "sourceCauseId", + "type": "varint" + }, + { + "name": "sourceDirectId", + "type": "varint" + }, + { + "name": "sourcePosition", + "type": [ + "option", + "vec3f64" + ] + } + ] + ], + "packet_debug_sample": [ + "container", + [ + { + "name": "sample", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "type", + "type": "varint" + } + ] + ], + "packet_hide_message": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "signature", + "type": [ + "switch", + { + "compareTo": "id", + "fields": { + "0": [ + "buffer", + { + "count": 256 + } + ] + }, + "default": "void" + } + ] + } + ] + ], + "packet_kick_disconnect": [ + "container", + [ + { + "name": "reason", + "type": "anonymousNbt" + } + ] + ], + "ChatTypeParameterType": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "content", + "1": "sender", + "2": "target" + } + } + ], + "ChatType": [ + "container", + [ + { + "name": "translationKey", + "type": "string" + }, + { + "name": "parameters", + "type": [ + "array", + { + "countType": "varint", + "type": "ChatTypeParameterType" + } + ] + }, + { + "name": "style", + "type": "anonymousNbt" + } + ] + ], + "ChatTypes": [ + "container", + [ + { + "name": "chat", + "type": "ChatType" + }, + { + "name": "narration", + "type": "ChatType" + } + ] + ], + "ChatTypesHolder": [ + "registryEntryHolder", + { + "baseName": "chatType", + "otherwise": { + "name": "data", + "type": "ChatTypes" + } + } + ], + "packet_profileless_chat": [ + "container", + [ + { + "name": "message", + "type": "anonymousNbt" + }, + { + "name": "type", + "type": "ChatTypesHolder" + }, + { + "name": "name", + "type": "anonymousNbt" + }, + { + "name": "target", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ], + "packet_entity_status": [ + "container", + [ + { + "name": "entityId", + "type": "i32" + }, + { + "name": "entityStatus", + "type": "i8" + } + ] + ], + "packet_sync_entity_position": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "dx", + "type": "f64" + }, + { + "name": "dy", + "type": "f64" + }, + { + "name": "dz", + "type": "f64" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_explosion": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "playerKnockback", + "type": [ + "option", + "vec3f" + ] + }, + { + "name": "explosionParticle", + "type": "Particle" + }, + { + "name": "sound", + "type": "ItemSoundHolder" + } + ] + ], + "packet_unload_chunk": [ + "container", + [ + { + "name": "chunkZ", + "type": "i32" + }, + { + "name": "chunkX", + "type": "i32" + } + ] + ], + "packet_game_state_change": [ + "container", + [ + { + "name": "reason", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "no_respawn_block_available", + "1": "start_raining", + "2": "stop_raining", + "3": "change_game_mode", + "4": "win_game", + "5": "demo_event", + "6": "play_arrow_hit_sound", + "7": "rain_level_change", + "8": "thunder_level_change", + "9": "puffer_fish_sting", + "10": "guardian_elder_effect", + "11": "immediate_respawn", + "12": "limited_crafting", + "13": "level_chunks_load_start" + } + } + ] + }, + { + "name": "gameMode", + "type": "f32" + } + ] + ], + "packet_open_horse_window": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "nbSlots", + "type": "varint" + }, + { + "name": "entityId", + "type": "i32" + } + ] + ], + "packet_hurt_animation": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "yaw", + "type": "f32" + } + ] + ], + "packet_initialize_world_border": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "oldDiameter", + "type": "f64" + }, + { + "name": "newDiameter", + "type": "f64" + }, + { + "name": "speed", + "type": "varint" + }, + { + "name": "portalTeleportBoundary", + "type": "varint" + }, + { + "name": "warningBlocks", + "type": "varint" + }, + { + "name": "warningTime", + "type": "varint" + } + ] + ], + "packet_keep_alive": [ + "container", + [ + { + "name": "keepAliveId", + "type": "i64" + } + ] + ], + "packet_map_chunk": [ + "container", + [ + { + "name": "x", + "type": "i32" + }, + { + "name": "z", + "type": "i32" + }, + { + "name": "heightmaps", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "world_surface_wg", + "1": "world_surface", + "2": "ocean_floor_wg", + "3": "ocean_floor", + "4": "motion_blocking", + "5": "motion_blocking_no_leaves" + } + } + ] + }, + { + "name": "data", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + } + ] + ] + } + ] + }, + { + "name": "chunkData", + "type": "ByteArray" + }, + { + "name": "blockEntities", + "type": [ + "array", + { + "countType": "varint", + "type": "chunkBlockEntity" + } + ] + }, + { + "name": "skyLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "blockLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "emptySkyLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "emptyBlockLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "skyLight", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "array", + { + "countType": "varint", + "type": "u8" + } + ] + } + ] + }, + { + "name": "blockLight", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "array", + { + "countType": "varint", + "type": "u8" + } + ] + } + ] + } + ] + ], + "packet_world_event": [ + "container", + [ + { + "name": "effectId", + "type": "i32" + }, + { + "name": "location", + "type": "position" + }, + { + "name": "data", + "type": "i32" + }, + { + "name": "global", + "type": "bool" + } + ] + ], + "packet_world_particles": [ + "container", + [ + { + "name": "longDistance", + "type": "bool" + }, + { + "name": "alwaysShow", + "type": "bool" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "offsetX", + "type": "f32" + }, + { + "name": "offsetY", + "type": "f32" + }, + { + "name": "offsetZ", + "type": "f32" + }, + { + "name": "velocityOffset", + "type": "f32" + }, + { + "name": "amount", + "type": "i32" + }, + { + "name": "particle", + "type": "Particle" + } + ] + ], + "packet_update_light": [ + "container", + [ + { + "name": "chunkX", + "type": "varint" + }, + { + "name": "chunkZ", + "type": "varint" + }, + { + "name": "skyLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "blockLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "emptySkyLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "emptyBlockLightMask", + "type": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + { + "name": "skyLight", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "array", + { + "countType": "varint", + "type": "u8" + } + ] + } + ] + }, + { + "name": "blockLight", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "array", + { + "countType": "varint", + "type": "u8" + } + ] + } + ] + } + ] + ], + "packet_login": [ + "container", + [ + { + "name": "entityId", + "type": "i32" + }, + { + "name": "isHardcore", + "type": "bool" + }, + { + "name": "worldNames", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "maxPlayers", + "type": "varint" + }, + { + "name": "viewDistance", + "type": "varint" + }, + { + "name": "simulationDistance", + "type": "varint" + }, + { + "name": "reducedDebugInfo", + "type": "bool" + }, + { + "name": "enableRespawnScreen", + "type": "bool" + }, + { + "name": "doLimitedCrafting", + "type": "bool" + }, + { + "name": "worldState", + "type": "SpawnInfo" + }, + { + "name": "enforcesSecureChat", + "type": "bool" + } + ] + ], + "packet_map": [ + "container", + [ + { + "name": "itemDamage", + "type": "varint" + }, + { + "name": "scale", + "type": "i8" + }, + { + "name": "locked", + "type": "bool" + }, + { + "name": "icons", + "type": [ + "option", + [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "type", + "type": "varint" + }, + { + "name": "x", + "type": "i8" + }, + { + "name": "z", + "type": "i8" + }, + { + "name": "direction", + "type": "u8" + }, + { + "name": "displayName", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ] + } + ] + ] + }, + { + "name": "columns", + "type": "u8" + }, + { + "name": "rows", + "type": [ + "switch", + { + "compareTo": "columns", + "fields": { + "0": "void" + }, + "default": "u8" + } + ] + }, + { + "name": "x", + "type": [ + "switch", + { + "compareTo": "columns", + "fields": { + "0": "void" + }, + "default": "u8" + } + ] + }, + { + "name": "y", + "type": [ + "switch", + { + "compareTo": "columns", + "fields": { + "0": "void" + }, + "default": "u8" + } + ] + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "columns", + "fields": { + "0": "void" + }, + "default": [ + "buffer", + { + "countType": "varint" + } + ] + } + ] + } + ] + ], + "packet_trade_list": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "trades", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "inputItem1", + "type": [ + "container", + [ + { + "name": "itemId", + "type": "varint" + }, + { + "name": "itemCount", + "type": "varint" + }, + { + "name": "components", + "type": "ExactComponentMatcher" + } + ] + ] + }, + { + "name": "outputItem", + "type": "Slot" + }, + { + "name": "inputItem2", + "type": [ + "option", + [ + "container", + [ + { + "name": "itemId", + "type": "varint" + }, + { + "name": "itemCount", + "type": "varint" + }, + { + "name": "components", + "type": "ExactComponentMatcher" + } + ] + ] + ] + }, + { + "name": "tradeDisabled", + "type": "bool" + }, + { + "name": "nbTradeUses", + "type": "i32" + }, + { + "name": "maximumNbTradeUses", + "type": "i32" + }, + { + "name": "xp", + "type": "i32" + }, + { + "name": "specialPrice", + "type": "i32" + }, + { + "name": "priceMultiplier", + "type": "f32" + }, + { + "name": "demand", + "type": "i32" + } + ] + ] + } + ] + }, + { + "name": "villagerLevel", + "type": "varint" + }, + { + "name": "experience", + "type": "varint" + }, + { + "name": "isRegularVillager", + "type": "bool" + }, + { + "name": "canRestock", + "type": "bool" + } + ] + ], + "packet_rel_entity_move": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "dX", + "type": "i16" + }, + { + "name": "dY", + "type": "i16" + }, + { + "name": "dZ", + "type": "i16" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_entity_move_look": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "dX", + "type": "i16" + }, + { + "name": "dY", + "type": "i16" + }, + { + "name": "dZ", + "type": "i16" + }, + { + "name": "yaw", + "type": "i8" + }, + { + "name": "pitch", + "type": "i8" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_move_minecart": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "steps", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "position", + "type": "vec3f" + }, + { + "name": "movement", + "type": "vec3f" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "weight", + "type": "f32" + } + ] + ] + } + ] + } + ] + ], + "packet_entity_look": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "yaw", + "type": "i8" + }, + { + "name": "pitch", + "type": "i8" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_vehicle_move": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + } + ] + ], + "packet_open_book": [ + "container", + [ + { + "name": "hand", + "type": "varint" + } + ] + ], + "packet_open_window": [ + "container", + [ + { + "name": "windowId", + "type": "varint" + }, + { + "name": "inventoryType", + "type": "varint" + }, + { + "name": "windowTitle", + "type": "anonymousNbt" + } + ] + ], + "packet_open_sign_entity": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "isFrontText", + "type": "bool" + } + ] + ], + "packet_ping": [ + "container", + [ + { + "name": "id", + "type": "i32" + } + ] + ], + "packet_ping_response": [ + "container", + [ + { + "name": "id", + "type": "i64" + } + ] + ], + "packet_craft_recipe_response": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "recipeDisplay", + "type": "RecipeDisplay" + } + ] + ], + "packet_abilities": [ + "container", + [ + { + "name": "flags", + "type": "i8" + }, + { + "name": "flyingSpeed", + "type": "f32" + }, + { + "name": "walkingSpeed", + "type": "f32" + } + ] + ], + "packet_player_chat": [ + "container", + [ + { + "name": "globalIndex", + "type": "varint" + }, + { + "name": "senderUuid", + "type": "UUID" + }, + { + "name": "index", + "type": "varint" + }, + { + "name": "signature", + "type": [ + "option", + [ + "buffer", + { + "count": 256 + } + ] + ] + }, + { + "name": "plainMessage", + "type": "string" + }, + { + "name": "timestamp", + "type": "i64" + }, + { + "name": "salt", + "type": "i64" + }, + { + "name": "previousMessages", + "type": "previousMessages" + }, + { + "name": "unsignedChatContent", + "type": [ + "option", + "anonymousNbt" + ] + }, + { + "name": "filterType", + "type": "varint" + }, + { + "name": "filterTypeMask", + "type": [ + "switch", + { + "compareTo": "filterType", + "fields": { + "2": [ + "array", + { + "countType": "varint", + "type": "i64" + } + ] + }, + "default": "void" + } + ] + }, + { + "name": "type", + "type": "ChatTypesHolder" + }, + { + "name": "networkName", + "type": "anonymousNbt" + }, + { + "name": "networkTargetName", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ], + "packet_end_combat_event": [ + "container", + [ + { + "name": "duration", + "type": "varint" + } + ] + ], + "packet_enter_combat_event": [ + "container", + [] + ], + "packet_death_combat_event": [ + "container", + [ + { + "name": "playerId", + "type": "varint" + }, + { + "name": "message", + "type": "anonymousNbt" + } + ] + ], + "packet_player_remove": [ + "container", + [ + { + "name": "players", + "type": [ + "array", + { + "countType": "varint", + "type": "UUID" + } + ] + } + ] + ], + "packet_player_info": [ + "container", + [ + { + "name": "action", + "type": [ + "bitflags", + { + "type": "u8", + "flags": [ + "add_player", + "initialize_chat", + "update_game_mode", + "update_listed", + "update_latency", + "update_display_name", + "update_hat", + "update_list_order" + ] + } + ] + }, + { + "name": "data", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "player", + "type": [ + "switch", + { + "compareTo": "../action/add_player", + "fields": { + "true": "game_profile" + }, + "default": "void" + } + ] + }, + { + "name": "chatSession", + "type": [ + "switch", + { + "compareTo": "../action/initialize_chat", + "fields": { + "true": "chat_session" + }, + "default": "void" + } + ] + }, + { + "name": "gamemode", + "type": [ + "switch", + { + "compareTo": "../action/update_game_mode", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "listed", + "type": [ + "switch", + { + "compareTo": "../action/update_listed", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "latency", + "type": [ + "switch", + { + "compareTo": "../action/update_latency", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "displayName", + "type": [ + "switch", + { + "compareTo": "../action/update_display_name", + "fields": { + "true": [ + "option", + "anonymousNbt" + ] + }, + "default": "void" + } + ] + }, + { + "name": "listPriority", + "type": [ + "switch", + { + "compareTo": "../action/update_list_order", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "showHat", + "type": [ + "switch", + { + "compareTo": "../action/update_hat", + "fields": { + "true": "bool" + }, + "default": "void" + } + ] + } + ] + ] + } + ] + } + ] + ], + "packet_face_player": [ + "container", + [ + { + "name": "feet_eyes", + "type": "varint" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "isEntity", + "type": "bool" + }, + { + "name": "entityId", + "type": [ + "switch", + { + "compareTo": "isEntity", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "entity_feet_eyes", + "type": [ + "switch", + { + "compareTo": "isEntity", + "fields": { + "true": "varint" + }, + "default": "void" + } + ] + } + ] + ], + "PositionUpdateRelatives": [ + "bitflags", + { + "type": "u32", + "flags": [ + "x", + "y", + "z", + "yaw", + "pitch", + "dx", + "dy", + "dz", + "yawDelta" + ] + } + ], + "packet_position": [ + "container", + [ + { + "name": "teleportId", + "type": "varint" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "dx", + "type": "f64" + }, + { + "name": "dy", + "type": "f64" + }, + { + "name": "dz", + "type": "f64" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "flags", + "type": "PositionUpdateRelatives" + } + ] + ], + "packet_player_rotation": [ + "container", + [ + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + } + ] + ], + "packet_recipe_book_add": [ + "container", + [ + { + "name": "entries", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "recipe", + "type": [ + "container", + [ + { + "name": "displayId", + "type": "varint" + }, + { + "name": "display", + "type": "RecipeDisplay" + }, + { + "name": "group", + "type": "optvarint" + }, + { + "name": "category", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "crafting_building_blocks", + "1": "crafting_redstone", + "2": "crafting_equipment", + "3": "crafting_misc", + "4": "furnace_food", + "5": "furnace_blocks", + "6": "furnace_misc", + "7": "blast_furnace_blocks", + "8": "blast_furnace_misc", + "9": "smoker_food", + "10": "stonecutter", + "11": "smithing", + "12": "campfire" + } + } + ] + }, + { + "name": "craftingRequirements", + "type": [ + "option", + [ + "array", + { + "countType": "varint", + "type": "IDSet" + } + ] + ] + } + ] + ] + }, + { + "name": "flags", + "type": [ + "bitflags", + { + "type": "u8", + "flags": [ + "notification", + "highlight" + ] + } + ] + } + ] + ] + } + ] + }, + { + "name": "replace", + "type": "bool" + } + ] + ], + "packet_recipe_book_remove": [ + "container", + [ + { + "name": "recipeIds", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "RecipeBookSetting": [ + "container", + [ + { + "name": "open", + "type": "bool" + }, + { + "name": "filtering", + "type": "bool" + } + ] + ], + "packet_recipe_book_settings": [ + "container", + [ + { + "name": "crafting", + "type": "RecipeBookSetting" + }, + { + "name": "furnace", + "type": "RecipeBookSetting" + }, + { + "name": "blast", + "type": "RecipeBookSetting" + }, + { + "name": "smoker", + "type": "RecipeBookSetting" + } + ] + ], + "packet_entity_destroy": [ + "container", + [ + { + "name": "entityIds", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "packet_remove_entity_effect": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "effectId", + "type": "varint" + } + ] + ], + "packet_reset_score": [ + "container", + [ + { + "name": "entity_name", + "type": "string" + }, + { + "name": "objective_name", + "type": [ + "option", + "string" + ] + } + ] + ], + "packet_respawn": [ + "container", + [ + { + "name": "worldState", + "type": "SpawnInfo" + }, + { + "name": "copyMetadata", + "type": "u8" + } + ] + ], + "packet_entity_head_rotation": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "headYaw", + "type": "i8" + } + ] + ], + "packet_multi_block_change": [ + "container", + [ + { + "name": "chunkCoordinates", + "type": [ + "bitfield", + [ + { + "name": "x", + "size": 22, + "signed": true + }, + { + "name": "z", + "size": 22, + "signed": true + }, + { + "name": "y", + "size": 20, + "signed": true + } + ] + ] + }, + { + "name": "records", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "packet_select_advancement_tab": [ + "container", + [ + { + "name": "id", + "type": [ + "option", + "string" + ] + } + ] + ], + "packet_server_data": [ + "container", + [ + { + "name": "motd", + "type": "anonymousNbt" + }, + { + "name": "iconBytes", + "type": [ + "option", + "ByteArray" + ] + } + ] + ], + "packet_action_bar": [ + "container", + [ + { + "name": "text", + "type": "anonymousNbt" + } + ] + ], + "packet_world_border_center": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + } + ] + ], + "packet_world_border_lerp_size": [ + "container", + [ + { + "name": "oldDiameter", + "type": "f64" + }, + { + "name": "newDiameter", + "type": "f64" + }, + { + "name": "speed", + "type": "varint" + } + ] + ], + "packet_world_border_size": [ + "container", + [ + { + "name": "diameter", + "type": "f64" + } + ] + ], + "packet_world_border_warning_delay": [ + "container", + [ + { + "name": "warningTime", + "type": "varint" + } + ] + ], + "packet_world_border_warning_reach": [ + "container", + [ + { + "name": "warningBlocks", + "type": "varint" + } + ] + ], + "packet_camera": [ + "container", + [ + { + "name": "cameraId", + "type": "varint" + } + ] + ], + "packet_update_view_position": [ + "container", + [ + { + "name": "chunkX", + "type": "varint" + }, + { + "name": "chunkZ", + "type": "varint" + } + ] + ], + "packet_update_view_distance": [ + "container", + [ + { + "name": "viewDistance", + "type": "varint" + } + ] + ], + "packet_set_cursor_item": [ + "container", + [ + { + "name": "contents", + "type": "Slot" + } + ] + ], + "packet_spawn_position": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "angle", + "type": "f32" + } + ] + ], + "packet_scoreboard_display_objective": [ + "container", + [ + { + "name": "position", + "type": "varint" + }, + { + "name": "name", + "type": "string" + } + ] + ], + "packet_entity_metadata": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "metadata", + "type": "entityMetadata" + } + ] + ], + "packet_attach_entity": [ + "container", + [ + { + "name": "entityId", + "type": "i32" + }, + { + "name": "vehicleId", + "type": "i32" + } + ] + ], + "packet_entity_velocity": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "velocityX", + "type": "i16" + }, + { + "name": "velocityY", + "type": "i16" + }, + { + "name": "velocityZ", + "type": "i16" + } + ] + ], + "packet_entity_equipment": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "equipments", + "type": [ + "topBitSetTerminatedArray", + { + "type": [ + "container", + [ + { + "name": "slot", + "type": "i8" + }, + { + "name": "item", + "type": "Slot" + } + ] + ] + } + ] + } + ] + ], + "packet_experience": [ + "container", + [ + { + "name": "experienceBar", + "type": "f32" + }, + { + "name": "level", + "type": "varint" + }, + { + "name": "totalExperience", + "type": "varint" + } + ] + ], + "packet_update_health": [ + "container", + [ + { + "name": "health", + "type": "f32" + }, + { + "name": "food", + "type": "varint" + }, + { + "name": "foodSaturation", + "type": "f32" + } + ] + ], + "packet_held_item_slot": [ + "container", + [ + { + "name": "slot", + "type": "varint" + } + ] + ], + "packet_scoreboard_objective": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "action", + "type": "i8" + }, + { + "name": "displayText", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "anonymousNbt", + "2": "anonymousNbt" + }, + "default": "void" + } + ] + }, + { + "name": "type", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "varint", + "2": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "number_format", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": [ + "option", + "varint" + ], + "2": [ + "option", + "varint" + ] + }, + "default": "void" + } + ] + }, + { + "name": "styling", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": [ + "switch", + { + "compareTo": "number_format", + "fields": { + "1": "anonymousNbt", + "2": "anonymousNbt" + }, + "default": "void" + } + ], + "2": [ + "switch", + { + "compareTo": "number_format", + "fields": { + "1": "anonymousNbt", + "2": "anonymousNbt" + }, + "default": "void" + } + ] + }, + "default": "void" + } + ] + } + ] + ], + "packet_set_passengers": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "passengers", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ], + "packet_set_player_inventory": [ + "container", + [ + { + "name": "slotId", + "type": "varint" + }, + { + "name": "contents", + "type": "Slot" + } + ] + ], + "packet_teams": [ + "container", + [ + { + "name": "team", + "type": "string" + }, + { + "name": "mode", + "type": [ + "mapper", + { + "type": "i8", + "mappings": { + "0": "add", + "1": "remove", + "2": "change", + "3": "join", + "4": "leave" + } + } + ] + }, + { + "anon": true, + "type": [ + "switch", + { + "compareTo": "mode", + "fields": { + "add": [ + "container", + [ + { + "name": "name", + "type": "anonymousNbt" + }, + { + "name": "flags", + "type": [ + "bitflags", + { + "type": "u8", + "flags": [ + "friendly_fire", + "see_friendly_invisible" + ] + } + ] + }, + { + "name": "nameTagVisibility", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "always", + "1": "never", + "2": "hide_for_other_teams", + "3": "hide_for_own_team" + } + } + ] + }, + { + "name": "collisionRule", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "always", + "1": "never", + "2": "push_other_teams", + "3": "push_own_team" + } + } + ] + }, + { + "name": "formatting", + "type": "varint" + }, + { + "name": "prefix", + "type": "anonymousNbt" + }, + { + "name": "suffix", + "type": "anonymousNbt" + } + ] + ], + "change": [ + "container", + [ + { + "name": "name", + "type": "anonymousNbt" + }, + { + "name": "flags", + "type": [ + "bitflags", + { + "type": "u8", + "flags": [ + "friendly_fire", + "see_friendly_invisible" + ] + } + ] + }, + { + "name": "nameTagVisibility", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "always", + "1": "never", + "2": "hide_for_other_teams", + "3": "hide_for_own_team" + } + } + ] + }, + { + "name": "collisionRule", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "always", + "1": "never", + "2": "push_other_teams", + "3": "push_own_team" + } + } + ] + }, + { + "name": "formatting", + "type": "varint" + }, + { + "name": "prefix", + "type": "anonymousNbt" + }, + { + "name": "suffix", + "type": "anonymousNbt" + } + ] + ] + }, + "default": "void" + } + ] + }, + { + "name": "players", + "type": [ + "switch", + { + "compareTo": "mode", + "fields": { + "add": [ + "array", + { + "countType": "varint", + "type": "string" + } + ], + "join": [ + "array", + { + "countType": "varint", + "type": "string" + } + ], + "leave": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + "default": "void" + } + ] + } + ] + ], + "packet_scoreboard_score": [ + "container", + [ + { + "name": "itemName", + "type": "string" + }, + { + "name": "scoreName", + "type": "string" + }, + { + "name": "value", + "type": "varint" + }, + { + "name": "display_name", + "type": [ + "option", + "anonymousNbt" + ] + }, + { + "name": "number_format", + "type": [ + "option", + "varint" + ] + }, + { + "name": "styling", + "type": [ + "switch", + { + "compareTo": "number_format", + "fields": { + "1": "anonymousNbt", + "2": "anonymousNbt" + }, + "default": "void" + } + ] + } + ] + ], + "packet_simulation_distance": [ + "container", + [ + { + "name": "distance", + "type": "varint" + } + ] + ], + "packet_set_title_subtitle": [ + "container", + [ + { + "name": "text", + "type": "anonymousNbt" + } + ] + ], + "packet_update_time": [ + "container", + [ + { + "name": "age", + "type": "i64" + }, + { + "name": "time", + "type": "i64" + }, + { + "name": "tickDayTime", + "type": "bool" + } + ] + ], + "packet_set_title_text": [ + "container", + [ + { + "name": "text", + "type": "anonymousNbt" + } + ] + ], + "packet_set_title_time": [ + "container", + [ + { + "name": "fadeIn", + "type": "i32" + }, + { + "name": "stay", + "type": "i32" + }, + { + "name": "fadeOut", + "type": "i32" + } + ] + ], + "packet_entity_sound_effect": [ + "container", + [ + { + "name": "sound", + "type": "ItemSoundHolder" + }, + { + "name": "soundCategory", + "type": "soundSource" + }, + { + "name": "entityId", + "type": "varint" + }, + { + "name": "volume", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "seed", + "type": "i64" + } + ] + ], + "packet_sound_effect": [ + "container", + [ + { + "name": "sound", + "type": "ItemSoundHolder" + }, + { + "name": "soundCategory", + "type": "soundSource" + }, + { + "name": "x", + "type": "i32" + }, + { + "name": "y", + "type": "i32" + }, + { + "name": "z", + "type": "i32" + }, + { + "name": "volume", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "seed", + "type": "i64" + } + ] + ], + "packet_start_configuration": [ + "container", + [] + ], + "packet_stop_sound": [ + "container", + [ + { + "name": "flags", + "type": "i8" + }, + { + "name": "source", + "type": [ + "switch", + { + "compareTo": "flags", + "fields": { + "1": "varint", + "3": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "sound", + "type": [ + "switch", + { + "compareTo": "flags", + "fields": { + "2": "string", + "3": "string" + }, + "default": "void" + } + ] + } + ] + ], + "packet_system_chat": [ + "container", + [ + { + "name": "content", + "type": "anonymousNbt" + }, + { + "name": "isActionBar", + "type": "bool" + } + ] + ], + "packet_playerlist_header": [ + "container", + [ + { + "name": "header", + "type": "anonymousNbt" + }, + { + "name": "footer", + "type": "anonymousNbt" + } + ] + ], + "packet_nbt_query_response": [ + "container", + [ + { + "name": "transactionId", + "type": "varint" + }, + { + "name": "nbt", + "type": "anonOptionalNbt" + } + ] + ], + "packet_collect": [ + "container", + [ + { + "name": "collectedEntityId", + "type": "varint" + }, + { + "name": "collectorEntityId", + "type": "varint" + }, + { + "name": "pickupItemCount", + "type": "varint" + } + ] + ], + "packet_entity_teleport": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "yaw", + "type": "i8" + }, + { + "name": "pitch", + "type": "i8" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_test_instance_block_status": [ + "container", + [ + { + "name": "status", + "type": "anonymousNbt" + }, + { + "name": "size", + "type": [ + "option", + "vec3i" + ] + } + ] + ], + "packet_set_ticking_state": [ + "container", + [ + { + "name": "tick_rate", + "type": "f32" + }, + { + "name": "is_frozen", + "type": "bool" + } + ] + ], + "packet_step_tick": [ + "container", + [ + { + "name": "tick_steps", + "type": "varint" + } + ] + ], + "packet_advancements": [ + "container", + [ + { + "name": "reset", + "type": "bool" + }, + { + "name": "advancementMapping", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": [ + "container", + [ + { + "name": "parentId", + "type": [ + "option", + "string" + ] + }, + { + "name": "displayData", + "type": [ + "option", + [ + "container", + [ + { + "name": "title", + "type": "anonymousNbt" + }, + { + "name": "description", + "type": "anonymousNbt" + }, + { + "name": "icon", + "type": "Slot" + }, + { + "name": "frameType", + "type": "varint" + }, + { + "name": "flags", + "type": [ + "bitfield", + [ + { + "name": "unused", + "size": 29, + "signed": false + }, + { + "name": "hidden", + "size": 1, + "signed": false + }, + { + "name": "show_toast", + "size": 1, + "signed": false + }, + { + "name": "has_background_texture", + "size": 1, + "signed": false + } + ] + ] + }, + { + "name": "backgroundTexture", + "type": [ + "switch", + { + "compareTo": "flags/has_background_texture", + "fields": { + "1": "string" + }, + "default": "void" + } + ] + }, + { + "name": "xCord", + "type": "f32" + }, + { + "name": "yCord", + "type": "f32" + } + ] + ] + ] + }, + { + "name": "requirements", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + } + ] + }, + { + "name": "sendsTelemtryData", + "type": "bool" + } + ] + ] + } + ] + ] + } + ] + }, + { + "name": "identifiers", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "progressMapping", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": "string" + }, + { + "name": "value", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "criterionIdentifier", + "type": "string" + }, + { + "name": "criterionProgress", + "type": [ + "option", + "i64" + ] + } + ] + ] + } + ] + } + ] + ] + } + ] + }, + { + "name": "showAdvancements", + "type": "bool" + } + ] + ], + "packet_entity_update_attributes": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "properties", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "key", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "generic.armor", + "1": "generic.armor_toughness", + "2": "generic.attack_damage", + "3": "generic.attack_knockback", + "4": "generic.attack_speed", + "5": "player.block_break_speed", + "6": "player.block_interaction_range", + "7": "burning_time", + "8": "camera_distance", + "9": "explosion_knockback_resistance", + "10": "player.entity_interaction_range", + "11": "generic.fall_damage_multiplier", + "12": "generic.flying_speed", + "13": "generic.follow_range", + "14": "generic.gravity", + "15": "generic.jump_strength", + "16": "generic.knockback_resistance", + "17": "generic.luck", + "18": "generic.max_absorption", + "19": "generic.max_health", + "20": "generic.movement_speed", + "21": "generic.safe_fall_distance", + "22": "generic.scale", + "23": "zombie.spawn_reinforcements", + "24": "generic.step_height", + "25": "submerged_mining_speed", + "26": "sweeping_damage_ratio", + "27": "tempt_range", + "28": "water_movement_efficiency", + "29": "waypoint_transmit_range", + "30": "waypoint_receive_range" + } + } + ] + }, + { + "name": "value", + "type": "f64" + }, + { + "name": "modifiers", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "uuid", + "type": "string" + }, + { + "name": "amount", + "type": "f64" + }, + { + "name": "operation", + "type": "i8" + } + ] + ] + } + ] + } + ] + ] + } + ] + } + ] + ], + "packet_entity_effect": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "effectId", + "type": "varint" + }, + { + "name": "amplifier", + "type": "varint" + }, + { + "name": "duration", + "type": "varint" + }, + { + "name": "flags", + "type": "u8" + } + ] + ], + "packet_declare_recipes": [ + "container", + [ + { + "name": "recipes", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "name", + "type": "string" + }, + { + "name": "items", + "type": [ + "array", + { + "countType": "varint", + "type": "varint" + } + ] + } + ] + ] + } + ] + }, + { + "name": "stoneCutterRecipes", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "input", + "type": "IDSet" + }, + { + "name": "slotDisplay", + "type": "SlotDisplay" + } + ] + ] + } + ] + } + ] + ], + "packet_tags": [ + "container", + [ + { + "name": "tags", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "tagType", + "type": "string" + }, + { + "name": "tags", + "type": "tags" + } + ] + ] + } + ] + } + ] + ], + "packet_set_projectile_power": [ + "container", + [ + { + "name": "id", + "type": "varint" + }, + { + "name": "accelerationPower", + "type": "f64" + } + ] + ], + "packet_tracked_waypoint": [ + "container", + [ + { + "name": "operation", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "track", + "1": "untrack", + "2": "update" + } + } + ] + }, + { + "name": "waypoint", + "type": [ + "container", + [ + { + "name": "hasUUID", + "type": "bool" + }, + { + "anon": true, + "type": [ + "switch", + { + "compareTo": "hasUUID", + "fields": { + "true": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + } + ] + ], + "false": [ + "container", + [ + { + "name": "id", + "type": "string" + } + ] + ] + } + } + ] + }, + { + "name": "icon", + "type": [ + "container", + [ + { + "name": "style", + "type": "string" + }, + { + "name": "color", + "type": [ + "option", + "i32" + ] + } + ] + ] + }, + { + "name": "type", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "empty", + "1": "vec3i", + "2": "chunk", + "3": "azimuth" + } + } + ] + }, + { + "name": "data", + "type": [ + "switch", + { + "compareTo": "type", + "fields": { + "vec3i": "vec3i", + "chunk": [ + "container", + [ + { + "name": "chunkX", + "type": "varint" + }, + { + "name": "chunkZ", + "type": "varint" + } + ] + ], + "azimuth": "f32" + } + } + ] + } + ] + ] + } + ] + ], + "packet_show_dialog": [ + "container", + [ + { + "name": "dialog", + "type": [ + "registryEntryHolder", + { + "baseName": "dialog", + "otherwise": { + "name": "data", + "type": "anonymousNbt" + } + } + ] + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "bundle_delimiter", + "0x01": "spawn_entity", + "0x02": "animation", + "0x03": "statistics", + "0x04": "acknowledge_player_digging", + "0x05": "block_break_animation", + "0x06": "tile_entity_data", + "0x07": "block_action", + "0x08": "block_change", + "0x09": "boss_bar", + "0x0a": "difficulty", + "0x0b": "chunk_batch_finished", + "0x0c": "chunk_batch_start", + "0x0d": "chunk_biomes", + "0x0e": "clear_titles", + "0x0f": "tab_complete", + "0x10": "declare_commands", + "0x11": "close_window", + "0x12": "window_items", + "0x13": "craft_progress_bar", + "0x14": "set_slot", + "0x15": "cookie_request", + "0x16": "set_cooldown", + "0x17": "chat_suggestions", + "0x18": "custom_payload", + "0x19": "damage_event", + "0x1a": "debug_sample", + "0x1b": "hide_message", + "0x1c": "kick_disconnect", + "0x1d": "profileless_chat", + "0x1e": "entity_status", + "0x1f": "sync_entity_position", + "0x20": "explosion", + "0x21": "unload_chunk", + "0x22": "game_state_change", + "0x23": "open_horse_window", + "0x24": "hurt_animation", + "0x25": "initialize_world_border", + "0x26": "keep_alive", + "0x27": "map_chunk", + "0x28": "world_event", + "0x29": "world_particles", + "0x2a": "update_light", + "0x2b": "login", + "0x2c": "map", + "0x2d": "trade_list", + "0x2e": "rel_entity_move", + "0x2f": "entity_move_look", + "0x30": "move_minecart", + "0x31": "entity_look", + "0x32": "vehicle_move", + "0x33": "open_book", + "0x34": "open_window", + "0x35": "open_sign_entity", + "0x36": "ping", + "0x37": "ping_response", + "0x38": "craft_recipe_response", + "0x39": "abilities", + "0x3a": "player_chat", + "0x3b": "end_combat_event", + "0x3c": "enter_combat_event", + "0x3d": "death_combat_event", + "0x3e": "player_remove", + "0x3f": "player_info", + "0x40": "face_player", + "0x41": "position", + "0x42": "player_rotation", + "0x43": "recipe_book_add", + "0x44": "recipe_book_remove", + "0x45": "recipe_book_settings", + "0x46": "entity_destroy", + "0x47": "remove_entity_effect", + "0x48": "reset_score", + "0x49": "remove_resource_pack", + "0x4a": "add_resource_pack", + "0x4b": "respawn", + "0x4c": "entity_head_rotation", + "0x4d": "multi_block_change", + "0x4e": "select_advancement_tab", + "0x4f": "server_data", + "0x50": "action_bar", + "0x51": "world_border_center", + "0x52": "world_border_lerp_size", + "0x53": "world_border_size", + "0x54": "world_border_warning_delay", + "0x55": "world_border_warning_reach", + "0x56": "camera", + "0x57": "update_view_position", + "0x58": "update_view_distance", + "0x59": "set_cursor_item", + "0x5a": "spawn_position", + "0x5b": "scoreboard_display_objective", + "0x5c": "entity_metadata", + "0x5d": "attach_entity", + "0x5e": "entity_velocity", + "0x5f": "entity_equipment", + "0x60": "experience", + "0x61": "update_health", + "0x62": "held_item_slot", + "0x63": "scoreboard_objective", + "0x64": "set_passengers", + "0x65": "set_player_inventory", + "0x66": "teams", + "0x67": "scoreboard_score", + "0x68": "simulation_distance", + "0x69": "set_title_subtitle", + "0x6a": "update_time", + "0x6b": "set_title_text", + "0x6c": "set_title_time", + "0x6d": "entity_sound_effect", + "0x6e": "sound_effect", + "0x6f": "start_configuration", + "0x70": "stop_sound", + "0x71": "store_cookie", + "0x72": "system_chat", + "0x73": "playerlist_header", + "0x74": "nbt_query_response", + "0x75": "collect", + "0x76": "entity_teleport", + "0x77": "test_instance_block_status", + "0x78": "set_ticking_state", + "0x79": "step_tick", + "0x7a": "transfer", + "0x7b": "advancements", + "0x7c": "entity_update_attributes", + "0x7d": "entity_effect", + "0x7e": "declare_recipes", + "0x7f": "tags", + "0x80": "set_projectile_power", + "0x81": "custom_report_details", + "0x82": "server_links", + "0x83": "tracked_waypoint", + "0x84": "clear_dialog", + "0x85": "show_dialog" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "bundle_delimiter": "void", + "spawn_entity": "packet_spawn_entity", + "animation": "packet_animation", + "statistics": "packet_statistics", + "acknowledge_player_digging": "packet_acknowledge_player_digging", + "block_break_animation": "packet_block_break_animation", + "tile_entity_data": "packet_tile_entity_data", + "block_action": "packet_block_action", + "block_change": "packet_block_change", + "boss_bar": "packet_boss_bar", + "difficulty": "packet_difficulty", + "chunk_batch_finished": "packet_chunk_batch_finished", + "chunk_batch_start": "packet_chunk_batch_start", + "chunk_biomes": "packet_chunk_biomes", + "clear_titles": "packet_clear_titles", + "tab_complete": "packet_tab_complete", + "declare_commands": "packet_declare_commands", + "close_window": "packet_close_window", + "window_items": "packet_window_items", + "craft_progress_bar": "packet_craft_progress_bar", + "set_slot": "packet_set_slot", + "cookie_request": "packet_common_cookie_request", + "set_cooldown": "packet_set_cooldown", + "chat_suggestions": "packet_chat_suggestions", + "custom_payload": "packet_custom_payload", + "damage_event": "packet_damage_event", + "debug_sample": "packet_debug_sample", + "hide_message": "packet_hide_message", + "kick_disconnect": "packet_kick_disconnect", + "profileless_chat": "packet_profileless_chat", + "entity_status": "packet_entity_status", + "sync_entity_position": "packet_sync_entity_position", + "explosion": "packet_explosion", + "unload_chunk": "packet_unload_chunk", + "game_state_change": "packet_game_state_change", + "open_horse_window": "packet_open_horse_window", + "hurt_animation": "packet_hurt_animation", + "initialize_world_border": "packet_initialize_world_border", + "keep_alive": "packet_keep_alive", + "map_chunk": "packet_map_chunk", + "world_event": "packet_world_event", + "world_particles": "packet_world_particles", + "update_light": "packet_update_light", + "login": "packet_login", + "map": "packet_map", + "trade_list": "packet_trade_list", + "rel_entity_move": "packet_rel_entity_move", + "entity_move_look": "packet_entity_move_look", + "move_minecart": "packet_move_minecart", + "entity_look": "packet_entity_look", + "vehicle_move": "packet_vehicle_move", + "open_book": "packet_open_book", + "open_window": "packet_open_window", + "open_sign_entity": "packet_open_sign_entity", + "ping": "packet_ping", + "ping_response": "packet_ping_response", + "craft_recipe_response": "packet_craft_recipe_response", + "abilities": "packet_abilities", + "player_chat": "packet_player_chat", + "end_combat_event": "packet_end_combat_event", + "enter_combat_event": "packet_enter_combat_event", + "death_combat_event": "packet_death_combat_event", + "player_remove": "packet_player_remove", + "player_info": "packet_player_info", + "face_player": "packet_face_player", + "position": "packet_position", + "player_rotation": "packet_player_rotation", + "recipe_book_add": "packet_recipe_book_add", + "recipe_book_remove": "packet_recipe_book_remove", + "recipe_book_settings": "packet_recipe_book_settings", + "entity_destroy": "packet_entity_destroy", + "remove_entity_effect": "packet_remove_entity_effect", + "reset_score": "packet_reset_score", + "remove_resource_pack": "packet_common_remove_resource_pack", + "add_resource_pack": "packet_common_add_resource_pack", + "respawn": "packet_respawn", + "entity_head_rotation": "packet_entity_head_rotation", + "multi_block_change": "packet_multi_block_change", + "select_advancement_tab": "packet_select_advancement_tab", + "server_data": "packet_server_data", + "action_bar": "packet_action_bar", + "world_border_center": "packet_world_border_center", + "world_border_lerp_size": "packet_world_border_lerp_size", + "world_border_size": "packet_world_border_size", + "world_border_warning_delay": "packet_world_border_warning_delay", + "world_border_warning_reach": "packet_world_border_warning_reach", + "camera": "packet_camera", + "update_view_position": "packet_update_view_position", + "update_view_distance": "packet_update_view_distance", + "set_cursor_item": "packet_set_cursor_item", + "held_item_slot": "packet_held_item_slot", + "spawn_position": "packet_spawn_position", + "scoreboard_display_objective": "packet_scoreboard_display_objective", + "entity_metadata": "packet_entity_metadata", + "attach_entity": "packet_attach_entity", + "entity_velocity": "packet_entity_velocity", + "entity_equipment": "packet_entity_equipment", + "experience": "packet_experience", + "update_health": "packet_update_health", + "scoreboard_objective": "packet_scoreboard_objective", + "set_passengers": "packet_set_passengers", + "set_player_inventory": "packet_set_player_inventory", + "teams": "packet_teams", + "scoreboard_score": "packet_scoreboard_score", + "simulation_distance": "packet_simulation_distance", + "set_title_subtitle": "packet_set_title_subtitle", + "update_time": "packet_update_time", + "set_title_text": "packet_set_title_text", + "set_title_time": "packet_set_title_time", + "entity_sound_effect": "packet_entity_sound_effect", + "sound_effect": "packet_sound_effect", + "start_configuration": "packet_start_configuration", + "stop_sound": "packet_stop_sound", + "store_cookie": "packet_common_store_cookie", + "system_chat": "packet_system_chat", + "playerlist_header": "packet_playerlist_header", + "nbt_query_response": "packet_nbt_query_response", + "collect": "packet_collect", + "entity_teleport": "packet_entity_teleport", + "test_instance_block_status": "packet_test_instance_block_status", + "set_ticking_state": "packet_set_ticking_state", + "step_tick": "packet_step_tick", + "transfer": "packet_common_transfer", + "advancements": "packet_advancements", + "entity_update_attributes": "packet_entity_update_attributes", + "entity_effect": "packet_entity_effect", + "declare_recipes": "packet_declare_recipes", + "tags": "packet_tags", + "set_projectile_power": "packet_set_projectile_power", + "custom_report_details": "packet_common_custom_report_details", + "server_links": "packet_common_server_links", + "tracked_waypoint": "packet_tracked_waypoint", + "clear_dialog": "packet_common_clear_dialog", + "show_dialog": "packet_show_dialog" + } + } + ] + } + ] + ] + } + }, + "toServer": { + "types": { + "packet_teleport_confirm": [ + "container", + [ + { + "name": "teleportId", + "type": "varint" + } + ] + ], + "packet_query_block_nbt": [ + "container", + [ + { + "name": "transactionId", + "type": "varint" + }, + { + "name": "location", + "type": "position" + } + ] + ], + "packet_select_bundle_item": [ + "container", + [ + { + "name": "slotId", + "type": "varint" + }, + { + "name": "selectedItemIndex", + "type": "varint" + } + ] + ], + "packet_set_difficulty": [ + "container", + [ + { + "name": "newDifficulty", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "peaceful", + "1": "easy", + "2": "normal", + "3": "hard" + } + } + ] + } + ] + ], + "packet_change_gamemode": [ + "container", + [ + { + "name": "mode", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "survival", + "1": "creative", + "2": "adventure", + "3": "spectator" + } + } + ] + } + ] + ], + "packet_message_acknowledgement": [ + "container", + [ + { + "name": "count", + "type": "varint" + } + ] + ], + "packet_chat_command": [ + "container", + [ + { + "name": "command", + "type": "string" + } + ] + ], + "packet_chat_command_signed": [ + "container", + [ + { + "name": "command", + "type": "string" + }, + { + "name": "timestamp", + "type": "i64" + }, + { + "name": "salt", + "type": "i64" + }, + { + "name": "argumentSignatures", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "argumentName", + "type": "string" + }, + { + "name": "signature", + "type": [ + "buffer", + { + "count": 256 + } + ] + } + ] + ] + } + ] + }, + { + "name": "messageCount", + "type": "varint" + }, + { + "name": "acknowledged", + "type": [ + "buffer", + { + "count": 3 + } + ] + }, + { + "name": "checksum", + "type": "i8" + } + ] + ], + "packet_chat_message": [ + "container", + [ + { + "name": "message", + "type": "string" + }, + { + "name": "timestamp", + "type": "i64" + }, + { + "name": "salt", + "type": "i64" + }, + { + "name": "signature", + "type": [ + "option", + [ + "buffer", + { + "count": 256 + } + ] + ] + }, + { + "name": "offset", + "type": "varint" + }, + { + "name": "acknowledged", + "type": [ + "buffer", + { + "count": 3 + } + ] + }, + { + "name": "checksum", + "type": "u8" + } + ] + ], + "packet_chat_session_update": [ + "container", + [ + { + "name": "sessionUUID", + "type": "UUID" + }, + { + "name": "expireTime", + "type": "i64" + }, + { + "name": "publicKey", + "type": "ByteArray" + }, + { + "name": "signature", + "type": "ByteArray" + } + ] + ], + "packet_chunk_batch_received": [ + "container", + [ + { + "name": "chunksPerTick", + "type": "f32" + } + ] + ], + "packet_client_command": [ + "container", + [ + { + "name": "actionId", + "type": "varint" + } + ] + ], + "packet_tick_end": [ + "container", + [] + ], + "packet_tab_complete": [ + "container", + [ + { + "name": "transactionId", + "type": "varint" + }, + { + "name": "text", + "type": "string" + } + ] + ], + "packet_configuration_acknowledged": [ + "container", + [] + ], + "packet_enchant_item": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "enchantment", + "type": "i8" + } + ] + ], + "packet_window_click": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "stateId", + "type": "varint" + }, + { + "name": "slot", + "type": "i16" + }, + { + "name": "mouseButton", + "type": "i8" + }, + { + "name": "mode", + "type": "varint" + }, + { + "name": "changedSlots", + "type": [ + "array", + { + "countType": "varint", + "type": [ + "container", + [ + { + "name": "location", + "type": "i16" + }, + { + "name": "item", + "type": [ + "option", + "HashedSlot" + ] + } + ] + ] + } + ] + }, + { + "name": "cursorItem", + "type": [ + "option", + "HashedSlot" + ] + } + ] + ], + "packet_close_window": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + } + ] + ], + "packet_set_slot_state": [ + "container", + [ + { + "name": "slot_id", + "type": "varint" + }, + { + "name": "window_id", + "type": "ContainerID" + }, + { + "name": "state", + "type": "bool" + } + ] + ], + "packet_custom_payload": [ + "container", + [ + { + "name": "channel", + "type": "string" + }, + { + "name": "data", + "type": "restBuffer" + } + ] + ], + "packet_debug_sample_subscription": [ + "container", + [ + { + "name": "type", + "type": "varint" + } + ] + ], + "packet_edit_book": [ + "container", + [ + { + "name": "hand", + "type": "varint" + }, + { + "name": "pages", + "type": [ + "array", + { + "countType": "varint", + "type": "string" + } + ] + }, + { + "name": "title", + "type": [ + "option", + "string" + ] + } + ] + ], + "packet_query_entity_nbt": [ + "container", + [ + { + "name": "transactionId", + "type": "varint" + }, + { + "name": "entityId", + "type": "varint" + } + ] + ], + "packet_use_entity": [ + "container", + [ + { + "name": "target", + "type": "varint" + }, + { + "name": "mouse", + "type": "varint" + }, + { + "name": "x", + "type": [ + "switch", + { + "compareTo": "mouse", + "fields": { + "2": "f32" + }, + "default": "void" + } + ] + }, + { + "name": "y", + "type": [ + "switch", + { + "compareTo": "mouse", + "fields": { + "2": "f32" + }, + "default": "void" + } + ] + }, + { + "name": "z", + "type": [ + "switch", + { + "compareTo": "mouse", + "fields": { + "2": "f32" + }, + "default": "void" + } + ] + }, + { + "name": "hand", + "type": [ + "switch", + { + "compareTo": "mouse", + "fields": { + "0": "varint", + "2": "varint" + }, + "default": "void" + } + ] + }, + { + "name": "sneaking", + "type": "bool" + } + ] + ], + "packet_generate_structure": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "levels", + "type": "varint" + }, + { + "name": "keepJigsaws", + "type": "bool" + } + ] + ], + "packet_keep_alive": [ + "container", + [ + { + "name": "keepAliveId", + "type": "i64" + } + ] + ], + "packet_lock_difficulty": [ + "container", + [ + { + "name": "locked", + "type": "bool" + } + ] + ], + "MovementFlags": [ + "bitflags", + { + "type": "u8", + "flags": [ + "onGround", + "hasHorizontalCollision" + ] + } + ], + "packet_position": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "flags", + "type": "MovementFlags" + } + ] + ], + "packet_position_look": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "flags", + "type": "MovementFlags" + } + ] + ], + "packet_look": [ + "container", + [ + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "flags", + "type": "MovementFlags" + } + ] + ], + "packet_flying": [ + "container", + [ + { + "name": "flags", + "type": "MovementFlags" + } + ] + ], + "packet_vehicle_move": [ + "container", + [ + { + "name": "x", + "type": "f64" + }, + { + "name": "y", + "type": "f64" + }, + { + "name": "z", + "type": "f64" + }, + { + "name": "yaw", + "type": "f32" + }, + { + "name": "pitch", + "type": "f32" + }, + { + "name": "onGround", + "type": "bool" + } + ] + ], + "packet_steer_boat": [ + "container", + [ + { + "name": "leftPaddle", + "type": "bool" + }, + { + "name": "rightPaddle", + "type": "bool" + } + ] + ], + "packet_pick_item_from_block": [ + "container", + [ + { + "name": "position", + "type": "position" + }, + { + "name": "includeData", + "type": "bool" + } + ] + ], + "packet_pick_item_from_entity": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "includeData", + "type": "bool" + } + ] + ], + "packet_ping_request": [ + "container", + [ + { + "name": "id", + "type": "i64" + } + ] + ], + "packet_craft_recipe_request": [ + "container", + [ + { + "name": "windowId", + "type": "ContainerID" + }, + { + "name": "recipeId", + "type": "varint" + }, + { + "name": "makeAll", + "type": "bool" + } + ] + ], + "packet_abilities": [ + "container", + [ + { + "name": "flags", + "type": "i8" + } + ] + ], + "packet_block_dig": [ + "container", + [ + { + "name": "status", + "type": "varint" + }, + { + "name": "location", + "type": "position" + }, + { + "name": "face", + "type": "i8" + }, + { + "name": "sequence", + "type": "varint" + } + ] + ], + "packet_entity_action": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "actionId", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0": "leave_bed", + "1": "start_sprinting", + "2": "stop_sprinting", + "3": "start_horse_jump", + "4": "stop_horse_jump", + "5": "open_vehicle_inventory", + "6": "start_elytra_flying" + } + } + ] + }, + { + "name": "jumpBoost", + "type": "varint" + } + ] + ], + "packet_player_input": [ + "container", + [ + { + "name": "inputs", + "type": [ + "bitflags", + { + "type": "u8", + "flags": [ + "forward", + "backward", + "left", + "right", + "jump", + "shift", + "sprint" + ] + } + ] + } + ] + ], + "packet_player_loaded": [ + "container", + [] + ], + "packet_pong": [ + "container", + [ + { + "name": "id", + "type": "i32" + } + ] + ], + "packet_recipe_book": [ + "container", + [ + { + "name": "bookId", + "type": "varint" + }, + { + "name": "bookOpen", + "type": "bool" + }, + { + "name": "filterActive", + "type": "bool" + } + ] + ], + "packet_displayed_recipe": [ + "container", + [ + { + "name": "recipeId", + "type": "varint" + } + ] + ], + "packet_name_item": [ + "container", + [ + { + "name": "name", + "type": "string" + } + ] + ], + "packet_resource_pack_receive": [ + "container", + [ + { + "name": "uuid", + "type": "UUID" + }, + { + "name": "result", + "type": "varint" + } + ] + ], + "packet_advancement_tab": [ + "container", + [ + { + "name": "action", + "type": "varint" + }, + { + "name": "tabId", + "type": [ + "switch", + { + "compareTo": "action", + "fields": { + "0": "string", + "1": "void" + } + } + ] + } + ] + ], + "packet_select_trade": [ + "container", + [ + { + "name": "slot", + "type": "varint" + } + ] + ], + "packet_set_beacon_effect": [ + "container", + [ + { + "name": "primary_effect", + "type": [ + "option", + "varint" + ] + }, + { + "name": "secondary_effect", + "type": [ + "option", + "varint" + ] + } + ] + ], + "packet_held_item_slot": [ + "container", + [ + { + "name": "slotId", + "type": "i16" + } + ] + ], + "packet_update_command_block": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "command", + "type": "string" + }, + { + "name": "mode", + "type": "varint" + }, + { + "name": "flags", + "type": "u8" + } + ] + ], + "packet_update_command_block_minecart": [ + "container", + [ + { + "name": "entityId", + "type": "varint" + }, + { + "name": "command", + "type": "string" + }, + { + "name": "track_output", + "type": "bool" + } + ] + ], + "packet_set_creative_slot": [ + "container", + [ + { + "name": "slot", + "type": "i16" + }, + { + "name": "item", + "type": "UntrustedSlot" + } + ] + ], + "packet_update_jigsaw_block": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "target", + "type": "string" + }, + { + "name": "pool", + "type": "string" + }, + { + "name": "finalState", + "type": "string" + }, + { + "name": "jointType", + "type": "string" + }, + { + "name": "selection_priority", + "type": "varint" + }, + { + "name": "placement_priority", + "type": "varint" + } + ] + ], + "packet_update_structure_block": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "action", + "type": "varint" + }, + { + "name": "mode", + "type": "varint" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "offset_x", + "type": "i8" + }, + { + "name": "offset_y", + "type": "i8" + }, + { + "name": "offset_z", + "type": "i8" + }, + { + "name": "size_x", + "type": "i8" + }, + { + "name": "size_y", + "type": "i8" + }, + { + "name": "size_z", + "type": "i8" + }, + { + "name": "mirror", + "type": "varint" + }, + { + "name": "rotation", + "type": "varint" + }, + { + "name": "metadata", + "type": "string" + }, + { + "name": "integrity", + "type": "f32" + }, + { + "name": "seed", + "type": "varint" + }, + { + "name": "flags", + "type": [ + "mapper", + { + "type": "u8", + "mappings": { + "0": "ignore_entities", + "1": "show_air", + "2": "show_bounding_box", + "3": "strict" + } + } + ] + } + ] + ], + "packet_set_test_block": [ + "container", + [ + { + "name": "position", + "type": "position" + }, + { + "name": "mode", + "type": "varint" + }, + { + "name": "message", + "type": "string" + } + ] + ], + "packet_update_sign": [ + "container", + [ + { + "name": "location", + "type": "position" + }, + { + "name": "isFrontText", + "type": "bool" + }, + { + "name": "text1", + "type": "string" + }, + { + "name": "text2", + "type": "string" + }, + { + "name": "text3", + "type": "string" + }, + { + "name": "text4", + "type": "string" + } + ] + ], + "packet_arm_animation": [ + "container", + [ + { + "name": "hand", + "type": "varint" + } + ] + ], + "packet_spectate": [ + "container", + [ + { + "name": "target", + "type": "UUID" + } + ] + ], + "packet_test_instance_block_action": [ + "container", + [ + { + "name": "pos", + "type": "position" + }, + { + "name": "action", + "type": "varint" + }, + { + "name": "data", + "type": [ + "container", + [ + { + "name": "test", + "type": [ + "option", + "string" + ] + }, + { + "name": "size", + "type": "vec3i" + }, + { + "name": "rotation", + "type": "varint" + }, + { + "name": "ignoreEntities", + "type": "bool" + }, + { + "name": "status", + "type": "varint" + }, + { + "name": "errorMessage", + "type": [ + "option", + "anonymousNbt" + ] + } + ] + ] + } + ] + ], + "packet_block_place": [ + "container", + [ + { + "name": "hand", + "type": "varint" + }, + { + "name": "location", + "type": "position" + }, + { + "name": "direction", + "type": "varint" + }, + { + "name": "cursorX", + "type": "f32" + }, + { + "name": "cursorY", + "type": "f32" + }, + { + "name": "cursorZ", + "type": "f32" + }, + { + "name": "insideBlock", + "type": "bool" + }, + { + "name": "worldBorderHit", + "type": "bool" + }, + { + "name": "sequence", + "type": "varint" + } + ] + ], + "packet_use_item": [ + "container", + [ + { + "name": "hand", + "type": "varint" + }, + { + "name": "sequence", + "type": "varint" + }, + { + "name": "rotation", + "type": "vec2f" + } + ] + ], + "packet": [ + "container", + [ + { + "name": "name", + "type": [ + "mapper", + { + "type": "varint", + "mappings": { + "0x00": "teleport_confirm", + "0x01": "query_block_nbt", + "0x02": "select_bundle_item", + "0x03": "set_difficulty", + "0x04": "change_gamemode", + "0x05": "message_acknowledgement", + "0x06": "chat_command", + "0x07": "chat_command_signed", + "0x08": "chat_message", + "0x09": "chat_session_update", + "0x0a": "chunk_batch_received", + "0x0b": "client_command", + "0x0c": "tick_end", + "0x0d": "settings", + "0x0e": "tab_complete", + "0x0f": "configuration_acknowledged", + "0x10": "enchant_item", + "0x11": "window_click", + "0x12": "close_window", + "0x13": "set_slot_state", + "0x14": "cookie_response", + "0x15": "custom_payload", + "0x16": "debug_sample_subscription", + "0x17": "edit_book", + "0x18": "query_entity_nbt", + "0x19": "use_entity", + "0x1a": "generate_structure", + "0x1b": "keep_alive", + "0x1c": "lock_difficulty", + "0x1d": "position", + "0x1e": "position_look", + "0x1f": "look", + "0x20": "flying", + "0x21": "vehicle_move", + "0x22": "steer_boat", + "0x23": "pick_item_from_block", + "0x24": "pick_item_from_entity", + "0x25": "ping_request", + "0x26": "craft_recipe_request", + "0x27": "abilities", + "0x28": "block_dig", + "0x29": "entity_action", + "0x2a": "player_input", + "0x2b": "player_loaded", + "0x2c": "pong", + "0x2d": "recipe_book", + "0x2e": "displayed_recipe", + "0x2f": "name_item", + "0x30": "resource_pack_receive", + "0x31": "advancement_tab", + "0x32": "select_trade", + "0x33": "set_beacon_effect", + "0x34": "held_item_slot", + "0x35": "update_command_block", + "0x36": "update_command_block_minecart", + "0x37": "set_creative_slot", + "0x38": "update_jigsaw_block", + "0x39": "update_structure_block", + "0x3a": "set_test_block", + "0x3b": "update_sign", + "0x3c": "arm_animation", + "0x3d": "spectate", + "0x3e": "test_instance_block_action", + "0x3f": "block_place", + "0x40": "use_item", + "0x41": "custom_click_action" + } + } + ] + }, + { + "name": "params", + "type": [ + "switch", + { + "compareTo": "name", + "fields": { + "teleport_confirm": "packet_teleport_confirm", + "query_block_nbt": "packet_query_block_nbt", + "select_bundle_item": "packet_select_bundle_item", + "set_difficulty": "packet_set_difficulty", + "change_gamemode": "packet_change_gamemode", + "message_acknowledgement": "packet_message_acknowledgement", + "chat_command": "packet_chat_command", + "chat_command_signed": "packet_chat_command_signed", + "chat_message": "packet_chat_message", + "chat_session_update": "packet_chat_session_update", + "chunk_batch_received": "packet_chunk_batch_received", + "client_command": "packet_client_command", + "tick_end": "packet_tick_end", + "settings": "packet_common_settings", + "tab_complete": "packet_tab_complete", + "configuration_acknowledged": "packet_configuration_acknowledged", + "enchant_item": "packet_enchant_item", + "window_click": "packet_window_click", + "close_window": "packet_close_window", + "set_slot_state": "packet_set_slot_state", + "cookie_response": "packet_common_cookie_response", + "custom_payload": "packet_custom_payload", + "debug_sample_subscription": "packet_debug_sample_subscription", + "edit_book": "packet_edit_book", + "query_entity_nbt": "packet_query_entity_nbt", + "use_entity": "packet_use_entity", + "generate_structure": "packet_generate_structure", + "keep_alive": "packet_keep_alive", + "lock_difficulty": "packet_lock_difficulty", + "position": "packet_position", + "position_look": "packet_position_look", + "look": "packet_look", + "flying": "packet_flying", + "vehicle_move": "packet_vehicle_move", + "steer_boat": "packet_steer_boat", + "pick_item_from_block": "packet_pick_item_from_block", + "pick_item_from_entity": "packet_pick_item_from_entity", + "ping_request": "packet_ping_request", + "craft_recipe_request": "packet_craft_recipe_request", + "abilities": "packet_abilities", + "block_dig": "packet_block_dig", + "entity_action": "packet_entity_action", + "player_input": "packet_player_input", + "player_loaded": "packet_player_loaded", + "pong": "packet_pong", + "recipe_book": "packet_recipe_book", + "displayed_recipe": "packet_displayed_recipe", + "name_item": "packet_name_item", + "resource_pack_receive": "packet_resource_pack_receive", + "advancement_tab": "packet_advancement_tab", + "select_trade": "packet_select_trade", + "set_beacon_effect": "packet_set_beacon_effect", + "held_item_slot": "packet_held_item_slot", + "update_command_block": "packet_update_command_block", + "update_command_block_minecart": "packet_update_command_block_minecart", + "set_creative_slot": "packet_set_creative_slot", + "update_jigsaw_block": "packet_update_jigsaw_block", + "update_structure_block": "packet_update_structure_block", + "set_test_block": "packet_set_test_block", + "update_sign": "packet_update_sign", + "arm_animation": "packet_arm_animation", + "spectate": "packet_spectate", + "test_instance_block_action": "packet_test_instance_block_action", + "block_place": "packet_block_place", + "use_item": "packet_use_item", + "custom_click_action": "packet_common_custom_click_action" + } + } + ] + } + ] + ] + } + } + } +} \ No newline at end of file diff --git a/data/pc/1.21.11/version.json b/data/pc/1.21.11/version.json new file mode 100644 index 000000000..7ed0f7b26 --- /dev/null +++ b/data/pc/1.21.11/version.json @@ -0,0 +1,6 @@ +{ + "version": 774, + "minecraftVersion": "1.21.11", + "majorVersion": "1.21", + "releaseType": "release" +} \ No newline at end of file diff --git a/data/pc/1.21.8/proto.yml b/data/pc/1.21.8/proto.yml new file mode 100644 index 000000000..abc5b942b --- /dev/null +++ b/data/pc/1.21.8/proto.yml @@ -0,0 +1,3494 @@ +!version: 1.21.8 +!StartDocs: true + +^types: + varint: native + varlong: native + optvarint: varint + pstring: native + buffer: native + u8: native + u16: native + u32: native + u64: native + i8: native + i16: native + i32: native + i64: native + bool: native + f32: native + f64: native + UUID: native + option: native + entityMetadataLoop: native + topBitSetTerminatedArray: native + bitfield: native + bitflags: native + container: native + switch: native + void: native + array: native + restBuffer: native + anonymousNbt: native + anonOptionalNbt: native + registryEntryHolder: native + registryEntryHolderSet: native + ByteArray: ["buffer", { "countType": "varint" }] + string: ["pstring", { "countType": "varint" }] + vec2f: + x: f32 + y: f32 + vec3f: + x: f32 + y: f32 + z: f32 + vec4f: + x: f32 + y: f32 + z: f32 + w: f32 + vec3f64: + x: f64 + y: f64 + z: f64 + vec3i: + x: varint + y: varint + z: varint + IDSet: ["registryEntryHolderSet", { + "base": { name: "name", type: "string" }, + "otherwise": { name: "ids", type: "varint" } + }] + ContainerID: varint + SlotComponentType: varint => + - custom_data + - max_stack_size + - max_damage + - damage + - unbreakable + - custom_name + - item_name + - item_model + - lore + - rarity + - enchantments + - can_place_on + - can_break + - attribute_modifiers + - custom_model_data + - tooltip_display + - repair_cost + - creative_slot_lock + - enchantment_glint_override + - intangible_projectile + - food + - consumable + - use_remainder + - use_cooldown + - damage_resistant + - tool + - weapon + - enchantable + - equippable + - repairable + - glider + - tooltip_style + - death_protection + - blocks_attacks + - stored_enchantments + - dyed_color + - map_color + - map_id + - map_decorations + - map_post_processing + - potion_duration_scale + - charged_projectiles + - bundle_contents + - potion_contents + - suspicious_stew_effects + - writable_book_content + - written_book_content + - trim + - debug_stick_state + - entity_data + - bucket_entity_data + - block_entity_data + - instrument + - provides_trim_material + - ominous_bottle_amplifier + - jukebox_playable + - provides_banner_patterns + - recipes + - lodestone_tracker + - firework_explosion + - fireworks + - profile + - note_block_sound + - banner_patterns + - base_color + - pot_decorations + - container + - block_state + - bees + - lock + - container_loot + - break_sound + - villager/variant + - wolf/variant + - wolf/sound_variant + - wolf/collar + - fox/variant + - salmon/size + - parrot/variant + - tropical_fish/pattern + - tropical_fish/base_color + - tropical_fish/pattern_color + - mooshroom/variant + - rabbit/variant + - pig/variant + - cow/variant + - chicken/variant + - frog/variant + - horse/variant + - painting/variant + - llama/variant + - axolotl/variant + - cat/variant + - cat/collar + - sheep/color + - shulker/color + + # Instead of sending NBT for items over the network, Minecraft since 1.20.5 sends a + # list of components that make up the item. This saves bandwidth by not encoding tag names. + SlotComponent: + type: SlotComponentType + ## Ref: client/net/minecraft/core/component/DataComponents.java + data: type ? + ## 'Unit' MC type is functionally void + if custom_data: anonymousNbt + if max_stack_size: varint + if max_damage: varint + if damage: varint + if unbreakable: void + if custom_name: anonymousNbt + if item_name: anonymousNbt + if item_model: string + if lore: anonymousNbt[]varint + if rarity: varint => + - common + - uncommon + - rare + - epic + if enchantments or stored_enchantments: + enchantments: []varint + id: varint + level: varint + if can_place_on or can_break: + predicates: ItemBlockPredicate[]varint + if attribute_modifiers: + attributes: []varint + typeId: varint + name: string + value: f64 + operation: varint => + - add + - multiply_base + - multiply_total + slot: varint => + - any + - main_hand + - off_hand + - hand + - feet + - legs + - chest + - head + - armor + - body + - saddle + display: + type: varint => + - default + - hidden + - override + component: type ? + if override: anonymousNbt + if custom_model_data: + floats: f32[]varint + flags: bool[]varint + strings: string[]varint + colors: i32[]varint + if tooltip_display: + hideTooltip: bool + hiddenComponents: varint[]varint + if repair_cost: varint + if creative_slot_lock: void + if enchantment_glint_override: bool + if intangible_projectile: void + if blocks_attacks: + blockDelaySeconds: f32 + disableCooldownScale: f32 + damageReductions: []varint + horizontalBlockingAngle: f32 + type?: IDSet + base: f32 + factor: f32 + itemDamage: + threshold: f32 + base: f32 + factor: f32 + bypassedBy?: string + blockSound?: ItemSoundHolder + disableSound?: ItemSoundHolder + if food: + nutrition: varint + # How much saturation will be given after consuming the item. + saturationModifier: f32 + # Whether the item can always be eaten, even at full hunger. + canAlwaysEat: bool + if consumable: + consume_seconds: f32 + animation: varint => + - none + - eat + - drink + - block + - bow + - spear + - crossbow + - spyglass + - toot_horn + - brush + - bundle + sound: ItemSoundHolder + makes_particles: bool + effects: ItemConsumeEffect[]varint + if use_remainder: Slot + if use_cooldown: + seconds: f32 + cooldownGroup?: string + if damage_resistant: string + if tool: + rules: []varint + blocks: IDSet + # The speed at which the tool breaks this rules' blocks. + speed?: f32 + # Whether items should drop only if this is the correct tool. + correctDropForBlocks?: bool + # The mining speed in case none of the previous rule were matched. + defaultMiningSpeed: f32 + damagePerBlock: varint + canDestroyBlocksInCreative: bool + if weapon: + itemDamagePerAttack: varint + disableBlockingForSeconds: f32 + # Enchantment cost up to which the item can be enchanted + if enchantable: varint + if equippable: + slot: varint => + - main_hand + - off_hand + - feet + - legs + - chest + - head + - body + - saddle + sound: ItemSoundHolder + model?: string + cameraOverlay?: string + allowedEntities?: IDSet + dispensable: bool + swappable: bool + damageable: bool + equipOnInteract: bool + shearable: bool + shearingSound: ItemSoundHolder + if repairable: + items: IDSet + if glider: void + if tooltip_style: string + if death_protection: + effects: ItemConsumeEffect[]varint + if dyed_color: i32 + if map_color: i32 + if map_id: varint + if map_decorations: anonymousNbt + if map_post_processing: varint + if potion_duration_scale: f32 + if charged_projectiles: + projectiles: Slot[]varint + if bundle_contents: + contents: Slot[]varint + if potion_contents: + # True if this potion has an ID in the potion registry--it has the default effects associated with the potion type. + potionId?: varint + # The RGB components of the color, encoded as an integer. + customColor?: i32 + customEffects: ItemPotionEffect[]varint + customName?: string + if suspicious_stew_effects: + effects: []varint + # The ID of the effect in the potion effect type registry. + effect: varint + # The duration of the effect. + duration: varint + if writable_book_content: + # Max 100 pages + pages: ItemBookPage[]varint + if written_book_content: + rawTitle: string + filteredTitle?: string + author: string + generation: varint + pages: ItemWrittenBookPage[]varint + resolved: bool + if trim: + material: ["registryEntryHolder", { "baseName": "materialId", "otherwise": { "name": "data", "type": "ArmorTrimMaterial" } }] + pattern: ["registryEntryHolder", { "baseName": "patternId", "otherwise": { "name": "data", "type": "ArmorTrimPattern" } }] + if debug_stick_state: anonymousNbt + if entity_data: anonymousNbt + if bucket_entity_data: anonymousNbt + if block_entity_data: anonymousNbt + if instrument: + hasHolder: bool + data: hasHolder ? + if true: ["registryEntryHolder", { "baseName": "instrumentId", "otherwise": { "name": "data", "type": "InstrumentData" } }] + if false: string + if provides_trim_material: + hasHolder: bool + material: hasHolder ? + if true: ["registryEntryHolder", { "baseName": "materialId", "otherwise": { "name": "data", "type": "ArmorTrimMaterial" } }] + if false: string + if ominous_bottle_amplifier: varint + if jukebox_playable: + hasHolder: bool + song: hasHolder ? + if true: ["registryEntryHolder", { "baseName": "songId", "otherwise": { "name": "data", "type": "JukeboxSongData" } }] + if false: string + if provides_banner_patterns: string + if recipes: anonymousNbt + if lodestone_tracker: + # Specified if this lodestone points to a position; otherwise it spins randomly. + globalPosition?: + dimension: string + # The position the compass points to. Only present if Has Global Position is true. + position: position + # Whether the component is removed when the associated lodestone is broken. + tracked: bool + if firework_explosion: ItemFireworkExplosion + if fireworks: + flightDuration: varint + explosions: ItemFireworkExplosion[]varint + if profile: + # If the profile has a name, max 16 characters. + name?: string + uuid?: UUID + properties: []varint + # Max 64 characters + name: string + value: string + # Max 1024 characters + signature?: string + if note_block_sound: string + if banner_patterns: + layers: BannerPatternLayer[]varint + if base_color: varint + if pot_decorations: + # The ID of the items in the item registry. + decorations: varint[]varint + if container: + contents: Slot[]varint + if block_state: + properties: []varint + name: string + value: string + if bees: + bees: []varint + # Custom data for the entity, always a Compound Tag. Same structure as the minecraft:custom_data component. + nbtData: anonymousNbt + ticksInHive: varint + minTicksInHive: varint + if lock: anonymousNbt + if container_loot: anonymousNbt + if break_sound: ItemSoundHolder + if villager/variant: varint + if wolf/variant: varint + if wolf/sound_variant: varint + if wolf/collar: varint + if fox/variant: varint + if salmon/size: varint + if parrot/variant: varint + if tropical_fish/pattern: varint + if tropical_fish/base_color: varint + if tropical_fish/pattern_color: varint + if mooshroom/variant: varint + if rabbit/variant: varint + if pig/variant: varint + if cow/variant: varint + if chicken/variant: ["registryEntryHolder", { "baseName": "variantId", "otherwise": { "name": "variantData", "type": "string" } }] + if frog/variant: varint + if horse/variant: varint + if painting/variant: ["registryEntryHolder", { "baseName": "variantId", "otherwise": { "name": "data", "type": "EntityMetadataPaintingVariant" } }] + if llama/variant: varint + if axolotl/variant: varint + if cat/variant: varint + if cat/collar: varint + if sheep/color: varint + if shulker/color: varint + + ItemSoundEvent: + soundName: string + fixedRange?: f32 + ItemSoundHolder: ["registryEntryHolder", { + "baseName": "soundId", + "otherwise": { name: "data", type: "ItemSoundEvent" } + }] + + ItemFireworkExplosion: + shape: varint => + - small_ball + - large_ball + - star + - creeper + - burst + # The RGB components of the color, encoded as an integer. + colors: i32[]varint + # The RGB components of the color, encoded as an integer. + fadeColors: i32[]varint + # Whether the firework has a trail. + hasTrail: bool + # Whether the firework has a twinkle effect. + hasTwinkle: bool + + ItemEffectDetail: + amplifier: varint + duration: varint + ambient: bool + showParticles: bool + showIcon: bool + hiddenEffect?: ItemEffectDetail + + ItemPotionEffect: + id: varint + details: ItemEffectDetail + + ItemBlockProperty: + name: string + isExactMatch: bool + value: isExactMatch ? + if true: + exactValue: string + if false: + minValue: string + maxValue: string + + ExactComponentMatcher: SlotComponent[]varint + + DataComponentMatchers: + exactMatchers: ExactComponentMatcher + partialMatchers: varint[]varint + + ItemBlockPredicate: + blockSet?: ["registryEntryHolderSet", { + "base": { name: "name", type: "string" }, + "otherwise": { name: "blockIds", "type": "varint" } + }] + properties?: ItemBlockProperty[]varint + nbt: anonOptionalNbt + components: DataComponentMatchers + + ItemBookPage: + # The raw text of the page. TextComponent, max 1024 characters. + content: string + filteredContent?: string + ItemWrittenBookPage: + content: anonymousNbt + filteredContent: anonOptionalNbt + + ItemConsumeEffect: # 1.21.3 + type: varint => + - apply_effects + - remove_effects + - clear_all_effects + - teleport_randomly + - play_sound + _: type ? + if apply_effects: + effects: ItemPotionEffect[]varint + probability: f32 + if remove_effects: + effects: IDSet + if clear_all_effects: void + if teleport_randomly: + diameter: f32 + if play_sound: + sound: ItemSoundHolder + + ArmorTrimMaterial: + assetBase: string + overrideArmorAssets: []varint + key: string + value: string + description: anonymousNbt + + ArmorTrimPattern: + assetId: string + description: anonymousNbt + decal: bool + + InstrumentData: + soundEvent: ItemSoundHolder + useDuration: f32 + range: f32 + description: anonymousNbt + + JukeboxSongData: + soundEvent: ItemSoundHolder + description: anonymousNbt + lengthInSeconds: f32 + comparatorOutput: varint + + BannerPattern: + assetId: string + translationKey: string + BannerPatternLayer: + pattern: ["registryEntryHolder", { "baseName": "patternId", "otherwise": { "name": "data", "type": "BannerPattern" } }] + colorId: varint + + # This represents a single component within an UntrustedSlot. + # The 'data' field is a varint-prefixed byte array that contains the actual component data. + # The code generator will need to know that it should read a varint for length, then the bytes. + UntrustedSlotComponent: + type: SlotComponentType + data: ByteArray + + # An UntrustedSlot is structurally identical to a regular Slot, + # but it uses the special UntrustedSlotComponent type for its component list. + # It's optional because the player might be clearing the slot. + UntrustedSlot: + itemCount: varint + _: itemCount ? + if 0: void + default: + itemId: varint + addedComponentCount: varint + removedComponentCount: varint + components: UntrustedSlotComponent[]$addedComponentCount + removeComponents: []$removedComponentCount + type: SlotComponentType + if false: void + + Slot: + itemCount: varint + _: itemCount ? + if 0: void + default: + itemId: varint + # https://wiki.vg/Slot_Data#Structured_components + addedComponentCount: varint + removedComponentCount: varint + components: SlotComponent[]$addedComponentCount + removeComponents: []$removedComponentCount + type: SlotComponentType + + HashedSlot: + itemId: varint + itemCount: varint + components: []varint + type: SlotComponentType + hash: i32 + removeComponents: []varint + type: SlotComponentType + + Particle: + # See client/net/minecraft/core/particles/ParticleTypes.java + type: varint => + - angry_villager + - block + - block_marker + - bubble + - cloud + - crit + - damage_indicator + - dragon_breath + - dripping_lava + - falling_lava + - landing_lava + - dripping_water + - falling_water + - dust + - dust_color_transition + - effect + - elder_guardian + - enchanted_hit + - enchant + - end_rod + - entity_effect + - explosion_emitter + - explosion + - gust + - small_gust + - gust_emitter_large + - gust_emitter_small + - sonic_boom + - falling_dust + - firework + - fishing + - flame + - infested + - cherry_leaves + - pale_oak_leaves + - tinted_leaves + - sculk_soul + - sculk_charge + - sculk_charge_pop + - soul_fire_flame + - soul + - flash + - happy_villager + - composter + - heart + - instant_effect + - item + - vibration + - trail + - item_slime + - item_cobweb + - item_snowball + - large_smoke + - lava + - mycelium + - note + - poof + - portal + - rain + - smoke + - white_smoke + - sneeze + - spit + - squid_ink + - sweep_attack + - totem_of_undying + - underwater + - splash + - witch + - bubble_pop + - current_down + - bubble_column_up + - nautilus + - dolphin + - campfire_cosy_smoke + - campfire_signal_smoke + - dripping_honey + - falling_honey + - landing_honey + - falling_nectar + - falling_spore_blossom + - ash + - crimson_spore + - warped_spore + - spore_blossom_air + - dripping_obsidian_tear + - falling_obsidian_tear + - landing_obsidian_tear + - reverse_portal + - white_ash + - small_flame + - snowflake + - dripping_dripstone_lava + - falling_dripstone_lava + - dripping_dripstone_water + - falling_dripstone_water + - glow_squid_ink + - glow + - wax_on + - wax_off + - electric_spark + - scrape + - shriek + - egg_crack + - dust_plume + - trial_spawner_detected_player + - trial_spawner_detected_player_ominous + - vault_connection + - dust_pillar + - ominous_spawning + - raid_omen + - trial_omen + - block_crumble + - firefly + ## ## Tips for reviewing particle data (as of 1.20.5) + ## Inside the registry code, each particle can have an associated "options" type and + ## each options type can add additional data to be encoded. + ## For example, this line + ## public static final ParticleType BLOCK = register("block", false, BlockParticleOption::codec, BlockParticleOption::streamCodec); + ## will read the stream codec from BlockParticleOption.java's streamCodec member; then we see + ## return ByteBufCodecs.idMapper(Block.BLOCK_STATE_REGISTRY).map(var1 -> new BlockParticleOption(var0, var1), var0x -> var0x.state); + ## this encodes with the ByteBufCodecs.idMapper function. Inside this function we find + ## public void encode(ByteBuf var1x, T var2) { + ## int var3 = var1.applyAsInt(var2); + ## VarInt.write(var1x, var3); + ## } + ## which as we can see writes the varint to the buffer. + ## If you want to see all the serializers try regexp searching "StreamCodec.*Particle" + data: type ? + if block or block_marker or falling_dust or dust_pillar or block_crumble: varint + if dust: + red: f32 + green: f32 + blue: f32 + scale: f32 + if dust_color_transition: + fromRed: f32 + fromGreen: f32 + fromBlue: f32 + scale: f32 + toRed: f32 + toGreen: f32 + toBlue: f32 + if entity_effect: i32 + if item: Slot + if sculk_charge: f32 + if shriek: varint + if vibration: + positionType: varint => + - block + - entity + position: positionType ? + if block: position + if entity: + entityId: varint + entityEyeHeight: f32 + ticks: varint + if trail: + target: vec3f64 + color: u8 + if tinted_leaves: i32 + if firefly: void + ingredient: Slot[]varint + position: [ + "bitfield", + [ + { + "name": "x", + "size": 26, + "signed": true + }, + { + "name": "z", + "size": 26, + "signed": true + }, + { + "name": "y", + "size": 12, + "signed": true + } + ] + ] + soundSource: varint => + 0: master + 1: music + 2: record + 3: weather + 4: block + 5: hostile + 6: neutral + 7: player + 8: ambient + 9: voice + 10: ui + packedChunkPos: + z: i32 + x: i32 + previousMessages: []varint + id: varint + signature: id ? + if 0: [ + "buffer", + { + "count": 256 + } + ] + default: void + entityMetadataEntry: + key: u8 + type: varint => + - byte + - int + - long + - float + - string + - component + - optional_component + - item_stack + - boolean + - rotations + - block_pos + - optional_block_pos + - direction + - optional_uuid + - block_state + - optional_block_state + - compound_tag + - particle + - particles + - villager_data + - optional_unsigned_int + - pose + - cat_variant + - cow_variant + - wolf_variant + - wolf_sound_variant + - frog_variant + - pig_variant + - chicken_variant + - optional_global_pos + - painting_variant + - sniffer_state + - armadillo_state + - vector3 + - quaternion + value: type ? + if byte: i8 + if int: varint + if long: varlong + if float: f32 + if string: string + if component: anonymousNbt + if optional_component: ["option", "anonymousNbt"] + if item_stack: Slot + if boolean: bool + if rotations: + pitch: f32 + yaw: f32 + roll: f32 + if block_pos: position + if optional_block_pos: ["option", "position"] + if direction: varint + if optional_uuid: ["option", "UUID"] + if block_state: varint + if optional_block_state: optvarint + if compound_tag: anonymousNbt + if particle: Particle + if particles: Particle[]varint + if villager_data: + villagerType: varint + villagerProfession: varint + level: varint + if optional_unsigned_int: optvarint + if pose: varint + if cat_variant: varint + if cow_variant: varint + if wolf_variant: varint + if wolf_sound_variant: varint + if frog_variant: varint + if pig_variant: varint + if chicken_variant: ["registryEntryHolder", { "baseName": "variantId", "otherwise": { "name": "variantData", "type": "string" } }] + if optional_global_pos: ["option", "string"] + if painting_variant: ["registryEntryHolder", { + "baseName": "variantId", + "otherwise": { name: "variantData", type: "EntityMetadataPaintingVariant" } + }] + if sniffer_state: varint + if armadillo_state: varint + if vector3: vec3f + if quaternion: vec4f + EntityMetadataPaintingVariant: + width: i32 + height: i32 + assetId: string + title?: anonymousNbt + author?: anonymousNbt + entityMetadata: ["entityMetadataLoop", { "endVal": 255, "type": "entityMetadataEntry" }] + tags: []varint + tagName: string + entries: varint[]varint + chunkBlockEntity: + _: [ + "bitfield", + [ + { + "name": "x", + "size": 4, + "signed": false + }, + { + "name": "z", + "size": 4, + "signed": false + } + ] + ] + y: i16 + type: varint + nbtData: anonOptionalNbt + chat_session?: + uuid: UUID + publicKey: + expireTime: i64 + keyBytes: [ + "buffer", + { + "countType": "varint" + } + ] + keySignature: [ + "buffer", + { + "countType": "varint" + } + ] + game_profile: + name: string + properties: []varint + name: string + value: string + signature?: string + command_node: + flags: [ + "bitfield", + [ + { + "name": "unused", + "size": 2, + "signed": false + }, + { + "name": "allows_restricted", + "size": 1, + "signed": false + }, + { + "name": "has_custom_suggestions", + "size": 1, + "signed": false + }, + { + "name": "has_redirect_node", + "size": 1, + "signed": false + }, + { + "name": "has_command", + "size": 1, + "signed": false + }, + { + "name": "command_node_type", + "size": 2, + "signed": false + } + ] + ] + children: varint[]varint + redirectNode: flags/has_redirect_node ? + if 1: varint + default: void + extraNodeData: flags/command_node_type ? + if 0: void + if 1: + name: string + if 2: + name: string + parser: varint => + - brigadier:bool + - brigadier:float + - brigadier:double + - brigadier:integer + - brigadier:long + - brigadier:string + - minecraft:entity + - minecraft:game_profile + - minecraft:block_pos + - minecraft:column_pos + - minecraft:vec3 + - minecraft:vec2 + - minecraft:block_state + - minecraft:block_predicate + - minecraft:item_stack + - minecraft:item_predicate + - minecraft:color + - minecraft:hex_color # 1.21.6 + - minecraft:component + - minecraft:style + - minecraft:message + - minecraft:nbt + - minecraft:nbt_tag + - minecraft:nbt_path + - minecraft:objective + - minecraft:objective_criteria + - minecraft:operation + - minecraft:particle + - minecraft:angle + - minecraft:rotation + - minecraft:scoreboard_slot + - minecraft:score_holder + - minecraft:swizzle + - minecraft:team + - minecraft:item_slot + - minecraft:item_slots # 1.20.5 + - minecraft:resource_location + - minecraft:function + - minecraft:entity_anchor + - minecraft:int_range + - minecraft:float_range + - minecraft:dimension + - minecraft:gamemode + - minecraft:time + - minecraft:resource_or_tag + - minecraft:resource_or_tag_key + - minecraft:resource + - minecraft:resource_key + - minecraft:resource_selector + - minecraft:template_mirror + - minecraft:template_rotation + - minecraft:heightmap + - minecraft:loot_table # 1.20.5 + - minecraft:loot_predicate # 1.20.5 + - minecraft:loot_modifier # 1.20.5 + - minecraft:dialog # 1.21.6 + - minecraft:uuid + properties: parser ? + if brigadier:bool: void + if brigadier:float: + flags: [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + min: flags/min_present ? + if 1: f32 + default: void + max: flags/max_present ? + if 1: f32 + default: void + if brigadier:double: + flags: [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + min: flags/min_present ? + if 1: f64 + default: void + max: flags/max_present ? + if 1: f64 + default: void + if brigadier:integer: + flags: [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + min: flags/min_present ? + if 1: i32 + default: void + max: flags/max_present ? + if 1: i32 + default: void + if brigadier:long: + flags: [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "max_present", + "size": 1, + "signed": false + }, + { + "name": "min_present", + "size": 1, + "signed": false + } + ] + ] + min: flags/min_present ? + if 1: i64 + default: void + max: flags/max_present ? + if 1: i64 + default: void + if brigadier:string: varint => + 0: SINGLE_WORD + 1: QUOTABLE_PHRASE + 2: GREEDY_PHRASE + if minecraft:entity: [ + "bitfield", + [ + { + "name": "unused", + "size": 6, + "signed": false + }, + { + "name": "onlyAllowPlayers", + "size": 1, + "signed": false + }, + { + "name": "onlyAllowEntities", + "size": 1, + "signed": false + } + ] + ] + if minecraft:game_profile: void + if minecraft:block_pos: void + if minecraft:column_pos: void + if minecraft:vec3: void + if minecraft:vec2: void + if minecraft:block_state: void + if minecraft:block_predicate: void + if minecraft:item_stack: void + if minecraft:item_predicate: void + if minecraft:color: void + if minecraft:hex_color: void + if minecraft:component: void + if minecraft:message: void + if minecraft:nbt: void + if minecraft:nbt_path: void + if minecraft:objective: void + if minecraft:objective_criteria: void + if minecraft:operation: void + if minecraft:particle: void + if minecraft:angle: void + if minecraft:rotation: void + if minecraft:scoreboard_slot: void + if minecraft:score_holder: [ + "bitfield", + [ + { + "name": "unused", + "size": 7, + "signed": false + }, + { + "name": "allowMultiple", + "size": 1, + "signed": false + } + ] + ] + if minecraft:swizzle: void + if minecraft:team: void + if minecraft:item_slot: void + if minecraft:resource_location: void + if minecraft:function: void + if minecraft:entity_anchor: void + if minecraft:int_range: void + if minecraft:float_range: void + if minecraft:dimension: void + if minecraft:gamemode: void + if minecraft:time: + min: i32 + if minecraft:resource_or_tag or minecraft:resource_or_tag_key or minecraft:resource or minecraft:resource_key or minecraft:resource_selector: + registry: string + if minecraft:template_mirror: void + if minecraft:template_rotation: void + if minecraft:heightmap: void + if minecraft:dialog: void + if minecraft:uuid: void + suggestionType: ../flags/has_custom_suggestions ? + if 1: string + default: void + # # Shared Packets + # These are packets that are shared between multiple states. + # They are defined here to avoid duplication. + # ===== + # MC: ServerboundClientInformationPacket + packet_common_settings: + locale: string + viewDistance: i8 + chatFlags: varint + chatColors: bool + skinParts: u8 + mainHand: varint + enableTextFiltering: bool + enableServerListing: bool + particleStatus: varint => + - all + - decreased + - minimal + # MC: ClientboundCookieRequestPacket + packet_common_cookie_request: + cookie: string + # MC: ClientboundStoreCookiePacket + packet_common_store_cookie: + key: string + value: ByteArray + # MC: ClientboundTransferPacket + packet_common_transfer: + host: string + port: varint + # MC: ServerboundCookieResponsePacket + packet_common_cookie_response: + key: string + value?: ByteArray + # MC: ServerboundSelectKnownPacks + # MC: ClientboundSelectKnownPacks + packet_common_select_known_packs: + packs: []varint + namespace: string + id: string + version: string + # MC: ClientboundCustomReportDetailsPacket + packet_common_custom_report_details: + details: []varint + key: string + value: string + # MC: ClientboundResourcePackPopPacket + packet_common_remove_resource_pack: + uuid?: UUID + # MC: ClientboundResourcePackPushPacket + packet_common_add_resource_pack: + uuid: UUID + url: string + hash: string + forced: bool + promptMessage?: anonymousNbt + + ServerLinkType: varint => + - bug_report + - community_guidelines + - support + - status + - feedback + - community + - website + - forums + - news + - announcements + # MC: ClientboundServerLinksPacket + # This packet contains a list of links that the Notchian client will display in the menu + # available from the pause menu. Link labels can be built-in or custom (i.e., any text). + packet_common_server_links: + links: []varint + hasKnownType: bool + knownType: hasKnownType ? + if true: ServerLinkType + unknownType: hasKnownType ? + if false: anonymousNbt + link: string + # MC: ClientboundClearDialogPacket + packet_common_clear_dialog: + # empty + # MC: ServerboundCustomClickActionPacket + packet_common_custom_click_action: + id: string + nbt?: anonymousNbt + +^handshaking.toClient.types: + packet: + name: varint => + params: ["switch",{"compareTo":"name","fields":{}}] +^handshaking.toServer.types: + packet_set_protocol: + protocolVersion: varint + serverHost: string + serverPort: u16 + nextState: varint + packet_legacy_server_list_ping: + payload: u8 + packet: + name: varint => + 0x00: set_protocol + 0xfe: legacy_server_list_ping + params: name ? + if set_protocol: packet_set_protocol + if legacy_server_list_ping: packet_legacy_server_list_ping +^status.toClient.types: + # MC: ClientboundStatusResponsePacket + packet_server_info: + response: string + # MC: ClientboundPongResponsePacket + packet_ping: + time: i64 + packet: + name: varint => + 0x00: server_info + 0x01: ping + params: name ? + if server_info: packet_server_info + if ping: packet_ping +^status.toServer.types: + # MC: ServerboundStatusRequestPacket + packet_ping_start: + # Empty + # MC: ServerboundPingRequestPacket + packet_ping: + time: i64 + packet: + name: varint => + 0x00: ping_start + 0x01: ping + params: name ? + if ping_start: packet_ping_start + if ping: packet_ping +^login.toClient.types: + # MC: ClientboundLoginDisconnectPacket + packet_disconnect: + reason: string + # MC: ClientboundHelloPacket + packet_encryption_begin: + serverId: string + publicKey: [ + "buffer", + { + "countType": "varint" + } + ] + verifyToken: [ + "buffer", + { + "countType": "varint" + } + ] + shouldAuthenticate: bool + # MC: ClientboundLoginFinishedPacket + packet_success: + uuid: UUID + username: string + properties: []varint + name: string + value: string + signature?: string + # MC: ClientboundLoginCompressionPacket + packet_compress: + threshold: varint + # MC: ClientboundCustomQueryPacket + packet_login_plugin_request: + messageId: varint + channel: string + data: restBuffer + ## (Cookie Request is Common) ## + packet: + name: varint => + - disconnect + - encryption_begin + - success + - compress + - login_plugin_request + - cookie_request + params: name ? + if disconnect: packet_disconnect + if encryption_begin: packet_encryption_begin + if success: packet_success + if compress: packet_compress + if login_plugin_request: packet_login_plugin_request + if cookie_request: packet_common_cookie_request +^login.toServer.types: + # MC: ServerboundHelloPacket + packet_login_start: + username: string + playerUUID: UUID + # MC: ServerboundKeyPacket + packet_encryption_begin: + sharedSecret: [ + "buffer", + { + "countType": "varint" + } + ] + verifyToken: [ + "buffer", + { + "countType": "varint" + } + ] + # MC: ServerboundCustomQueryAnswerPacket + packet_login_plugin_response: + messageId: varint + data?: restBuffer + # MC: ServerboundLoginAcknowledgedPacket + packet_login_acknowledged: + # Empty + ## (Cookie Response is Common) ## + packet: + name: varint => + - login_start + - encryption_begin + - login_plugin_response + - login_acknowledged + - cookie_response + params: name ? + if login_start: packet_login_start + if encryption_begin: packet_encryption_begin + if login_plugin_response: packet_login_plugin_response + if login_acknowledged: packet_login_acknowledged + if cookie_response: packet_common_cookie_response +^configuration.toClient.types: + ## (Cookie Request is common) + # MC: ClientboundCustomPayloadPacket + packet_custom_payload: + channel: string + data: restBuffer + # MC: ClientboundDisconnectPacket + packet_disconnect: + reason: anonymousNbt + # MC: ClientboundFinishConfigurationPacket + packet_finish_configuration: + # Empty + # MC: ClientboundKeepAlivePacket + packet_keep_alive: + keepAliveId: i64 + # MC: ClientboundPingPacket + packet_ping: + id: i32 + # MC: ClientboundResetChatPacket + packet_reset_chat: + # Empty + # MC: ClientboundRegistryDataPacket + packet_registry_data: + # The server can send multiple registries + id: string + entries: []varint + key: string + value?: anonymousNbt + ## (Store cookie and Transfer are Common) ## + # MC: ClientboundUpdateEnabledFeaturesPacket + packet_feature_flags: + features: string[]varint + # MC: ClientboundUpdateTagsPacket + packet_tags: + tags: []varint + tagType: string + tags: tags + ## (Select known packs is common) + # MC: ClientboundShowDialogConfigurationPacket + packet_show_dialog: + dialog: anonymousNbt + packet: + name: varint => + - cookie_request + - custom_payload + - disconnect + - finish_configuration + - keep_alive + - ping + - reset_chat + - registry_data + - remove_resource_pack + - add_resource_pack + - store_cookie + - transfer + - feature_flags + - tags + - select_known_packs + - custom_report_details + - server_links + - clear_dialog + - show_dialog + params: name ? + if cookie_request: packet_common_cookie_request + if custom_payload: packet_custom_payload + if disconnect: packet_disconnect + if finish_configuration: packet_finish_configuration + if keep_alive: packet_keep_alive + if ping: packet_ping + if reset_chat: packet_reset_chat + if registry_data: packet_registry_data + if remove_resource_pack: packet_common_remove_resource_pack + if add_resource_pack: packet_common_add_resource_pack + if store_cookie: packet_common_store_cookie + if transfer: packet_common_transfer + if feature_flags: packet_feature_flags + if tags: packet_tags + if select_known_packs: packet_common_select_known_packs + if custom_report_details: packet_common_custom_report_details + if server_links: packet_common_server_links + if clear_dialog: packet_common_clear_dialog + if show_dialog: packet_show_dialog +^configuration.toServer.types: + ## (Settings is Common) ## + ## (Cookie Response is Common) ## + # MC: ServerboundCustomPayloadPacket + packet_custom_payload: + channel: string + data: restBuffer + # MC: ServerboundFinishConfigurationPacket + packet_finish_configuration: + # Empty + # MC: ServerboundKeepAlivePacket + packet_keep_alive: + keepAliveId: i64 + # MC: ServerboundPongPacket + packet_pong: + id: i32 + # MC: ServerboundResourcePackPacket + packet_resource_pack_receive: + uuid: UUID + result: varint + packet: + name: varint => + - settings + - cookie_response + - custom_payload + - finish_configuration + - keep_alive + - pong + - resource_pack_receive + - select_known_packs + - custom_click_action + params: name ? + if settings: packet_common_settings + if cookie_response: packet_common_cookie_response + if custom_payload: packet_custom_payload + if finish_configuration: packet_finish_configuration + if keep_alive: packet_keep_alive + if pong: packet_pong + if resource_pack_receive: packet_resource_pack_receive + if select_known_packs: packet_common_select_known_packs + if custom_click_action: packet_common_custom_click_action +^play.toClient.types: + SlotDisplay: + type: varint => + - empty + - any_fuel + - item + - item_stack + - tag + - smithing_trim + - with_remainder + - composite + data: type ? + if empty or any_fuel: void + if item: varint + if item_stack: Slot + if tag: string + if smithing_trim: + base: SlotDisplay + material: SlotDisplay + pattern: ["registryEntryHolder", { "baseName": "patternId", "otherwise": { "name": "data", "type": "ArmorTrimPattern" } }] + if with_remainder: + input: SlotDisplay + remainder: SlotDisplay + if composite: SlotDisplay[]varint + RecipeDisplay: + type: varint => + - crafting_shapeless + - crafting_shaped + - furnace + - stonecutter + - smithing + data: type ? + if crafting_shapeless: + ingredients: SlotDisplay[]varint + result: SlotDisplay + craftingStation: SlotDisplay + if crafting_shaped: + width: varint + height: varint + ingredients: SlotDisplay[]varint + result: SlotDisplay + craftingStation: SlotDisplay + if furnace: + ingredient: SlotDisplay + fuel: SlotDisplay + result: SlotDisplay + craftingStation: SlotDisplay + duration: varint + experience: f32 + if stonecutter: + ingredient: SlotDisplay + result: SlotDisplay + craftingStation: SlotDisplay + if smithing: + template: SlotDisplay + base: SlotDisplay + addition: SlotDisplay + result: SlotDisplay + craftingStation: SlotDisplay + # World state information for spawn and respawn packets + SpawnInfo: + dimension: varint + name: string + hashedSeed: i64 + gamemode: i8 => + - survival + - creative + - adventure + - spectator + previousGamemode: u8 + isDebug: bool + isFlat: bool + death?: + dimensionName: string + location: position + portalCooldown: varint + seaLevel: varint + + # MC: ClientboundAddEntityPacket + packet_spawn_entity: + entityId: varint + objectUUID: UUID + type: varint + x: f64 + y: f64 + z: f64 + pitch: i8 + yaw: i8 + headPitch: i8 + objectData: varint + velocityX: i16 + velocityY: i16 + velocityZ: i16 + # MC: ClientboundAnimatePacket + packet_animation: + entityId: varint + animation: u8 + # MC: ClientboundAwardStatsPacket + packet_statistics: + entries: []varint + categoryId: varint + statisticId: varint + value: varint + # MC: ClientboundBlockChangedAckPacket + packet_acknowledge_player_digging: + sequenceId: varint + # MC: ClientboundBlockDestructionPacket + packet_block_break_animation: + entityId: varint + location: position + destroyStage: i8 + # MC: ClientboundBlockEntityDataPacket + packet_tile_entity_data: + location: position + action: varint + nbtData: anonOptionalNbt + # MC: ClientboundBlockEventPacket + packet_block_action: + location: position + byte1: u8 + byte2: u8 + blockId: varint + # MC: ClientboundBlockUpdatePacket + packet_block_change: + location: position + type: varint + # MC: ClientboundBossEventPacket + packet_boss_bar: + entityUUID: UUID + action: varint + title: action ? + if 0: anonymousNbt + if 3: anonymousNbt + default: void + health: action ? + if 0: f32 + if 2: f32 + default: void + color: action ? + if 0: varint + if 4: varint + default: void + dividers: action ? + if 0: varint + if 4: varint + default: void + flags: action ? + if 0: u8 + if 5: u8 + default: void + # MC: ClientboundChangeDifficultyPacket + packet_difficulty: + difficulty: varint => + 0: peaceful + 1: easy + 2: normal + 3: hard + difficultyLocked: bool + # MC: ClientboundChunkBatchFinishedPacket + packet_chunk_batch_finished: + batchSize: varint + # MC: ClientboundChunkBatchStartPacket + packet_chunk_batch_start: + # Empty + # MC: ClientboundChunksBiomesPacket + packet_chunk_biomes: + biomes: []varint + position: packedChunkPos + data: ByteArray + # MC: ClientboundClearTitlesPacket + packet_clear_titles: + reset: bool + # MC: ClientboundCommandSuggestionsPacket + packet_tab_complete: + transactionId: varint + start: varint + length: varint + matches: []varint + match: string + tooltip?: anonymousNbt + # MC: ClientboundCommandsPacket + packet_declare_commands: + nodes: command_node[]varint + rootIndex: varint + # MC: ClientboundContainerClosePacket + packet_close_window: + windowId: ContainerID + # MC: ClientboundContainerSetContentPacket + packet_window_items: + windowId: ContainerID + stateId: varint + items: Slot[]varint + carriedItem: Slot + # MC: ClientboundContainerSetDataPacket + packet_craft_progress_bar: + windowId: ContainerID + property: i16 + value: i16 + # MC: ClientboundContainerSetSlotPacket + packet_set_slot: + windowId: ContainerID + stateId: varint + slot: i16 + item: Slot + ## (Cookie Request is Common) + # MC: ClientboundCooldownPacket + packet_set_cooldown: + # TODO: figure out what this is + cooldownGroup: string + cooldownTicks: varint + # MC: ClientboundCustomChatCompletionsPacket + packet_chat_suggestions: + action: varint + entries: string[]varint + # MC: ClientboundCustomPayloadPacket + packet_custom_payload: + channel: string + data: restBuffer + # MC: ClientboundDamageEventPacket + packet_damage_event: + entityId: varint + sourceTypeId: varint + sourceCauseId: varint + sourceDirectId: varint + sourcePosition?: vec3f64 + # MC: ClientboundDebugSamplePacket + packet_debug_sample: + sample: i64[]varint + type: varint + # MC: ClientboundDeleteChatPacket + packet_hide_message: + id: varint + signature: id ? + if 0: [ + "buffer", + { + "count": 256 + } + ] + default: void + # MC: ClientboundDisconnectPacket + packet_kick_disconnect: + reason: anonymousNbt + + ## client\net\minecraft\network\chat\ChatTypeDecoration.java + ## via client\net\minecraft\network\chat\ChatType.java + ChatTypeParameterType: varint => + - content + - sender + - target + ChatType: + translationKey: string + parameters: ChatTypeParameterType[]varint + style: anonymousNbt + ChatTypes: + chat: ChatType + narration: ChatType + ChatTypesHolder: ["registryEntryHolder", { "baseName": "chatType", "otherwise": { name: "data", type: "ChatTypes" } }] + + # MC: ClientboundDisguisedChatPacket + packet_profileless_chat: + message: anonymousNbt + type: ChatTypesHolder + name: anonymousNbt + target?: anonymousNbt + # MC: ClientboundEntityEventPacket + packet_entity_status: + entityId: i32 + entityStatus: i8 + # MC: ClientboundEntityPositionSyncPacket + packet_sync_entity_position: + entityId: varint + x: f64 + y: f64 + z: f64 + dx: f64 + dy: f64 + dz: f64 + yaw: f32 + pitch: f32 + onGround: bool + # MC: ClientboundExplodePacket + packet_explosion: + x: f64 + y: f64 + z: f64 + playerKnockback?: vec3f + explosionParticle: Particle + sound: ItemSoundHolder + # MC: ClientboundForgetLevelChunkPacket + packet_unload_chunk: + chunkZ: i32 + chunkX: i32 + # MC: ClientboundGameEventPacket + packet_game_state_change: + reason: u8 => + 0: no_respawn_block_available + 1: start_raining + 2: stop_raining + 3: change_game_mode + 4: win_game + 5: demo_event + 6: play_arrow_hit_sound + 7: rain_level_change + 8: thunder_level_change + 9: puffer_fish_sting + 10: guardian_elder_effect + 11: immediate_respawn + 12: limited_crafting + 13: level_chunks_load_start + gameMode: f32 + # MC: ClientboundHorseScreenOpenPacket + packet_open_horse_window: + windowId: ContainerID + nbSlots: varint + entityId: i32 + # MC: ClientboundHurtAnimationPacket + packet_hurt_animation: + entityId: varint + yaw: f32 + # MC: ClientboundInitializeBorderPacket + packet_initialize_world_border: + x: f64 + z: f64 + oldDiameter: f64 + newDiameter: f64 + speed: varint + portalTeleportBoundary: varint + warningBlocks: varint + warningTime: varint + # MC: ClientboundKeepAlivePacket + packet_keep_alive: + keepAliveId: i64 + # MC: ClientboundLevelChunkWithLightPacket + packet_map_chunk: + x: i32 + z: i32 + heightmaps: []varint + type: varint => + 0: world_surface_wg + 1: world_surface + 2: ocean_floor_wg + 3: ocean_floor + 4: motion_blocking + 5: motion_blocking_no_leaves + data: i64[]varint + chunkData: ByteArray + blockEntities: chunkBlockEntity[]varint + skyLightMask: i64[]varint + blockLightMask: i64[]varint + emptySkyLightMask: i64[]varint + emptyBlockLightMask: i64[]varint + skyLight: []varint + _: u8[]varint + blockLight: []varint + _: u8[]varint + # MC: ClientboundLevelEventPacket + packet_world_event: + effectId: i32 + location: position + data: i32 + global: bool + # MC: ClientboundLevelParticlesPacket + packet_world_particles: + longDistance: bool + alwaysShow: bool + x: f64 + y: f64 + z: f64 + offsetX: f32 + offsetY: f32 + offsetZ: f32 + velocityOffset: f32 + amount: i32 + particle: Particle + # MC: ClientboundLightUpdatePacket + packet_update_light: + chunkX: varint + chunkZ: varint + skyLightMask: i64[]varint + blockLightMask: i64[]varint + emptySkyLightMask: i64[]varint + emptyBlockLightMask: i64[]varint + skyLight: []varint + _: u8[]varint + blockLight: []varint + _: u8[]varint + # MC: ClientboundLoginPacket + packet_login: + entityId: i32 + isHardcore: bool + worldNames: string[]varint + maxPlayers: varint + viewDistance: varint + simulationDistance: varint + reducedDebugInfo: bool + enableRespawnScreen: bool + doLimitedCrafting: bool + worldState: SpawnInfo + enforcesSecureChat: bool + # MC: ClientboundMapItemDataPacket + packet_map: + itemDamage: varint + scale: i8 + locked: bool + icons?: []varint + type: varint + x: i8 + z: i8 + direction: u8 + displayName?: anonymousNbt + columns: u8 + rows: columns ? + if 0: void + default: u8 + x: columns ? + if 0: void + default: u8 + y: columns ? + if 0: void + default: u8 + data: columns ? + if 0: void + default: [ + "buffer", + { + "countType": "varint" + } + ] + # MC: ClientboundMerchantOffersPacket + packet_trade_list: + windowId: ContainerID + ## https://github.com/extremeheat/extracted_minecraft_data/blob/client1.20.5/client/net/minecraft/world/item/trading/MerchantOffer.java#L210 + trades: []varint + inputItem1: + itemId: varint + itemCount: varint + components: ExactComponentMatcher + outputItem: Slot + inputItem2?: + itemId: varint + itemCount: varint + components: ExactComponentMatcher + tradeDisabled: bool + nbTradeUses: i32 + maximumNbTradeUses: i32 + xp: i32 + specialPrice: i32 + priceMultiplier: f32 + demand: i32 + villagerLevel: varint + experience: varint + isRegularVillager: bool + canRestock: bool + # MC: ClientboundMoveEntityPacket.Pos + packet_rel_entity_move: + entityId: varint + dX: i16 + dY: i16 + dZ: i16 + onGround: bool + # MC: ClientboundMoveEntityPacket.PosRot + packet_entity_move_look: + entityId: varint + dX: i16 + dY: i16 + dZ: i16 + yaw: i8 + pitch: i8 + onGround: bool + # MC: ClientboundMoveMinecartPacket + packet_move_minecart: # 1.21.3 + entityId: varint + steps: []varint + position: vec3f + movement: vec3f + yaw: f32 + pitch: f32 + weight: f32 + # MC: ClientboundMoveEntityPacket.Rot + packet_entity_look: + entityId: varint + yaw: i8 + pitch: i8 + onGround: bool + # MC: ClientboundMoveVehiclePacket + packet_vehicle_move: + x: f64 + y: f64 + z: f64 + yaw: f32 + pitch: f32 + # MC: ClientboundOpenBookPacket + packet_open_book: + hand: varint + # MC: ClientboundOpenScreenPacket + packet_open_window: + windowId: varint + inventoryType: varint + windowTitle: anonymousNbt + # MC: ClientboundOpenSignEditorPacket + packet_open_sign_entity: + location: position + isFrontText: bool + # MC: ClientboundPingPacket + packet_ping: + id: i32 + # MC: ClientboundPongResponsePacket + packet_ping_response: + id: i64 + # MC: ClientboundPlaceGhostRecipePacket + packet_craft_recipe_response: + windowId: ContainerID + recipeDisplay: RecipeDisplay + # MC: ClientboundPlayerAbilitiesPacket + packet_abilities: + flags: i8 + flyingSpeed: f32 + walkingSpeed: f32 + # MC: ClientboundPlayerChatPacket + packet_player_chat: + globalIndex: varint + senderUuid: UUID + index: varint + signature?: [ + "buffer", + { + "count": 256 + } + ] + plainMessage: string + timestamp: i64 + salt: i64 + previousMessages: previousMessages + unsignedChatContent?: anonymousNbt + filterType: varint + filterTypeMask: filterType ? + if 2: i64[]varint + default: void + type: ChatTypesHolder + networkName: anonymousNbt + networkTargetName?: anonymousNbt + # MC: ClientboundPlayerCombatEndPacket + packet_end_combat_event: + duration: varint + # MC: ClientboundPlayerCombatEnterPacket + packet_enter_combat_event: + # Empty + # MC: ClientboundPlayerCombatKillPacket + packet_death_combat_event: + playerId: varint + message: anonymousNbt + # MC: ClientboundPlayerInfoRemovePacket + packet_player_remove: + players: UUID[]varint + # MC: ClientboundPlayerInfoUpdatePacket + packet_player_info: + ## ClientboundPlayerInfoUpdatePacket.java#L160 + action: ["bitflags", { + "type": "u8", + "flags": [ + "add_player", + "initialize_chat", + "update_game_mode", + "update_listed", + "update_latency", + "update_display_name", + "update_hat", + "update_list_order" + ] + }] + data: []varint + uuid: UUID + player: ../action/add_player ? + if true: game_profile + default: void + chatSession: ../action/initialize_chat ? + if true: chat_session + default: void + gamemode: ../action/update_game_mode ? + if true: varint + default: void + listed: ../action/update_listed ? + if true: varint + default: void + latency: ../action/update_latency ? + if true: varint + default: void + displayName: ../action/update_display_name ? + if true: ["option", "anonymousNbt"] + default: void + listPriority: ../action/update_list_order ? + if true: varint + default: void + showHat: ../action/update_hat ? + if true: bool + default: void + + # MC: ClientboundPlayerLookAtPacket + packet_face_player: + feet_eyes: varint + x: f64 + y: f64 + z: f64 + isEntity: bool + entityId: isEntity ? + if true: varint + default: void + entity_feet_eyes: isEntity ? + if true: varint + default: void + + # https://github.com/extremeheat/extracted_minecraft_data/blob/client1.21.2/client/net/minecraft/world/entity/Relative.java#L82 + PositionUpdateRelatives: ["bitflags", { + "type": "u32", + "flags": ["x", "y", "z", "yaw", "pitch", "dx", "dy", "dz", "yawDelta"] + }] + # MC: ClientboundPlayerPositionPacket + packet_position: + teleportId: varint + x: f64 + y: f64 + z: f64 + dx: f64 + dy: f64 + dz: f64 + yaw: f32 + pitch: f32 + flags: PositionUpdateRelatives + # MC: ClientboundPlayerRotationPacket + packet_player_rotation: + yaw: f32 + pitch: f32 + + # MC: ClientboundRecipeBookAddPacket + packet_recipe_book_add: + entries: []varint + # RecipeDisplayEntry + recipe: + displayId: varint + display: RecipeDisplay + group: optvarint + # This ID corresponds to the "recipe_book_category" registry + category: varint => + - crafting_building_blocks + - crafting_redstone + - crafting_equipment + - crafting_misc + - furnace_food + - furnace_blocks + - furnace_misc + - blast_furnace_blocks + - blast_furnace_misc + - smoker_food + - stonecutter + - smithing + - campfire + craftingRequirements?: IDSet[]varint + flags: ["bitflags", { + "type": "u8", + "flags": ["notification", "highlight"] + }] + replace: bool + # MC: ClientboundRecipeBookRemovePacket + packet_recipe_book_remove: + recipeIds: varint[]varint + # MC: ClientboundRecipeBookSettingsPacket + RecipeBookSetting: + open: bool + filtering: bool + packet_recipe_book_settings: + crafting: RecipeBookSetting + furnace: RecipeBookSetting + blast: RecipeBookSetting + smoker: RecipeBookSetting + # MC: ClientboundRemoveEntitiesPacket + packet_entity_destroy: + entityIds: varint[]varint + # MC: ClientboundRemoveMobEffectPacket + packet_remove_entity_effect: + entityId: varint + effectId: varint + # MC: ClientboundResetScorePacket + packet_reset_score: + entity_name: string + objective_name?: string + ## (remove_resource_pack is common) + # MC: ClientboundRespawnPacket + packet_respawn: + worldState: SpawnInfo + # Bit field: 0b1 - KEEP_ATTRIBUTE_MODIFIERS, 0b10 - KEEP_ENTITY_DATA + copyMetadata: u8 + # MC: ClientboundRotateHeadPacket + packet_entity_head_rotation: + entityId: varint + headYaw: i8 + # MC: ClientboundSectionBlocksUpdatePacket + packet_multi_block_change: + chunkCoordinates: [ "bitfield", [ + { "name": "x", "size": 22, "signed": true }, + { "name": "z", "size": 22, "signed": true }, + { "name": "y", "size": 20, "signed": true } + ]] + records: varint[]varint + # MC: ClientboundSelectAdvancementsTabPacket + packet_select_advancement_tab: + id?: string + # MC: ClientboundServerDataPacket + packet_server_data: + motd: anonymousNbt + iconBytes?: ByteArray + # MC: ClientboundSetActionBarTextPacket + packet_action_bar: + text: anonymousNbt + # MC: ClientboundSetBorderCenterPacket + packet_world_border_center: + x: f64 + z: f64 + # MC: ClientboundSetBorderLerpSizePacket + packet_world_border_lerp_size: + oldDiameter: f64 + newDiameter: f64 + speed: varint + # MC: ClientboundSetBorderSizePacket + packet_world_border_size: + diameter: f64 + # MC: ClientboundSetBorderWarningDelayPacket + packet_world_border_warning_delay: + warningTime: varint + # MC: ClientboundSetBorderWarningDistancePacket + packet_world_border_warning_reach: + warningBlocks: varint + # MC: ClientboundSetCameraPacket + packet_camera: + cameraId: varint + # MC: ClientboundSetChunkCacheCenterPacket + packet_update_view_position: + chunkX: varint + chunkZ: varint + # MC: ClientboundSetChunkCacheRadiusPacket + packet_update_view_distance: + viewDistance: varint + # MC: ClientboundSetCursorItemPacket + packet_set_cursor_item: + contents: Slot + # MC: ClientboundSetDefaultSpawnPositionPacket + packet_spawn_position: + location: position + angle: f32 + # MC: ClientboundSetDisplayObjectivePacket + packet_scoreboard_display_objective: + position: varint + name: string + # MC: ClientboundSetEntityDataPacket + packet_entity_metadata: + entityId: varint + metadata: entityMetadata + # MC: ClientboundSetEntityLinkPacket + packet_attach_entity: + entityId: i32 + vehicleId: i32 + # MC: ClientboundSetEntityMotionPacket + packet_entity_velocity: + entityId: varint + velocityX: i16 + velocityY: i16 + velocityZ: i16 + # MC: ClientboundSetEquipmentPacket + packet_entity_equipment: + entityId: varint + equipments: [ + "topBitSetTerminatedArray", + { + "type": [ + "container", + [ + { + "name": "slot", + "type": "i8" + }, + { + "name": "item", + "type": "Slot" + } + ] + ] + } + ] + # MC: ClientboundSetExperiencePacket + packet_experience: + experienceBar: f32 + level: varint + totalExperience: varint + # MC: ClientboundSetHealthPacket + packet_update_health: + health: f32 + food: varint + foodSaturation: f32 + # MC: ClientboundSetHeldSlotPacket + packet_held_item_slot: + slot: varint + # MC: ClientboundSetObjectivePacket + packet_scoreboard_objective: + name: string + action: i8 + displayText: action ? + if 0: anonymousNbt + if 2: anonymousNbt + default: void + type: action ? + if 0: varint + if 2: varint + default: void + number_format: action ? + if 0: [ + "option", + "varint" + ] + if 2: [ + "option", + "varint" + ] + default: void + styling: action ? + if 0: number_format ? + if 1: anonymousNbt + if 2: anonymousNbt + default: void + if 2: number_format ? + if 1: anonymousNbt + if 2: anonymousNbt + default: void + default: void + # MC: ClientboundSetPassengersPacket + packet_set_passengers: + entityId: varint + passengers: varint[]varint + # MC: ClientboundSetPlayerInventoryPacket + packet_set_player_inventory: + slotId: varint + contents: Slot + # MC: ClientboundSetPlayerTeamPacket + packet_teams: + team: string + mode: i8 => + - add + - remove + - change + - join + - leave + _: mode ? + if add or change: + name: anonymousNbt + flags: ["bitflags", { + "type": "u8", + "flags": ["friendly_fire", "see_friendly_invisible"] + }] + nameTagVisibility: varint => + - always + - never + - hide_for_other_teams + - hide_for_own_team + collisionRule: varint => + - always + - never + - push_other_teams + - push_own_team + formatting: varint + prefix: anonymousNbt + suffix: anonymousNbt + default: void + players: mode ? + if add or join or leave: string[]varint + default: void + # MC: ClientboundSetScorePacket + packet_scoreboard_score: + itemName: string + scoreName: string + value: varint + display_name?: anonymousNbt + number_format?: varint + styling: number_format ? + if 1: anonymousNbt + if 2: anonymousNbt + default: void + # MC: ClientboundSetSimulationDistancePacket + packet_simulation_distance: + distance: varint + # MC: ClientboundSetSubtitleTextPacket + packet_set_title_subtitle: + text: anonymousNbt + # MC: ClientboundSetTimePacket + packet_update_time: + age: i64 + time: i64 + tickDayTime: bool + # MC: ClientboundSetTitleTextPacket + packet_set_title_text: + text: anonymousNbt + # MC: ClientboundSetTitlesAnimationPacket + packet_set_title_time: + fadeIn: i32 + stay: i32 + fadeOut: i32 + # MC: ClientboundSoundEntityPacket + packet_entity_sound_effect: + sound: ItemSoundHolder + soundCategory: soundSource + entityId: varint + volume: f32 + pitch: f32 + seed: i64 + # MC: ClientboundSoundPacket + packet_sound_effect: + sound: ItemSoundHolder + soundCategory: soundSource + x: i32 + y: i32 + z: i32 + volume: f32 + pitch: f32 + seed: i64 + # MC: ClientboundStartConfigurationPacket + packet_start_configuration: + # Empty + # MC: ClientboundStopSoundPacket + packet_stop_sound: + flags: i8 + source: flags ? + if 1: varint + if 3: varint + default: void + sound: flags ? + if 2: string + if 3: string + default: void + ## (Store Cookie is Common) + # MC: ClientboundSystemChatPacket + packet_system_chat: + content: anonymousNbt + isActionBar: bool + # MC: ClientboundTabListPacket + packet_playerlist_header: + header: anonymousNbt + footer: anonymousNbt + # MC: ClientboundTagQueryPacket + packet_nbt_query_response: + transactionId: varint + nbt: anonOptionalNbt + # MC: ClientboundTakeItemEntityPacket + packet_collect: + collectedEntityId: varint + collectorEntityId: varint + pickupItemCount: varint + # MC: ClientboundTeleportEntityPacket + packet_entity_teleport: + entityId: varint + x: f64 + y: f64 + z: f64 + yaw: i8 + pitch: i8 + onGround: bool + # MC: ClientboundTestInstanceBlockStatusPacket + packet_test_instance_block_status: + status: anonymousNbt + size?: vec3i + # MC: ClientboundTickingStatePacket + packet_set_ticking_state: + tick_rate: f32 + is_frozen: bool + # MC: ClientboundTickingStepPacket + packet_step_tick: + tick_steps: varint + ## (Transfer is common) + # MC: ClientboundUpdateAdvancementsPacket + packet_advancements: + reset: bool + advancementMapping: []varint + key: string + value: + parentId?: string + displayData?: + title: anonymousNbt + description: anonymousNbt + icon: Slot + frameType: varint + flags: ["bitfield", [ + { "name": "unused", "size": 29, "signed": false }, + { "name": "hidden", "size": 1, "signed": false }, + { "name": "show_toast", "size": 1, "signed": false }, + { "name": "has_background_texture", "size": 1, "signed": false } + ]] + backgroundTexture: flags/has_background_texture ? + if 1: string + default: void + xCord: f32 + yCord: f32 + requirements: []varint + _: string[]varint + sendsTelemtryData: bool + identifiers: string[]varint + progressMapping: []varint + key: string + value: []varint + criterionIdentifier: string + criterionProgress?: i64 + showAdvancements: bool + # MC: ClientboundUpdateAttributesPacket + packet_entity_update_attributes: + entityId: varint + properties: []varint + key: varint => + - generic.armor + - generic.armor_toughness + - generic.attack_damage + - generic.attack_knockback + - generic.attack_speed + - player.block_break_speed + - player.block_interaction_range + - burning_time + - camera_distance + - explosion_knockback_resistance + - player.entity_interaction_range + - generic.fall_damage_multiplier + - generic.flying_speed + - generic.follow_range + - generic.gravity + - generic.jump_strength + - generic.knockback_resistance + - generic.luck + - generic.max_absorption + - generic.max_health + - generic.movement_speed + - generic.safe_fall_distance + - generic.scale + - zombie.spawn_reinforcements + - generic.step_height + - submerged_mining_speed + - sweeping_damage_ratio + - tempt_range + - water_movement_efficiency + - waypoint_transmit_range + - waypoint_receive_range + value: f64 + modifiers: []varint + uuid: string + amount: f64 + operation: i8 + # MC: ClientboundUpdateMobEffectPacket + packet_entity_effect: + entityId: varint + effectId: varint + amplifier: varint + duration: varint + # a bitfield of 0x01 for ambient, 0x02 for show particles + # flags: ["bitfield", [ + # { "name": "unused", "size": 4 }, + # { "name": "ambient", "size": 1 }, + # { "name": "showParticles", "size": 1 }, + # { "name": "showIcon", "size": 1 }, + # { "name": "blend", "size": 1 } + # ]] + flags: u8 + # MC: ClientboundUpdateRecipesPacket + packet_declare_recipes: + recipes: []varint + name: string + items: varint[]varint + stoneCutterRecipes: []varint + input: IDSet + slotDisplay: SlotDisplay + + # MC: ClientboundUpdateTagsPacket + packet_tags: + tags: []varint + tagType: string + tags: tags + # MC: ClientboundProjectilePowerPacket + packet_set_projectile_power: + id: varint + accelerationPower: f64 + ## (ClientboundCustomReportDetailsPacket, ClientboundServerLinksPacket is common) + # MC: ClientboundTrackedWaypointPacket + packet_tracked_waypoint: + operation: varint => + 0: track + 1: untrack + 2: update + waypoint: + hasUUID: bool + _: hasUUID ? + if true: + uuid: UUID + if false: + id: string + icon: + style: string + color?: i32 # RGB color with alpha fixed at FF + type: varint => + 0: empty + 1: vec3i + 2: chunk + 3: azimuth + data: type ? + if vec3i: vec3i + if chunk: + chunkX: varint + chunkZ: varint + if azimuth: f32 + ## (clear_dialog is common) + # MC: ClientboundShowDialogGamePacket + packet_show_dialog: + dialog: ["registryEntryHolder", { "baseName": "dialog", "otherwise": { "name": "data", "type": "anonymousNbt" } }] + packet: + name: varint => + - bundle_delimiter + - spawn_entity + - animation + - statistics + - acknowledge_player_digging + - block_break_animation + - tile_entity_data + - block_action + - block_change + - boss_bar + - difficulty + - chunk_batch_finished + - chunk_batch_start + - chunk_biomes + - clear_titles + - tab_complete + - declare_commands + - close_window + - window_items + - craft_progress_bar + - set_slot + - cookie_request + - set_cooldown + - chat_suggestions + - custom_payload + - damage_event + - debug_sample + - hide_message + - kick_disconnect + - profileless_chat + - entity_status + - sync_entity_position + - explosion + - unload_chunk + - game_state_change + - open_horse_window + - hurt_animation + - initialize_world_border + - keep_alive + - map_chunk + - world_event + - world_particles + - update_light + - login + - map + - trade_list + - rel_entity_move + - entity_move_look + - move_minecart + - entity_look + - vehicle_move + - open_book + - open_window + - open_sign_entity + - ping + - ping_response + - craft_recipe_response + - abilities + - player_chat + - end_combat_event + - enter_combat_event + - death_combat_event + - player_remove + - player_info + - face_player + - position + - player_rotation + - recipe_book_add + - recipe_book_remove + - recipe_book_settings + - entity_destroy + - remove_entity_effect + - reset_score + - remove_resource_pack + - add_resource_pack + - respawn + - entity_head_rotation + - multi_block_change + - select_advancement_tab + - server_data + - action_bar + - world_border_center + - world_border_lerp_size + - world_border_size + - world_border_warning_delay + - world_border_warning_reach + - camera + - update_view_position + - update_view_distance + - set_cursor_item + - spawn_position + - scoreboard_display_objective + - entity_metadata + - attach_entity + - entity_velocity + - entity_equipment + - experience + - update_health + - held_item_slot + - scoreboard_objective + - set_passengers + - set_player_inventory + - teams + - scoreboard_score + - simulation_distance + - set_title_subtitle + - update_time + - set_title_text + - set_title_time + - entity_sound_effect + - sound_effect + - start_configuration + - stop_sound + - store_cookie + - system_chat + - playerlist_header + - nbt_query_response + - collect + - entity_teleport + - test_instance_block_status + - set_ticking_state + - step_tick + - transfer + - advancements + - entity_update_attributes + - entity_effect + - declare_recipes + - tags + - set_projectile_power + - custom_report_details + - server_links + - tracked_waypoint + - clear_dialog + - show_dialog + params: name ? + if bundle_delimiter: void + if spawn_entity: packet_spawn_entity + if animation: packet_animation + if statistics: packet_statistics + if acknowledge_player_digging: packet_acknowledge_player_digging + if block_break_animation: packet_block_break_animation + if tile_entity_data: packet_tile_entity_data + if block_action: packet_block_action + if block_change: packet_block_change + if boss_bar: packet_boss_bar + if difficulty: packet_difficulty + if chunk_batch_finished: packet_chunk_batch_finished + if chunk_batch_start: packet_chunk_batch_start + if chunk_biomes: packet_chunk_biomes + if clear_titles: packet_clear_titles + if tab_complete: packet_tab_complete + if declare_commands: packet_declare_commands + if close_window: packet_close_window + if window_items: packet_window_items + if craft_progress_bar: packet_craft_progress_bar + if set_slot: packet_set_slot + if cookie_request: packet_common_cookie_request + if set_cooldown: packet_set_cooldown + if chat_suggestions: packet_chat_suggestions + if custom_payload: packet_custom_payload + if damage_event: packet_damage_event + if debug_sample: packet_debug_sample + if hide_message: packet_hide_message + if kick_disconnect: packet_kick_disconnect + if profileless_chat: packet_profileless_chat + if entity_status: packet_entity_status + if sync_entity_position: packet_sync_entity_position + if explosion: packet_explosion + if unload_chunk: packet_unload_chunk + if game_state_change: packet_game_state_change + if open_horse_window: packet_open_horse_window + if hurt_animation: packet_hurt_animation + if initialize_world_border: packet_initialize_world_border + if keep_alive: packet_keep_alive + if map_chunk: packet_map_chunk + if world_event: packet_world_event + if world_particles: packet_world_particles + if update_light: packet_update_light + if login: packet_login + if map: packet_map + if trade_list: packet_trade_list + if rel_entity_move: packet_rel_entity_move + if entity_move_look: packet_entity_move_look + if move_minecart: packet_move_minecart + if entity_look: packet_entity_look + if vehicle_move: packet_vehicle_move + if open_book: packet_open_book + if open_window: packet_open_window + if open_sign_entity: packet_open_sign_entity + if ping: packet_ping + if ping_response: packet_ping_response + if craft_recipe_response: packet_craft_recipe_response + if abilities: packet_abilities + if player_chat: packet_player_chat + if end_combat_event: packet_end_combat_event + if enter_combat_event: packet_enter_combat_event + if death_combat_event: packet_death_combat_event + if player_remove: packet_player_remove + if player_info: packet_player_info + if face_player: packet_face_player + if position: packet_position + if player_rotation: packet_player_rotation + if recipe_book_add: packet_recipe_book_add + if recipe_book_remove: packet_recipe_book_remove + if recipe_book_settings: packet_recipe_book_settings + if entity_destroy: packet_entity_destroy + if remove_entity_effect: packet_remove_entity_effect + if reset_score: packet_reset_score + if remove_resource_pack: packet_common_remove_resource_pack + if add_resource_pack: packet_common_add_resource_pack + if respawn: packet_respawn + if entity_head_rotation: packet_entity_head_rotation + if multi_block_change: packet_multi_block_change + if select_advancement_tab: packet_select_advancement_tab + if server_data: packet_server_data + if action_bar: packet_action_bar + if world_border_center: packet_world_border_center + if world_border_lerp_size: packet_world_border_lerp_size + if world_border_size: packet_world_border_size + if world_border_warning_delay: packet_world_border_warning_delay + if world_border_warning_reach: packet_world_border_warning_reach + if camera: packet_camera + if update_view_position: packet_update_view_position + if update_view_distance: packet_update_view_distance + if set_cursor_item: packet_set_cursor_item + if held_item_slot: packet_held_item_slot + if spawn_position: packet_spawn_position + if scoreboard_display_objective: packet_scoreboard_display_objective + if entity_metadata: packet_entity_metadata + if attach_entity: packet_attach_entity + if entity_velocity: packet_entity_velocity + if entity_equipment: packet_entity_equipment + if experience: packet_experience + if update_health: packet_update_health + if scoreboard_objective: packet_scoreboard_objective + if set_passengers: packet_set_passengers + if set_player_inventory: packet_set_player_inventory + if teams: packet_teams + if scoreboard_score: packet_scoreboard_score + if simulation_distance: packet_simulation_distance + if set_title_subtitle: packet_set_title_subtitle + if update_time: packet_update_time + if set_title_text: packet_set_title_text + if set_title_time: packet_set_title_time + if entity_sound_effect: packet_entity_sound_effect + if sound_effect: packet_sound_effect + if start_configuration: packet_start_configuration + if stop_sound: packet_stop_sound + if store_cookie: packet_common_store_cookie + if system_chat: packet_system_chat + if playerlist_header: packet_playerlist_header + if nbt_query_response: packet_nbt_query_response + if collect: packet_collect + if entity_teleport: packet_entity_teleport + if test_instance_block_status: packet_test_instance_block_status + if set_ticking_state: packet_set_ticking_state + if step_tick: packet_step_tick + if transfer: packet_common_transfer + if advancements: packet_advancements + if entity_update_attributes: packet_entity_update_attributes + if entity_effect: packet_entity_effect + if declare_recipes: packet_declare_recipes + if tags: packet_tags + if set_projectile_power: packet_set_projectile_power + if custom_report_details: packet_common_custom_report_details + if server_links: packet_common_server_links + if tracked_waypoint: packet_tracked_waypoint + if clear_dialog: packet_common_clear_dialog + if show_dialog: packet_show_dialog + +^play.toServer.types: + # MC: ServerboundAcceptTeleportationPacket + packet_teleport_confirm: + teleportId: varint + # MC: ServerboundBlockEntityTagQueryPacket + packet_query_block_nbt: + transactionId: varint + location: position + # MC: ServerboundSelectBundleItemPacket + packet_select_bundle_item: + slotId: varint + selectedItemIndex: varint + # MC: ServerboundChangeDifficultyPacket + packet_set_difficulty: + newDifficulty: varint => + 0: peaceful + 1: easy + 2: normal + 3: hard + # MC: ServerboundChangeGameModePacket + packet_change_gamemode: + mode: varint => + 0: survival + 1: creative + 2: adventure + 3: spectator + # MC: ServerboundChatAckPacket + packet_message_acknowledgement: + count: varint + # MC: ServerboundChatCommandPacket + packet_chat_command: + command: string + # MC: ServerboundChatCommandSignedPacket + packet_chat_command_signed: + command: string + timestamp: i64 + salt: i64 + argumentSignatures: []varint + argumentName: string + signature: [ + "buffer", + { + "count": 256 + } + ] + messageCount: varint + acknowledged: [ + "buffer", + { + "count": 3 + } + ] + checksum: i8 + # MC: ServerboundChatPacket + packet_chat_message: + message: string + timestamp: i64 + salt: i64 + signature?: [ + "buffer", + { + "count": 256 + } + ] + offset: varint + acknowledged: [ + "buffer", + { + "count": 3 + } + ] + checksum: u8 + # MC: ServerboundChatSessionUpdatePacket + packet_chat_session_update: + sessionUUID: UUID + expireTime: i64 + publicKey: ByteArray + signature: ByteArray + # MC: ServerboundChunkBatchReceivedPacket + packet_chunk_batch_received: + chunksPerTick: f32 + # MC: ServerboundClientCommandPacket + packet_client_command: + actionId: varint + # MC: ServerboundClientTickEndPacket + packet_tick_end: + # Empty + # MC: ServerboundCommandSuggestionPacket + packet_tab_complete: + transactionId: varint + text: string + # MC: ServerboundConfigurationAcknowledgedPacket + packet_configuration_acknowledged: + # Empty + # MC: ServerboundContainerButtonClickPacket + packet_enchant_item: + windowId: ContainerID + enchantment: i8 + # MC: ServerboundContainerClickPacket + packet_window_click: + windowId: ContainerID + stateId: varint + slot: i16 + mouseButton: i8 + mode: varint + changedSlots: []varint + location: i16 + item?: HashedSlot + cursorItem?: HashedSlot + # MC: ServerboundContainerClosePacket + packet_close_window: + windowId: ContainerID + # MC: ServerboundContainerSlotStateChangedPacket + packet_set_slot_state: + slot_id: varint + window_id: ContainerID + state: bool + ## (ServerboundCookieResponsePacket is common) + # MC: ServerboundCustomPayloadPacket + packet_custom_payload: + channel: string + data: restBuffer + # MC: ServerboundDebugSampleSubscriptionPacket + packet_debug_sample_subscription: + type: varint + # MC: ServerboundEditBookPacket + packet_edit_book: + hand: varint + pages: string[]varint + title?: string + # MC: ServerboundEntityTagQuery + packet_query_entity_nbt: + transactionId: varint + entityId: varint + # MC: ServerboundInteractPacket + packet_use_entity: + target: varint + mouse: varint + x: mouse ? + if 2: f32 + default: void + y: mouse ? + if 2: f32 + default: void + z: mouse ? + if 2: f32 + default: void + hand: mouse ? + if 0: varint + if 2: varint + default: void + sneaking: bool + # MC: ServerboundJigsawGeneratePacket + packet_generate_structure: + location: position + levels: varint + keepJigsaws: bool + # MC: ServerboundKeepAlivePacket + packet_keep_alive: + keepAliveId: i64 + # MC: ServerboundLockDifficultyPacket + packet_lock_difficulty: + locked: bool + + MovementFlags: ["bitflags", { + "type": "u8", + "flags": ["onGround", "hasHorizontalCollision"] + }] + # MC: ServerboundMovePlayerPacket.Pos + packet_position: + x: f64 + y: f64 + z: f64 + flags: MovementFlags + # MC: ServerboundMovePlayerPacket.PosRot + packet_position_look: + x: f64 + y: f64 + z: f64 + yaw: f32 + pitch: f32 + flags: MovementFlags + # MC: ServerboundMovePlayerPacket.Rot + packet_look: + yaw: f32 + pitch: f32 + flags: MovementFlags + # MC: ServerboundMovePlayerPacket.StatusOnly + packet_flying: + flags: MovementFlags + # MC: ServerboundMoveVehiclePacket + packet_vehicle_move: + x: f64 + y: f64 + z: f64 + yaw: f32 + pitch: f32 + onGround: bool + # MC: ServerboundPaddleBoatPacket + packet_steer_boat: + leftPaddle: bool + rightPaddle: bool + # MC: ServerboundPickItemFromBlockPacket + packet_pick_item_from_block: + position: position + includeData: bool + # MC: ServerboundPickItemFromEntityPacket + packet_pick_item_from_entity: + entityId: varint + includeData: bool + # MC: ServerboundPingRequestPacket + packet_ping_request: + id: i64 + # MC: ServerboundPlaceRecipePacket + packet_craft_recipe_request: + windowId: ContainerID + recipeId: varint + makeAll: bool + # MC: ServerboundPlayerAbilitiesPacket + packet_abilities: + flags: i8 + # MC: ServerboundPlayerActionPacket + packet_block_dig: + status: varint + location: position + face: i8 + sequence: varint + # MC: ServerboundPlayerCommandPacket + packet_entity_action: + entityId: varint + actionId: varint => + - leave_bed + - start_sprinting + - stop_sprinting + - start_horse_jump + - stop_horse_jump + - open_vehicle_inventory + - start_elytra_flying + jumpBoost: varint + # MC: ServerboundPlayerInputPacket + # previously: packet_steer_vehicle + packet_player_input: + ## client/net/minecraft/world/entity/player/Input.java + inputs: ["bitflags", { + "type": "u8", + "flags": ["forward", "backward", "left", "right", "jump", "shift", "sprint"] + }] + # MC: ServerboundPlayerLoadedPacket + packet_player_loaded: + # Empty + # MC: ServerboundPongPacket + packet_pong: + id: i32 + # MC: ServerboundRecipeBookChangeSettingsPacket + packet_recipe_book: + bookId: varint + bookOpen: bool + filterActive: bool + # MC: ServerboundRecipeBookSeenRecipePacket + packet_displayed_recipe: + recipeId: varint + # MC: ServerboundRenameItemPacket + packet_name_item: + name: string + # MC: ServerboundResourcePackPacket + packet_resource_pack_receive: + uuid: UUID + result: varint + # MC: ServerboundSeenAdvancementsPacket + packet_advancement_tab: + action: varint + tabId: action ? + if 0: string + if 1: void + # MC: ServerboundSelectTradePacket + packet_select_trade: + slot: varint + # MC: ServerboundSetBeaconPacket + packet_set_beacon_effect: + primary_effect?: varint + secondary_effect?: varint + # MC: ServerboundSetCarriedItemPacket + packet_held_item_slot: + slotId: i16 + # MC: ServerboundSetCommandBlockPacket + packet_update_command_block: + location: position + command: string + mode: varint + flags: u8 + # MC: ServerboundSetCommandMinecartPacket + packet_update_command_block_minecart: + entityId: varint + command: string + track_output: bool + # MC: ServerboundSetCreativeModeSlotPacket + packet_set_creative_slot: + slot: i16 + item: UntrustedSlot + # MC: ServerboundSetJigsawBlockPacket + packet_update_jigsaw_block: + location: position + name: string + target: string + pool: string + finalState: string + jointType: string + selection_priority: varint + placement_priority: varint + # MC: ServerboundSetStructureBlockPacket + packet_update_structure_block: + location: position + action: varint + mode: varint + name: string + offset_x: i8 + offset_y: i8 + offset_z: i8 + size_x: i8 + size_y: i8 + size_z: i8 + mirror: varint + rotation: varint + metadata: string + integrity: f32 + seed: varint + # New `strict` flag + flags: u8 => + - ignore_entities + - show_air + - show_bounding_box + - strict + # MC: ServerboundSetTestBlockPacket + packet_set_test_block: + position: position + mode: varint + message: string + # MC: ServerboundSignUpdatePacket + packet_update_sign: + location: position + isFrontText: bool + text1: string + text2: string + text3: string + text4: string + # MC: ServerboundSwingPacket + packet_arm_animation: + hand: varint + # MC: ServerboundTeleportToEntityPacket + packet_spectate: + target: UUID + # MC: ServerboundTestInstanceBlockActionPacket + packet_test_instance_block_action: + pos: position + action: varint + data: + test?: string + size: vec3i + rotation: varint + ignoreEntities: bool + status: varint + errorMessage?: anonymousNbt + # MC: ServerboundUseItemOnPacket + packet_block_place: + hand: varint + location: position + direction: varint + cursorX: f32 + cursorY: f32 + cursorZ: f32 + insideBlock: bool + worldBorderHit: bool + sequence: varint + # MC: ServerboundUseItemPacket + packet_use_item: + hand: varint + sequence: varint + rotation: vec2f + + packet: + name: varint => + - teleport_confirm + - query_block_nbt + - select_bundle_item + - set_difficulty + - change_gamemode + - message_acknowledgement + - chat_command + - chat_command_signed + - chat_message + - chat_session_update + - chunk_batch_received + - client_command + - tick_end + - settings + - tab_complete + - configuration_acknowledged + # Maybe rename enchant_item if it is used for other things too + - enchant_item + - window_click + - close_window + - set_slot_state + - cookie_response + - custom_payload + - debug_sample_subscription + - edit_book + - query_entity_nbt + - use_entity + - generate_structure + - keep_alive + - lock_difficulty + - position + - position_look + - look + - flying + - vehicle_move + - steer_boat + - pick_item_from_block + - pick_item_from_entity + - ping_request + - craft_recipe_request + - abilities + - block_dig + - entity_action + - player_input + - player_loaded + - pong + - recipe_book + - displayed_recipe + - name_item + - resource_pack_receive + - advancement_tab + - select_trade + - set_beacon_effect + - held_item_slot + - update_command_block + - update_command_block_minecart + - set_creative_slot + - update_jigsaw_block + - update_structure_block + - set_test_block + - update_sign + - arm_animation + - spectate + - test_instance_block_action + - block_place + - use_item + - custom_click_action + params: name ? + if teleport_confirm: packet_teleport_confirm + if query_block_nbt: packet_query_block_nbt + if select_bundle_item: packet_select_bundle_item + if set_difficulty: packet_set_difficulty + if change_gamemode: packet_change_gamemode + if message_acknowledgement: packet_message_acknowledgement + if chat_command: packet_chat_command + if chat_command_signed: packet_chat_command_signed + if chat_message: packet_chat_message + if chat_session_update: packet_chat_session_update + if chunk_batch_received: packet_chunk_batch_received + if client_command: packet_client_command + if tick_end: packet_tick_end + if settings: packet_common_settings + if tab_complete: packet_tab_complete + if configuration_acknowledged: packet_configuration_acknowledged + if enchant_item: packet_enchant_item + if window_click: packet_window_click + if close_window: packet_close_window + if set_slot_state: packet_set_slot_state + if cookie_response: packet_common_cookie_response + if custom_payload: packet_custom_payload + if debug_sample_subscription: packet_debug_sample_subscription + if edit_book: packet_edit_book + if query_entity_nbt: packet_query_entity_nbt + if use_entity: packet_use_entity + if generate_structure: packet_generate_structure + if keep_alive: packet_keep_alive + if lock_difficulty: packet_lock_difficulty + if position: packet_position + if position_look: packet_position_look + if look: packet_look + if flying: packet_flying + if vehicle_move: packet_vehicle_move + if steer_boat: packet_steer_boat + if pick_item_from_block: packet_pick_item_from_block + if pick_item_from_entity: packet_pick_item_from_entity + if ping_request: packet_ping_request + if craft_recipe_request: packet_craft_recipe_request + if abilities: packet_abilities + if block_dig: packet_block_dig + if entity_action: packet_entity_action + if player_input: packet_player_input + if player_loaded: packet_player_loaded + if pong: packet_pong + if recipe_book: packet_recipe_book + if displayed_recipe: packet_displayed_recipe + if name_item: packet_name_item + if resource_pack_receive: packet_resource_pack_receive + if advancement_tab: packet_advancement_tab + if select_trade: packet_select_trade + if set_beacon_effect: packet_set_beacon_effect + if held_item_slot: packet_held_item_slot + if update_command_block: packet_update_command_block + if update_command_block_minecart: packet_update_command_block_minecart + if set_creative_slot: packet_set_creative_slot + if update_jigsaw_block: packet_update_jigsaw_block + if update_structure_block: packet_update_structure_block + if set_test_block: packet_set_test_block + if update_sign: packet_update_sign + if arm_animation: packet_arm_animation + if spectate: packet_spectate + if test_instance_block_action: packet_test_instance_block_action + if block_place: packet_block_place + if use_item: packet_use_item + if custom_click_action: packet_common_custom_click_action diff --git a/data/pc/common/versions.json b/data/pc/common/versions.json index 129a7073e..5a797780f 100644 --- a/data/pc/common/versions.json +++ b/data/pc/common/versions.json @@ -66,5 +66,6 @@ "1.21.4", "1.21.5", "1.21.6", - "1.21.8" -] + "1.21.8", + "1.21.11" +] \ No newline at end of file diff --git a/data/pc/latest/proto.yml b/data/pc/latest/proto.yml index abc5b942b..51e22ca69 100644 --- a/data/pc/latest/proto.yml +++ b/data/pc/latest/proto.yml @@ -1,4 +1,4 @@ -!version: 1.21.8 +!version: 1.21.11 !StartDocs: true ^types: