McProtocol.Packet.Client.Handshake.LegacyServerListPing
%{payload: ProtoDef.Type.U8}
McProtocol.Packet.Client.Handshake.SetProtocol
%{next_state: ProtoDef.Type.Varint, protocol_version: ProtoDef.Type.Varint,
server_host: ProtoDef.Type.PString, server_port: ProtoDef.Type.U16}
McProtocol.Packet.Client.Login.EncryptionBegin
%{shared_secret: ProtoDef.Type.Buffer, verify_token: ProtoDef.Type.Buffer}
McProtocol.Packet.Client.Login.LoginStart
%{username: ProtoDef.Type.PString}
McProtocol.Packet.Client.Play.Abilities
%{flags: ProtoDef.Type.I8, flying_speed: ProtoDef.Type.F32,
walking_speed: ProtoDef.Type.F32}
McProtocol.Packet.Client.Play.ArmAnimation
%{hand: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.BlockDig
%{face: ProtoDef.Type.I8, location: {:type_ref, "position"},
status: ProtoDef.Type.I8}
McProtocol.Packet.Client.Play.BlockPlace
%{cursor_x: ProtoDef.Type.I8, cursor_y: ProtoDef.Type.I8,
cursor_z: ProtoDef.Type.I8, direction: ProtoDef.Type.Varint,
hand: ProtoDef.Type.Varint, location: {:type_ref, "position"}}
McProtocol.Packet.Client.Play.Chat
%{message: ProtoDef.Type.PString}
McProtocol.Packet.Client.Play.ClientCommand
%{action_id: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.CloseWindow
%{window_id: ProtoDef.Type.U8}
McProtocol.Packet.Client.Play.CustomPayload
%{channel: ProtoDef.Type.PString, data: {:type_ref, "restBuffer"}}
McProtocol.Packet.Client.Play.EnchantItem
%{enchantment: ProtoDef.Type.I8, window_id: ProtoDef.Type.I8}
McProtocol.Packet.Client.Play.EntityAction
%{action_id: ProtoDef.Type.Varint, entity_id: ProtoDef.Type.Varint,
jump_boost: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.Flying
%{on_ground: ProtoDef.Type.Bool}
McProtocol.Packet.Client.Play.HeldItemSlot
%{slot_id: ProtoDef.Type.I16}
McProtocol.Packet.Client.Play.KeepAlive
%{keep_alive_id: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.Look
%{on_ground: ProtoDef.Type.Bool, pitch: ProtoDef.Type.F32,
yaw: ProtoDef.Type.F32}
McProtocol.Packet.Client.Play.Position
%{on_ground: ProtoDef.Type.Bool, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
z: ProtoDef.Type.F64}
McProtocol.Packet.Client.Play.PositionLook
%{on_ground: ProtoDef.Type.Bool, pitch: ProtoDef.Type.F32, x: ProtoDef.Type.F64,
y: ProtoDef.Type.F64, yaw: ProtoDef.Type.F32, z: ProtoDef.Type.F64}
McProtocol.Packet.Client.Play.ResourcePackReceive
%{hash: ProtoDef.Type.PString, result: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.SetCreativeSlot
%{item: {:type_ref, "slot"}, slot: ProtoDef.Type.I16}
McProtocol.Packet.Client.Play.Settings
%{chat_colors: ProtoDef.Type.Bool, chat_flags: ProtoDef.Type.Varint,
locale: ProtoDef.Type.PString, main_hand: ProtoDef.Type.Varint,
skin_parts: ProtoDef.Type.U8, view_distance: ProtoDef.Type.I8}
McProtocol.Packet.Client.Play.Spectate
%{target: {:type_ref, "UUID"}}
McProtocol.Packet.Client.Play.SteerBoat
%{unknown1: ProtoDef.Type.Bool, unknown2: ProtoDef.Type.Bool}
McProtocol.Packet.Client.Play.SteerVehicle
%{forward: ProtoDef.Type.F32, jump: ProtoDef.Type.U8,
sideways: ProtoDef.Type.F32}
McProtocol.Packet.Client.Play.TabComplete
%{assume_command: ProtoDef.Type.Bool,
looked_at_block: {:or, [:void, {:type_ref, "position"}]},
text: ProtoDef.Type.PString}
McProtocol.Packet.Client.Play.TeleportConfirm
%{teleport_id: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.Transaction
%{accepted: ProtoDef.Type.Bool, action: ProtoDef.Type.I16,
window_id: ProtoDef.Type.I8}
McProtocol.Packet.Client.Play.UpdateSign
%{location: {:type_ref, "position"}, text1: ProtoDef.Type.PString,
text2: ProtoDef.Type.PString, text3: ProtoDef.Type.PString,
text4: ProtoDef.Type.PString}
McProtocol.Packet.Client.Play.UseEntity
%{hand: {:or, [:void, ProtoDef.Type.Varint]}, mouse: ProtoDef.Type.Varint,
target: ProtoDef.Type.Varint, x: {:or, [:void, ProtoDef.Type.F32]},
y: {:or, [:void, ProtoDef.Type.F32]}, z: {:or, [:void, ProtoDef.Type.F32]}}
McProtocol.Packet.Client.Play.UseItem
%{hand: ProtoDef.Type.Varint}
McProtocol.Packet.Client.Play.VehicleMove
%{pitch: ProtoDef.Type.F32, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
yaw: ProtoDef.Type.F32, z: ProtoDef.Type.F64}
McProtocol.Packet.Client.Play.WindowClick
%{action: ProtoDef.Type.I16, item: {:type_ref, "slot"}, mode: ProtoDef.Type.I8,
mouse_button: ProtoDef.Type.I8, slot: ProtoDef.Type.I16,
window_id: ProtoDef.Type.U8}
McProtocol.Packet.Client.Status.Ping
%{time: ProtoDef.Type.I64}
McProtocol.Packet.Client.Status.PingStart
%{}
McProtocol.Packet.Server.Login.Compress
%{threshold: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Login.Disconnect
%{reason: ProtoDef.Type.PString}
McProtocol.Packet.Server.Login.EncryptionBegin
%{public_key: ProtoDef.Type.Buffer, server_id: ProtoDef.Type.PString,
verify_token: ProtoDef.Type.Buffer}
McProtocol.Packet.Server.Login.Success
%{username: ProtoDef.Type.PString, uuid: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.Abilities
%{flags: ProtoDef.Type.I8, flying_speed: ProtoDef.Type.F32,
walking_speed: ProtoDef.Type.F32}
McProtocol.Packet.Server.Play.Animation
%{animation: ProtoDef.Type.U8, entity_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.AttachEntity
%{entity_id: ProtoDef.Type.I32, vehicle_id: ProtoDef.Type.I32}
McProtocol.Packet.Server.Play.Bed
%{entity_id: ProtoDef.Type.Varint, location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.BlockAction
%{block_id: ProtoDef.Type.Varint, byte1: ProtoDef.Type.U8,
byte2: ProtoDef.Type.U8, location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.BlockBreakAnimation
%{destroy_stage: ProtoDef.Type.I8, entity_id: ProtoDef.Type.Varint,
location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.BlockChange
%{location: {:type_ref, "position"}, type: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.BossBar
%{action: ProtoDef.Type.Varint, color: {:or, [:void, ProtoDef.Type.Varint]},
dividers: {:or, [:void, ProtoDef.Type.Varint]},
entity_uuid: {:type_ref, "UUID"}, flags: {:or, [:void, ProtoDef.Type.U8]},
health: {:or, [:void, ProtoDef.Type.F32]},
title: {:or, [:void, ProtoDef.Type.PString]}}
McProtocol.Packet.Server.Play.Camera
%{camera_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.Chat
%{message: ProtoDef.Type.PString, position: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.CloseWindow
%{window_id: ProtoDef.Type.U8}
McProtocol.Packet.Server.Play.Collect
%{collected_entity_id: ProtoDef.Type.Varint,
collector_entity_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.CombatEvent
%{duration: {:or, [:void, ProtoDef.Type.Varint]},
entity_id: {:or, [:void, ProtoDef.Type.I32]}, event: ProtoDef.Type.Varint,
message: {:or, [:void, ProtoDef.Type.PString]},
player_id: {:or, [:void, ProtoDef.Type.Varint]}}
McProtocol.Packet.Server.Play.CraftProgressBar
%{property: ProtoDef.Type.I16, value: ProtoDef.Type.I16,
window_id: ProtoDef.Type.U8}
McProtocol.Packet.Server.Play.CustomPayload
%{channel: ProtoDef.Type.PString, data: {:type_ref, "restBuffer"}}
McProtocol.Packet.Server.Play.Difficulty
%{difficulty: ProtoDef.Type.U8}
McProtocol.Packet.Server.Play.Entity
%{entity_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.EntityDestroy
%{entity_ids: {:array, ProtoDef.Type.Varint}}
McProtocol.Packet.Server.Play.EntityEffect
%{amplifier: ProtoDef.Type.I8, duration: ProtoDef.Type.Varint,
effect_id: ProtoDef.Type.I8, entity_id: ProtoDef.Type.Varint,
hide_particles: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.EntityEquipment
%{entity_id: ProtoDef.Type.Varint, item: {:type_ref, "slot"},
slot: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.EntityHeadRotation
%{entity_id: ProtoDef.Type.Varint, head_yaw: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.EntityLook
%{entity_id: ProtoDef.Type.Varint, on_ground: ProtoDef.Type.Bool,
pitch: ProtoDef.Type.I8, yaw: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.EntityMetadata
%{entity_id: ProtoDef.Type.Varint, metadata: {:type_ref, "entityMetadata"}}
McProtocol.Packet.Server.Play.EntityMove
%{d_x: ProtoDef.Type.I16, d_y: ProtoDef.Type.I16, d_z: ProtoDef.Type.I16,
entity_id: ProtoDef.Type.Varint, on_ground: ProtoDef.Type.Bool}
McProtocol.Packet.Server.Play.EntityMoveLook
%{d_x: ProtoDef.Type.I16, d_y: ProtoDef.Type.I16, d_z: ProtoDef.Type.I16,
entity_id: ProtoDef.Type.Varint, on_ground: ProtoDef.Type.Bool,
pitch: ProtoDef.Type.I8, yaw: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.EntityStatus
%{entity_id: ProtoDef.Type.I32, entity_status: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.EntityTeleport
%{entity_id: ProtoDef.Type.Varint, on_ground: ProtoDef.Type.Bool,
pitch: ProtoDef.Type.I8, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
yaw: ProtoDef.Type.I8, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.EntityUpdateAttributes
%{entity_id: ProtoDef.Type.Varint,
properties: {:array,
%{key: ProtoDef.Type.PString,
modifiers: {:array,
%{amount: ProtoDef.Type.F64, operation: ProtoDef.Type.I8,
uuid: {:type_ref, "UUID"}}}, value: ProtoDef.Type.F64}}}
McProtocol.Packet.Server.Play.EntityVelocity
%{entity_id: ProtoDef.Type.Varint, velocity_x: ProtoDef.Type.I16,
velocity_y: ProtoDef.Type.I16, velocity_z: ProtoDef.Type.I16}
McProtocol.Packet.Server.Play.Experience
%{experience_bar: ProtoDef.Type.F32, level: ProtoDef.Type.Varint,
total_experience: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.Explosion
%{affected_block_offsets: {:array,
%{x: ProtoDef.Type.I8, y: ProtoDef.Type.I8, z: ProtoDef.Type.I8}},
player_motion_x: ProtoDef.Type.F32, player_motion_y: ProtoDef.Type.F32,
player_motion_z: ProtoDef.Type.F32, radius: ProtoDef.Type.F32,
x: ProtoDef.Type.F32, y: ProtoDef.Type.F32, z: ProtoDef.Type.F32}
McProtocol.Packet.Server.Play.GameStateChange
%{game_mode: ProtoDef.Type.F32, reason: ProtoDef.Type.U8}
McProtocol.Packet.Server.Play.HeldItemSlot
%{slot: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.KeepAlive
%{keep_alive_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.KickDisconnect
%{reason: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.Login
%{difficulty: ProtoDef.Type.U8, dimension: ProtoDef.Type.I32,
entity_id: ProtoDef.Type.I32, game_mode: ProtoDef.Type.U8,
level_type: ProtoDef.Type.PString, max_players: ProtoDef.Type.U8,
reduced_debug_info: ProtoDef.Type.Bool}
McProtocol.Packet.Server.Play.Map
%{columns: ProtoDef.Type.I8, data: {:or, [ProtoDef.Type.Buffer, :void]},
icons: {:array,
%{direction_and_type: ProtoDef.Type.I8, x: ProtoDef.Type.I8,
y: ProtoDef.Type.I8}}, item_damage: ProtoDef.Type.Varint,
rows: {:or, [ProtoDef.Type.I8, :void]}, scale: ProtoDef.Type.I8,
tracking_position: ProtoDef.Type.Bool, x: {:or, [ProtoDef.Type.I8, :void]},
y: {:or, [ProtoDef.Type.I8, :void]}}
McProtocol.Packet.Server.Play.MapChunk
%{bit_map: ProtoDef.Type.Varint, chunk_data: ProtoDef.Type.Buffer,
ground_up: ProtoDef.Type.Bool, x: ProtoDef.Type.I32, z: ProtoDef.Type.I32}
McProtocol.Packet.Server.Play.MultiBlockChange
%{chunk_x: ProtoDef.Type.I32, chunk_z: ProtoDef.Type.I32,
records: {:array,
%{block_id: ProtoDef.Type.Varint, horizontal_pos: ProtoDef.Type.U8,
y: ProtoDef.Type.U8}}}
McProtocol.Packet.Server.Play.NamedEntitySpawn
%{entity_id: ProtoDef.Type.Varint, metadata: {:type_ref, "entityMetadata"},
pitch: ProtoDef.Type.I8, player_uuid: {:type_ref, "UUID"},
x: ProtoDef.Type.F64, y: ProtoDef.Type.F64, yaw: ProtoDef.Type.I8,
z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.NamedSoundEffect
%{pitch: ProtoDef.Type.U8, sound_category: ProtoDef.Type.Varint,
sound_name: ProtoDef.Type.PString, volume: ProtoDef.Type.F32,
x: ProtoDef.Type.I32, y: ProtoDef.Type.I32, z: ProtoDef.Type.I32}
McProtocol.Packet.Server.Play.OpenSignEntity
%{location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.OpenWindow
%{entity_id: {:or, [:void, ProtoDef.Type.I32]},
inventory_type: ProtoDef.Type.PString, slot_count: ProtoDef.Type.U8,
window_id: ProtoDef.Type.U8, window_title: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.PlayerInfo
%{action: ProtoDef.Type.Varint,
data: {:array,
%{display_name: {:or, [:void, {:or, [:void, ProtoDef.Type.PString]}]},
gamemode: {:or, [:void, ProtoDef.Type.Varint]},
name: {:or, [:void, ProtoDef.Type.PString]},
ping: {:or, [:void, ProtoDef.Type.Varint]},
properties: {:or,
[:void,
{:array,
%{name: ProtoDef.Type.PString,
signature: {:or, [:void, ProtoDef.Type.PString]},
value: ProtoDef.Type.PString}}]}, uuid: {:type_ref, "UUID"}}}}
McProtocol.Packet.Server.Play.PlayerlistHeader
%{footer: ProtoDef.Type.PString, header: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.Position
%{flags: ProtoDef.Type.I8, pitch: ProtoDef.Type.F32,
teleport_id: ProtoDef.Type.Varint, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
yaw: ProtoDef.Type.F32, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.RemoveEntityEffect
%{effect_id: ProtoDef.Type.I8, entity_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.ResourcePackSend
%{hash: ProtoDef.Type.PString, url: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.Respawn
%{difficulty: ProtoDef.Type.U8, dimension: ProtoDef.Type.I32,
gamemode: ProtoDef.Type.U8, level_type: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.ScoreboardDisplayObjective
%{name: ProtoDef.Type.PString, position: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.ScoreboardObjective
%{action: ProtoDef.Type.I8, display_text: {:or, [:void, ProtoDef.Type.PString]},
name: ProtoDef.Type.PString, type: {:or, [:void, ProtoDef.Type.PString]}}
McProtocol.Packet.Server.Play.ScoreboardScore
%{action: ProtoDef.Type.I8, item_name: ProtoDef.Type.PString,
score_name: ProtoDef.Type.PString,
value: {:or, [ProtoDef.Type.Varint, :void]}}
McProtocol.Packet.Server.Play.SetCooldown
%{cooldown_ticks: ProtoDef.Type.Varint, item_id: ProtoDef.Type.Varint}
McProtocol.Packet.Server.Play.SetPassengers
%{entity_id: ProtoDef.Type.Varint, passengers: {:array, ProtoDef.Type.Varint}}
McProtocol.Packet.Server.Play.SetSlot
%{item: {:type_ref, "slot"}, slot: ProtoDef.Type.I16,
window_id: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.SoundEffect
%{pitch: ProtoDef.Type.U8, sound_catagory: ProtoDef.Type.Varint,
sound_id: ProtoDef.Type.Varint, volume: ProtoDef.Type.F32,
x: ProtoDef.Type.I32, y: ProtoDef.Type.I32, z: ProtoDef.Type.I32}
McProtocol.Packet.Server.Play.SpawnEntity
%{entity_id: ProtoDef.Type.Varint, int_field: ProtoDef.Type.I32,
object_uuid: {:type_ref, "UUID"}, pitch: ProtoDef.Type.I8,
type: ProtoDef.Type.I8, velocity_x: ProtoDef.Type.I16,
velocity_y: ProtoDef.Type.I16, velocity_z: ProtoDef.Type.I16,
x: ProtoDef.Type.F64, y: ProtoDef.Type.F64, yaw: ProtoDef.Type.I8,
z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.SpawnEntityExperienceOrb
%{count: ProtoDef.Type.I16, entity_id: ProtoDef.Type.Varint,
x: ProtoDef.Type.F64, y: ProtoDef.Type.F64, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.SpawnEntityLiving
%{entity_id: ProtoDef.Type.Varint, entity_uuid: {:type_ref, "UUID"},
head_pitch: ProtoDef.Type.I8, metadata: {:type_ref, "entityMetadata"},
pitch: ProtoDef.Type.I8, type: ProtoDef.Type.U8,
velocity_x: ProtoDef.Type.I16, velocity_y: ProtoDef.Type.I16,
velocity_z: ProtoDef.Type.I16, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
yaw: ProtoDef.Type.I8, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.SpawnEntityPainting
%{direction: ProtoDef.Type.U8, entity_id: ProtoDef.Type.Varint,
entity_uuid: {:type_ref, "UUID"}, location: {:type_ref, "position"},
title: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.SpawnEntityWeather
%{entity_id: ProtoDef.Type.Varint, type: ProtoDef.Type.I8, x: ProtoDef.Type.F64,
y: ProtoDef.Type.F64, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.SpawnPosition
%{location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.Statistics
%{entries: {:array,
%{name: ProtoDef.Type.PString, value: ProtoDef.Type.Varint}}}
McProtocol.Packet.Server.Play.TabComplete
%{matches: {:array, ProtoDef.Type.PString}}
McProtocol.Packet.Server.Play.Teams
%{collision_rule: {:or, [:void, ProtoDef.Type.PString]},
color: {:or, [:void, ProtoDef.Type.I8]},
friendly_fire: {:or, [:void, ProtoDef.Type.I8]}, mode: ProtoDef.Type.I8,
name: {:or, [:void, ProtoDef.Type.PString]},
name_tag_visibility: {:or, [:void, ProtoDef.Type.PString]},
players: {:or, [:void, {:array, ProtoDef.Type.PString}]},
prefix: {:or, [:void, ProtoDef.Type.PString]},
suffix: {:or, [:void, ProtoDef.Type.PString]}, team: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.TileEntityData
%{action: ProtoDef.Type.U8, location: {:type_ref, "position"},
nbt_data: {:type_ref, "optionalNbt"}}
McProtocol.Packet.Server.Play.Title
%{action: ProtoDef.Type.Varint, fade_in: {:or, [:void, ProtoDef.Type.I32]},
fade_out: {:or, [:void, ProtoDef.Type.I32]},
stay: {:or, [:void, ProtoDef.Type.I32]},
text: {:or, [:void, ProtoDef.Type.PString]}}
McProtocol.Packet.Server.Play.Transaction
%{accepted: ProtoDef.Type.Bool, action: ProtoDef.Type.I16,
window_id: ProtoDef.Type.I8}
McProtocol.Packet.Server.Play.UnloadChunk
%{chunk_x: ProtoDef.Type.I32, chunk_z: ProtoDef.Type.I32}
McProtocol.Packet.Server.Play.UpdateHealth
%{food: ProtoDef.Type.Varint, food_saturation: ProtoDef.Type.F32,
health: ProtoDef.Type.F32}
McProtocol.Packet.Server.Play.UpdateSign
%{location: {:type_ref, "position"}, text1: ProtoDef.Type.PString,
text2: ProtoDef.Type.PString, text3: ProtoDef.Type.PString,
text4: ProtoDef.Type.PString}
McProtocol.Packet.Server.Play.UpdateTime
%{age: ProtoDef.Type.I64, time: ProtoDef.Type.I64}
McProtocol.Packet.Server.Play.VehicleMove
%{pitch: ProtoDef.Type.F32, x: ProtoDef.Type.F64, y: ProtoDef.Type.F64,
yaw: ProtoDef.Type.F32, z: ProtoDef.Type.F64}
McProtocol.Packet.Server.Play.WindowItems
%{items: {:array, {:type_ref, "slot"}}, window_id: ProtoDef.Type.U8}
McProtocol.Packet.Server.Play.WorldBorder
%{action: ProtoDef.Type.Varint, new_radius: {:or, [:void, ProtoDef.Type.F64]},
old_radius: {:or, [:void, ProtoDef.Type.F64]},
portal_boundary: {:or, [:void, ProtoDef.Type.Varint]},
radius: {:or, [:void, ProtoDef.Type.F64]},
speed: {:or, [:void, ProtoDef.Type.Varint]},
warning_blocks: {:or, [:void, ProtoDef.Type.Varint]},
warning_time: {:or, [:void, ProtoDef.Type.Varint]},
x: {:or, [:void, ProtoDef.Type.F64]}, z: {:or, [:void, ProtoDef.Type.F64]}}
McProtocol.Packet.Server.Play.WorldEvent
%{data: ProtoDef.Type.I32, effect_id: ProtoDef.Type.I32,
global: ProtoDef.Type.Bool, location: {:type_ref, "position"}}
McProtocol.Packet.Server.Play.WorldParticles
%{data: {:or, [:void, {:array, ProtoDef.Type.Varint}]},
long_distance: ProtoDef.Type.Bool, offset_x: ProtoDef.Type.F32,
offset_y: ProtoDef.Type.F32, offset_z: ProtoDef.Type.F32,
particle_data: ProtoDef.Type.F32, particle_id: ProtoDef.Type.I32,
particles: ProtoDef.Type.I32, x: ProtoDef.Type.F32, y: ProtoDef.Type.F32,
z: ProtoDef.Type.F32}
McProtocol.Packet.Server.Status.Ping
%{time: ProtoDef.Type.I64}
McProtocol.Packet.Server.Status.ServerInfo
%{response: ProtoDef.Type.PString}