# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _Proto1_16_4
else:
    import _Proto1_16_4

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class mc_uuid(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    msb = property(_Proto1_16_4.mc_uuid_msb_get, _Proto1_16_4.mc_uuid_msb_set)
    lsb = property(_Proto1_16_4.mc_uuid_lsb_get, _Proto1_16_4.mc_uuid_lsb_set)

    def __init__(self):
        _Proto1_16_4.mc_uuid_swiginit(self, _Proto1_16_4.new_mc_uuid())
    __swig_destroy__ = _Proto1_16_4.delete_mc_uuid

# Register mc_uuid in _Proto1_16_4:
_Proto1_16_4.mc_uuid_swigregister(mc_uuid)

class mc_position(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.mc_position_x_get, _Proto1_16_4.mc_position_x_set)
    y = property(_Proto1_16_4.mc_position_y_get, _Proto1_16_4.mc_position_y_set)
    z = property(_Proto1_16_4.mc_position_z_get, _Proto1_16_4.mc_position_z_set)

    def __init__(self):
        _Proto1_16_4.mc_position_swiginit(self, _Proto1_16_4.new_mc_position())
    __swig_destroy__ = _Proto1_16_4.delete_mc_position

# Register mc_position in _Proto1_16_4:
_Proto1_16_4.mc_position_swigregister(mc_position)


def enc_byte(dest: "std::ostream &", src: "std::uint8_t const") -> "void":
    return _Proto1_16_4.enc_byte(dest, src)

def dec_byte(src: "std::istream &") -> "std::uint8_t":
    return _Proto1_16_4.dec_byte(src)

def enc_be16(dest: "std::ostream &", src: "std::uint16_t") -> "void":
    return _Proto1_16_4.enc_be16(dest, src)

def dec_be16(src: "std::istream &") -> "std::uint16_t":
    return _Proto1_16_4.dec_be16(src)

def enc_le16(dest: "std::ostream &", src: "std::uint16_t") -> "void":
    return _Proto1_16_4.enc_le16(dest, src)

def dec_le16(src: "std::istream &") -> "std::uint16_t":
    return _Proto1_16_4.dec_le16(src)

def enc_be32(dest: "std::ostream &", src: "std::uint32_t") -> "void":
    return _Proto1_16_4.enc_be32(dest, src)

def dec_be32(src: "std::istream &") -> "std::uint32_t":
    return _Proto1_16_4.dec_be32(src)

def enc_le32(dest: "std::ostream &", src: "std::uint32_t") -> "void":
    return _Proto1_16_4.enc_le32(dest, src)

def dec_le32(src: "std::istream &") -> "std::uint32_t":
    return _Proto1_16_4.dec_le32(src)

def enc_be64(dest: "std::ostream &", src: "std::uint64_t") -> "void":
    return _Proto1_16_4.enc_be64(dest, src)

def dec_be64(src: "std::istream &") -> "std::uint64_t":
    return _Proto1_16_4.dec_be64(src)

def enc_le64(dest: "std::ostream &", src: "std::uint64_t") -> "void":
    return _Proto1_16_4.enc_le64(dest, src)

def dec_le64(src: "std::istream &") -> "std::uint64_t":
    return _Proto1_16_4.dec_le64(src)

def enc_bef32(dest: "std::ostream &", src: "float") -> "void":
    return _Proto1_16_4.enc_bef32(dest, src)

def dec_bef32(src: "std::istream &") -> "float":
    return _Proto1_16_4.dec_bef32(src)

def enc_lef32(dest: "std::ostream &", src: "float") -> "void":
    return _Proto1_16_4.enc_lef32(dest, src)

def dec_lef32(src: "std::istream &") -> "float":
    return _Proto1_16_4.dec_lef32(src)

def enc_bef64(dest: "std::ostream &", src: "double") -> "void":
    return _Proto1_16_4.enc_bef64(dest, src)

def dec_bef64(src: "std::istream &") -> "double":
    return _Proto1_16_4.dec_bef64(src)

def enc_lef64(dest: "std::ostream &", src: "double") -> "void":
    return _Proto1_16_4.enc_lef64(dest, src)

def dec_lef64(src: "std::istream &") -> "double":
    return _Proto1_16_4.dec_lef64(src)
VARNUM_INVALID = _Proto1_16_4.VARNUM_INVALID
VARNUM_OVERRUN = _Proto1_16_4.VARNUM_OVERRUN

def verify_varint(buf: "char const *", max_len: "std::size_t") -> "int":
    return _Proto1_16_4.verify_varint(buf, max_len)

def verify_varlong(buf: "char const *", max_len: "std::size_t") -> "int":
    return _Proto1_16_4.verify_varlong(buf, max_len)

def size_varint(varint: "std::uint32_t") -> "std::size_t":
    return _Proto1_16_4.size_varint(varint)

def size_varlong(varlong: "std::uint64_t") -> "std::size_t":
    return _Proto1_16_4.size_varlong(varlong)

def enc_varint(dest: "std::ostream &", src: "std::uint64_t") -> "void":
    return _Proto1_16_4.enc_varint(dest, src)

def dec_varint(src: "std::istream &") -> "std::int64_t":
    return _Proto1_16_4.dec_varint(src)

def enc_string(dest: "std::ostream &", src: "std::string const &") -> "void":
    return _Proto1_16_4.enc_string(dest, src)

def dec_string(src: "std::istream &") -> "std::string":
    return _Proto1_16_4.dec_string(src)

def enc_uuid(dest: "std::ostream &", src: "mc_uuid") -> "void":
    return _Proto1_16_4.enc_uuid(dest, src)

def dec_uuid(src: "std::istream &") -> "mcd::mc_uuid":
    return _Proto1_16_4.dec_uuid(src)

def enc_position(dest: "std::ostream &", src: "mc_position") -> "void":
    return _Proto1_16_4.enc_position(dest, src)

def dec_position(src: "std::istream &") -> "mcd::mc_position":
    return _Proto1_16_4.dec_position(src)

def enc_buffer(dest: "std::ostream &", src: "std::vector< char > const &") -> "void":
    return _Proto1_16_4.enc_buffer(dest, src)

def dec_buffer(src: "std::istream &", len: "size_t") -> "std::vector< char >":
    return _Proto1_16_4.dec_buffer(src, len)
class MCSlot(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    present = property(_Proto1_16_4.MCSlot_present_get, _Proto1_16_4.MCSlot_present_set)
    item_id = property(_Proto1_16_4.MCSlot_item_id_get, _Proto1_16_4.MCSlot_item_id_set)
    item_count = property(_Proto1_16_4.MCSlot_item_count_get, _Proto1_16_4.MCSlot_item_count_set)
    nbt_data = property(_Proto1_16_4.MCSlot_nbt_data_get, _Proto1_16_4.MCSlot_nbt_data_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCSlot_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.MCSlot_decode(self, src)

    def __init__(self):
        _Proto1_16_4.MCSlot_swiginit(self, _Proto1_16_4.new_MCSlot())
    __swig_destroy__ = _Proto1_16_4.delete_MCSlot

# Register MCSlot in _Proto1_16_4:
_Proto1_16_4.MCSlot_swigregister(MCSlot)

class MCParticle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_Proto1_16_4.MCParticle_type_get, _Proto1_16_4.MCParticle_type_set)
    block_state = property(_Proto1_16_4.MCParticle_block_state_get, _Proto1_16_4.MCParticle_block_state_set)
    red = property(_Proto1_16_4.MCParticle_red_get, _Proto1_16_4.MCParticle_red_set)
    green = property(_Proto1_16_4.MCParticle_green_get, _Proto1_16_4.MCParticle_green_set)
    blue = property(_Proto1_16_4.MCParticle_blue_get, _Proto1_16_4.MCParticle_blue_set)
    scale = property(_Proto1_16_4.MCParticle_scale_get, _Proto1_16_4.MCParticle_scale_set)
    item = property(_Proto1_16_4.MCParticle_item_get, _Proto1_16_4.MCParticle_item_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCParticle_encode(self, dest)

    def decode(self, src: "std::istream &", p_type: "mcd::particle_type") -> "void":
        return _Proto1_16_4.MCParticle_decode(self, src, p_type)

    def __init__(self):
        _Proto1_16_4.MCParticle_swiginit(self, _Proto1_16_4.new_MCParticle())
    __swig_destroy__ = _Proto1_16_4.delete_MCParticle

# Register MCParticle in _Proto1_16_4:
_Proto1_16_4.MCParticle_swigregister(MCParticle)

class MCSmelting(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    group = property(_Proto1_16_4.MCSmelting_group_get, _Proto1_16_4.MCSmelting_group_set)
    ingredient = property(_Proto1_16_4.MCSmelting_ingredient_get, _Proto1_16_4.MCSmelting_ingredient_set)
    result = property(_Proto1_16_4.MCSmelting_result_get, _Proto1_16_4.MCSmelting_result_set)
    experience = property(_Proto1_16_4.MCSmelting_experience_get, _Proto1_16_4.MCSmelting_experience_set)
    cook_time = property(_Proto1_16_4.MCSmelting_cook_time_get, _Proto1_16_4.MCSmelting_cook_time_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCSmelting_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.MCSmelting_decode(self, src)

    def __init__(self):
        _Proto1_16_4.MCSmelting_swiginit(self, _Proto1_16_4.new_MCSmelting())
    __swig_destroy__ = _Proto1_16_4.delete_MCSmelting

# Register MCSmelting in _Proto1_16_4:
_Proto1_16_4.MCSmelting_swigregister(MCSmelting)

class MCTag(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    tag_name = property(_Proto1_16_4.MCTag_tag_name_get, _Proto1_16_4.MCTag_tag_name_set)
    entries = property(_Proto1_16_4.MCTag_entries_get, _Proto1_16_4.MCTag_entries_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCTag_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.MCTag_decode(self, src)

    def __init__(self):
        _Proto1_16_4.MCTag_swiginit(self, _Proto1_16_4.new_MCTag())
    __swig_destroy__ = _Proto1_16_4.delete_MCTag

# Register MCTag in _Proto1_16_4:
_Proto1_16_4.MCTag_swigregister(MCTag)

class MCEntityEquipment(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    equipments = property(_Proto1_16_4.MCEntityEquipment_equipments_get, _Proto1_16_4.MCEntityEquipment_equipments_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCEntityEquipment_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.MCEntityEquipment_decode(self, src)

    def __init__(self):
        _Proto1_16_4.MCEntityEquipment_swiginit(self, _Proto1_16_4.new_MCEntityEquipment())
    __swig_destroy__ = _Proto1_16_4.delete_MCEntityEquipment

# Register MCEntityEquipment in _Proto1_16_4:
_Proto1_16_4.MCEntityEquipment_swigregister(MCEntityEquipment)

class item(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    slot = property(_Proto1_16_4.item_slot_get, _Proto1_16_4.item_slot_set)
    item = property(_Proto1_16_4.item_item_get, _Proto1_16_4.item_item_set)
    __swig_destroy__ = _Proto1_16_4.delete_item

# Register item in _Proto1_16_4:
_Proto1_16_4.item_swigregister(item)

METATAG_BYTE = _Proto1_16_4.METATAG_BYTE
METATAG_VARINT = _Proto1_16_4.METATAG_VARINT
METATAG_FLOAT = _Proto1_16_4.METATAG_FLOAT
METATAG_STRING = _Proto1_16_4.METATAG_STRING
METATAG_CHAT = _Proto1_16_4.METATAG_CHAT
METATAG_OPTCHAT = _Proto1_16_4.METATAG_OPTCHAT
METATAG_SLOT = _Proto1_16_4.METATAG_SLOT
METATAG_BOOLEAN = _Proto1_16_4.METATAG_BOOLEAN
METATAG_ROTATION = _Proto1_16_4.METATAG_ROTATION
METATAG_POSITION = _Proto1_16_4.METATAG_POSITION
METATAG_OPTPOSITION = _Proto1_16_4.METATAG_OPTPOSITION
METATAG_DIRECTION = _Proto1_16_4.METATAG_DIRECTION
METATAG_OPTUUID = _Proto1_16_4.METATAG_OPTUUID
METATAG_BLOCKID = _Proto1_16_4.METATAG_BLOCKID
METATAG_NBT = _Proto1_16_4.METATAG_NBT
METATAG_PARTICLE = _Proto1_16_4.METATAG_PARTICLE
METATAG_VILLAGERDATA = _Proto1_16_4.METATAG_VILLAGERDATA
METATAG_OPTVARINT = _Proto1_16_4.METATAG_OPTVARINT
METATAG_POSE = _Proto1_16_4.METATAG_POSE
class MCEntityMetadata(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    data = property(_Proto1_16_4.MCEntityMetadata_data_get, _Proto1_16_4.MCEntityMetadata_data_set)

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.MCEntityMetadata_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.MCEntityMetadata_decode(self, src)

    def __init__(self):
        _Proto1_16_4.MCEntityMetadata_swiginit(self, _Proto1_16_4.new_MCEntityMetadata())
    __swig_destroy__ = _Proto1_16_4.delete_MCEntityMetadata

# Register MCEntityMetadata in _Proto1_16_4:
_Proto1_16_4.MCEntityMetadata_swigregister(MCEntityMetadata)

class metatag(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    index = property(_Proto1_16_4.metatag_index_get, _Proto1_16_4.metatag_index_set)
    type = property(_Proto1_16_4.metatag_type_get, _Proto1_16_4.metatag_type_set)
    value = property(_Proto1_16_4.metatag_value_get, _Proto1_16_4.metatag_value_set)

    def __init__(self):
        _Proto1_16_4.metatag_swiginit(self, _Proto1_16_4.new_metatag())
    __swig_destroy__ = _Proto1_16_4.delete_metatag

# Register metatag in _Proto1_16_4:
_Proto1_16_4.metatag_swigregister(metatag)

PARTICLE_AMBIENT_ENTITY_EFFECT = _Proto1_16_4.PARTICLE_AMBIENT_ENTITY_EFFECT
PARTICLE_ANGRY_VILLAGER = _Proto1_16_4.PARTICLE_ANGRY_VILLAGER
PARTICLE_BARRIER = _Proto1_16_4.PARTICLE_BARRIER
PARTICLE_BLOCK = _Proto1_16_4.PARTICLE_BLOCK
PARTICLE_BUBBLE = _Proto1_16_4.PARTICLE_BUBBLE
PARTICLE_CLOUD = _Proto1_16_4.PARTICLE_CLOUD
PARTICLE_CRIT = _Proto1_16_4.PARTICLE_CRIT
PARTICLE_DAMAGE_INDICATOR = _Proto1_16_4.PARTICLE_DAMAGE_INDICATOR
PARTICLE_DRAGON_BREATH = _Proto1_16_4.PARTICLE_DRAGON_BREATH
PARTICLE_DRIPPING_LAVA = _Proto1_16_4.PARTICLE_DRIPPING_LAVA
PARTICLE_FALLING_LAVA = _Proto1_16_4.PARTICLE_FALLING_LAVA
PARTICLE_LANDING_LAVA = _Proto1_16_4.PARTICLE_LANDING_LAVA
PARTICLE_DRIPPING_WATER = _Proto1_16_4.PARTICLE_DRIPPING_WATER
PARTICLE_FALLING_WATER = _Proto1_16_4.PARTICLE_FALLING_WATER
PARTICLE_DUST = _Proto1_16_4.PARTICLE_DUST
PARTICLE_EFFECT = _Proto1_16_4.PARTICLE_EFFECT
PARTICLE_ELDER_GUARDIAN = _Proto1_16_4.PARTICLE_ELDER_GUARDIAN
PARTICLE_ENCHANTED_HIT = _Proto1_16_4.PARTICLE_ENCHANTED_HIT
PARTICLE_ENCHANT = _Proto1_16_4.PARTICLE_ENCHANT
PARTICLE_END_ROD = _Proto1_16_4.PARTICLE_END_ROD
PARTICLE_ENTITY_EFFECT = _Proto1_16_4.PARTICLE_ENTITY_EFFECT
PARTICLE_EXPLOSION_EMITTER = _Proto1_16_4.PARTICLE_EXPLOSION_EMITTER
PARTICLE_EXPLOSION = _Proto1_16_4.PARTICLE_EXPLOSION
PARTICLE_FALLING_DUST = _Proto1_16_4.PARTICLE_FALLING_DUST
PARTICLE_FIREWORK = _Proto1_16_4.PARTICLE_FIREWORK
PARTICLE_FISHING = _Proto1_16_4.PARTICLE_FISHING
PARTICLE_FLAME = _Proto1_16_4.PARTICLE_FLAME
PARTICLE_SOUL_FIRE_FLAME = _Proto1_16_4.PARTICLE_SOUL_FIRE_FLAME
PARTICLE_SOUL = _Proto1_16_4.PARTICLE_SOUL
PARTICLE_FLASH = _Proto1_16_4.PARTICLE_FLASH
PARTICLE_HAPPY_VILLAGER = _Proto1_16_4.PARTICLE_HAPPY_VILLAGER
PARTICLE_COMPOSTER = _Proto1_16_4.PARTICLE_COMPOSTER
PARTICLE_HEART = _Proto1_16_4.PARTICLE_HEART
PARTICLE_INSTANT_EFFECT = _Proto1_16_4.PARTICLE_INSTANT_EFFECT
PARTICLE_ITEM = _Proto1_16_4.PARTICLE_ITEM
PARTICLE_ITEM_SLIME = _Proto1_16_4.PARTICLE_ITEM_SLIME
PARTICLE_ITEM_SNOWBALL = _Proto1_16_4.PARTICLE_ITEM_SNOWBALL
PARTICLE_LARGE_SMOKE = _Proto1_16_4.PARTICLE_LARGE_SMOKE
PARTICLE_LAVA = _Proto1_16_4.PARTICLE_LAVA
PARTICLE_MYCELIUM = _Proto1_16_4.PARTICLE_MYCELIUM
PARTICLE_NOTE = _Proto1_16_4.PARTICLE_NOTE
PARTICLE_POOF = _Proto1_16_4.PARTICLE_POOF
PARTICLE_PORTAL = _Proto1_16_4.PARTICLE_PORTAL
PARTICLE_RAIN = _Proto1_16_4.PARTICLE_RAIN
PARTICLE_SMOKE = _Proto1_16_4.PARTICLE_SMOKE
PARTICLE_SNEEZE = _Proto1_16_4.PARTICLE_SNEEZE
PARTICLE_SPIT = _Proto1_16_4.PARTICLE_SPIT
PARTICLE_SQUID_INK = _Proto1_16_4.PARTICLE_SQUID_INK
PARTICLE_SWEEP_ATTACK = _Proto1_16_4.PARTICLE_SWEEP_ATTACK
PARTICLE_TOTEM_OF_UNDYING = _Proto1_16_4.PARTICLE_TOTEM_OF_UNDYING
PARTICLE_UNDERWATER = _Proto1_16_4.PARTICLE_UNDERWATER
PARTICLE_SPLASH = _Proto1_16_4.PARTICLE_SPLASH
PARTICLE_WITCH = _Proto1_16_4.PARTICLE_WITCH
PARTICLE_BUBBLE_POP = _Proto1_16_4.PARTICLE_BUBBLE_POP
PARTICLE_CURRENT_DOWN = _Proto1_16_4.PARTICLE_CURRENT_DOWN
PARTICLE_BUBBLE_COLUMN_UP = _Proto1_16_4.PARTICLE_BUBBLE_COLUMN_UP
PARTICLE_NAUTILUS = _Proto1_16_4.PARTICLE_NAUTILUS
PARTICLE_DOLPHIN = _Proto1_16_4.PARTICLE_DOLPHIN
PARTICLE_CAMPFIRE_COSY_SMOKE = _Proto1_16_4.PARTICLE_CAMPFIRE_COSY_SMOKE
PARTICLE_CAMPFIRE_SIGNAL_SMOKE = _Proto1_16_4.PARTICLE_CAMPFIRE_SIGNAL_SMOKE
PARTICLE_DRIPPING_HONEY = _Proto1_16_4.PARTICLE_DRIPPING_HONEY
PARTICLE_FALLING_HONEY = _Proto1_16_4.PARTICLE_FALLING_HONEY
PARTICLE_LANDING_HONEY = _Proto1_16_4.PARTICLE_LANDING_HONEY
PARTICLE_FALLING_NECTAR = _Proto1_16_4.PARTICLE_FALLING_NECTAR
PARTICLE_ASH = _Proto1_16_4.PARTICLE_ASH
PARTICLE_CRIMSON_SPORE = _Proto1_16_4.PARTICLE_CRIMSON_SPORE
PARTICLE_WARPED_SPORE = _Proto1_16_4.PARTICLE_WARPED_SPORE
PARTICLE_DRIPPING_OBSIDIAN_TEAR = _Proto1_16_4.PARTICLE_DRIPPING_OBSIDIAN_TEAR
PARTICLE_FALLING_OBSIDIAN_TEAR = _Proto1_16_4.PARTICLE_FALLING_OBSIDIAN_TEAR
PARTICLE_LANDING_OBSIDIAN_TEAR = _Proto1_16_4.PARTICLE_LANDING_OBSIDIAN_TEAR
PARTICLE_REVERSE_PORTAL = _Proto1_16_4.PARTICLE_REVERSE_PORTAL
PARTICLE_WHITE_ASH = _Proto1_16_4.PARTICLE_WHITE_ASH
MC_PROTO_VERSION = _Proto1_16_4.MC_PROTO_VERSION
SERVERBOUND = _Proto1_16_4.SERVERBOUND
CLIENTBOUND = _Proto1_16_4.CLIENTBOUND
DIRECTION_MAX = _Proto1_16_4.DIRECTION_MAX
HANDSHAKING = _Proto1_16_4.HANDSHAKING
STATUS = _Proto1_16_4.STATUS
LOGIN = _Proto1_16_4.LOGIN
PLAY = _Proto1_16_4.PLAY
STATE_MAX = _Proto1_16_4.STATE_MAX
CLIENTBOUND_HANDSHAKING_MAX = _Proto1_16_4.CLIENTBOUND_HANDSHAKING_MAX
SB_HS_SET_PROTOCOL = _Proto1_16_4.SB_HS_SET_PROTOCOL
SERVERBOUND_HANDSHAKING_MAX = _Proto1_16_4.SERVERBOUND_HANDSHAKING_MAX
CB_ST_SERVER_INFO = _Proto1_16_4.CB_ST_SERVER_INFO
CB_ST_PING = _Proto1_16_4.CB_ST_PING
CLIENTBOUND_STATUS_MAX = _Proto1_16_4.CLIENTBOUND_STATUS_MAX
SB_ST_PING_START = _Proto1_16_4.SB_ST_PING_START
SB_ST_PING = _Proto1_16_4.SB_ST_PING
SERVERBOUND_STATUS_MAX = _Proto1_16_4.SERVERBOUND_STATUS_MAX
CB_LG_DISCONNECT = _Proto1_16_4.CB_LG_DISCONNECT
CB_LG_ENCRYPTION_BEGIN = _Proto1_16_4.CB_LG_ENCRYPTION_BEGIN
CB_LG_SUCCESS = _Proto1_16_4.CB_LG_SUCCESS
CB_LG_COMPRESS = _Proto1_16_4.CB_LG_COMPRESS
CB_LG_LOGIN_PLUGIN_REQUEST = _Proto1_16_4.CB_LG_LOGIN_PLUGIN_REQUEST
CLIENTBOUND_LOGIN_MAX = _Proto1_16_4.CLIENTBOUND_LOGIN_MAX
SB_LG_LOGIN_START = _Proto1_16_4.SB_LG_LOGIN_START
SB_LG_ENCRYPTION_BEGIN = _Proto1_16_4.SB_LG_ENCRYPTION_BEGIN
SB_LG_LOGIN_PLUGIN_RESPONSE = _Proto1_16_4.SB_LG_LOGIN_PLUGIN_RESPONSE
SERVERBOUND_LOGIN_MAX = _Proto1_16_4.SERVERBOUND_LOGIN_MAX
CB_PL_SPAWN_ENTITY = _Proto1_16_4.CB_PL_SPAWN_ENTITY
CB_PL_SPAWN_ENTITY_EXPERIENCE_ORB = _Proto1_16_4.CB_PL_SPAWN_ENTITY_EXPERIENCE_ORB
CB_PL_SPAWN_ENTITY_LIVING = _Proto1_16_4.CB_PL_SPAWN_ENTITY_LIVING
CB_PL_SPAWN_ENTITY_PAINTING = _Proto1_16_4.CB_PL_SPAWN_ENTITY_PAINTING
CB_PL_NAMED_ENTITY_SPAWN = _Proto1_16_4.CB_PL_NAMED_ENTITY_SPAWN
CB_PL_ANIMATION = _Proto1_16_4.CB_PL_ANIMATION
CB_PL_STATISTICS = _Proto1_16_4.CB_PL_STATISTICS
CB_PL_ACKNOWLEDGE_PLAYER_DIGGING = _Proto1_16_4.CB_PL_ACKNOWLEDGE_PLAYER_DIGGING
CB_PL_BLOCK_BREAK_ANIMATION = _Proto1_16_4.CB_PL_BLOCK_BREAK_ANIMATION
CB_PL_TILE_ENTITY_DATA = _Proto1_16_4.CB_PL_TILE_ENTITY_DATA
CB_PL_BLOCK_ACTION = _Proto1_16_4.CB_PL_BLOCK_ACTION
CB_PL_BLOCK_CHANGE = _Proto1_16_4.CB_PL_BLOCK_CHANGE
CB_PL_BOSS_BAR = _Proto1_16_4.CB_PL_BOSS_BAR
CB_PL_DIFFICULTY = _Proto1_16_4.CB_PL_DIFFICULTY
CB_PL_CHAT = _Proto1_16_4.CB_PL_CHAT
CB_PL_TAB_COMPLETE = _Proto1_16_4.CB_PL_TAB_COMPLETE
CB_PL_DECLARE_COMMANDS = _Proto1_16_4.CB_PL_DECLARE_COMMANDS
CB_PL_TRANSACTION = _Proto1_16_4.CB_PL_TRANSACTION
CB_PL_CLOSE_WINDOW = _Proto1_16_4.CB_PL_CLOSE_WINDOW
CB_PL_WINDOW_ITEMS = _Proto1_16_4.CB_PL_WINDOW_ITEMS
CB_PL_CRAFT_PROGRESS_BAR = _Proto1_16_4.CB_PL_CRAFT_PROGRESS_BAR
CB_PL_SET_SLOT = _Proto1_16_4.CB_PL_SET_SLOT
CB_PL_SET_COOLDOWN = _Proto1_16_4.CB_PL_SET_COOLDOWN
CB_PL_CUSTOM_PAYLOAD = _Proto1_16_4.CB_PL_CUSTOM_PAYLOAD
CB_PL_NAMED_SOUND_EFFECT = _Proto1_16_4.CB_PL_NAMED_SOUND_EFFECT
CB_PL_KICK_DISCONNECT = _Proto1_16_4.CB_PL_KICK_DISCONNECT
CB_PL_ENTITY_STATUS = _Proto1_16_4.CB_PL_ENTITY_STATUS
CB_PL_EXPLOSION = _Proto1_16_4.CB_PL_EXPLOSION
CB_PL_UNLOAD_CHUNK = _Proto1_16_4.CB_PL_UNLOAD_CHUNK
CB_PL_GAME_STATE_CHANGE = _Proto1_16_4.CB_PL_GAME_STATE_CHANGE
CB_PL_OPEN_HORSE_WINDOW = _Proto1_16_4.CB_PL_OPEN_HORSE_WINDOW
CB_PL_KEEP_ALIVE = _Proto1_16_4.CB_PL_KEEP_ALIVE
CB_PL_MAP_CHUNK = _Proto1_16_4.CB_PL_MAP_CHUNK
CB_PL_WORLD_EVENT = _Proto1_16_4.CB_PL_WORLD_EVENT
CB_PL_WORLD_PARTICLES = _Proto1_16_4.CB_PL_WORLD_PARTICLES
CB_PL_UPDATE_LIGHT = _Proto1_16_4.CB_PL_UPDATE_LIGHT
CB_PL_LOGIN = _Proto1_16_4.CB_PL_LOGIN
CB_PL_MAP = _Proto1_16_4.CB_PL_MAP
CB_PL_TRADE_LIST = _Proto1_16_4.CB_PL_TRADE_LIST
CB_PL_REL_ENTITY_MOVE = _Proto1_16_4.CB_PL_REL_ENTITY_MOVE
CB_PL_ENTITY_MOVE_LOOK = _Proto1_16_4.CB_PL_ENTITY_MOVE_LOOK
CB_PL_ENTITY_LOOK = _Proto1_16_4.CB_PL_ENTITY_LOOK
CB_PL_ENTITY = _Proto1_16_4.CB_PL_ENTITY
CB_PL_VEHICLE_MOVE = _Proto1_16_4.CB_PL_VEHICLE_MOVE
CB_PL_OPEN_BOOK = _Proto1_16_4.CB_PL_OPEN_BOOK
CB_PL_OPEN_WINDOW = _Proto1_16_4.CB_PL_OPEN_WINDOW
CB_PL_OPEN_SIGN_ENTITY = _Proto1_16_4.CB_PL_OPEN_SIGN_ENTITY
CB_PL_CRAFT_RECIPE_RESPONSE = _Proto1_16_4.CB_PL_CRAFT_RECIPE_RESPONSE
CB_PL_ABILITIES = _Proto1_16_4.CB_PL_ABILITIES
CB_PL_COMBAT_EVENT = _Proto1_16_4.CB_PL_COMBAT_EVENT
CB_PL_PLAYER_INFO = _Proto1_16_4.CB_PL_PLAYER_INFO
CB_PL_FACE_PLAYER = _Proto1_16_4.CB_PL_FACE_PLAYER
CB_PL_POSITION = _Proto1_16_4.CB_PL_POSITION
CB_PL_UNLOCK_RECIPES = _Proto1_16_4.CB_PL_UNLOCK_RECIPES
CB_PL_ENTITY_DESTROY = _Proto1_16_4.CB_PL_ENTITY_DESTROY
CB_PL_REMOVE_ENTITY_EFFECT = _Proto1_16_4.CB_PL_REMOVE_ENTITY_EFFECT
CB_PL_RESOURCE_PACK_SEND = _Proto1_16_4.CB_PL_RESOURCE_PACK_SEND
CB_PL_RESPAWN = _Proto1_16_4.CB_PL_RESPAWN
CB_PL_ENTITY_HEAD_ROTATION = _Proto1_16_4.CB_PL_ENTITY_HEAD_ROTATION
CB_PL_MULTI_BLOCK_CHANGE = _Proto1_16_4.CB_PL_MULTI_BLOCK_CHANGE
CB_PL_SELECT_ADVANCEMENT_TAB = _Proto1_16_4.CB_PL_SELECT_ADVANCEMENT_TAB
CB_PL_WORLD_BORDER = _Proto1_16_4.CB_PL_WORLD_BORDER
CB_PL_CAMERA = _Proto1_16_4.CB_PL_CAMERA
CB_PL_HELD_ITEM_SLOT = _Proto1_16_4.CB_PL_HELD_ITEM_SLOT
CB_PL_UPDATE_VIEW_POSITION = _Proto1_16_4.CB_PL_UPDATE_VIEW_POSITION
CB_PL_UPDATE_VIEW_DISTANCE = _Proto1_16_4.CB_PL_UPDATE_VIEW_DISTANCE
CB_PL_SPAWN_POSITION = _Proto1_16_4.CB_PL_SPAWN_POSITION
CB_PL_SCOREBOARD_DISPLAY_OBJECTIVE = _Proto1_16_4.CB_PL_SCOREBOARD_DISPLAY_OBJECTIVE
CB_PL_ENTITY_METADATA = _Proto1_16_4.CB_PL_ENTITY_METADATA
CB_PL_ATTACH_ENTITY = _Proto1_16_4.CB_PL_ATTACH_ENTITY
CB_PL_ENTITY_VELOCITY = _Proto1_16_4.CB_PL_ENTITY_VELOCITY
CB_PL_ENTITY_EQUIPMENT = _Proto1_16_4.CB_PL_ENTITY_EQUIPMENT
CB_PL_EXPERIENCE = _Proto1_16_4.CB_PL_EXPERIENCE
CB_PL_UPDATE_HEALTH = _Proto1_16_4.CB_PL_UPDATE_HEALTH
CB_PL_SCOREBOARD_OBJECTIVE = _Proto1_16_4.CB_PL_SCOREBOARD_OBJECTIVE
CB_PL_SET_PASSENGERS = _Proto1_16_4.CB_PL_SET_PASSENGERS
CB_PL_TEAMS = _Proto1_16_4.CB_PL_TEAMS
CB_PL_SCOREBOARD_SCORE = _Proto1_16_4.CB_PL_SCOREBOARD_SCORE
CB_PL_UPDATE_TIME = _Proto1_16_4.CB_PL_UPDATE_TIME
CB_PL_TITLE = _Proto1_16_4.CB_PL_TITLE
CB_PL_ENTITY_SOUND_EFFECT = _Proto1_16_4.CB_PL_ENTITY_SOUND_EFFECT
CB_PL_SOUND_EFFECT = _Proto1_16_4.CB_PL_SOUND_EFFECT
CB_PL_STOP_SOUND = _Proto1_16_4.CB_PL_STOP_SOUND
CB_PL_PLAYERLIST_HEADER = _Proto1_16_4.CB_PL_PLAYERLIST_HEADER
CB_PL_NBT_QUERY_RESPONSE = _Proto1_16_4.CB_PL_NBT_QUERY_RESPONSE
CB_PL_COLLECT = _Proto1_16_4.CB_PL_COLLECT
CB_PL_ENTITY_TELEPORT = _Proto1_16_4.CB_PL_ENTITY_TELEPORT
CB_PL_ADVANCEMENTS = _Proto1_16_4.CB_PL_ADVANCEMENTS
CB_PL_ENTITY_UPDATE_ATTRIBUTES = _Proto1_16_4.CB_PL_ENTITY_UPDATE_ATTRIBUTES
CB_PL_ENTITY_EFFECT = _Proto1_16_4.CB_PL_ENTITY_EFFECT
CB_PL_DECLARE_RECIPES = _Proto1_16_4.CB_PL_DECLARE_RECIPES
CB_PL_TAGS = _Proto1_16_4.CB_PL_TAGS
CLIENTBOUND_PLAY_MAX = _Proto1_16_4.CLIENTBOUND_PLAY_MAX
SB_PL_TELEPORT_CONFIRM = _Proto1_16_4.SB_PL_TELEPORT_CONFIRM
SB_PL_QUERY_BLOCK_NBT = _Proto1_16_4.SB_PL_QUERY_BLOCK_NBT
SB_PL_SET_DIFFICULTY = _Proto1_16_4.SB_PL_SET_DIFFICULTY
SB_PL_CHAT = _Proto1_16_4.SB_PL_CHAT
SB_PL_CLIENT_COMMAND = _Proto1_16_4.SB_PL_CLIENT_COMMAND
SB_PL_SETTINGS = _Proto1_16_4.SB_PL_SETTINGS
SB_PL_TAB_COMPLETE = _Proto1_16_4.SB_PL_TAB_COMPLETE
SB_PL_TRANSACTION = _Proto1_16_4.SB_PL_TRANSACTION
SB_PL_ENCHANT_ITEM = _Proto1_16_4.SB_PL_ENCHANT_ITEM
SB_PL_WINDOW_CLICK = _Proto1_16_4.SB_PL_WINDOW_CLICK
SB_PL_CLOSE_WINDOW = _Proto1_16_4.SB_PL_CLOSE_WINDOW
SB_PL_CUSTOM_PAYLOAD = _Proto1_16_4.SB_PL_CUSTOM_PAYLOAD
SB_PL_EDIT_BOOK = _Proto1_16_4.SB_PL_EDIT_BOOK
SB_PL_QUERY_ENTITY_NBT = _Proto1_16_4.SB_PL_QUERY_ENTITY_NBT
SB_PL_USE_ENTITY = _Proto1_16_4.SB_PL_USE_ENTITY
SB_PL_GENERATE_STRUCTURE = _Proto1_16_4.SB_PL_GENERATE_STRUCTURE
SB_PL_KEEP_ALIVE = _Proto1_16_4.SB_PL_KEEP_ALIVE
SB_PL_LOCK_DIFFICULTY = _Proto1_16_4.SB_PL_LOCK_DIFFICULTY
SB_PL_POSITION = _Proto1_16_4.SB_PL_POSITION
SB_PL_POSITION_LOOK = _Proto1_16_4.SB_PL_POSITION_LOOK
SB_PL_LOOK = _Proto1_16_4.SB_PL_LOOK
SB_PL_FLYING = _Proto1_16_4.SB_PL_FLYING
SB_PL_VEHICLE_MOVE = _Proto1_16_4.SB_PL_VEHICLE_MOVE
SB_PL_STEER_BOAT = _Proto1_16_4.SB_PL_STEER_BOAT
SB_PL_PICK_ITEM = _Proto1_16_4.SB_PL_PICK_ITEM
SB_PL_CRAFT_RECIPE_REQUEST = _Proto1_16_4.SB_PL_CRAFT_RECIPE_REQUEST
SB_PL_ABILITIES = _Proto1_16_4.SB_PL_ABILITIES
SB_PL_BLOCK_DIG = _Proto1_16_4.SB_PL_BLOCK_DIG
SB_PL_ENTITY_ACTION = _Proto1_16_4.SB_PL_ENTITY_ACTION
SB_PL_STEER_VEHICLE = _Proto1_16_4.SB_PL_STEER_VEHICLE
SB_PL_DISPLAYED_RECIPE = _Proto1_16_4.SB_PL_DISPLAYED_RECIPE
SB_PL_RECIPE_BOOK = _Proto1_16_4.SB_PL_RECIPE_BOOK
SB_PL_NAME_ITEM = _Proto1_16_4.SB_PL_NAME_ITEM
SB_PL_RESOURCE_PACK_RECEIVE = _Proto1_16_4.SB_PL_RESOURCE_PACK_RECEIVE
SB_PL_ADVANCEMENT_TAB = _Proto1_16_4.SB_PL_ADVANCEMENT_TAB
SB_PL_SELECT_TRADE = _Proto1_16_4.SB_PL_SELECT_TRADE
SB_PL_SET_BEACON_EFFECT = _Proto1_16_4.SB_PL_SET_BEACON_EFFECT
SB_PL_HELD_ITEM_SLOT = _Proto1_16_4.SB_PL_HELD_ITEM_SLOT
SB_PL_UPDATE_COMMAND_BLOCK = _Proto1_16_4.SB_PL_UPDATE_COMMAND_BLOCK
SB_PL_UPDATE_COMMAND_BLOCK_MINECART = _Proto1_16_4.SB_PL_UPDATE_COMMAND_BLOCK_MINECART
SB_PL_SET_CREATIVE_SLOT = _Proto1_16_4.SB_PL_SET_CREATIVE_SLOT
SB_PL_UPDATE_JIGSAW_BLOCK = _Proto1_16_4.SB_PL_UPDATE_JIGSAW_BLOCK
SB_PL_UPDATE_STRUCTURE_BLOCK = _Proto1_16_4.SB_PL_UPDATE_STRUCTURE_BLOCK
SB_PL_UPDATE_SIGN = _Proto1_16_4.SB_PL_UPDATE_SIGN
SB_PL_ARM_ANIMATION = _Proto1_16_4.SB_PL_ARM_ANIMATION
SB_PL_SPECTATE = _Proto1_16_4.SB_PL_SPECTATE
SB_PL_BLOCK_PLACE = _Proto1_16_4.SB_PL_BLOCK_PLACE
SB_PL_USE_ITEM = _Proto1_16_4.SB_PL_USE_ITEM
SERVERBOUND_PLAY_MAX = _Proto1_16_4.SERVERBOUND_PLAY_MAX
class Packet(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    state = property(_Proto1_16_4.Packet_state_get)
    direction = property(_Proto1_16_4.Packet_direction_get)
    packet_id = property(_Proto1_16_4.Packet_packet_id_get)
    packet_name = property(_Proto1_16_4.Packet_packet_name_get)
    __swig_destroy__ = _Proto1_16_4.delete_Packet

    def encode(self, buf: "std::ostream &") -> "void":
        return _Proto1_16_4.Packet_encode(self, buf)

    def decode(self, buf: "std::istream &") -> "void":
        return _Proto1_16_4.Packet_decode(self, buf)

# Register Packet in _Proto1_16_4:
_Proto1_16_4.Packet_swigregister(Packet)
cvar = _Proto1_16_4.cvar
protocol_max_ids = cvar.protocol_max_ids


def make_packet(state: "mcd::packet_state", dir: "mcd::packet_direction", packet_id: "int") -> "std::unique_ptr< mcd::Packet >":
    return _Proto1_16_4.make_packet(state, dir, packet_id)
class ServerboundSetProtocol(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    protocolVersion = property(_Proto1_16_4.ServerboundSetProtocol_protocolVersion_get, _Proto1_16_4.ServerboundSetProtocol_protocolVersion_set)
    serverHost = property(_Proto1_16_4.ServerboundSetProtocol_serverHost_get, _Proto1_16_4.ServerboundSetProtocol_serverHost_set)
    serverPort = property(_Proto1_16_4.ServerboundSetProtocol_serverPort_get, _Proto1_16_4.ServerboundSetProtocol_serverPort_set)
    nextState = property(_Proto1_16_4.ServerboundSetProtocol_nextState_get, _Proto1_16_4.ServerboundSetProtocol_nextState_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSetProtocol_swiginit(self, _Proto1_16_4.new_ServerboundSetProtocol())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSetProtocol_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSetProtocol_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSetProtocol

# Register ServerboundSetProtocol in _Proto1_16_4:
_Proto1_16_4.ServerboundSetProtocol_swigregister(ServerboundSetProtocol)

class ServerboundLegacyServerListPing(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    payload = property(_Proto1_16_4.ServerboundLegacyServerListPing_payload_get, _Proto1_16_4.ServerboundLegacyServerListPing_payload_set)

    def __init__(self):
        _Proto1_16_4.ServerboundLegacyServerListPing_swiginit(self, _Proto1_16_4.new_ServerboundLegacyServerListPing())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundLegacyServerListPing_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundLegacyServerListPing_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundLegacyServerListPing

# Register ServerboundLegacyServerListPing in _Proto1_16_4:
_Proto1_16_4.ServerboundLegacyServerListPing_swigregister(ServerboundLegacyServerListPing)

class ClientboundServerInfo(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    response = property(_Proto1_16_4.ClientboundServerInfo_response_get, _Proto1_16_4.ClientboundServerInfo_response_set)

    def __init__(self):
        _Proto1_16_4.ClientboundServerInfo_swiginit(self, _Proto1_16_4.new_ClientboundServerInfo())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundServerInfo_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundServerInfo_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundServerInfo

# Register ClientboundServerInfo in _Proto1_16_4:
_Proto1_16_4.ClientboundServerInfo_swigregister(ClientboundServerInfo)

class ClientboundPing(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    time = property(_Proto1_16_4.ClientboundPing_time_get, _Proto1_16_4.ClientboundPing_time_set)

    def __init__(self):
        _Proto1_16_4.ClientboundPing_swiginit(self, _Proto1_16_4.new_ClientboundPing())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundPing_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundPing_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundPing

# Register ClientboundPing in _Proto1_16_4:
_Proto1_16_4.ClientboundPing_swigregister(ClientboundPing)

class ServerboundPingStart(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self):
        _Proto1_16_4.ServerboundPingStart_swiginit(self, _Proto1_16_4.new_ServerboundPingStart())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundPingStart_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundPingStart_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundPingStart

# Register ServerboundPingStart in _Proto1_16_4:
_Proto1_16_4.ServerboundPingStart_swigregister(ServerboundPingStart)

class ServerboundPing(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    time = property(_Proto1_16_4.ServerboundPing_time_get, _Proto1_16_4.ServerboundPing_time_set)

    def __init__(self):
        _Proto1_16_4.ServerboundPing_swiginit(self, _Proto1_16_4.new_ServerboundPing())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundPing_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundPing_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundPing

# Register ServerboundPing in _Proto1_16_4:
_Proto1_16_4.ServerboundPing_swigregister(ServerboundPing)

class ClientboundDisconnect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    reason = property(_Proto1_16_4.ClientboundDisconnect_reason_get, _Proto1_16_4.ClientboundDisconnect_reason_set)

    def __init__(self):
        _Proto1_16_4.ClientboundDisconnect_swiginit(self, _Proto1_16_4.new_ClientboundDisconnect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundDisconnect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundDisconnect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundDisconnect

# Register ClientboundDisconnect in _Proto1_16_4:
_Proto1_16_4.ClientboundDisconnect_swigregister(ClientboundDisconnect)

class ClientboundEncryptionBegin(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    serverId = property(_Proto1_16_4.ClientboundEncryptionBegin_serverId_get, _Proto1_16_4.ClientboundEncryptionBegin_serverId_set)
    publicKey = property(_Proto1_16_4.ClientboundEncryptionBegin_publicKey_get, _Proto1_16_4.ClientboundEncryptionBegin_publicKey_set)
    verifyToken = property(_Proto1_16_4.ClientboundEncryptionBegin_verifyToken_get, _Proto1_16_4.ClientboundEncryptionBegin_verifyToken_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEncryptionBegin_swiginit(self, _Proto1_16_4.new_ClientboundEncryptionBegin())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEncryptionBegin_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEncryptionBegin_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEncryptionBegin

# Register ClientboundEncryptionBegin in _Proto1_16_4:
_Proto1_16_4.ClientboundEncryptionBegin_swigregister(ClientboundEncryptionBegin)

class ClientboundSuccess(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    uuid = property(_Proto1_16_4.ClientboundSuccess_uuid_get, _Proto1_16_4.ClientboundSuccess_uuid_set)
    username = property(_Proto1_16_4.ClientboundSuccess_username_get, _Proto1_16_4.ClientboundSuccess_username_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSuccess_swiginit(self, _Proto1_16_4.new_ClientboundSuccess())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSuccess_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSuccess_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSuccess

# Register ClientboundSuccess in _Proto1_16_4:
_Proto1_16_4.ClientboundSuccess_swigregister(ClientboundSuccess)

class ClientboundCompress(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    threshold = property(_Proto1_16_4.ClientboundCompress_threshold_get, _Proto1_16_4.ClientboundCompress_threshold_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCompress_swiginit(self, _Proto1_16_4.new_ClientboundCompress())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCompress_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCompress_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCompress

# Register ClientboundCompress in _Proto1_16_4:
_Proto1_16_4.ClientboundCompress_swigregister(ClientboundCompress)

class ClientboundLoginPluginRequest(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    messageId = property(_Proto1_16_4.ClientboundLoginPluginRequest_messageId_get, _Proto1_16_4.ClientboundLoginPluginRequest_messageId_set)
    channel = property(_Proto1_16_4.ClientboundLoginPluginRequest_channel_get, _Proto1_16_4.ClientboundLoginPluginRequest_channel_set)
    data = property(_Proto1_16_4.ClientboundLoginPluginRequest_data_get, _Proto1_16_4.ClientboundLoginPluginRequest_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundLoginPluginRequest_swiginit(self, _Proto1_16_4.new_ClientboundLoginPluginRequest())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundLoginPluginRequest_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundLoginPluginRequest_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundLoginPluginRequest

# Register ClientboundLoginPluginRequest in _Proto1_16_4:
_Proto1_16_4.ClientboundLoginPluginRequest_swigregister(ClientboundLoginPluginRequest)

class ServerboundLoginStart(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    username = property(_Proto1_16_4.ServerboundLoginStart_username_get, _Proto1_16_4.ServerboundLoginStart_username_set)

    def __init__(self):
        _Proto1_16_4.ServerboundLoginStart_swiginit(self, _Proto1_16_4.new_ServerboundLoginStart())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundLoginStart_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundLoginStart_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundLoginStart

# Register ServerboundLoginStart in _Proto1_16_4:
_Proto1_16_4.ServerboundLoginStart_swigregister(ServerboundLoginStart)

class ServerboundEncryptionBegin(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sharedSecret = property(_Proto1_16_4.ServerboundEncryptionBegin_sharedSecret_get, _Proto1_16_4.ServerboundEncryptionBegin_sharedSecret_set)
    verifyToken = property(_Proto1_16_4.ServerboundEncryptionBegin_verifyToken_get, _Proto1_16_4.ServerboundEncryptionBegin_verifyToken_set)

    def __init__(self):
        _Proto1_16_4.ServerboundEncryptionBegin_swiginit(self, _Proto1_16_4.new_ServerboundEncryptionBegin())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundEncryptionBegin_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundEncryptionBegin_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundEncryptionBegin

# Register ServerboundEncryptionBegin in _Proto1_16_4:
_Proto1_16_4.ServerboundEncryptionBegin_swigregister(ServerboundEncryptionBegin)

class ServerboundLoginPluginResponse(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    messageId = property(_Proto1_16_4.ServerboundLoginPluginResponse_messageId_get, _Proto1_16_4.ServerboundLoginPluginResponse_messageId_set)
    data = property(_Proto1_16_4.ServerboundLoginPluginResponse_data_get, _Proto1_16_4.ServerboundLoginPluginResponse_data_set)

    def __init__(self):
        _Proto1_16_4.ServerboundLoginPluginResponse_swiginit(self, _Proto1_16_4.new_ServerboundLoginPluginResponse())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundLoginPluginResponse_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundLoginPluginResponse_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundLoginPluginResponse

# Register ServerboundLoginPluginResponse in _Proto1_16_4:
_Proto1_16_4.ServerboundLoginPluginResponse_swigregister(ServerboundLoginPluginResponse)

class ClientboundSpawnEntity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundSpawnEntity_entityId_get, _Proto1_16_4.ClientboundSpawnEntity_entityId_set)
    objectUUID = property(_Proto1_16_4.ClientboundSpawnEntity_objectUUID_get, _Proto1_16_4.ClientboundSpawnEntity_objectUUID_set)
    type = property(_Proto1_16_4.ClientboundSpawnEntity_type_get, _Proto1_16_4.ClientboundSpawnEntity_type_set)
    x = property(_Proto1_16_4.ClientboundSpawnEntity_x_get, _Proto1_16_4.ClientboundSpawnEntity_x_set)
    y = property(_Proto1_16_4.ClientboundSpawnEntity_y_get, _Proto1_16_4.ClientboundSpawnEntity_y_set)
    z = property(_Proto1_16_4.ClientboundSpawnEntity_z_get, _Proto1_16_4.ClientboundSpawnEntity_z_set)
    pitch = property(_Proto1_16_4.ClientboundSpawnEntity_pitch_get, _Proto1_16_4.ClientboundSpawnEntity_pitch_set)
    yaw = property(_Proto1_16_4.ClientboundSpawnEntity_yaw_get, _Proto1_16_4.ClientboundSpawnEntity_yaw_set)
    objectData = property(_Proto1_16_4.ClientboundSpawnEntity_objectData_get, _Proto1_16_4.ClientboundSpawnEntity_objectData_set)
    velocityX = property(_Proto1_16_4.ClientboundSpawnEntity_velocityX_get, _Proto1_16_4.ClientboundSpawnEntity_velocityX_set)
    velocityY = property(_Proto1_16_4.ClientboundSpawnEntity_velocityY_get, _Proto1_16_4.ClientboundSpawnEntity_velocityY_set)
    velocityZ = property(_Proto1_16_4.ClientboundSpawnEntity_velocityZ_get, _Proto1_16_4.ClientboundSpawnEntity_velocityZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSpawnEntity_swiginit(self, _Proto1_16_4.new_ClientboundSpawnEntity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSpawnEntity

# Register ClientboundSpawnEntity in _Proto1_16_4:
_Proto1_16_4.ClientboundSpawnEntity_swigregister(ClientboundSpawnEntity)

class ClientboundSpawnEntityExperienceOrb(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_entityId_get, _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_entityId_set)
    x = property(_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_x_get, _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_x_set)
    y = property(_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_y_get, _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_y_set)
    z = property(_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_z_get, _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_z_set)
    count = property(_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_count_get, _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_count_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_swiginit(self, _Proto1_16_4.new_ClientboundSpawnEntityExperienceOrb())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityExperienceOrb_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSpawnEntityExperienceOrb

# Register ClientboundSpawnEntityExperienceOrb in _Proto1_16_4:
_Proto1_16_4.ClientboundSpawnEntityExperienceOrb_swigregister(ClientboundSpawnEntityExperienceOrb)

class ClientboundSpawnEntityLiving(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundSpawnEntityLiving_entityId_get, _Proto1_16_4.ClientboundSpawnEntityLiving_entityId_set)
    entityUUID = property(_Proto1_16_4.ClientboundSpawnEntityLiving_entityUUID_get, _Proto1_16_4.ClientboundSpawnEntityLiving_entityUUID_set)
    type = property(_Proto1_16_4.ClientboundSpawnEntityLiving_type_get, _Proto1_16_4.ClientboundSpawnEntityLiving_type_set)
    x = property(_Proto1_16_4.ClientboundSpawnEntityLiving_x_get, _Proto1_16_4.ClientboundSpawnEntityLiving_x_set)
    y = property(_Proto1_16_4.ClientboundSpawnEntityLiving_y_get, _Proto1_16_4.ClientboundSpawnEntityLiving_y_set)
    z = property(_Proto1_16_4.ClientboundSpawnEntityLiving_z_get, _Proto1_16_4.ClientboundSpawnEntityLiving_z_set)
    yaw = property(_Proto1_16_4.ClientboundSpawnEntityLiving_yaw_get, _Proto1_16_4.ClientboundSpawnEntityLiving_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundSpawnEntityLiving_pitch_get, _Proto1_16_4.ClientboundSpawnEntityLiving_pitch_set)
    headPitch = property(_Proto1_16_4.ClientboundSpawnEntityLiving_headPitch_get, _Proto1_16_4.ClientboundSpawnEntityLiving_headPitch_set)
    velocityX = property(_Proto1_16_4.ClientboundSpawnEntityLiving_velocityX_get, _Proto1_16_4.ClientboundSpawnEntityLiving_velocityX_set)
    velocityY = property(_Proto1_16_4.ClientboundSpawnEntityLiving_velocityY_get, _Proto1_16_4.ClientboundSpawnEntityLiving_velocityY_set)
    velocityZ = property(_Proto1_16_4.ClientboundSpawnEntityLiving_velocityZ_get, _Proto1_16_4.ClientboundSpawnEntityLiving_velocityZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSpawnEntityLiving_swiginit(self, _Proto1_16_4.new_ClientboundSpawnEntityLiving())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityLiving_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityLiving_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSpawnEntityLiving

# Register ClientboundSpawnEntityLiving in _Proto1_16_4:
_Proto1_16_4.ClientboundSpawnEntityLiving_swigregister(ClientboundSpawnEntityLiving)

class ClientboundSpawnEntityPainting(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundSpawnEntityPainting_entityId_get, _Proto1_16_4.ClientboundSpawnEntityPainting_entityId_set)
    entityUUID = property(_Proto1_16_4.ClientboundSpawnEntityPainting_entityUUID_get, _Proto1_16_4.ClientboundSpawnEntityPainting_entityUUID_set)
    title = property(_Proto1_16_4.ClientboundSpawnEntityPainting_title_get, _Proto1_16_4.ClientboundSpawnEntityPainting_title_set)
    location = property(_Proto1_16_4.ClientboundSpawnEntityPainting_location_get, _Proto1_16_4.ClientboundSpawnEntityPainting_location_set)
    direction = property(_Proto1_16_4.ClientboundSpawnEntityPainting_direction_get, _Proto1_16_4.ClientboundSpawnEntityPainting_direction_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSpawnEntityPainting_swiginit(self, _Proto1_16_4.new_ClientboundSpawnEntityPainting())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityPainting_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnEntityPainting_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSpawnEntityPainting

# Register ClientboundSpawnEntityPainting in _Proto1_16_4:
_Proto1_16_4.ClientboundSpawnEntityPainting_swigregister(ClientboundSpawnEntityPainting)

class ClientboundNamedEntitySpawn(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundNamedEntitySpawn_entityId_get, _Proto1_16_4.ClientboundNamedEntitySpawn_entityId_set)
    playerUUID = property(_Proto1_16_4.ClientboundNamedEntitySpawn_playerUUID_get, _Proto1_16_4.ClientboundNamedEntitySpawn_playerUUID_set)
    x = property(_Proto1_16_4.ClientboundNamedEntitySpawn_x_get, _Proto1_16_4.ClientboundNamedEntitySpawn_x_set)
    y = property(_Proto1_16_4.ClientboundNamedEntitySpawn_y_get, _Proto1_16_4.ClientboundNamedEntitySpawn_y_set)
    z = property(_Proto1_16_4.ClientboundNamedEntitySpawn_z_get, _Proto1_16_4.ClientboundNamedEntitySpawn_z_set)
    yaw = property(_Proto1_16_4.ClientboundNamedEntitySpawn_yaw_get, _Proto1_16_4.ClientboundNamedEntitySpawn_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundNamedEntitySpawn_pitch_get, _Proto1_16_4.ClientboundNamedEntitySpawn_pitch_set)

    def __init__(self):
        _Proto1_16_4.ClientboundNamedEntitySpawn_swiginit(self, _Proto1_16_4.new_ClientboundNamedEntitySpawn())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundNamedEntitySpawn_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundNamedEntitySpawn_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundNamedEntitySpawn

# Register ClientboundNamedEntitySpawn in _Proto1_16_4:
_Proto1_16_4.ClientboundNamedEntitySpawn_swigregister(ClientboundNamedEntitySpawn)

class ClientboundAnimation(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundAnimation_entityId_get, _Proto1_16_4.ClientboundAnimation_entityId_set)
    animation = property(_Proto1_16_4.ClientboundAnimation_animation_get, _Proto1_16_4.ClientboundAnimation_animation_set)

    def __init__(self):
        _Proto1_16_4.ClientboundAnimation_swiginit(self, _Proto1_16_4.new_ClientboundAnimation())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundAnimation_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundAnimation_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundAnimation

# Register ClientboundAnimation in _Proto1_16_4:
_Proto1_16_4.ClientboundAnimation_swigregister(ClientboundAnimation)

class ClientboundStatistics(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entries = property(_Proto1_16_4.ClientboundStatistics_entries_get, _Proto1_16_4.ClientboundStatistics_entries_set)

    def __init__(self):
        _Proto1_16_4.ClientboundStatistics_swiginit(self, _Proto1_16_4.new_ClientboundStatistics())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundStatistics_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundStatistics_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundStatistics

# Register ClientboundStatistics in _Proto1_16_4:
_Proto1_16_4.ClientboundStatistics_swigregister(ClientboundStatistics)

class Statistics_entries_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    categoryId = property(_Proto1_16_4.Statistics_entries_type_categoryId_get, _Proto1_16_4.Statistics_entries_type_categoryId_set)
    statisticId = property(_Proto1_16_4.Statistics_entries_type_statisticId_get, _Proto1_16_4.Statistics_entries_type_statisticId_set)
    value = property(_Proto1_16_4.Statistics_entries_type_value_get, _Proto1_16_4.Statistics_entries_type_value_set)

    def __init__(self):
        _Proto1_16_4.Statistics_entries_type_swiginit(self, _Proto1_16_4.new_Statistics_entries_type())
    __swig_destroy__ = _Proto1_16_4.delete_Statistics_entries_type

# Register Statistics_entries_type in _Proto1_16_4:
_Proto1_16_4.Statistics_entries_type_swigregister(Statistics_entries_type)

class ClientboundAcknowledgePlayerDigging(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundAcknowledgePlayerDigging_location_get, _Proto1_16_4.ClientboundAcknowledgePlayerDigging_location_set)
    block = property(_Proto1_16_4.ClientboundAcknowledgePlayerDigging_block_get, _Proto1_16_4.ClientboundAcknowledgePlayerDigging_block_set)
    status = property(_Proto1_16_4.ClientboundAcknowledgePlayerDigging_status_get, _Proto1_16_4.ClientboundAcknowledgePlayerDigging_status_set)
    successful = property(_Proto1_16_4.ClientboundAcknowledgePlayerDigging_successful_get, _Proto1_16_4.ClientboundAcknowledgePlayerDigging_successful_set)

    def __init__(self):
        _Proto1_16_4.ClientboundAcknowledgePlayerDigging_swiginit(self, _Proto1_16_4.new_ClientboundAcknowledgePlayerDigging())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundAcknowledgePlayerDigging_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundAcknowledgePlayerDigging_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundAcknowledgePlayerDigging

# Register ClientboundAcknowledgePlayerDigging in _Proto1_16_4:
_Proto1_16_4.ClientboundAcknowledgePlayerDigging_swigregister(ClientboundAcknowledgePlayerDigging)

class ClientboundBlockBreakAnimation(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundBlockBreakAnimation_entityId_get, _Proto1_16_4.ClientboundBlockBreakAnimation_entityId_set)
    location = property(_Proto1_16_4.ClientboundBlockBreakAnimation_location_get, _Proto1_16_4.ClientboundBlockBreakAnimation_location_set)
    destroyStage = property(_Proto1_16_4.ClientboundBlockBreakAnimation_destroyStage_get, _Proto1_16_4.ClientboundBlockBreakAnimation_destroyStage_set)

    def __init__(self):
        _Proto1_16_4.ClientboundBlockBreakAnimation_swiginit(self, _Proto1_16_4.new_ClientboundBlockBreakAnimation())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundBlockBreakAnimation_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundBlockBreakAnimation_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundBlockBreakAnimation

# Register ClientboundBlockBreakAnimation in _Proto1_16_4:
_Proto1_16_4.ClientboundBlockBreakAnimation_swigregister(ClientboundBlockBreakAnimation)

class ClientboundTileEntityData(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundTileEntityData_location_get, _Proto1_16_4.ClientboundTileEntityData_location_set)
    action = property(_Proto1_16_4.ClientboundTileEntityData_action_get, _Proto1_16_4.ClientboundTileEntityData_action_set)
    nbtData = property(_Proto1_16_4.ClientboundTileEntityData_nbtData_get, _Proto1_16_4.ClientboundTileEntityData_nbtData_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTileEntityData_swiginit(self, _Proto1_16_4.new_ClientboundTileEntityData())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTileEntityData_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTileEntityData_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTileEntityData

# Register ClientboundTileEntityData in _Proto1_16_4:
_Proto1_16_4.ClientboundTileEntityData_swigregister(ClientboundTileEntityData)

class ClientboundBlockAction(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundBlockAction_location_get, _Proto1_16_4.ClientboundBlockAction_location_set)
    byte1 = property(_Proto1_16_4.ClientboundBlockAction_byte1_get, _Proto1_16_4.ClientboundBlockAction_byte1_set)
    byte2 = property(_Proto1_16_4.ClientboundBlockAction_byte2_get, _Proto1_16_4.ClientboundBlockAction_byte2_set)
    blockId = property(_Proto1_16_4.ClientboundBlockAction_blockId_get, _Proto1_16_4.ClientboundBlockAction_blockId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundBlockAction_swiginit(self, _Proto1_16_4.new_ClientboundBlockAction())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundBlockAction_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundBlockAction_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundBlockAction

# Register ClientboundBlockAction in _Proto1_16_4:
_Proto1_16_4.ClientboundBlockAction_swigregister(ClientboundBlockAction)

class ClientboundBlockChange(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundBlockChange_location_get, _Proto1_16_4.ClientboundBlockChange_location_set)
    type = property(_Proto1_16_4.ClientboundBlockChange_type_get, _Proto1_16_4.ClientboundBlockChange_type_set)

    def __init__(self):
        _Proto1_16_4.ClientboundBlockChange_swiginit(self, _Proto1_16_4.new_ClientboundBlockChange())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundBlockChange_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundBlockChange_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundBlockChange

# Register ClientboundBlockChange in _Proto1_16_4:
_Proto1_16_4.ClientboundBlockChange_swigregister(ClientboundBlockChange)

class ClientboundBossBar(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityUUID = property(_Proto1_16_4.ClientboundBossBar_entityUUID_get, _Proto1_16_4.ClientboundBossBar_entityUUID_set)
    action = property(_Proto1_16_4.ClientboundBossBar_action_get, _Proto1_16_4.ClientboundBossBar_action_set)
    title = property(_Proto1_16_4.ClientboundBossBar_title_get, _Proto1_16_4.ClientboundBossBar_title_set)
    health = property(_Proto1_16_4.ClientboundBossBar_health_get, _Proto1_16_4.ClientboundBossBar_health_set)
    color = property(_Proto1_16_4.ClientboundBossBar_color_get, _Proto1_16_4.ClientboundBossBar_color_set)
    dividers = property(_Proto1_16_4.ClientboundBossBar_dividers_get, _Proto1_16_4.ClientboundBossBar_dividers_set)
    flags = property(_Proto1_16_4.ClientboundBossBar_flags_get, _Proto1_16_4.ClientboundBossBar_flags_set)

    def __init__(self):
        _Proto1_16_4.ClientboundBossBar_swiginit(self, _Proto1_16_4.new_ClientboundBossBar())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundBossBar_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundBossBar_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundBossBar

# Register ClientboundBossBar in _Proto1_16_4:
_Proto1_16_4.ClientboundBossBar_swigregister(ClientboundBossBar)

class ClientboundDifficulty(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    difficulty = property(_Proto1_16_4.ClientboundDifficulty_difficulty_get, _Proto1_16_4.ClientboundDifficulty_difficulty_set)
    difficultyLocked = property(_Proto1_16_4.ClientboundDifficulty_difficultyLocked_get, _Proto1_16_4.ClientboundDifficulty_difficultyLocked_set)

    def __init__(self):
        _Proto1_16_4.ClientboundDifficulty_swiginit(self, _Proto1_16_4.new_ClientboundDifficulty())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundDifficulty_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundDifficulty_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundDifficulty

# Register ClientboundDifficulty in _Proto1_16_4:
_Proto1_16_4.ClientboundDifficulty_swigregister(ClientboundDifficulty)

class ClientboundChat(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    message = property(_Proto1_16_4.ClientboundChat_message_get, _Proto1_16_4.ClientboundChat_message_set)
    position = property(_Proto1_16_4.ClientboundChat_position_get, _Proto1_16_4.ClientboundChat_position_set)
    sender = property(_Proto1_16_4.ClientboundChat_sender_get, _Proto1_16_4.ClientboundChat_sender_set)

    def __init__(self):
        _Proto1_16_4.ClientboundChat_swiginit(self, _Proto1_16_4.new_ClientboundChat())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundChat_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundChat_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundChat

# Register ClientboundChat in _Proto1_16_4:
_Proto1_16_4.ClientboundChat_swigregister(ClientboundChat)

class ClientboundTabComplete(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transactionId = property(_Proto1_16_4.ClientboundTabComplete_transactionId_get, _Proto1_16_4.ClientboundTabComplete_transactionId_set)
    start = property(_Proto1_16_4.ClientboundTabComplete_start_get, _Proto1_16_4.ClientboundTabComplete_start_set)
    length = property(_Proto1_16_4.ClientboundTabComplete_length_get, _Proto1_16_4.ClientboundTabComplete_length_set)
    matches = property(_Proto1_16_4.ClientboundTabComplete_matches_get, _Proto1_16_4.ClientboundTabComplete_matches_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTabComplete_swiginit(self, _Proto1_16_4.new_ClientboundTabComplete())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTabComplete_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTabComplete_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTabComplete

# Register ClientboundTabComplete in _Proto1_16_4:
_Proto1_16_4.ClientboundTabComplete_swigregister(ClientboundTabComplete)

class TabComplete_matches_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    match = property(_Proto1_16_4.TabComplete_matches_type_match_get, _Proto1_16_4.TabComplete_matches_type_match_set)
    tooltip = property(_Proto1_16_4.TabComplete_matches_type_tooltip_get, _Proto1_16_4.TabComplete_matches_type_tooltip_set)

    def __init__(self):
        _Proto1_16_4.TabComplete_matches_type_swiginit(self, _Proto1_16_4.new_TabComplete_matches_type())
    __swig_destroy__ = _Proto1_16_4.delete_TabComplete_matches_type

# Register TabComplete_matches_type in _Proto1_16_4:
_Proto1_16_4.TabComplete_matches_type_swigregister(TabComplete_matches_type)

class ClientboundDeclareCommands(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    nodes = property(_Proto1_16_4.ClientboundDeclareCommands_nodes_get, _Proto1_16_4.ClientboundDeclareCommands_nodes_set)
    rootIndex = property(_Proto1_16_4.ClientboundDeclareCommands_rootIndex_get, _Proto1_16_4.ClientboundDeclareCommands_rootIndex_set)

    def __init__(self):
        _Proto1_16_4.ClientboundDeclareCommands_swiginit(self, _Proto1_16_4.new_ClientboundDeclareCommands())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundDeclareCommands_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundDeclareCommands_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundDeclareCommands

# Register ClientboundDeclareCommands in _Proto1_16_4:
_Proto1_16_4.ClientboundDeclareCommands_swigregister(ClientboundDeclareCommands)

class DeclareCommands_nodes_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    children = property(_Proto1_16_4.DeclareCommands_nodes_type_children_get, _Proto1_16_4.DeclareCommands_nodes_type_children_set)
    redirectNode = property(_Proto1_16_4.DeclareCommands_nodes_type_redirectNode_get, _Proto1_16_4.DeclareCommands_nodes_type_redirectNode_set)
    extraNodeData_1 = property(_Proto1_16_4.DeclareCommands_nodes_type_extraNodeData_1_get, _Proto1_16_4.DeclareCommands_nodes_type_extraNodeData_1_set)

    def __init__(self):
        _Proto1_16_4.DeclareCommands_nodes_type_swiginit(self, _Proto1_16_4.new_DeclareCommands_nodes_type())
    __swig_destroy__ = _Proto1_16_4.delete_DeclareCommands_nodes_type

# Register DeclareCommands_nodes_type in _Proto1_16_4:
_Proto1_16_4.DeclareCommands_nodes_type_swigregister(DeclareCommands_nodes_type)

class ClientboundTransaction(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundTransaction_windowId_get, _Proto1_16_4.ClientboundTransaction_windowId_set)
    action = property(_Proto1_16_4.ClientboundTransaction_action_get, _Proto1_16_4.ClientboundTransaction_action_set)
    accepted = property(_Proto1_16_4.ClientboundTransaction_accepted_get, _Proto1_16_4.ClientboundTransaction_accepted_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTransaction_swiginit(self, _Proto1_16_4.new_ClientboundTransaction())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTransaction_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTransaction_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTransaction

# Register ClientboundTransaction in _Proto1_16_4:
_Proto1_16_4.ClientboundTransaction_swigregister(ClientboundTransaction)

class ClientboundCloseWindow(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundCloseWindow_windowId_get, _Proto1_16_4.ClientboundCloseWindow_windowId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCloseWindow_swiginit(self, _Proto1_16_4.new_ClientboundCloseWindow())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCloseWindow_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCloseWindow_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCloseWindow

# Register ClientboundCloseWindow in _Proto1_16_4:
_Proto1_16_4.ClientboundCloseWindow_swigregister(ClientboundCloseWindow)

class ClientboundWindowItems(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundWindowItems_windowId_get, _Proto1_16_4.ClientboundWindowItems_windowId_set)
    items = property(_Proto1_16_4.ClientboundWindowItems_items_get, _Proto1_16_4.ClientboundWindowItems_items_set)

    def __init__(self):
        _Proto1_16_4.ClientboundWindowItems_swiginit(self, _Proto1_16_4.new_ClientboundWindowItems())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundWindowItems_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundWindowItems_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundWindowItems

# Register ClientboundWindowItems in _Proto1_16_4:
_Proto1_16_4.ClientboundWindowItems_swigregister(ClientboundWindowItems)

class ClientboundCraftProgressBar(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundCraftProgressBar_windowId_get, _Proto1_16_4.ClientboundCraftProgressBar_windowId_set)
    _property = property(_Proto1_16_4.ClientboundCraftProgressBar__property_get, _Proto1_16_4.ClientboundCraftProgressBar__property_set)
    value = property(_Proto1_16_4.ClientboundCraftProgressBar_value_get, _Proto1_16_4.ClientboundCraftProgressBar_value_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCraftProgressBar_swiginit(self, _Proto1_16_4.new_ClientboundCraftProgressBar())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCraftProgressBar_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCraftProgressBar_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCraftProgressBar

# Register ClientboundCraftProgressBar in _Proto1_16_4:
_Proto1_16_4.ClientboundCraftProgressBar_swigregister(ClientboundCraftProgressBar)

class ClientboundSetSlot(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundSetSlot_windowId_get, _Proto1_16_4.ClientboundSetSlot_windowId_set)
    slot = property(_Proto1_16_4.ClientboundSetSlot_slot_get, _Proto1_16_4.ClientboundSetSlot_slot_set)
    item = property(_Proto1_16_4.ClientboundSetSlot_item_get, _Proto1_16_4.ClientboundSetSlot_item_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSetSlot_swiginit(self, _Proto1_16_4.new_ClientboundSetSlot())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSetSlot_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSetSlot_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSetSlot

# Register ClientboundSetSlot in _Proto1_16_4:
_Proto1_16_4.ClientboundSetSlot_swigregister(ClientboundSetSlot)

class ClientboundSetCooldown(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    itemID = property(_Proto1_16_4.ClientboundSetCooldown_itemID_get, _Proto1_16_4.ClientboundSetCooldown_itemID_set)
    cooldownTicks = property(_Proto1_16_4.ClientboundSetCooldown_cooldownTicks_get, _Proto1_16_4.ClientboundSetCooldown_cooldownTicks_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSetCooldown_swiginit(self, _Proto1_16_4.new_ClientboundSetCooldown())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSetCooldown_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSetCooldown_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSetCooldown

# Register ClientboundSetCooldown in _Proto1_16_4:
_Proto1_16_4.ClientboundSetCooldown_swigregister(ClientboundSetCooldown)

class ClientboundCustomPayload(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    channel = property(_Proto1_16_4.ClientboundCustomPayload_channel_get, _Proto1_16_4.ClientboundCustomPayload_channel_set)
    data = property(_Proto1_16_4.ClientboundCustomPayload_data_get, _Proto1_16_4.ClientboundCustomPayload_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCustomPayload_swiginit(self, _Proto1_16_4.new_ClientboundCustomPayload())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCustomPayload_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCustomPayload_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCustomPayload

# Register ClientboundCustomPayload in _Proto1_16_4:
_Proto1_16_4.ClientboundCustomPayload_swigregister(ClientboundCustomPayload)

class ClientboundNamedSoundEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    soundName = property(_Proto1_16_4.ClientboundNamedSoundEffect_soundName_get, _Proto1_16_4.ClientboundNamedSoundEffect_soundName_set)
    soundCategory = property(_Proto1_16_4.ClientboundNamedSoundEffect_soundCategory_get, _Proto1_16_4.ClientboundNamedSoundEffect_soundCategory_set)
    x = property(_Proto1_16_4.ClientboundNamedSoundEffect_x_get, _Proto1_16_4.ClientboundNamedSoundEffect_x_set)
    y = property(_Proto1_16_4.ClientboundNamedSoundEffect_y_get, _Proto1_16_4.ClientboundNamedSoundEffect_y_set)
    z = property(_Proto1_16_4.ClientboundNamedSoundEffect_z_get, _Proto1_16_4.ClientboundNamedSoundEffect_z_set)
    volume = property(_Proto1_16_4.ClientboundNamedSoundEffect_volume_get, _Proto1_16_4.ClientboundNamedSoundEffect_volume_set)
    pitch = property(_Proto1_16_4.ClientboundNamedSoundEffect_pitch_get, _Proto1_16_4.ClientboundNamedSoundEffect_pitch_set)

    def __init__(self):
        _Proto1_16_4.ClientboundNamedSoundEffect_swiginit(self, _Proto1_16_4.new_ClientboundNamedSoundEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundNamedSoundEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundNamedSoundEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundNamedSoundEffect

# Register ClientboundNamedSoundEffect in _Proto1_16_4:
_Proto1_16_4.ClientboundNamedSoundEffect_swigregister(ClientboundNamedSoundEffect)

class ClientboundKickDisconnect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    reason = property(_Proto1_16_4.ClientboundKickDisconnect_reason_get, _Proto1_16_4.ClientboundKickDisconnect_reason_set)

    def __init__(self):
        _Proto1_16_4.ClientboundKickDisconnect_swiginit(self, _Proto1_16_4.new_ClientboundKickDisconnect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundKickDisconnect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundKickDisconnect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundKickDisconnect

# Register ClientboundKickDisconnect in _Proto1_16_4:
_Proto1_16_4.ClientboundKickDisconnect_swigregister(ClientboundKickDisconnect)

class ClientboundEntityStatus(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityStatus_entityId_get, _Proto1_16_4.ClientboundEntityStatus_entityId_set)
    entityStatus = property(_Proto1_16_4.ClientboundEntityStatus_entityStatus_get, _Proto1_16_4.ClientboundEntityStatus_entityStatus_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityStatus_swiginit(self, _Proto1_16_4.new_ClientboundEntityStatus())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityStatus_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityStatus_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityStatus

# Register ClientboundEntityStatus in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityStatus_swigregister(ClientboundEntityStatus)

class ClientboundExplosion(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ClientboundExplosion_x_get, _Proto1_16_4.ClientboundExplosion_x_set)
    y = property(_Proto1_16_4.ClientboundExplosion_y_get, _Proto1_16_4.ClientboundExplosion_y_set)
    z = property(_Proto1_16_4.ClientboundExplosion_z_get, _Proto1_16_4.ClientboundExplosion_z_set)
    radius = property(_Proto1_16_4.ClientboundExplosion_radius_get, _Proto1_16_4.ClientboundExplosion_radius_set)
    affectedBlockOffsets = property(_Proto1_16_4.ClientboundExplosion_affectedBlockOffsets_get, _Proto1_16_4.ClientboundExplosion_affectedBlockOffsets_set)
    playerMotionX = property(_Proto1_16_4.ClientboundExplosion_playerMotionX_get, _Proto1_16_4.ClientboundExplosion_playerMotionX_set)
    playerMotionY = property(_Proto1_16_4.ClientboundExplosion_playerMotionY_get, _Proto1_16_4.ClientboundExplosion_playerMotionY_set)
    playerMotionZ = property(_Proto1_16_4.ClientboundExplosion_playerMotionZ_get, _Proto1_16_4.ClientboundExplosion_playerMotionZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundExplosion_swiginit(self, _Proto1_16_4.new_ClientboundExplosion())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundExplosion_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundExplosion_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundExplosion

# Register ClientboundExplosion in _Proto1_16_4:
_Proto1_16_4.ClientboundExplosion_swigregister(ClientboundExplosion)

class Explosion_affectedBlockOffsets_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.Explosion_affectedBlockOffsets_type_x_get, _Proto1_16_4.Explosion_affectedBlockOffsets_type_x_set)
    y = property(_Proto1_16_4.Explosion_affectedBlockOffsets_type_y_get, _Proto1_16_4.Explosion_affectedBlockOffsets_type_y_set)
    z = property(_Proto1_16_4.Explosion_affectedBlockOffsets_type_z_get, _Proto1_16_4.Explosion_affectedBlockOffsets_type_z_set)

    def __init__(self):
        _Proto1_16_4.Explosion_affectedBlockOffsets_type_swiginit(self, _Proto1_16_4.new_Explosion_affectedBlockOffsets_type())
    __swig_destroy__ = _Proto1_16_4.delete_Explosion_affectedBlockOffsets_type

# Register Explosion_affectedBlockOffsets_type in _Proto1_16_4:
_Proto1_16_4.Explosion_affectedBlockOffsets_type_swigregister(Explosion_affectedBlockOffsets_type)

class ClientboundUnloadChunk(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    chunkX = property(_Proto1_16_4.ClientboundUnloadChunk_chunkX_get, _Proto1_16_4.ClientboundUnloadChunk_chunkX_set)
    chunkZ = property(_Proto1_16_4.ClientboundUnloadChunk_chunkZ_get, _Proto1_16_4.ClientboundUnloadChunk_chunkZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUnloadChunk_swiginit(self, _Proto1_16_4.new_ClientboundUnloadChunk())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUnloadChunk_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUnloadChunk_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUnloadChunk

# Register ClientboundUnloadChunk in _Proto1_16_4:
_Proto1_16_4.ClientboundUnloadChunk_swigregister(ClientboundUnloadChunk)

class ClientboundGameStateChange(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    reason = property(_Proto1_16_4.ClientboundGameStateChange_reason_get, _Proto1_16_4.ClientboundGameStateChange_reason_set)
    gameMode = property(_Proto1_16_4.ClientboundGameStateChange_gameMode_get, _Proto1_16_4.ClientboundGameStateChange_gameMode_set)

    def __init__(self):
        _Proto1_16_4.ClientboundGameStateChange_swiginit(self, _Proto1_16_4.new_ClientboundGameStateChange())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundGameStateChange_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundGameStateChange_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundGameStateChange

# Register ClientboundGameStateChange in _Proto1_16_4:
_Proto1_16_4.ClientboundGameStateChange_swigregister(ClientboundGameStateChange)

class ClientboundOpenHorseWindow(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundOpenHorseWindow_windowId_get, _Proto1_16_4.ClientboundOpenHorseWindow_windowId_set)
    nbSlots = property(_Proto1_16_4.ClientboundOpenHorseWindow_nbSlots_get, _Proto1_16_4.ClientboundOpenHorseWindow_nbSlots_set)
    entityId = property(_Proto1_16_4.ClientboundOpenHorseWindow_entityId_get, _Proto1_16_4.ClientboundOpenHorseWindow_entityId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundOpenHorseWindow_swiginit(self, _Proto1_16_4.new_ClientboundOpenHorseWindow())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundOpenHorseWindow_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundOpenHorseWindow_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundOpenHorseWindow

# Register ClientboundOpenHorseWindow in _Proto1_16_4:
_Proto1_16_4.ClientboundOpenHorseWindow_swigregister(ClientboundOpenHorseWindow)

class ClientboundKeepAlive(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    keepAliveId = property(_Proto1_16_4.ClientboundKeepAlive_keepAliveId_get, _Proto1_16_4.ClientboundKeepAlive_keepAliveId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundKeepAlive_swiginit(self, _Proto1_16_4.new_ClientboundKeepAlive())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundKeepAlive_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundKeepAlive_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundKeepAlive

# Register ClientboundKeepAlive in _Proto1_16_4:
_Proto1_16_4.ClientboundKeepAlive_swigregister(ClientboundKeepAlive)

class ClientboundMapChunk(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ClientboundMapChunk_x_get, _Proto1_16_4.ClientboundMapChunk_x_set)
    z = property(_Proto1_16_4.ClientboundMapChunk_z_get, _Proto1_16_4.ClientboundMapChunk_z_set)
    groundUp = property(_Proto1_16_4.ClientboundMapChunk_groundUp_get, _Proto1_16_4.ClientboundMapChunk_groundUp_set)
    bitMap = property(_Proto1_16_4.ClientboundMapChunk_bitMap_get, _Proto1_16_4.ClientboundMapChunk_bitMap_set)
    heightmaps = property(_Proto1_16_4.ClientboundMapChunk_heightmaps_get, _Proto1_16_4.ClientboundMapChunk_heightmaps_set)
    biomes = property(_Proto1_16_4.ClientboundMapChunk_biomes_get, _Proto1_16_4.ClientboundMapChunk_biomes_set)
    chunkData = property(_Proto1_16_4.ClientboundMapChunk_chunkData_get, _Proto1_16_4.ClientboundMapChunk_chunkData_set)
    blockEntities = property(_Proto1_16_4.ClientboundMapChunk_blockEntities_get, _Proto1_16_4.ClientboundMapChunk_blockEntities_set)

    def __init__(self):
        _Proto1_16_4.ClientboundMapChunk_swiginit(self, _Proto1_16_4.new_ClientboundMapChunk())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundMapChunk_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundMapChunk_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundMapChunk

# Register ClientboundMapChunk in _Proto1_16_4:
_Proto1_16_4.ClientboundMapChunk_swigregister(ClientboundMapChunk)

class ClientboundWorldEvent(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    effectId = property(_Proto1_16_4.ClientboundWorldEvent_effectId_get, _Proto1_16_4.ClientboundWorldEvent_effectId_set)
    location = property(_Proto1_16_4.ClientboundWorldEvent_location_get, _Proto1_16_4.ClientboundWorldEvent_location_set)
    data = property(_Proto1_16_4.ClientboundWorldEvent_data_get, _Proto1_16_4.ClientboundWorldEvent_data_set)
    _global = property(_Proto1_16_4.ClientboundWorldEvent__global_get, _Proto1_16_4.ClientboundWorldEvent__global_set)

    def __init__(self):
        _Proto1_16_4.ClientboundWorldEvent_swiginit(self, _Proto1_16_4.new_ClientboundWorldEvent())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundWorldEvent_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundWorldEvent_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundWorldEvent

# Register ClientboundWorldEvent in _Proto1_16_4:
_Proto1_16_4.ClientboundWorldEvent_swigregister(ClientboundWorldEvent)

class ClientboundWorldParticles(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    particleId = property(_Proto1_16_4.ClientboundWorldParticles_particleId_get, _Proto1_16_4.ClientboundWorldParticles_particleId_set)
    longDistance = property(_Proto1_16_4.ClientboundWorldParticles_longDistance_get, _Proto1_16_4.ClientboundWorldParticles_longDistance_set)
    x = property(_Proto1_16_4.ClientboundWorldParticles_x_get, _Proto1_16_4.ClientboundWorldParticles_x_set)
    y = property(_Proto1_16_4.ClientboundWorldParticles_y_get, _Proto1_16_4.ClientboundWorldParticles_y_set)
    z = property(_Proto1_16_4.ClientboundWorldParticles_z_get, _Proto1_16_4.ClientboundWorldParticles_z_set)
    offsetX = property(_Proto1_16_4.ClientboundWorldParticles_offsetX_get, _Proto1_16_4.ClientboundWorldParticles_offsetX_set)
    offsetY = property(_Proto1_16_4.ClientboundWorldParticles_offsetY_get, _Proto1_16_4.ClientboundWorldParticles_offsetY_set)
    offsetZ = property(_Proto1_16_4.ClientboundWorldParticles_offsetZ_get, _Proto1_16_4.ClientboundWorldParticles_offsetZ_set)
    particleData = property(_Proto1_16_4.ClientboundWorldParticles_particleData_get, _Proto1_16_4.ClientboundWorldParticles_particleData_set)
    particles = property(_Proto1_16_4.ClientboundWorldParticles_particles_get, _Proto1_16_4.ClientboundWorldParticles_particles_set)
    data = property(_Proto1_16_4.ClientboundWorldParticles_data_get, _Proto1_16_4.ClientboundWorldParticles_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundWorldParticles_swiginit(self, _Proto1_16_4.new_ClientboundWorldParticles())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundWorldParticles_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundWorldParticles_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundWorldParticles

# Register ClientboundWorldParticles in _Proto1_16_4:
_Proto1_16_4.ClientboundWorldParticles_swigregister(ClientboundWorldParticles)

class ClientboundUpdateLight(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    chunkX = property(_Proto1_16_4.ClientboundUpdateLight_chunkX_get, _Proto1_16_4.ClientboundUpdateLight_chunkX_set)
    chunkZ = property(_Proto1_16_4.ClientboundUpdateLight_chunkZ_get, _Proto1_16_4.ClientboundUpdateLight_chunkZ_set)
    trustEdges = property(_Proto1_16_4.ClientboundUpdateLight_trustEdges_get, _Proto1_16_4.ClientboundUpdateLight_trustEdges_set)
    skyLightMask = property(_Proto1_16_4.ClientboundUpdateLight_skyLightMask_get, _Proto1_16_4.ClientboundUpdateLight_skyLightMask_set)
    blockLightMask = property(_Proto1_16_4.ClientboundUpdateLight_blockLightMask_get, _Proto1_16_4.ClientboundUpdateLight_blockLightMask_set)
    emptySkyLightMask = property(_Proto1_16_4.ClientboundUpdateLight_emptySkyLightMask_get, _Proto1_16_4.ClientboundUpdateLight_emptySkyLightMask_set)
    emptyBlockLightMask = property(_Proto1_16_4.ClientboundUpdateLight_emptyBlockLightMask_get, _Proto1_16_4.ClientboundUpdateLight_emptyBlockLightMask_set)
    data = property(_Proto1_16_4.ClientboundUpdateLight_data_get, _Proto1_16_4.ClientboundUpdateLight_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUpdateLight_swiginit(self, _Proto1_16_4.new_ClientboundUpdateLight())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateLight_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateLight_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUpdateLight

# Register ClientboundUpdateLight in _Proto1_16_4:
_Proto1_16_4.ClientboundUpdateLight_swigregister(ClientboundUpdateLight)

class ClientboundLogin(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundLogin_entityId_get, _Proto1_16_4.ClientboundLogin_entityId_set)
    isHardcore = property(_Proto1_16_4.ClientboundLogin_isHardcore_get, _Proto1_16_4.ClientboundLogin_isHardcore_set)
    gameMode = property(_Proto1_16_4.ClientboundLogin_gameMode_get, _Proto1_16_4.ClientboundLogin_gameMode_set)
    previousGameMode = property(_Proto1_16_4.ClientboundLogin_previousGameMode_get, _Proto1_16_4.ClientboundLogin_previousGameMode_set)
    worldNames = property(_Proto1_16_4.ClientboundLogin_worldNames_get, _Proto1_16_4.ClientboundLogin_worldNames_set)
    dimensionCodec = property(_Proto1_16_4.ClientboundLogin_dimensionCodec_get, _Proto1_16_4.ClientboundLogin_dimensionCodec_set)
    dimension = property(_Proto1_16_4.ClientboundLogin_dimension_get, _Proto1_16_4.ClientboundLogin_dimension_set)
    worldName = property(_Proto1_16_4.ClientboundLogin_worldName_get, _Proto1_16_4.ClientboundLogin_worldName_set)
    hashedSeed = property(_Proto1_16_4.ClientboundLogin_hashedSeed_get, _Proto1_16_4.ClientboundLogin_hashedSeed_set)
    maxPlayers = property(_Proto1_16_4.ClientboundLogin_maxPlayers_get, _Proto1_16_4.ClientboundLogin_maxPlayers_set)
    viewDistance = property(_Proto1_16_4.ClientboundLogin_viewDistance_get, _Proto1_16_4.ClientboundLogin_viewDistance_set)
    reducedDebugInfo = property(_Proto1_16_4.ClientboundLogin_reducedDebugInfo_get, _Proto1_16_4.ClientboundLogin_reducedDebugInfo_set)
    enableRespawnScreen = property(_Proto1_16_4.ClientboundLogin_enableRespawnScreen_get, _Proto1_16_4.ClientboundLogin_enableRespawnScreen_set)
    isDebug = property(_Proto1_16_4.ClientboundLogin_isDebug_get, _Proto1_16_4.ClientboundLogin_isDebug_set)
    isFlat = property(_Proto1_16_4.ClientboundLogin_isFlat_get, _Proto1_16_4.ClientboundLogin_isFlat_set)

    def __init__(self):
        _Proto1_16_4.ClientboundLogin_swiginit(self, _Proto1_16_4.new_ClientboundLogin())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundLogin_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundLogin_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundLogin

# Register ClientboundLogin in _Proto1_16_4:
_Proto1_16_4.ClientboundLogin_swigregister(ClientboundLogin)

class ClientboundMap(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    itemDamage = property(_Proto1_16_4.ClientboundMap_itemDamage_get, _Proto1_16_4.ClientboundMap_itemDamage_set)
    scale = property(_Proto1_16_4.ClientboundMap_scale_get, _Proto1_16_4.ClientboundMap_scale_set)
    trackingPosition = property(_Proto1_16_4.ClientboundMap_trackingPosition_get, _Proto1_16_4.ClientboundMap_trackingPosition_set)
    locked = property(_Proto1_16_4.ClientboundMap_locked_get, _Proto1_16_4.ClientboundMap_locked_set)
    icons = property(_Proto1_16_4.ClientboundMap_icons_get, _Proto1_16_4.ClientboundMap_icons_set)
    columns = property(_Proto1_16_4.ClientboundMap_columns_get, _Proto1_16_4.ClientboundMap_columns_set)
    rows = property(_Proto1_16_4.ClientboundMap_rows_get, _Proto1_16_4.ClientboundMap_rows_set)
    x = property(_Proto1_16_4.ClientboundMap_x_get, _Proto1_16_4.ClientboundMap_x_set)
    y = property(_Proto1_16_4.ClientboundMap_y_get, _Proto1_16_4.ClientboundMap_y_set)
    data = property(_Proto1_16_4.ClientboundMap_data_get, _Proto1_16_4.ClientboundMap_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundMap_swiginit(self, _Proto1_16_4.new_ClientboundMap())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundMap_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundMap_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundMap

# Register ClientboundMap in _Proto1_16_4:
_Proto1_16_4.ClientboundMap_swigregister(ClientboundMap)

class Map_icons_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_Proto1_16_4.Map_icons_type_type_get, _Proto1_16_4.Map_icons_type_type_set)
    x = property(_Proto1_16_4.Map_icons_type_x_get, _Proto1_16_4.Map_icons_type_x_set)
    y = property(_Proto1_16_4.Map_icons_type_y_get, _Proto1_16_4.Map_icons_type_y_set)
    direction = property(_Proto1_16_4.Map_icons_type_direction_get, _Proto1_16_4.Map_icons_type_direction_set)
    displayName = property(_Proto1_16_4.Map_icons_type_displayName_get, _Proto1_16_4.Map_icons_type_displayName_set)

    def __init__(self):
        _Proto1_16_4.Map_icons_type_swiginit(self, _Proto1_16_4.new_Map_icons_type())
    __swig_destroy__ = _Proto1_16_4.delete_Map_icons_type

# Register Map_icons_type in _Proto1_16_4:
_Proto1_16_4.Map_icons_type_swigregister(Map_icons_type)

class ClientboundTradeList(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundTradeList_windowId_get, _Proto1_16_4.ClientboundTradeList_windowId_set)
    trades = property(_Proto1_16_4.ClientboundTradeList_trades_get, _Proto1_16_4.ClientboundTradeList_trades_set)
    villagerLevel = property(_Proto1_16_4.ClientboundTradeList_villagerLevel_get, _Proto1_16_4.ClientboundTradeList_villagerLevel_set)
    experience = property(_Proto1_16_4.ClientboundTradeList_experience_get, _Proto1_16_4.ClientboundTradeList_experience_set)
    isRegularVillager = property(_Proto1_16_4.ClientboundTradeList_isRegularVillager_get, _Proto1_16_4.ClientboundTradeList_isRegularVillager_set)
    canRestock = property(_Proto1_16_4.ClientboundTradeList_canRestock_get, _Proto1_16_4.ClientboundTradeList_canRestock_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTradeList_swiginit(self, _Proto1_16_4.new_ClientboundTradeList())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTradeList_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTradeList_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTradeList

# Register ClientboundTradeList in _Proto1_16_4:
_Proto1_16_4.ClientboundTradeList_swigregister(ClientboundTradeList)

class TradeList_trades_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    inputItem1 = property(_Proto1_16_4.TradeList_trades_type_inputItem1_get, _Proto1_16_4.TradeList_trades_type_inputItem1_set)
    outputItem = property(_Proto1_16_4.TradeList_trades_type_outputItem_get, _Proto1_16_4.TradeList_trades_type_outputItem_set)
    inputItem2 = property(_Proto1_16_4.TradeList_trades_type_inputItem2_get, _Proto1_16_4.TradeList_trades_type_inputItem2_set)
    tradeDisabled = property(_Proto1_16_4.TradeList_trades_type_tradeDisabled_get, _Proto1_16_4.TradeList_trades_type_tradeDisabled_set)
    nbTradeUses = property(_Proto1_16_4.TradeList_trades_type_nbTradeUses_get, _Proto1_16_4.TradeList_trades_type_nbTradeUses_set)
    maximumNbTradeUses = property(_Proto1_16_4.TradeList_trades_type_maximumNbTradeUses_get, _Proto1_16_4.TradeList_trades_type_maximumNbTradeUses_set)
    xp = property(_Proto1_16_4.TradeList_trades_type_xp_get, _Proto1_16_4.TradeList_trades_type_xp_set)
    specialPrice = property(_Proto1_16_4.TradeList_trades_type_specialPrice_get, _Proto1_16_4.TradeList_trades_type_specialPrice_set)
    priceMultiplier = property(_Proto1_16_4.TradeList_trades_type_priceMultiplier_get, _Proto1_16_4.TradeList_trades_type_priceMultiplier_set)
    demand = property(_Proto1_16_4.TradeList_trades_type_demand_get, _Proto1_16_4.TradeList_trades_type_demand_set)

    def __init__(self):
        _Proto1_16_4.TradeList_trades_type_swiginit(self, _Proto1_16_4.new_TradeList_trades_type())
    __swig_destroy__ = _Proto1_16_4.delete_TradeList_trades_type

# Register TradeList_trades_type in _Proto1_16_4:
_Proto1_16_4.TradeList_trades_type_swigregister(TradeList_trades_type)

class ClientboundRelEntityMove(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundRelEntityMove_entityId_get, _Proto1_16_4.ClientboundRelEntityMove_entityId_set)
    dX = property(_Proto1_16_4.ClientboundRelEntityMove_dX_get, _Proto1_16_4.ClientboundRelEntityMove_dX_set)
    dY = property(_Proto1_16_4.ClientboundRelEntityMove_dY_get, _Proto1_16_4.ClientboundRelEntityMove_dY_set)
    dZ = property(_Proto1_16_4.ClientboundRelEntityMove_dZ_get, _Proto1_16_4.ClientboundRelEntityMove_dZ_set)
    onGround = property(_Proto1_16_4.ClientboundRelEntityMove_onGround_get, _Proto1_16_4.ClientboundRelEntityMove_onGround_set)

    def __init__(self):
        _Proto1_16_4.ClientboundRelEntityMove_swiginit(self, _Proto1_16_4.new_ClientboundRelEntityMove())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundRelEntityMove_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundRelEntityMove_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundRelEntityMove

# Register ClientboundRelEntityMove in _Proto1_16_4:
_Proto1_16_4.ClientboundRelEntityMove_swigregister(ClientboundRelEntityMove)

class ClientboundEntityMoveLook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityMoveLook_entityId_get, _Proto1_16_4.ClientboundEntityMoveLook_entityId_set)
    dX = property(_Proto1_16_4.ClientboundEntityMoveLook_dX_get, _Proto1_16_4.ClientboundEntityMoveLook_dX_set)
    dY = property(_Proto1_16_4.ClientboundEntityMoveLook_dY_get, _Proto1_16_4.ClientboundEntityMoveLook_dY_set)
    dZ = property(_Proto1_16_4.ClientboundEntityMoveLook_dZ_get, _Proto1_16_4.ClientboundEntityMoveLook_dZ_set)
    yaw = property(_Proto1_16_4.ClientboundEntityMoveLook_yaw_get, _Proto1_16_4.ClientboundEntityMoveLook_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundEntityMoveLook_pitch_get, _Proto1_16_4.ClientboundEntityMoveLook_pitch_set)
    onGround = property(_Proto1_16_4.ClientboundEntityMoveLook_onGround_get, _Proto1_16_4.ClientboundEntityMoveLook_onGround_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityMoveLook_swiginit(self, _Proto1_16_4.new_ClientboundEntityMoveLook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityMoveLook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityMoveLook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityMoveLook

# Register ClientboundEntityMoveLook in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityMoveLook_swigregister(ClientboundEntityMoveLook)

class ClientboundEntityLook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityLook_entityId_get, _Proto1_16_4.ClientboundEntityLook_entityId_set)
    yaw = property(_Proto1_16_4.ClientboundEntityLook_yaw_get, _Proto1_16_4.ClientboundEntityLook_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundEntityLook_pitch_get, _Proto1_16_4.ClientboundEntityLook_pitch_set)
    onGround = property(_Proto1_16_4.ClientboundEntityLook_onGround_get, _Proto1_16_4.ClientboundEntityLook_onGround_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityLook_swiginit(self, _Proto1_16_4.new_ClientboundEntityLook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityLook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityLook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityLook

# Register ClientboundEntityLook in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityLook_swigregister(ClientboundEntityLook)

class ClientboundEntity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntity_entityId_get, _Proto1_16_4.ClientboundEntity_entityId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntity_swiginit(self, _Proto1_16_4.new_ClientboundEntity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntity

# Register ClientboundEntity in _Proto1_16_4:
_Proto1_16_4.ClientboundEntity_swigregister(ClientboundEntity)

class ClientboundVehicleMove(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ClientboundVehicleMove_x_get, _Proto1_16_4.ClientboundVehicleMove_x_set)
    y = property(_Proto1_16_4.ClientboundVehicleMove_y_get, _Proto1_16_4.ClientboundVehicleMove_y_set)
    z = property(_Proto1_16_4.ClientboundVehicleMove_z_get, _Proto1_16_4.ClientboundVehicleMove_z_set)
    yaw = property(_Proto1_16_4.ClientboundVehicleMove_yaw_get, _Proto1_16_4.ClientboundVehicleMove_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundVehicleMove_pitch_get, _Proto1_16_4.ClientboundVehicleMove_pitch_set)

    def __init__(self):
        _Proto1_16_4.ClientboundVehicleMove_swiginit(self, _Proto1_16_4.new_ClientboundVehicleMove())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundVehicleMove_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundVehicleMove_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundVehicleMove

# Register ClientboundVehicleMove in _Proto1_16_4:
_Proto1_16_4.ClientboundVehicleMove_swigregister(ClientboundVehicleMove)

class ClientboundOpenBook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hand = property(_Proto1_16_4.ClientboundOpenBook_hand_get, _Proto1_16_4.ClientboundOpenBook_hand_set)

    def __init__(self):
        _Proto1_16_4.ClientboundOpenBook_swiginit(self, _Proto1_16_4.new_ClientboundOpenBook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundOpenBook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundOpenBook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundOpenBook

# Register ClientboundOpenBook in _Proto1_16_4:
_Proto1_16_4.ClientboundOpenBook_swigregister(ClientboundOpenBook)

class ClientboundOpenWindow(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundOpenWindow_windowId_get, _Proto1_16_4.ClientboundOpenWindow_windowId_set)
    inventoryType = property(_Proto1_16_4.ClientboundOpenWindow_inventoryType_get, _Proto1_16_4.ClientboundOpenWindow_inventoryType_set)
    windowTitle = property(_Proto1_16_4.ClientboundOpenWindow_windowTitle_get, _Proto1_16_4.ClientboundOpenWindow_windowTitle_set)

    def __init__(self):
        _Proto1_16_4.ClientboundOpenWindow_swiginit(self, _Proto1_16_4.new_ClientboundOpenWindow())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundOpenWindow_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundOpenWindow_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundOpenWindow

# Register ClientboundOpenWindow in _Proto1_16_4:
_Proto1_16_4.ClientboundOpenWindow_swigregister(ClientboundOpenWindow)

class ClientboundOpenSignEntity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundOpenSignEntity_location_get, _Proto1_16_4.ClientboundOpenSignEntity_location_set)

    def __init__(self):
        _Proto1_16_4.ClientboundOpenSignEntity_swiginit(self, _Proto1_16_4.new_ClientboundOpenSignEntity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundOpenSignEntity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundOpenSignEntity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundOpenSignEntity

# Register ClientboundOpenSignEntity in _Proto1_16_4:
_Proto1_16_4.ClientboundOpenSignEntity_swigregister(ClientboundOpenSignEntity)

class ClientboundCraftRecipeResponse(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ClientboundCraftRecipeResponse_windowId_get, _Proto1_16_4.ClientboundCraftRecipeResponse_windowId_set)
    recipe = property(_Proto1_16_4.ClientboundCraftRecipeResponse_recipe_get, _Proto1_16_4.ClientboundCraftRecipeResponse_recipe_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCraftRecipeResponse_swiginit(self, _Proto1_16_4.new_ClientboundCraftRecipeResponse())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCraftRecipeResponse_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCraftRecipeResponse_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCraftRecipeResponse

# Register ClientboundCraftRecipeResponse in _Proto1_16_4:
_Proto1_16_4.ClientboundCraftRecipeResponse_swigregister(ClientboundCraftRecipeResponse)

class ClientboundAbilities(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    flags = property(_Proto1_16_4.ClientboundAbilities_flags_get, _Proto1_16_4.ClientboundAbilities_flags_set)
    flyingSpeed = property(_Proto1_16_4.ClientboundAbilities_flyingSpeed_get, _Proto1_16_4.ClientboundAbilities_flyingSpeed_set)
    walkingSpeed = property(_Proto1_16_4.ClientboundAbilities_walkingSpeed_get, _Proto1_16_4.ClientboundAbilities_walkingSpeed_set)

    def __init__(self):
        _Proto1_16_4.ClientboundAbilities_swiginit(self, _Proto1_16_4.new_ClientboundAbilities())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundAbilities_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundAbilities_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundAbilities

# Register ClientboundAbilities in _Proto1_16_4:
_Proto1_16_4.ClientboundAbilities_swigregister(ClientboundAbilities)

class ClientboundCombatEvent(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    event = property(_Proto1_16_4.ClientboundCombatEvent_event_get, _Proto1_16_4.ClientboundCombatEvent_event_set)
    duration = property(_Proto1_16_4.ClientboundCombatEvent_duration_get, _Proto1_16_4.ClientboundCombatEvent_duration_set)
    playerId = property(_Proto1_16_4.ClientboundCombatEvent_playerId_get, _Proto1_16_4.ClientboundCombatEvent_playerId_set)
    entityId = property(_Proto1_16_4.ClientboundCombatEvent_entityId_get, _Proto1_16_4.ClientboundCombatEvent_entityId_set)
    message = property(_Proto1_16_4.ClientboundCombatEvent_message_get, _Proto1_16_4.ClientboundCombatEvent_message_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCombatEvent_swiginit(self, _Proto1_16_4.new_ClientboundCombatEvent())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCombatEvent_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCombatEvent_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCombatEvent

# Register ClientboundCombatEvent in _Proto1_16_4:
_Proto1_16_4.ClientboundCombatEvent_swigregister(ClientboundCombatEvent)

class ClientboundPlayerInfo(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    action = property(_Proto1_16_4.ClientboundPlayerInfo_action_get, _Proto1_16_4.ClientboundPlayerInfo_action_set)
    data = property(_Proto1_16_4.ClientboundPlayerInfo_data_get, _Proto1_16_4.ClientboundPlayerInfo_data_set)

    def __init__(self):
        _Proto1_16_4.ClientboundPlayerInfo_swiginit(self, _Proto1_16_4.new_ClientboundPlayerInfo())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundPlayerInfo_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundPlayerInfo_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundPlayerInfo

# Register ClientboundPlayerInfo in _Proto1_16_4:
_Proto1_16_4.ClientboundPlayerInfo_swigregister(ClientboundPlayerInfo)

class PlayerInfo_data_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    UUID = property(_Proto1_16_4.PlayerInfo_data_type_UUID_get, _Proto1_16_4.PlayerInfo_data_type_UUID_set)
    name = property(_Proto1_16_4.PlayerInfo_data_type_name_get, _Proto1_16_4.PlayerInfo_data_type_name_set)
    properties = property(_Proto1_16_4.PlayerInfo_data_type_properties_get, _Proto1_16_4.PlayerInfo_data_type_properties_set)
    gamemode = property(_Proto1_16_4.PlayerInfo_data_type_gamemode_get, _Proto1_16_4.PlayerInfo_data_type_gamemode_set)
    ping = property(_Proto1_16_4.PlayerInfo_data_type_ping_get, _Proto1_16_4.PlayerInfo_data_type_ping_set)
    displayName = property(_Proto1_16_4.PlayerInfo_data_type_displayName_get, _Proto1_16_4.PlayerInfo_data_type_displayName_set)

    def __init__(self):
        _Proto1_16_4.PlayerInfo_data_type_swiginit(self, _Proto1_16_4.new_PlayerInfo_data_type())
    __swig_destroy__ = _Proto1_16_4.delete_PlayerInfo_data_type

# Register PlayerInfo_data_type in _Proto1_16_4:
_Proto1_16_4.PlayerInfo_data_type_swigregister(PlayerInfo_data_type)

class PlayerInfo_properties_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_Proto1_16_4.PlayerInfo_properties_type_name_get, _Proto1_16_4.PlayerInfo_properties_type_name_set)
    value = property(_Proto1_16_4.PlayerInfo_properties_type_value_get, _Proto1_16_4.PlayerInfo_properties_type_value_set)
    signature = property(_Proto1_16_4.PlayerInfo_properties_type_signature_get, _Proto1_16_4.PlayerInfo_properties_type_signature_set)

    def __init__(self):
        _Proto1_16_4.PlayerInfo_properties_type_swiginit(self, _Proto1_16_4.new_PlayerInfo_properties_type())
    __swig_destroy__ = _Proto1_16_4.delete_PlayerInfo_properties_type

# Register PlayerInfo_properties_type in _Proto1_16_4:
_Proto1_16_4.PlayerInfo_properties_type_swigregister(PlayerInfo_properties_type)

class ClientboundFacePlayer(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    feet_eyes = property(_Proto1_16_4.ClientboundFacePlayer_feet_eyes_get, _Proto1_16_4.ClientboundFacePlayer_feet_eyes_set)
    x = property(_Proto1_16_4.ClientboundFacePlayer_x_get, _Proto1_16_4.ClientboundFacePlayer_x_set)
    y = property(_Proto1_16_4.ClientboundFacePlayer_y_get, _Proto1_16_4.ClientboundFacePlayer_y_set)
    z = property(_Proto1_16_4.ClientboundFacePlayer_z_get, _Proto1_16_4.ClientboundFacePlayer_z_set)
    isEntity = property(_Proto1_16_4.ClientboundFacePlayer_isEntity_get, _Proto1_16_4.ClientboundFacePlayer_isEntity_set)
    entityId = property(_Proto1_16_4.ClientboundFacePlayer_entityId_get, _Proto1_16_4.ClientboundFacePlayer_entityId_set)
    entity_feet_eyes = property(_Proto1_16_4.ClientboundFacePlayer_entity_feet_eyes_get, _Proto1_16_4.ClientboundFacePlayer_entity_feet_eyes_set)

    def __init__(self):
        _Proto1_16_4.ClientboundFacePlayer_swiginit(self, _Proto1_16_4.new_ClientboundFacePlayer())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundFacePlayer_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundFacePlayer_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundFacePlayer

# Register ClientboundFacePlayer in _Proto1_16_4:
_Proto1_16_4.ClientboundFacePlayer_swigregister(ClientboundFacePlayer)

class ClientboundPosition(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ClientboundPosition_x_get, _Proto1_16_4.ClientboundPosition_x_set)
    y = property(_Proto1_16_4.ClientboundPosition_y_get, _Proto1_16_4.ClientboundPosition_y_set)
    z = property(_Proto1_16_4.ClientboundPosition_z_get, _Proto1_16_4.ClientboundPosition_z_set)
    yaw = property(_Proto1_16_4.ClientboundPosition_yaw_get, _Proto1_16_4.ClientboundPosition_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundPosition_pitch_get, _Proto1_16_4.ClientboundPosition_pitch_set)
    flags = property(_Proto1_16_4.ClientboundPosition_flags_get, _Proto1_16_4.ClientboundPosition_flags_set)
    teleportId = property(_Proto1_16_4.ClientboundPosition_teleportId_get, _Proto1_16_4.ClientboundPosition_teleportId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundPosition_swiginit(self, _Proto1_16_4.new_ClientboundPosition())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundPosition_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundPosition_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundPosition

# Register ClientboundPosition in _Proto1_16_4:
_Proto1_16_4.ClientboundPosition_swigregister(ClientboundPosition)

class ClientboundUnlockRecipes(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    action = property(_Proto1_16_4.ClientboundUnlockRecipes_action_get, _Proto1_16_4.ClientboundUnlockRecipes_action_set)
    craftingBookOpen = property(_Proto1_16_4.ClientboundUnlockRecipes_craftingBookOpen_get, _Proto1_16_4.ClientboundUnlockRecipes_craftingBookOpen_set)
    filteringCraftable = property(_Proto1_16_4.ClientboundUnlockRecipes_filteringCraftable_get, _Proto1_16_4.ClientboundUnlockRecipes_filteringCraftable_set)
    smeltingBookOpen = property(_Proto1_16_4.ClientboundUnlockRecipes_smeltingBookOpen_get, _Proto1_16_4.ClientboundUnlockRecipes_smeltingBookOpen_set)
    filteringSmeltable = property(_Proto1_16_4.ClientboundUnlockRecipes_filteringSmeltable_get, _Proto1_16_4.ClientboundUnlockRecipes_filteringSmeltable_set)
    blastFurnaceOpen = property(_Proto1_16_4.ClientboundUnlockRecipes_blastFurnaceOpen_get, _Proto1_16_4.ClientboundUnlockRecipes_blastFurnaceOpen_set)
    filteringBlastFurnace = property(_Proto1_16_4.ClientboundUnlockRecipes_filteringBlastFurnace_get, _Proto1_16_4.ClientboundUnlockRecipes_filteringBlastFurnace_set)
    smokerBookOpen = property(_Proto1_16_4.ClientboundUnlockRecipes_smokerBookOpen_get, _Proto1_16_4.ClientboundUnlockRecipes_smokerBookOpen_set)
    filteringSmoker = property(_Proto1_16_4.ClientboundUnlockRecipes_filteringSmoker_get, _Proto1_16_4.ClientboundUnlockRecipes_filteringSmoker_set)
    recipes1 = property(_Proto1_16_4.ClientboundUnlockRecipes_recipes1_get, _Proto1_16_4.ClientboundUnlockRecipes_recipes1_set)
    recipes2 = property(_Proto1_16_4.ClientboundUnlockRecipes_recipes2_get, _Proto1_16_4.ClientboundUnlockRecipes_recipes2_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUnlockRecipes_swiginit(self, _Proto1_16_4.new_ClientboundUnlockRecipes())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUnlockRecipes_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUnlockRecipes_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUnlockRecipes

# Register ClientboundUnlockRecipes in _Proto1_16_4:
_Proto1_16_4.ClientboundUnlockRecipes_swigregister(ClientboundUnlockRecipes)

class ClientboundEntityDestroy(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityIds = property(_Proto1_16_4.ClientboundEntityDestroy_entityIds_get, _Proto1_16_4.ClientboundEntityDestroy_entityIds_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityDestroy_swiginit(self, _Proto1_16_4.new_ClientboundEntityDestroy())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityDestroy_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityDestroy_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityDestroy

# Register ClientboundEntityDestroy in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityDestroy_swigregister(ClientboundEntityDestroy)

class ClientboundRemoveEntityEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundRemoveEntityEffect_entityId_get, _Proto1_16_4.ClientboundRemoveEntityEffect_entityId_set)
    effectId = property(_Proto1_16_4.ClientboundRemoveEntityEffect_effectId_get, _Proto1_16_4.ClientboundRemoveEntityEffect_effectId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundRemoveEntityEffect_swiginit(self, _Proto1_16_4.new_ClientboundRemoveEntityEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundRemoveEntityEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundRemoveEntityEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundRemoveEntityEffect

# Register ClientboundRemoveEntityEffect in _Proto1_16_4:
_Proto1_16_4.ClientboundRemoveEntityEffect_swigregister(ClientboundRemoveEntityEffect)

class ClientboundResourcePackSend(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    url = property(_Proto1_16_4.ClientboundResourcePackSend_url_get, _Proto1_16_4.ClientboundResourcePackSend_url_set)
    hash = property(_Proto1_16_4.ClientboundResourcePackSend_hash_get, _Proto1_16_4.ClientboundResourcePackSend_hash_set)

    def __init__(self):
        _Proto1_16_4.ClientboundResourcePackSend_swiginit(self, _Proto1_16_4.new_ClientboundResourcePackSend())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundResourcePackSend_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundResourcePackSend_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundResourcePackSend

# Register ClientboundResourcePackSend in _Proto1_16_4:
_Proto1_16_4.ClientboundResourcePackSend_swigregister(ClientboundResourcePackSend)

class ClientboundRespawn(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    dimension = property(_Proto1_16_4.ClientboundRespawn_dimension_get, _Proto1_16_4.ClientboundRespawn_dimension_set)
    worldName = property(_Proto1_16_4.ClientboundRespawn_worldName_get, _Proto1_16_4.ClientboundRespawn_worldName_set)
    hashedSeed = property(_Proto1_16_4.ClientboundRespawn_hashedSeed_get, _Proto1_16_4.ClientboundRespawn_hashedSeed_set)
    gamemode = property(_Proto1_16_4.ClientboundRespawn_gamemode_get, _Proto1_16_4.ClientboundRespawn_gamemode_set)
    previousGamemode = property(_Proto1_16_4.ClientboundRespawn_previousGamemode_get, _Proto1_16_4.ClientboundRespawn_previousGamemode_set)
    isDebug = property(_Proto1_16_4.ClientboundRespawn_isDebug_get, _Proto1_16_4.ClientboundRespawn_isDebug_set)
    isFlat = property(_Proto1_16_4.ClientboundRespawn_isFlat_get, _Proto1_16_4.ClientboundRespawn_isFlat_set)
    copyMetadata = property(_Proto1_16_4.ClientboundRespawn_copyMetadata_get, _Proto1_16_4.ClientboundRespawn_copyMetadata_set)

    def __init__(self):
        _Proto1_16_4.ClientboundRespawn_swiginit(self, _Proto1_16_4.new_ClientboundRespawn())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundRespawn_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundRespawn_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundRespawn

# Register ClientboundRespawn in _Proto1_16_4:
_Proto1_16_4.ClientboundRespawn_swigregister(ClientboundRespawn)

class ClientboundEntityHeadRotation(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityHeadRotation_entityId_get, _Proto1_16_4.ClientboundEntityHeadRotation_entityId_set)
    headYaw = property(_Proto1_16_4.ClientboundEntityHeadRotation_headYaw_get, _Proto1_16_4.ClientboundEntityHeadRotation_headYaw_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityHeadRotation_swiginit(self, _Proto1_16_4.new_ClientboundEntityHeadRotation())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityHeadRotation_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityHeadRotation_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityHeadRotation

# Register ClientboundEntityHeadRotation in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityHeadRotation_swigregister(ClientboundEntityHeadRotation)

class ClientboundMultiBlockChange(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    notTrustEdges = property(_Proto1_16_4.ClientboundMultiBlockChange_notTrustEdges_get, _Proto1_16_4.ClientboundMultiBlockChange_notTrustEdges_set)
    records = property(_Proto1_16_4.ClientboundMultiBlockChange_records_get, _Proto1_16_4.ClientboundMultiBlockChange_records_set)

    def __init__(self):
        _Proto1_16_4.ClientboundMultiBlockChange_swiginit(self, _Proto1_16_4.new_ClientboundMultiBlockChange())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundMultiBlockChange_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundMultiBlockChange_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundMultiBlockChange

# Register ClientboundMultiBlockChange in _Proto1_16_4:
_Proto1_16_4.ClientboundMultiBlockChange_swigregister(ClientboundMultiBlockChange)

class ClientboundSelectAdvancementTab(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    id = property(_Proto1_16_4.ClientboundSelectAdvancementTab_id_get, _Proto1_16_4.ClientboundSelectAdvancementTab_id_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSelectAdvancementTab_swiginit(self, _Proto1_16_4.new_ClientboundSelectAdvancementTab())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSelectAdvancementTab_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSelectAdvancementTab_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSelectAdvancementTab

# Register ClientboundSelectAdvancementTab in _Proto1_16_4:
_Proto1_16_4.ClientboundSelectAdvancementTab_swigregister(ClientboundSelectAdvancementTab)

class ClientboundWorldBorder(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    action = property(_Proto1_16_4.ClientboundWorldBorder_action_get, _Proto1_16_4.ClientboundWorldBorder_action_set)
    radius = property(_Proto1_16_4.ClientboundWorldBorder_radius_get, _Proto1_16_4.ClientboundWorldBorder_radius_set)
    x = property(_Proto1_16_4.ClientboundWorldBorder_x_get, _Proto1_16_4.ClientboundWorldBorder_x_set)
    z = property(_Proto1_16_4.ClientboundWorldBorder_z_get, _Proto1_16_4.ClientboundWorldBorder_z_set)
    old_radius = property(_Proto1_16_4.ClientboundWorldBorder_old_radius_get, _Proto1_16_4.ClientboundWorldBorder_old_radius_set)
    new_radius = property(_Proto1_16_4.ClientboundWorldBorder_new_radius_get, _Proto1_16_4.ClientboundWorldBorder_new_radius_set)
    speed = property(_Proto1_16_4.ClientboundWorldBorder_speed_get, _Proto1_16_4.ClientboundWorldBorder_speed_set)
    portalBoundary = property(_Proto1_16_4.ClientboundWorldBorder_portalBoundary_get, _Proto1_16_4.ClientboundWorldBorder_portalBoundary_set)
    warning_time = property(_Proto1_16_4.ClientboundWorldBorder_warning_time_get, _Proto1_16_4.ClientboundWorldBorder_warning_time_set)
    warning_blocks = property(_Proto1_16_4.ClientboundWorldBorder_warning_blocks_get, _Proto1_16_4.ClientboundWorldBorder_warning_blocks_set)

    def __init__(self):
        _Proto1_16_4.ClientboundWorldBorder_swiginit(self, _Proto1_16_4.new_ClientboundWorldBorder())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundWorldBorder_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundWorldBorder_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundWorldBorder

# Register ClientboundWorldBorder in _Proto1_16_4:
_Proto1_16_4.ClientboundWorldBorder_swigregister(ClientboundWorldBorder)

class ClientboundCamera(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cameraId = property(_Proto1_16_4.ClientboundCamera_cameraId_get, _Proto1_16_4.ClientboundCamera_cameraId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCamera_swiginit(self, _Proto1_16_4.new_ClientboundCamera())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCamera_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCamera_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCamera

# Register ClientboundCamera in _Proto1_16_4:
_Proto1_16_4.ClientboundCamera_swigregister(ClientboundCamera)

class ClientboundHeldItemSlot(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    slot = property(_Proto1_16_4.ClientboundHeldItemSlot_slot_get, _Proto1_16_4.ClientboundHeldItemSlot_slot_set)

    def __init__(self):
        _Proto1_16_4.ClientboundHeldItemSlot_swiginit(self, _Proto1_16_4.new_ClientboundHeldItemSlot())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundHeldItemSlot_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundHeldItemSlot_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundHeldItemSlot

# Register ClientboundHeldItemSlot in _Proto1_16_4:
_Proto1_16_4.ClientboundHeldItemSlot_swigregister(ClientboundHeldItemSlot)

class ClientboundUpdateViewPosition(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    chunkX = property(_Proto1_16_4.ClientboundUpdateViewPosition_chunkX_get, _Proto1_16_4.ClientboundUpdateViewPosition_chunkX_set)
    chunkZ = property(_Proto1_16_4.ClientboundUpdateViewPosition_chunkZ_get, _Proto1_16_4.ClientboundUpdateViewPosition_chunkZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUpdateViewPosition_swiginit(self, _Proto1_16_4.new_ClientboundUpdateViewPosition())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateViewPosition_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateViewPosition_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUpdateViewPosition

# Register ClientboundUpdateViewPosition in _Proto1_16_4:
_Proto1_16_4.ClientboundUpdateViewPosition_swigregister(ClientboundUpdateViewPosition)

class ClientboundUpdateViewDistance(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    viewDistance = property(_Proto1_16_4.ClientboundUpdateViewDistance_viewDistance_get, _Proto1_16_4.ClientboundUpdateViewDistance_viewDistance_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUpdateViewDistance_swiginit(self, _Proto1_16_4.new_ClientboundUpdateViewDistance())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateViewDistance_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateViewDistance_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUpdateViewDistance

# Register ClientboundUpdateViewDistance in _Proto1_16_4:
_Proto1_16_4.ClientboundUpdateViewDistance_swigregister(ClientboundUpdateViewDistance)

class ClientboundSpawnPosition(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ClientboundSpawnPosition_location_get, _Proto1_16_4.ClientboundSpawnPosition_location_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSpawnPosition_swiginit(self, _Proto1_16_4.new_ClientboundSpawnPosition())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnPosition_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSpawnPosition_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSpawnPosition

# Register ClientboundSpawnPosition in _Proto1_16_4:
_Proto1_16_4.ClientboundSpawnPosition_swigregister(ClientboundSpawnPosition)

class ClientboundScoreboardDisplayObjective(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    position = property(_Proto1_16_4.ClientboundScoreboardDisplayObjective_position_get, _Proto1_16_4.ClientboundScoreboardDisplayObjective_position_set)
    name = property(_Proto1_16_4.ClientboundScoreboardDisplayObjective_name_get, _Proto1_16_4.ClientboundScoreboardDisplayObjective_name_set)

    def __init__(self):
        _Proto1_16_4.ClientboundScoreboardDisplayObjective_swiginit(self, _Proto1_16_4.new_ClientboundScoreboardDisplayObjective())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardDisplayObjective_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardDisplayObjective_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundScoreboardDisplayObjective

# Register ClientboundScoreboardDisplayObjective in _Proto1_16_4:
_Proto1_16_4.ClientboundScoreboardDisplayObjective_swigregister(ClientboundScoreboardDisplayObjective)

class ClientboundEntityMetadata(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityMetadata_entityId_get, _Proto1_16_4.ClientboundEntityMetadata_entityId_set)
    metadata = property(_Proto1_16_4.ClientboundEntityMetadata_metadata_get, _Proto1_16_4.ClientboundEntityMetadata_metadata_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityMetadata_swiginit(self, _Proto1_16_4.new_ClientboundEntityMetadata())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityMetadata_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityMetadata_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityMetadata

# Register ClientboundEntityMetadata in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityMetadata_swigregister(ClientboundEntityMetadata)

class ClientboundAttachEntity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundAttachEntity_entityId_get, _Proto1_16_4.ClientboundAttachEntity_entityId_set)
    vehicleId = property(_Proto1_16_4.ClientboundAttachEntity_vehicleId_get, _Proto1_16_4.ClientboundAttachEntity_vehicleId_set)

    def __init__(self):
        _Proto1_16_4.ClientboundAttachEntity_swiginit(self, _Proto1_16_4.new_ClientboundAttachEntity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundAttachEntity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundAttachEntity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundAttachEntity

# Register ClientboundAttachEntity in _Proto1_16_4:
_Proto1_16_4.ClientboundAttachEntity_swigregister(ClientboundAttachEntity)

class ClientboundEntityVelocity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityVelocity_entityId_get, _Proto1_16_4.ClientboundEntityVelocity_entityId_set)
    velocityX = property(_Proto1_16_4.ClientboundEntityVelocity_velocityX_get, _Proto1_16_4.ClientboundEntityVelocity_velocityX_set)
    velocityY = property(_Proto1_16_4.ClientboundEntityVelocity_velocityY_get, _Proto1_16_4.ClientboundEntityVelocity_velocityY_set)
    velocityZ = property(_Proto1_16_4.ClientboundEntityVelocity_velocityZ_get, _Proto1_16_4.ClientboundEntityVelocity_velocityZ_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityVelocity_swiginit(self, _Proto1_16_4.new_ClientboundEntityVelocity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityVelocity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityVelocity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityVelocity

# Register ClientboundEntityVelocity in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityVelocity_swigregister(ClientboundEntityVelocity)

class ClientboundEntityEquipment(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityEquipment_entityId_get, _Proto1_16_4.ClientboundEntityEquipment_entityId_set)
    equipments = property(_Proto1_16_4.ClientboundEntityEquipment_equipments_get, _Proto1_16_4.ClientboundEntityEquipment_equipments_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityEquipment_swiginit(self, _Proto1_16_4.new_ClientboundEntityEquipment())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityEquipment_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityEquipment_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityEquipment

# Register ClientboundEntityEquipment in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityEquipment_swigregister(ClientboundEntityEquipment)

class ClientboundExperience(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    experienceBar = property(_Proto1_16_4.ClientboundExperience_experienceBar_get, _Proto1_16_4.ClientboundExperience_experienceBar_set)
    level = property(_Proto1_16_4.ClientboundExperience_level_get, _Proto1_16_4.ClientboundExperience_level_set)
    totalExperience = property(_Proto1_16_4.ClientboundExperience_totalExperience_get, _Proto1_16_4.ClientboundExperience_totalExperience_set)

    def __init__(self):
        _Proto1_16_4.ClientboundExperience_swiginit(self, _Proto1_16_4.new_ClientboundExperience())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundExperience_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundExperience_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundExperience

# Register ClientboundExperience in _Proto1_16_4:
_Proto1_16_4.ClientboundExperience_swigregister(ClientboundExperience)

class ClientboundUpdateHealth(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    health = property(_Proto1_16_4.ClientboundUpdateHealth_health_get, _Proto1_16_4.ClientboundUpdateHealth_health_set)
    food = property(_Proto1_16_4.ClientboundUpdateHealth_food_get, _Proto1_16_4.ClientboundUpdateHealth_food_set)
    foodSaturation = property(_Proto1_16_4.ClientboundUpdateHealth_foodSaturation_get, _Proto1_16_4.ClientboundUpdateHealth_foodSaturation_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUpdateHealth_swiginit(self, _Proto1_16_4.new_ClientboundUpdateHealth())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateHealth_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateHealth_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUpdateHealth

# Register ClientboundUpdateHealth in _Proto1_16_4:
_Proto1_16_4.ClientboundUpdateHealth_swigregister(ClientboundUpdateHealth)

class ClientboundScoreboardObjective(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_Proto1_16_4.ClientboundScoreboardObjective_name_get, _Proto1_16_4.ClientboundScoreboardObjective_name_set)
    action = property(_Proto1_16_4.ClientboundScoreboardObjective_action_get, _Proto1_16_4.ClientboundScoreboardObjective_action_set)
    displayText = property(_Proto1_16_4.ClientboundScoreboardObjective_displayText_get, _Proto1_16_4.ClientboundScoreboardObjective_displayText_set)
    type = property(_Proto1_16_4.ClientboundScoreboardObjective_type_get, _Proto1_16_4.ClientboundScoreboardObjective_type_set)

    def __init__(self):
        _Proto1_16_4.ClientboundScoreboardObjective_swiginit(self, _Proto1_16_4.new_ClientboundScoreboardObjective())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardObjective_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardObjective_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundScoreboardObjective

# Register ClientboundScoreboardObjective in _Proto1_16_4:
_Proto1_16_4.ClientboundScoreboardObjective_swigregister(ClientboundScoreboardObjective)

class ClientboundSetPassengers(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundSetPassengers_entityId_get, _Proto1_16_4.ClientboundSetPassengers_entityId_set)
    passengers = property(_Proto1_16_4.ClientboundSetPassengers_passengers_get, _Proto1_16_4.ClientboundSetPassengers_passengers_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSetPassengers_swiginit(self, _Proto1_16_4.new_ClientboundSetPassengers())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSetPassengers_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSetPassengers_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSetPassengers

# Register ClientboundSetPassengers in _Proto1_16_4:
_Proto1_16_4.ClientboundSetPassengers_swigregister(ClientboundSetPassengers)

class ClientboundTeams(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    team = property(_Proto1_16_4.ClientboundTeams_team_get, _Proto1_16_4.ClientboundTeams_team_set)
    mode = property(_Proto1_16_4.ClientboundTeams_mode_get, _Proto1_16_4.ClientboundTeams_mode_set)
    name = property(_Proto1_16_4.ClientboundTeams_name_get, _Proto1_16_4.ClientboundTeams_name_set)
    friendlyFire = property(_Proto1_16_4.ClientboundTeams_friendlyFire_get, _Proto1_16_4.ClientboundTeams_friendlyFire_set)
    nameTagVisibility = property(_Proto1_16_4.ClientboundTeams_nameTagVisibility_get, _Proto1_16_4.ClientboundTeams_nameTagVisibility_set)
    collisionRule = property(_Proto1_16_4.ClientboundTeams_collisionRule_get, _Proto1_16_4.ClientboundTeams_collisionRule_set)
    formatting = property(_Proto1_16_4.ClientboundTeams_formatting_get, _Proto1_16_4.ClientboundTeams_formatting_set)
    prefix = property(_Proto1_16_4.ClientboundTeams_prefix_get, _Proto1_16_4.ClientboundTeams_prefix_set)
    suffix = property(_Proto1_16_4.ClientboundTeams_suffix_get, _Proto1_16_4.ClientboundTeams_suffix_set)
    players = property(_Proto1_16_4.ClientboundTeams_players_get, _Proto1_16_4.ClientboundTeams_players_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTeams_swiginit(self, _Proto1_16_4.new_ClientboundTeams())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTeams_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTeams_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTeams

# Register ClientboundTeams in _Proto1_16_4:
_Proto1_16_4.ClientboundTeams_swigregister(ClientboundTeams)

class ClientboundScoreboardScore(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    itemName = property(_Proto1_16_4.ClientboundScoreboardScore_itemName_get, _Proto1_16_4.ClientboundScoreboardScore_itemName_set)
    action = property(_Proto1_16_4.ClientboundScoreboardScore_action_get, _Proto1_16_4.ClientboundScoreboardScore_action_set)
    scoreName = property(_Proto1_16_4.ClientboundScoreboardScore_scoreName_get, _Proto1_16_4.ClientboundScoreboardScore_scoreName_set)
    value = property(_Proto1_16_4.ClientboundScoreboardScore_value_get, _Proto1_16_4.ClientboundScoreboardScore_value_set)

    def __init__(self):
        _Proto1_16_4.ClientboundScoreboardScore_swiginit(self, _Proto1_16_4.new_ClientboundScoreboardScore())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardScore_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundScoreboardScore_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundScoreboardScore

# Register ClientboundScoreboardScore in _Proto1_16_4:
_Proto1_16_4.ClientboundScoreboardScore_swigregister(ClientboundScoreboardScore)

class ClientboundUpdateTime(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    age = property(_Proto1_16_4.ClientboundUpdateTime_age_get, _Proto1_16_4.ClientboundUpdateTime_age_set)
    time = property(_Proto1_16_4.ClientboundUpdateTime_time_get, _Proto1_16_4.ClientboundUpdateTime_time_set)

    def __init__(self):
        _Proto1_16_4.ClientboundUpdateTime_swiginit(self, _Proto1_16_4.new_ClientboundUpdateTime())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateTime_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundUpdateTime_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundUpdateTime

# Register ClientboundUpdateTime in _Proto1_16_4:
_Proto1_16_4.ClientboundUpdateTime_swigregister(ClientboundUpdateTime)

class ClientboundTitle(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    action = property(_Proto1_16_4.ClientboundTitle_action_get, _Proto1_16_4.ClientboundTitle_action_set)
    text = property(_Proto1_16_4.ClientboundTitle_text_get, _Proto1_16_4.ClientboundTitle_text_set)
    fadeIn = property(_Proto1_16_4.ClientboundTitle_fadeIn_get, _Proto1_16_4.ClientboundTitle_fadeIn_set)
    stay = property(_Proto1_16_4.ClientboundTitle_stay_get, _Proto1_16_4.ClientboundTitle_stay_set)
    fadeOut = property(_Proto1_16_4.ClientboundTitle_fadeOut_get, _Proto1_16_4.ClientboundTitle_fadeOut_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTitle_swiginit(self, _Proto1_16_4.new_ClientboundTitle())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTitle_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTitle_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTitle

# Register ClientboundTitle in _Proto1_16_4:
_Proto1_16_4.ClientboundTitle_swigregister(ClientboundTitle)

class ClientboundEntitySoundEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    soundId = property(_Proto1_16_4.ClientboundEntitySoundEffect_soundId_get, _Proto1_16_4.ClientboundEntitySoundEffect_soundId_set)
    soundCategory = property(_Proto1_16_4.ClientboundEntitySoundEffect_soundCategory_get, _Proto1_16_4.ClientboundEntitySoundEffect_soundCategory_set)
    entityId = property(_Proto1_16_4.ClientboundEntitySoundEffect_entityId_get, _Proto1_16_4.ClientboundEntitySoundEffect_entityId_set)
    volume = property(_Proto1_16_4.ClientboundEntitySoundEffect_volume_get, _Proto1_16_4.ClientboundEntitySoundEffect_volume_set)
    pitch = property(_Proto1_16_4.ClientboundEntitySoundEffect_pitch_get, _Proto1_16_4.ClientboundEntitySoundEffect_pitch_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntitySoundEffect_swiginit(self, _Proto1_16_4.new_ClientboundEntitySoundEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntitySoundEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntitySoundEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntitySoundEffect

# Register ClientboundEntitySoundEffect in _Proto1_16_4:
_Proto1_16_4.ClientboundEntitySoundEffect_swigregister(ClientboundEntitySoundEffect)

class ClientboundSoundEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    soundId = property(_Proto1_16_4.ClientboundSoundEffect_soundId_get, _Proto1_16_4.ClientboundSoundEffect_soundId_set)
    soundCategory = property(_Proto1_16_4.ClientboundSoundEffect_soundCategory_get, _Proto1_16_4.ClientboundSoundEffect_soundCategory_set)
    x = property(_Proto1_16_4.ClientboundSoundEffect_x_get, _Proto1_16_4.ClientboundSoundEffect_x_set)
    y = property(_Proto1_16_4.ClientboundSoundEffect_y_get, _Proto1_16_4.ClientboundSoundEffect_y_set)
    z = property(_Proto1_16_4.ClientboundSoundEffect_z_get, _Proto1_16_4.ClientboundSoundEffect_z_set)
    volume = property(_Proto1_16_4.ClientboundSoundEffect_volume_get, _Proto1_16_4.ClientboundSoundEffect_volume_set)
    pitch = property(_Proto1_16_4.ClientboundSoundEffect_pitch_get, _Proto1_16_4.ClientboundSoundEffect_pitch_set)

    def __init__(self):
        _Proto1_16_4.ClientboundSoundEffect_swiginit(self, _Proto1_16_4.new_ClientboundSoundEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundSoundEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundSoundEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundSoundEffect

# Register ClientboundSoundEffect in _Proto1_16_4:
_Proto1_16_4.ClientboundSoundEffect_swigregister(ClientboundSoundEffect)

class ClientboundStopSound(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    flags = property(_Proto1_16_4.ClientboundStopSound_flags_get, _Proto1_16_4.ClientboundStopSound_flags_set)
    source = property(_Proto1_16_4.ClientboundStopSound_source_get, _Proto1_16_4.ClientboundStopSound_source_set)
    sound = property(_Proto1_16_4.ClientboundStopSound_sound_get, _Proto1_16_4.ClientboundStopSound_sound_set)

    def __init__(self):
        _Proto1_16_4.ClientboundStopSound_swiginit(self, _Proto1_16_4.new_ClientboundStopSound())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundStopSound_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundStopSound_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundStopSound

# Register ClientboundStopSound in _Proto1_16_4:
_Proto1_16_4.ClientboundStopSound_swigregister(ClientboundStopSound)

class ClientboundPlayerlistHeader(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    header = property(_Proto1_16_4.ClientboundPlayerlistHeader_header_get, _Proto1_16_4.ClientboundPlayerlistHeader_header_set)
    footer = property(_Proto1_16_4.ClientboundPlayerlistHeader_footer_get, _Proto1_16_4.ClientboundPlayerlistHeader_footer_set)

    def __init__(self):
        _Proto1_16_4.ClientboundPlayerlistHeader_swiginit(self, _Proto1_16_4.new_ClientboundPlayerlistHeader())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundPlayerlistHeader_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundPlayerlistHeader_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundPlayerlistHeader

# Register ClientboundPlayerlistHeader in _Proto1_16_4:
_Proto1_16_4.ClientboundPlayerlistHeader_swigregister(ClientboundPlayerlistHeader)

class ClientboundNbtQueryResponse(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transactionId = property(_Proto1_16_4.ClientboundNbtQueryResponse_transactionId_get, _Proto1_16_4.ClientboundNbtQueryResponse_transactionId_set)
    nbt = property(_Proto1_16_4.ClientboundNbtQueryResponse_nbt_get, _Proto1_16_4.ClientboundNbtQueryResponse_nbt_set)

    def __init__(self):
        _Proto1_16_4.ClientboundNbtQueryResponse_swiginit(self, _Proto1_16_4.new_ClientboundNbtQueryResponse())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundNbtQueryResponse_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundNbtQueryResponse_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundNbtQueryResponse

# Register ClientboundNbtQueryResponse in _Proto1_16_4:
_Proto1_16_4.ClientboundNbtQueryResponse_swigregister(ClientboundNbtQueryResponse)

class ClientboundCollect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    collectedEntityId = property(_Proto1_16_4.ClientboundCollect_collectedEntityId_get, _Proto1_16_4.ClientboundCollect_collectedEntityId_set)
    collectorEntityId = property(_Proto1_16_4.ClientboundCollect_collectorEntityId_get, _Proto1_16_4.ClientboundCollect_collectorEntityId_set)
    pickupItemCount = property(_Proto1_16_4.ClientboundCollect_pickupItemCount_get, _Proto1_16_4.ClientboundCollect_pickupItemCount_set)

    def __init__(self):
        _Proto1_16_4.ClientboundCollect_swiginit(self, _Proto1_16_4.new_ClientboundCollect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundCollect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundCollect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundCollect

# Register ClientboundCollect in _Proto1_16_4:
_Proto1_16_4.ClientboundCollect_swigregister(ClientboundCollect)

class ClientboundEntityTeleport(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityTeleport_entityId_get, _Proto1_16_4.ClientboundEntityTeleport_entityId_set)
    x = property(_Proto1_16_4.ClientboundEntityTeleport_x_get, _Proto1_16_4.ClientboundEntityTeleport_x_set)
    y = property(_Proto1_16_4.ClientboundEntityTeleport_y_get, _Proto1_16_4.ClientboundEntityTeleport_y_set)
    z = property(_Proto1_16_4.ClientboundEntityTeleport_z_get, _Proto1_16_4.ClientboundEntityTeleport_z_set)
    yaw = property(_Proto1_16_4.ClientboundEntityTeleport_yaw_get, _Proto1_16_4.ClientboundEntityTeleport_yaw_set)
    pitch = property(_Proto1_16_4.ClientboundEntityTeleport_pitch_get, _Proto1_16_4.ClientboundEntityTeleport_pitch_set)
    onGround = property(_Proto1_16_4.ClientboundEntityTeleport_onGround_get, _Proto1_16_4.ClientboundEntityTeleport_onGround_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityTeleport_swiginit(self, _Proto1_16_4.new_ClientboundEntityTeleport())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityTeleport_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityTeleport_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityTeleport

# Register ClientboundEntityTeleport in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityTeleport_swigregister(ClientboundEntityTeleport)

class ClientboundAdvancements(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    reset = property(_Proto1_16_4.ClientboundAdvancements_reset_get, _Proto1_16_4.ClientboundAdvancements_reset_set)
    advancementMapping = property(_Proto1_16_4.ClientboundAdvancements_advancementMapping_get, _Proto1_16_4.ClientboundAdvancements_advancementMapping_set)
    identifiers = property(_Proto1_16_4.ClientboundAdvancements_identifiers_get, _Proto1_16_4.ClientboundAdvancements_identifiers_set)
    progressMapping = property(_Proto1_16_4.ClientboundAdvancements_progressMapping_get, _Proto1_16_4.ClientboundAdvancements_progressMapping_set)

    def __init__(self):
        _Proto1_16_4.ClientboundAdvancements_swiginit(self, _Proto1_16_4.new_ClientboundAdvancements())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundAdvancements_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundAdvancements_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundAdvancements

# Register ClientboundAdvancements in _Proto1_16_4:
_Proto1_16_4.ClientboundAdvancements_swigregister(ClientboundAdvancements)

class Advancements_advancementMapping_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    key = property(_Proto1_16_4.Advancements_advancementMapping_type_key_get, _Proto1_16_4.Advancements_advancementMapping_type_key_set)

    def __init__(self):
        _Proto1_16_4.Advancements_advancementMapping_type_swiginit(self, _Proto1_16_4.new_Advancements_advancementMapping_type())
    __swig_destroy__ = _Proto1_16_4.delete_Advancements_advancementMapping_type

# Register Advancements_advancementMapping_type in _Proto1_16_4:
_Proto1_16_4.Advancements_advancementMapping_type_swigregister(Advancements_advancementMapping_type)

class Advancements_progressMapping_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    key = property(_Proto1_16_4.Advancements_progressMapping_type_key_get, _Proto1_16_4.Advancements_progressMapping_type_key_set)
    value = property(_Proto1_16_4.Advancements_progressMapping_type_value_get, _Proto1_16_4.Advancements_progressMapping_type_value_set)

    def __init__(self):
        _Proto1_16_4.Advancements_progressMapping_type_swiginit(self, _Proto1_16_4.new_Advancements_progressMapping_type())
    __swig_destroy__ = _Proto1_16_4.delete_Advancements_progressMapping_type

# Register Advancements_progressMapping_type in _Proto1_16_4:
_Proto1_16_4.Advancements_progressMapping_type_swigregister(Advancements_progressMapping_type)

class Advancements_value_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    criterionIdentifier = property(_Proto1_16_4.Advancements_value_type_criterionIdentifier_get, _Proto1_16_4.Advancements_value_type_criterionIdentifier_set)
    criterionProgress = property(_Proto1_16_4.Advancements_value_type_criterionProgress_get, _Proto1_16_4.Advancements_value_type_criterionProgress_set)

    def __init__(self):
        _Proto1_16_4.Advancements_value_type_swiginit(self, _Proto1_16_4.new_Advancements_value_type())
    __swig_destroy__ = _Proto1_16_4.delete_Advancements_value_type

# Register Advancements_value_type in _Proto1_16_4:
_Proto1_16_4.Advancements_value_type_swigregister(Advancements_value_type)

class ClientboundEntityUpdateAttributes(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityUpdateAttributes_entityId_get, _Proto1_16_4.ClientboundEntityUpdateAttributes_entityId_set)
    properties = property(_Proto1_16_4.ClientboundEntityUpdateAttributes_properties_get, _Proto1_16_4.ClientboundEntityUpdateAttributes_properties_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityUpdateAttributes_swiginit(self, _Proto1_16_4.new_ClientboundEntityUpdateAttributes())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityUpdateAttributes_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityUpdateAttributes_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityUpdateAttributes

# Register ClientboundEntityUpdateAttributes in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityUpdateAttributes_swigregister(ClientboundEntityUpdateAttributes)

class EntityUpdateAttributes_properties_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    key = property(_Proto1_16_4.EntityUpdateAttributes_properties_type_key_get, _Proto1_16_4.EntityUpdateAttributes_properties_type_key_set)
    value = property(_Proto1_16_4.EntityUpdateAttributes_properties_type_value_get, _Proto1_16_4.EntityUpdateAttributes_properties_type_value_set)
    modifiers = property(_Proto1_16_4.EntityUpdateAttributes_properties_type_modifiers_get, _Proto1_16_4.EntityUpdateAttributes_properties_type_modifiers_set)

    def __init__(self):
        _Proto1_16_4.EntityUpdateAttributes_properties_type_swiginit(self, _Proto1_16_4.new_EntityUpdateAttributes_properties_type())
    __swig_destroy__ = _Proto1_16_4.delete_EntityUpdateAttributes_properties_type

# Register EntityUpdateAttributes_properties_type in _Proto1_16_4:
_Proto1_16_4.EntityUpdateAttributes_properties_type_swigregister(EntityUpdateAttributes_properties_type)

class EntityUpdateAttributes_modifiers_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    uuid = property(_Proto1_16_4.EntityUpdateAttributes_modifiers_type_uuid_get, _Proto1_16_4.EntityUpdateAttributes_modifiers_type_uuid_set)
    amount = property(_Proto1_16_4.EntityUpdateAttributes_modifiers_type_amount_get, _Proto1_16_4.EntityUpdateAttributes_modifiers_type_amount_set)
    operation = property(_Proto1_16_4.EntityUpdateAttributes_modifiers_type_operation_get, _Proto1_16_4.EntityUpdateAttributes_modifiers_type_operation_set)

    def __init__(self):
        _Proto1_16_4.EntityUpdateAttributes_modifiers_type_swiginit(self, _Proto1_16_4.new_EntityUpdateAttributes_modifiers_type())
    __swig_destroy__ = _Proto1_16_4.delete_EntityUpdateAttributes_modifiers_type

# Register EntityUpdateAttributes_modifiers_type in _Proto1_16_4:
_Proto1_16_4.EntityUpdateAttributes_modifiers_type_swigregister(EntityUpdateAttributes_modifiers_type)

class ClientboundEntityEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ClientboundEntityEffect_entityId_get, _Proto1_16_4.ClientboundEntityEffect_entityId_set)
    effectId = property(_Proto1_16_4.ClientboundEntityEffect_effectId_get, _Proto1_16_4.ClientboundEntityEffect_effectId_set)
    amplifier = property(_Proto1_16_4.ClientboundEntityEffect_amplifier_get, _Proto1_16_4.ClientboundEntityEffect_amplifier_set)
    duration = property(_Proto1_16_4.ClientboundEntityEffect_duration_get, _Proto1_16_4.ClientboundEntityEffect_duration_set)
    hideParticles = property(_Proto1_16_4.ClientboundEntityEffect_hideParticles_get, _Proto1_16_4.ClientboundEntityEffect_hideParticles_set)

    def __init__(self):
        _Proto1_16_4.ClientboundEntityEffect_swiginit(self, _Proto1_16_4.new_ClientboundEntityEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundEntityEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundEntityEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundEntityEffect

# Register ClientboundEntityEffect in _Proto1_16_4:
_Proto1_16_4.ClientboundEntityEffect_swigregister(ClientboundEntityEffect)

class ClientboundDeclareRecipes(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    recipes = property(_Proto1_16_4.ClientboundDeclareRecipes_recipes_get, _Proto1_16_4.ClientboundDeclareRecipes_recipes_set)

    def __init__(self):
        _Proto1_16_4.ClientboundDeclareRecipes_swiginit(self, _Proto1_16_4.new_ClientboundDeclareRecipes())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundDeclareRecipes_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundDeclareRecipes_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundDeclareRecipes

# Register ClientboundDeclareRecipes in _Proto1_16_4:
_Proto1_16_4.ClientboundDeclareRecipes_swigregister(ClientboundDeclareRecipes)

class DeclareRecipes_recipes_type(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    type = property(_Proto1_16_4.DeclareRecipes_recipes_type_type_get, _Proto1_16_4.DeclareRecipes_recipes_type_type_set)
    recipeId = property(_Proto1_16_4.DeclareRecipes_recipes_type_recipeId_get, _Proto1_16_4.DeclareRecipes_recipes_type_recipeId_set)
    minecraft_smelting = property(_Proto1_16_4.DeclareRecipes_recipes_type_minecraft_smelting_get, _Proto1_16_4.DeclareRecipes_recipes_type_minecraft_smelting_set)
    minecraft_blasting = property(_Proto1_16_4.DeclareRecipes_recipes_type_minecraft_blasting_get, _Proto1_16_4.DeclareRecipes_recipes_type_minecraft_blasting_set)
    minecraft_smoking = property(_Proto1_16_4.DeclareRecipes_recipes_type_minecraft_smoking_get, _Proto1_16_4.DeclareRecipes_recipes_type_minecraft_smoking_set)
    minecraft_campfire_cooking = property(_Proto1_16_4.DeclareRecipes_recipes_type_minecraft_campfire_cooking_get, _Proto1_16_4.DeclareRecipes_recipes_type_minecraft_campfire_cooking_set)

    def __init__(self):
        _Proto1_16_4.DeclareRecipes_recipes_type_swiginit(self, _Proto1_16_4.new_DeclareRecipes_recipes_type())
    __swig_destroy__ = _Proto1_16_4.delete_DeclareRecipes_recipes_type

# Register DeclareRecipes_recipes_type in _Proto1_16_4:
_Proto1_16_4.DeclareRecipes_recipes_type_swigregister(DeclareRecipes_recipes_type)

class ClientboundTags(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    blockTags = property(_Proto1_16_4.ClientboundTags_blockTags_get, _Proto1_16_4.ClientboundTags_blockTags_set)
    itemTags = property(_Proto1_16_4.ClientboundTags_itemTags_get, _Proto1_16_4.ClientboundTags_itemTags_set)
    fluidTags = property(_Proto1_16_4.ClientboundTags_fluidTags_get, _Proto1_16_4.ClientboundTags_fluidTags_set)
    entityTags = property(_Proto1_16_4.ClientboundTags_entityTags_get, _Proto1_16_4.ClientboundTags_entityTags_set)

    def __init__(self):
        _Proto1_16_4.ClientboundTags_swiginit(self, _Proto1_16_4.new_ClientboundTags())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ClientboundTags_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ClientboundTags_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ClientboundTags

# Register ClientboundTags in _Proto1_16_4:
_Proto1_16_4.ClientboundTags_swigregister(ClientboundTags)

class ServerboundTeleportConfirm(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    teleportId = property(_Proto1_16_4.ServerboundTeleportConfirm_teleportId_get, _Proto1_16_4.ServerboundTeleportConfirm_teleportId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundTeleportConfirm_swiginit(self, _Proto1_16_4.new_ServerboundTeleportConfirm())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundTeleportConfirm_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundTeleportConfirm_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundTeleportConfirm

# Register ServerboundTeleportConfirm in _Proto1_16_4:
_Proto1_16_4.ServerboundTeleportConfirm_swigregister(ServerboundTeleportConfirm)

class ServerboundQueryBlockNbt(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transactionId = property(_Proto1_16_4.ServerboundQueryBlockNbt_transactionId_get, _Proto1_16_4.ServerboundQueryBlockNbt_transactionId_set)
    location = property(_Proto1_16_4.ServerboundQueryBlockNbt_location_get, _Proto1_16_4.ServerboundQueryBlockNbt_location_set)

    def __init__(self):
        _Proto1_16_4.ServerboundQueryBlockNbt_swiginit(self, _Proto1_16_4.new_ServerboundQueryBlockNbt())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundQueryBlockNbt_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundQueryBlockNbt_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundQueryBlockNbt

# Register ServerboundQueryBlockNbt in _Proto1_16_4:
_Proto1_16_4.ServerboundQueryBlockNbt_swigregister(ServerboundQueryBlockNbt)

class ServerboundSetDifficulty(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    newDifficulty = property(_Proto1_16_4.ServerboundSetDifficulty_newDifficulty_get, _Proto1_16_4.ServerboundSetDifficulty_newDifficulty_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSetDifficulty_swiginit(self, _Proto1_16_4.new_ServerboundSetDifficulty())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSetDifficulty_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSetDifficulty_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSetDifficulty

# Register ServerboundSetDifficulty in _Proto1_16_4:
_Proto1_16_4.ServerboundSetDifficulty_swigregister(ServerboundSetDifficulty)

class ServerboundChat(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    message = property(_Proto1_16_4.ServerboundChat_message_get, _Proto1_16_4.ServerboundChat_message_set)

    def __init__(self):
        _Proto1_16_4.ServerboundChat_swiginit(self, _Proto1_16_4.new_ServerboundChat())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundChat_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundChat_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundChat

# Register ServerboundChat in _Proto1_16_4:
_Proto1_16_4.ServerboundChat_swigregister(ServerboundChat)

class ServerboundClientCommand(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    actionId = property(_Proto1_16_4.ServerboundClientCommand_actionId_get, _Proto1_16_4.ServerboundClientCommand_actionId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundClientCommand_swiginit(self, _Proto1_16_4.new_ServerboundClientCommand())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundClientCommand_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundClientCommand_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundClientCommand

# Register ServerboundClientCommand in _Proto1_16_4:
_Proto1_16_4.ServerboundClientCommand_swigregister(ServerboundClientCommand)

class ServerboundSettings(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    locale = property(_Proto1_16_4.ServerboundSettings_locale_get, _Proto1_16_4.ServerboundSettings_locale_set)
    viewDistance = property(_Proto1_16_4.ServerboundSettings_viewDistance_get, _Proto1_16_4.ServerboundSettings_viewDistance_set)
    chatFlags = property(_Proto1_16_4.ServerboundSettings_chatFlags_get, _Proto1_16_4.ServerboundSettings_chatFlags_set)
    chatColors = property(_Proto1_16_4.ServerboundSettings_chatColors_get, _Proto1_16_4.ServerboundSettings_chatColors_set)
    skinParts = property(_Proto1_16_4.ServerboundSettings_skinParts_get, _Proto1_16_4.ServerboundSettings_skinParts_set)
    mainHand = property(_Proto1_16_4.ServerboundSettings_mainHand_get, _Proto1_16_4.ServerboundSettings_mainHand_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSettings_swiginit(self, _Proto1_16_4.new_ServerboundSettings())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSettings_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSettings_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSettings

# Register ServerboundSettings in _Proto1_16_4:
_Proto1_16_4.ServerboundSettings_swigregister(ServerboundSettings)

class ServerboundTabComplete(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transactionId = property(_Proto1_16_4.ServerboundTabComplete_transactionId_get, _Proto1_16_4.ServerboundTabComplete_transactionId_set)
    text = property(_Proto1_16_4.ServerboundTabComplete_text_get, _Proto1_16_4.ServerboundTabComplete_text_set)

    def __init__(self):
        _Proto1_16_4.ServerboundTabComplete_swiginit(self, _Proto1_16_4.new_ServerboundTabComplete())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundTabComplete_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundTabComplete_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundTabComplete

# Register ServerboundTabComplete in _Proto1_16_4:
_Proto1_16_4.ServerboundTabComplete_swigregister(ServerboundTabComplete)

class ServerboundTransaction(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ServerboundTransaction_windowId_get, _Proto1_16_4.ServerboundTransaction_windowId_set)
    action = property(_Proto1_16_4.ServerboundTransaction_action_get, _Proto1_16_4.ServerboundTransaction_action_set)
    accepted = property(_Proto1_16_4.ServerboundTransaction_accepted_get, _Proto1_16_4.ServerboundTransaction_accepted_set)

    def __init__(self):
        _Proto1_16_4.ServerboundTransaction_swiginit(self, _Proto1_16_4.new_ServerboundTransaction())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundTransaction_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundTransaction_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundTransaction

# Register ServerboundTransaction in _Proto1_16_4:
_Proto1_16_4.ServerboundTransaction_swigregister(ServerboundTransaction)

class ServerboundEnchantItem(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ServerboundEnchantItem_windowId_get, _Proto1_16_4.ServerboundEnchantItem_windowId_set)
    enchantment = property(_Proto1_16_4.ServerboundEnchantItem_enchantment_get, _Proto1_16_4.ServerboundEnchantItem_enchantment_set)

    def __init__(self):
        _Proto1_16_4.ServerboundEnchantItem_swiginit(self, _Proto1_16_4.new_ServerboundEnchantItem())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundEnchantItem_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundEnchantItem_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundEnchantItem

# Register ServerboundEnchantItem in _Proto1_16_4:
_Proto1_16_4.ServerboundEnchantItem_swigregister(ServerboundEnchantItem)

class ServerboundWindowClick(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ServerboundWindowClick_windowId_get, _Proto1_16_4.ServerboundWindowClick_windowId_set)
    slot = property(_Proto1_16_4.ServerboundWindowClick_slot_get, _Proto1_16_4.ServerboundWindowClick_slot_set)
    mouseButton = property(_Proto1_16_4.ServerboundWindowClick_mouseButton_get, _Proto1_16_4.ServerboundWindowClick_mouseButton_set)
    action = property(_Proto1_16_4.ServerboundWindowClick_action_get, _Proto1_16_4.ServerboundWindowClick_action_set)
    mode = property(_Proto1_16_4.ServerboundWindowClick_mode_get, _Proto1_16_4.ServerboundWindowClick_mode_set)
    item = property(_Proto1_16_4.ServerboundWindowClick_item_get, _Proto1_16_4.ServerboundWindowClick_item_set)

    def __init__(self):
        _Proto1_16_4.ServerboundWindowClick_swiginit(self, _Proto1_16_4.new_ServerboundWindowClick())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundWindowClick_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundWindowClick_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundWindowClick

# Register ServerboundWindowClick in _Proto1_16_4:
_Proto1_16_4.ServerboundWindowClick_swigregister(ServerboundWindowClick)

class ServerboundCloseWindow(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ServerboundCloseWindow_windowId_get, _Proto1_16_4.ServerboundCloseWindow_windowId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundCloseWindow_swiginit(self, _Proto1_16_4.new_ServerboundCloseWindow())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundCloseWindow_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundCloseWindow_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundCloseWindow

# Register ServerboundCloseWindow in _Proto1_16_4:
_Proto1_16_4.ServerboundCloseWindow_swigregister(ServerboundCloseWindow)

class ServerboundCustomPayload(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    channel = property(_Proto1_16_4.ServerboundCustomPayload_channel_get, _Proto1_16_4.ServerboundCustomPayload_channel_set)
    data = property(_Proto1_16_4.ServerboundCustomPayload_data_get, _Proto1_16_4.ServerboundCustomPayload_data_set)

    def __init__(self):
        _Proto1_16_4.ServerboundCustomPayload_swiginit(self, _Proto1_16_4.new_ServerboundCustomPayload())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundCustomPayload_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundCustomPayload_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundCustomPayload

# Register ServerboundCustomPayload in _Proto1_16_4:
_Proto1_16_4.ServerboundCustomPayload_swigregister(ServerboundCustomPayload)

class ServerboundEditBook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    new_book = property(_Proto1_16_4.ServerboundEditBook_new_book_get, _Proto1_16_4.ServerboundEditBook_new_book_set)
    signing = property(_Proto1_16_4.ServerboundEditBook_signing_get, _Proto1_16_4.ServerboundEditBook_signing_set)
    hand = property(_Proto1_16_4.ServerboundEditBook_hand_get, _Proto1_16_4.ServerboundEditBook_hand_set)

    def __init__(self):
        _Proto1_16_4.ServerboundEditBook_swiginit(self, _Proto1_16_4.new_ServerboundEditBook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundEditBook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundEditBook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundEditBook

# Register ServerboundEditBook in _Proto1_16_4:
_Proto1_16_4.ServerboundEditBook_swigregister(ServerboundEditBook)

class ServerboundQueryEntityNbt(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    transactionId = property(_Proto1_16_4.ServerboundQueryEntityNbt_transactionId_get, _Proto1_16_4.ServerboundQueryEntityNbt_transactionId_set)
    entityId = property(_Proto1_16_4.ServerboundQueryEntityNbt_entityId_get, _Proto1_16_4.ServerboundQueryEntityNbt_entityId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundQueryEntityNbt_swiginit(self, _Proto1_16_4.new_ServerboundQueryEntityNbt())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundQueryEntityNbt_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundQueryEntityNbt_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundQueryEntityNbt

# Register ServerboundQueryEntityNbt in _Proto1_16_4:
_Proto1_16_4.ServerboundQueryEntityNbt_swigregister(ServerboundQueryEntityNbt)

class ServerboundUseEntity(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    target = property(_Proto1_16_4.ServerboundUseEntity_target_get, _Proto1_16_4.ServerboundUseEntity_target_set)
    mouse = property(_Proto1_16_4.ServerboundUseEntity_mouse_get, _Proto1_16_4.ServerboundUseEntity_mouse_set)
    x = property(_Proto1_16_4.ServerboundUseEntity_x_get, _Proto1_16_4.ServerboundUseEntity_x_set)
    y = property(_Proto1_16_4.ServerboundUseEntity_y_get, _Proto1_16_4.ServerboundUseEntity_y_set)
    z = property(_Proto1_16_4.ServerboundUseEntity_z_get, _Proto1_16_4.ServerboundUseEntity_z_set)
    hand = property(_Proto1_16_4.ServerboundUseEntity_hand_get, _Proto1_16_4.ServerboundUseEntity_hand_set)
    sneaking = property(_Proto1_16_4.ServerboundUseEntity_sneaking_get, _Proto1_16_4.ServerboundUseEntity_sneaking_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUseEntity_swiginit(self, _Proto1_16_4.new_ServerboundUseEntity())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUseEntity_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUseEntity_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUseEntity

# Register ServerboundUseEntity in _Proto1_16_4:
_Proto1_16_4.ServerboundUseEntity_swigregister(ServerboundUseEntity)

class ServerboundGenerateStructure(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ServerboundGenerateStructure_location_get, _Proto1_16_4.ServerboundGenerateStructure_location_set)
    levels = property(_Proto1_16_4.ServerboundGenerateStructure_levels_get, _Proto1_16_4.ServerboundGenerateStructure_levels_set)
    keepJigsaws = property(_Proto1_16_4.ServerboundGenerateStructure_keepJigsaws_get, _Proto1_16_4.ServerboundGenerateStructure_keepJigsaws_set)

    def __init__(self):
        _Proto1_16_4.ServerboundGenerateStructure_swiginit(self, _Proto1_16_4.new_ServerboundGenerateStructure())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundGenerateStructure_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundGenerateStructure_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundGenerateStructure

# Register ServerboundGenerateStructure in _Proto1_16_4:
_Proto1_16_4.ServerboundGenerateStructure_swigregister(ServerboundGenerateStructure)

class ServerboundKeepAlive(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    keepAliveId = property(_Proto1_16_4.ServerboundKeepAlive_keepAliveId_get, _Proto1_16_4.ServerboundKeepAlive_keepAliveId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundKeepAlive_swiginit(self, _Proto1_16_4.new_ServerboundKeepAlive())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundKeepAlive_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundKeepAlive_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundKeepAlive

# Register ServerboundKeepAlive in _Proto1_16_4:
_Proto1_16_4.ServerboundKeepAlive_swigregister(ServerboundKeepAlive)

class ServerboundLockDifficulty(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    locked = property(_Proto1_16_4.ServerboundLockDifficulty_locked_get, _Proto1_16_4.ServerboundLockDifficulty_locked_set)

    def __init__(self):
        _Proto1_16_4.ServerboundLockDifficulty_swiginit(self, _Proto1_16_4.new_ServerboundLockDifficulty())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundLockDifficulty_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundLockDifficulty_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundLockDifficulty

# Register ServerboundLockDifficulty in _Proto1_16_4:
_Proto1_16_4.ServerboundLockDifficulty_swigregister(ServerboundLockDifficulty)

class ServerboundPosition(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ServerboundPosition_x_get, _Proto1_16_4.ServerboundPosition_x_set)
    y = property(_Proto1_16_4.ServerboundPosition_y_get, _Proto1_16_4.ServerboundPosition_y_set)
    z = property(_Proto1_16_4.ServerboundPosition_z_get, _Proto1_16_4.ServerboundPosition_z_set)
    onGround = property(_Proto1_16_4.ServerboundPosition_onGround_get, _Proto1_16_4.ServerboundPosition_onGround_set)

    def __init__(self):
        _Proto1_16_4.ServerboundPosition_swiginit(self, _Proto1_16_4.new_ServerboundPosition())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundPosition_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundPosition_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundPosition

# Register ServerboundPosition in _Proto1_16_4:
_Proto1_16_4.ServerboundPosition_swigregister(ServerboundPosition)

class ServerboundPositionLook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ServerboundPositionLook_x_get, _Proto1_16_4.ServerboundPositionLook_x_set)
    y = property(_Proto1_16_4.ServerboundPositionLook_y_get, _Proto1_16_4.ServerboundPositionLook_y_set)
    z = property(_Proto1_16_4.ServerboundPositionLook_z_get, _Proto1_16_4.ServerboundPositionLook_z_set)
    yaw = property(_Proto1_16_4.ServerboundPositionLook_yaw_get, _Proto1_16_4.ServerboundPositionLook_yaw_set)
    pitch = property(_Proto1_16_4.ServerboundPositionLook_pitch_get, _Proto1_16_4.ServerboundPositionLook_pitch_set)
    onGround = property(_Proto1_16_4.ServerboundPositionLook_onGround_get, _Proto1_16_4.ServerboundPositionLook_onGround_set)

    def __init__(self):
        _Proto1_16_4.ServerboundPositionLook_swiginit(self, _Proto1_16_4.new_ServerboundPositionLook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundPositionLook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundPositionLook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundPositionLook

# Register ServerboundPositionLook in _Proto1_16_4:
_Proto1_16_4.ServerboundPositionLook_swigregister(ServerboundPositionLook)

class ServerboundLook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    yaw = property(_Proto1_16_4.ServerboundLook_yaw_get, _Proto1_16_4.ServerboundLook_yaw_set)
    pitch = property(_Proto1_16_4.ServerboundLook_pitch_get, _Proto1_16_4.ServerboundLook_pitch_set)
    onGround = property(_Proto1_16_4.ServerboundLook_onGround_get, _Proto1_16_4.ServerboundLook_onGround_set)

    def __init__(self):
        _Proto1_16_4.ServerboundLook_swiginit(self, _Proto1_16_4.new_ServerboundLook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundLook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundLook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundLook

# Register ServerboundLook in _Proto1_16_4:
_Proto1_16_4.ServerboundLook_swigregister(ServerboundLook)

class ServerboundFlying(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    onGround = property(_Proto1_16_4.ServerboundFlying_onGround_get, _Proto1_16_4.ServerboundFlying_onGround_set)

    def __init__(self):
        _Proto1_16_4.ServerboundFlying_swiginit(self, _Proto1_16_4.new_ServerboundFlying())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundFlying_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundFlying_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundFlying

# Register ServerboundFlying in _Proto1_16_4:
_Proto1_16_4.ServerboundFlying_swigregister(ServerboundFlying)

class ServerboundVehicleMove(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Proto1_16_4.ServerboundVehicleMove_x_get, _Proto1_16_4.ServerboundVehicleMove_x_set)
    y = property(_Proto1_16_4.ServerboundVehicleMove_y_get, _Proto1_16_4.ServerboundVehicleMove_y_set)
    z = property(_Proto1_16_4.ServerboundVehicleMove_z_get, _Proto1_16_4.ServerboundVehicleMove_z_set)
    yaw = property(_Proto1_16_4.ServerboundVehicleMove_yaw_get, _Proto1_16_4.ServerboundVehicleMove_yaw_set)
    pitch = property(_Proto1_16_4.ServerboundVehicleMove_pitch_get, _Proto1_16_4.ServerboundVehicleMove_pitch_set)

    def __init__(self):
        _Proto1_16_4.ServerboundVehicleMove_swiginit(self, _Proto1_16_4.new_ServerboundVehicleMove())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundVehicleMove_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundVehicleMove_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundVehicleMove

# Register ServerboundVehicleMove in _Proto1_16_4:
_Proto1_16_4.ServerboundVehicleMove_swigregister(ServerboundVehicleMove)

class ServerboundSteerBoat(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    leftPaddle = property(_Proto1_16_4.ServerboundSteerBoat_leftPaddle_get, _Proto1_16_4.ServerboundSteerBoat_leftPaddle_set)
    rightPaddle = property(_Proto1_16_4.ServerboundSteerBoat_rightPaddle_get, _Proto1_16_4.ServerboundSteerBoat_rightPaddle_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSteerBoat_swiginit(self, _Proto1_16_4.new_ServerboundSteerBoat())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSteerBoat_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSteerBoat_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSteerBoat

# Register ServerboundSteerBoat in _Proto1_16_4:
_Proto1_16_4.ServerboundSteerBoat_swigregister(ServerboundSteerBoat)

class ServerboundPickItem(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    slot = property(_Proto1_16_4.ServerboundPickItem_slot_get, _Proto1_16_4.ServerboundPickItem_slot_set)

    def __init__(self):
        _Proto1_16_4.ServerboundPickItem_swiginit(self, _Proto1_16_4.new_ServerboundPickItem())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundPickItem_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundPickItem_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundPickItem

# Register ServerboundPickItem in _Proto1_16_4:
_Proto1_16_4.ServerboundPickItem_swigregister(ServerboundPickItem)

class ServerboundCraftRecipeRequest(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    windowId = property(_Proto1_16_4.ServerboundCraftRecipeRequest_windowId_get, _Proto1_16_4.ServerboundCraftRecipeRequest_windowId_set)
    recipe = property(_Proto1_16_4.ServerboundCraftRecipeRequest_recipe_get, _Proto1_16_4.ServerboundCraftRecipeRequest_recipe_set)
    makeAll = property(_Proto1_16_4.ServerboundCraftRecipeRequest_makeAll_get, _Proto1_16_4.ServerboundCraftRecipeRequest_makeAll_set)

    def __init__(self):
        _Proto1_16_4.ServerboundCraftRecipeRequest_swiginit(self, _Proto1_16_4.new_ServerboundCraftRecipeRequest())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundCraftRecipeRequest_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundCraftRecipeRequest_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundCraftRecipeRequest

# Register ServerboundCraftRecipeRequest in _Proto1_16_4:
_Proto1_16_4.ServerboundCraftRecipeRequest_swigregister(ServerboundCraftRecipeRequest)

class ServerboundAbilities(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    flags = property(_Proto1_16_4.ServerboundAbilities_flags_get, _Proto1_16_4.ServerboundAbilities_flags_set)

    def __init__(self):
        _Proto1_16_4.ServerboundAbilities_swiginit(self, _Proto1_16_4.new_ServerboundAbilities())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundAbilities_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundAbilities_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundAbilities

# Register ServerboundAbilities in _Proto1_16_4:
_Proto1_16_4.ServerboundAbilities_swigregister(ServerboundAbilities)

class ServerboundBlockDig(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    status = property(_Proto1_16_4.ServerboundBlockDig_status_get, _Proto1_16_4.ServerboundBlockDig_status_set)
    location = property(_Proto1_16_4.ServerboundBlockDig_location_get, _Proto1_16_4.ServerboundBlockDig_location_set)
    face = property(_Proto1_16_4.ServerboundBlockDig_face_get, _Proto1_16_4.ServerboundBlockDig_face_set)

    def __init__(self):
        _Proto1_16_4.ServerboundBlockDig_swiginit(self, _Proto1_16_4.new_ServerboundBlockDig())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundBlockDig_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundBlockDig_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundBlockDig

# Register ServerboundBlockDig in _Proto1_16_4:
_Proto1_16_4.ServerboundBlockDig_swigregister(ServerboundBlockDig)

class ServerboundEntityAction(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ServerboundEntityAction_entityId_get, _Proto1_16_4.ServerboundEntityAction_entityId_set)
    actionId = property(_Proto1_16_4.ServerboundEntityAction_actionId_get, _Proto1_16_4.ServerboundEntityAction_actionId_set)
    jumpBoost = property(_Proto1_16_4.ServerboundEntityAction_jumpBoost_get, _Proto1_16_4.ServerboundEntityAction_jumpBoost_set)

    def __init__(self):
        _Proto1_16_4.ServerboundEntityAction_swiginit(self, _Proto1_16_4.new_ServerboundEntityAction())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundEntityAction_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundEntityAction_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundEntityAction

# Register ServerboundEntityAction in _Proto1_16_4:
_Proto1_16_4.ServerboundEntityAction_swigregister(ServerboundEntityAction)

class ServerboundSteerVehicle(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    sideways = property(_Proto1_16_4.ServerboundSteerVehicle_sideways_get, _Proto1_16_4.ServerboundSteerVehicle_sideways_set)
    forward = property(_Proto1_16_4.ServerboundSteerVehicle_forward_get, _Proto1_16_4.ServerboundSteerVehicle_forward_set)
    jump = property(_Proto1_16_4.ServerboundSteerVehicle_jump_get, _Proto1_16_4.ServerboundSteerVehicle_jump_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSteerVehicle_swiginit(self, _Proto1_16_4.new_ServerboundSteerVehicle())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSteerVehicle_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSteerVehicle_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSteerVehicle

# Register ServerboundSteerVehicle in _Proto1_16_4:
_Proto1_16_4.ServerboundSteerVehicle_swigregister(ServerboundSteerVehicle)

class ServerboundDisplayedRecipe(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    recipeId = property(_Proto1_16_4.ServerboundDisplayedRecipe_recipeId_get, _Proto1_16_4.ServerboundDisplayedRecipe_recipeId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundDisplayedRecipe_swiginit(self, _Proto1_16_4.new_ServerboundDisplayedRecipe())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundDisplayedRecipe_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundDisplayedRecipe_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundDisplayedRecipe

# Register ServerboundDisplayedRecipe in _Proto1_16_4:
_Proto1_16_4.ServerboundDisplayedRecipe_swigregister(ServerboundDisplayedRecipe)

class ServerboundRecipeBook(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    bookId = property(_Proto1_16_4.ServerboundRecipeBook_bookId_get, _Proto1_16_4.ServerboundRecipeBook_bookId_set)
    bookOpen = property(_Proto1_16_4.ServerboundRecipeBook_bookOpen_get, _Proto1_16_4.ServerboundRecipeBook_bookOpen_set)
    filterActive = property(_Proto1_16_4.ServerboundRecipeBook_filterActive_get, _Proto1_16_4.ServerboundRecipeBook_filterActive_set)

    def __init__(self):
        _Proto1_16_4.ServerboundRecipeBook_swiginit(self, _Proto1_16_4.new_ServerboundRecipeBook())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundRecipeBook_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundRecipeBook_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundRecipeBook

# Register ServerboundRecipeBook in _Proto1_16_4:
_Proto1_16_4.ServerboundRecipeBook_swigregister(ServerboundRecipeBook)

class ServerboundNameItem(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    name = property(_Proto1_16_4.ServerboundNameItem_name_get, _Proto1_16_4.ServerboundNameItem_name_set)

    def __init__(self):
        _Proto1_16_4.ServerboundNameItem_swiginit(self, _Proto1_16_4.new_ServerboundNameItem())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundNameItem_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundNameItem_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundNameItem

# Register ServerboundNameItem in _Proto1_16_4:
_Proto1_16_4.ServerboundNameItem_swigregister(ServerboundNameItem)

class ServerboundResourcePackReceive(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    result = property(_Proto1_16_4.ServerboundResourcePackReceive_result_get, _Proto1_16_4.ServerboundResourcePackReceive_result_set)

    def __init__(self):
        _Proto1_16_4.ServerboundResourcePackReceive_swiginit(self, _Proto1_16_4.new_ServerboundResourcePackReceive())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundResourcePackReceive_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundResourcePackReceive_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundResourcePackReceive

# Register ServerboundResourcePackReceive in _Proto1_16_4:
_Proto1_16_4.ServerboundResourcePackReceive_swigregister(ServerboundResourcePackReceive)

class ServerboundAdvancementTab(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    action = property(_Proto1_16_4.ServerboundAdvancementTab_action_get, _Proto1_16_4.ServerboundAdvancementTab_action_set)
    tabId = property(_Proto1_16_4.ServerboundAdvancementTab_tabId_get, _Proto1_16_4.ServerboundAdvancementTab_tabId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundAdvancementTab_swiginit(self, _Proto1_16_4.new_ServerboundAdvancementTab())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundAdvancementTab_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundAdvancementTab_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundAdvancementTab

# Register ServerboundAdvancementTab in _Proto1_16_4:
_Proto1_16_4.ServerboundAdvancementTab_swigregister(ServerboundAdvancementTab)

class ServerboundSelectTrade(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    slot = property(_Proto1_16_4.ServerboundSelectTrade_slot_get, _Proto1_16_4.ServerboundSelectTrade_slot_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSelectTrade_swiginit(self, _Proto1_16_4.new_ServerboundSelectTrade())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSelectTrade_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSelectTrade_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSelectTrade

# Register ServerboundSelectTrade in _Proto1_16_4:
_Proto1_16_4.ServerboundSelectTrade_swigregister(ServerboundSelectTrade)

class ServerboundSetBeaconEffect(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    primary_effect = property(_Proto1_16_4.ServerboundSetBeaconEffect_primary_effect_get, _Proto1_16_4.ServerboundSetBeaconEffect_primary_effect_set)
    secondary_effect = property(_Proto1_16_4.ServerboundSetBeaconEffect_secondary_effect_get, _Proto1_16_4.ServerboundSetBeaconEffect_secondary_effect_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSetBeaconEffect_swiginit(self, _Proto1_16_4.new_ServerboundSetBeaconEffect())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSetBeaconEffect_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSetBeaconEffect_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSetBeaconEffect

# Register ServerboundSetBeaconEffect in _Proto1_16_4:
_Proto1_16_4.ServerboundSetBeaconEffect_swigregister(ServerboundSetBeaconEffect)

class ServerboundHeldItemSlot(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    slotId = property(_Proto1_16_4.ServerboundHeldItemSlot_slotId_get, _Proto1_16_4.ServerboundHeldItemSlot_slotId_set)

    def __init__(self):
        _Proto1_16_4.ServerboundHeldItemSlot_swiginit(self, _Proto1_16_4.new_ServerboundHeldItemSlot())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundHeldItemSlot_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundHeldItemSlot_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundHeldItemSlot

# Register ServerboundHeldItemSlot in _Proto1_16_4:
_Proto1_16_4.ServerboundHeldItemSlot_swigregister(ServerboundHeldItemSlot)

class ServerboundUpdateCommandBlock(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ServerboundUpdateCommandBlock_location_get, _Proto1_16_4.ServerboundUpdateCommandBlock_location_set)
    command = property(_Proto1_16_4.ServerboundUpdateCommandBlock_command_get, _Proto1_16_4.ServerboundUpdateCommandBlock_command_set)
    mode = property(_Proto1_16_4.ServerboundUpdateCommandBlock_mode_get, _Proto1_16_4.ServerboundUpdateCommandBlock_mode_set)
    flags = property(_Proto1_16_4.ServerboundUpdateCommandBlock_flags_get, _Proto1_16_4.ServerboundUpdateCommandBlock_flags_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUpdateCommandBlock_swiginit(self, _Proto1_16_4.new_ServerboundUpdateCommandBlock())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateCommandBlock_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateCommandBlock_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUpdateCommandBlock

# Register ServerboundUpdateCommandBlock in _Proto1_16_4:
_Proto1_16_4.ServerboundUpdateCommandBlock_swigregister(ServerboundUpdateCommandBlock)

class ServerboundUpdateCommandBlockMinecart(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    entityId = property(_Proto1_16_4.ServerboundUpdateCommandBlockMinecart_entityId_get, _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_entityId_set)
    command = property(_Proto1_16_4.ServerboundUpdateCommandBlockMinecart_command_get, _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_command_set)
    track_output = property(_Proto1_16_4.ServerboundUpdateCommandBlockMinecart_track_output_get, _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_track_output_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_swiginit(self, _Proto1_16_4.new_ServerboundUpdateCommandBlockMinecart())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateCommandBlockMinecart_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUpdateCommandBlockMinecart

# Register ServerboundUpdateCommandBlockMinecart in _Proto1_16_4:
_Proto1_16_4.ServerboundUpdateCommandBlockMinecart_swigregister(ServerboundUpdateCommandBlockMinecart)

class ServerboundSetCreativeSlot(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    slot = property(_Proto1_16_4.ServerboundSetCreativeSlot_slot_get, _Proto1_16_4.ServerboundSetCreativeSlot_slot_set)
    item = property(_Proto1_16_4.ServerboundSetCreativeSlot_item_get, _Proto1_16_4.ServerboundSetCreativeSlot_item_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSetCreativeSlot_swiginit(self, _Proto1_16_4.new_ServerboundSetCreativeSlot())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSetCreativeSlot_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSetCreativeSlot_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSetCreativeSlot

# Register ServerboundSetCreativeSlot in _Proto1_16_4:
_Proto1_16_4.ServerboundSetCreativeSlot_swigregister(ServerboundSetCreativeSlot)

class ServerboundUpdateJigsawBlock(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_location_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_location_set)
    name = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_name_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_name_set)
    target = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_target_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_target_set)
    pool = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_pool_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_pool_set)
    finalState = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_finalState_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_finalState_set)
    jointType = property(_Proto1_16_4.ServerboundUpdateJigsawBlock_jointType_get, _Proto1_16_4.ServerboundUpdateJigsawBlock_jointType_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUpdateJigsawBlock_swiginit(self, _Proto1_16_4.new_ServerboundUpdateJigsawBlock())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateJigsawBlock_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateJigsawBlock_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUpdateJigsawBlock

# Register ServerboundUpdateJigsawBlock in _Proto1_16_4:
_Proto1_16_4.ServerboundUpdateJigsawBlock_swigregister(ServerboundUpdateJigsawBlock)

class ServerboundUpdateStructureBlock(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ServerboundUpdateStructureBlock_location_get, _Proto1_16_4.ServerboundUpdateStructureBlock_location_set)
    action = property(_Proto1_16_4.ServerboundUpdateStructureBlock_action_get, _Proto1_16_4.ServerboundUpdateStructureBlock_action_set)
    mode = property(_Proto1_16_4.ServerboundUpdateStructureBlock_mode_get, _Proto1_16_4.ServerboundUpdateStructureBlock_mode_set)
    name = property(_Proto1_16_4.ServerboundUpdateStructureBlock_name_get, _Proto1_16_4.ServerboundUpdateStructureBlock_name_set)
    offset_x = property(_Proto1_16_4.ServerboundUpdateStructureBlock_offset_x_get, _Proto1_16_4.ServerboundUpdateStructureBlock_offset_x_set)
    offset_y = property(_Proto1_16_4.ServerboundUpdateStructureBlock_offset_y_get, _Proto1_16_4.ServerboundUpdateStructureBlock_offset_y_set)
    offset_z = property(_Proto1_16_4.ServerboundUpdateStructureBlock_offset_z_get, _Proto1_16_4.ServerboundUpdateStructureBlock_offset_z_set)
    size_x = property(_Proto1_16_4.ServerboundUpdateStructureBlock_size_x_get, _Proto1_16_4.ServerboundUpdateStructureBlock_size_x_set)
    size_y = property(_Proto1_16_4.ServerboundUpdateStructureBlock_size_y_get, _Proto1_16_4.ServerboundUpdateStructureBlock_size_y_set)
    size_z = property(_Proto1_16_4.ServerboundUpdateStructureBlock_size_z_get, _Proto1_16_4.ServerboundUpdateStructureBlock_size_z_set)
    mirror = property(_Proto1_16_4.ServerboundUpdateStructureBlock_mirror_get, _Proto1_16_4.ServerboundUpdateStructureBlock_mirror_set)
    rotation = property(_Proto1_16_4.ServerboundUpdateStructureBlock_rotation_get, _Proto1_16_4.ServerboundUpdateStructureBlock_rotation_set)
    metadata = property(_Proto1_16_4.ServerboundUpdateStructureBlock_metadata_get, _Proto1_16_4.ServerboundUpdateStructureBlock_metadata_set)
    integrity = property(_Proto1_16_4.ServerboundUpdateStructureBlock_integrity_get, _Proto1_16_4.ServerboundUpdateStructureBlock_integrity_set)
    seed = property(_Proto1_16_4.ServerboundUpdateStructureBlock_seed_get, _Proto1_16_4.ServerboundUpdateStructureBlock_seed_set)
    flags = property(_Proto1_16_4.ServerboundUpdateStructureBlock_flags_get, _Proto1_16_4.ServerboundUpdateStructureBlock_flags_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUpdateStructureBlock_swiginit(self, _Proto1_16_4.new_ServerboundUpdateStructureBlock())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateStructureBlock_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateStructureBlock_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUpdateStructureBlock

# Register ServerboundUpdateStructureBlock in _Proto1_16_4:
_Proto1_16_4.ServerboundUpdateStructureBlock_swigregister(ServerboundUpdateStructureBlock)

class ServerboundUpdateSign(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    location = property(_Proto1_16_4.ServerboundUpdateSign_location_get, _Proto1_16_4.ServerboundUpdateSign_location_set)
    text1 = property(_Proto1_16_4.ServerboundUpdateSign_text1_get, _Proto1_16_4.ServerboundUpdateSign_text1_set)
    text2 = property(_Proto1_16_4.ServerboundUpdateSign_text2_get, _Proto1_16_4.ServerboundUpdateSign_text2_set)
    text3 = property(_Proto1_16_4.ServerboundUpdateSign_text3_get, _Proto1_16_4.ServerboundUpdateSign_text3_set)
    text4 = property(_Proto1_16_4.ServerboundUpdateSign_text4_get, _Proto1_16_4.ServerboundUpdateSign_text4_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUpdateSign_swiginit(self, _Proto1_16_4.new_ServerboundUpdateSign())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateSign_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUpdateSign_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUpdateSign

# Register ServerboundUpdateSign in _Proto1_16_4:
_Proto1_16_4.ServerboundUpdateSign_swigregister(ServerboundUpdateSign)

class ServerboundArmAnimation(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hand = property(_Proto1_16_4.ServerboundArmAnimation_hand_get, _Proto1_16_4.ServerboundArmAnimation_hand_set)

    def __init__(self):
        _Proto1_16_4.ServerboundArmAnimation_swiginit(self, _Proto1_16_4.new_ServerboundArmAnimation())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundArmAnimation_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundArmAnimation_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundArmAnimation

# Register ServerboundArmAnimation in _Proto1_16_4:
_Proto1_16_4.ServerboundArmAnimation_swigregister(ServerboundArmAnimation)

class ServerboundSpectate(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    target = property(_Proto1_16_4.ServerboundSpectate_target_get, _Proto1_16_4.ServerboundSpectate_target_set)

    def __init__(self):
        _Proto1_16_4.ServerboundSpectate_swiginit(self, _Proto1_16_4.new_ServerboundSpectate())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundSpectate_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundSpectate_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundSpectate

# Register ServerboundSpectate in _Proto1_16_4:
_Proto1_16_4.ServerboundSpectate_swigregister(ServerboundSpectate)

class ServerboundBlockPlace(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hand = property(_Proto1_16_4.ServerboundBlockPlace_hand_get, _Proto1_16_4.ServerboundBlockPlace_hand_set)
    location = property(_Proto1_16_4.ServerboundBlockPlace_location_get, _Proto1_16_4.ServerboundBlockPlace_location_set)
    direction = property(_Proto1_16_4.ServerboundBlockPlace_direction_get, _Proto1_16_4.ServerboundBlockPlace_direction_set)
    cursorX = property(_Proto1_16_4.ServerboundBlockPlace_cursorX_get, _Proto1_16_4.ServerboundBlockPlace_cursorX_set)
    cursorY = property(_Proto1_16_4.ServerboundBlockPlace_cursorY_get, _Proto1_16_4.ServerboundBlockPlace_cursorY_set)
    cursorZ = property(_Proto1_16_4.ServerboundBlockPlace_cursorZ_get, _Proto1_16_4.ServerboundBlockPlace_cursorZ_set)
    insideBlock = property(_Proto1_16_4.ServerboundBlockPlace_insideBlock_get, _Proto1_16_4.ServerboundBlockPlace_insideBlock_set)

    def __init__(self):
        _Proto1_16_4.ServerboundBlockPlace_swiginit(self, _Proto1_16_4.new_ServerboundBlockPlace())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundBlockPlace_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundBlockPlace_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundBlockPlace

# Register ServerboundBlockPlace in _Proto1_16_4:
_Proto1_16_4.ServerboundBlockPlace_swigregister(ServerboundBlockPlace)

class ServerboundUseItem(Packet):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    hand = property(_Proto1_16_4.ServerboundUseItem_hand_get, _Proto1_16_4.ServerboundUseItem_hand_set)

    def __init__(self):
        _Proto1_16_4.ServerboundUseItem_swiginit(self, _Proto1_16_4.new_ServerboundUseItem())

    def encode(self, dest: "std::ostream &") -> "void":
        return _Proto1_16_4.ServerboundUseItem_encode(self, dest)

    def decode(self, src: "std::istream &") -> "void":
        return _Proto1_16_4.ServerboundUseItem_decode(self, src)
    __swig_destroy__ = _Proto1_16_4.delete_ServerboundUseItem

# Register ServerboundUseItem in _Proto1_16_4:
_Proto1_16_4.ServerboundUseItem_swigregister(ServerboundUseItem)



