minecraft-data 3.78.0 → 3.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data.js +78 -2
- package/doc/history.md +8 -0
- package/index.d.ts +3 -0
- package/minecraft-data/README.md +2 -2
- package/minecraft-data/data/bedrock/1.21.20/proto.yml +2 -2
- package/minecraft-data/data/bedrock/1.21.20/protocol.json +2 -2
- package/minecraft-data/data/bedrock/1.21.20/types.yml +1 -1
- package/minecraft-data/data/bedrock/1.21.30/proto.yml +2 -2
- package/minecraft-data/data/bedrock/1.21.30/protocol.json +1 -1
- package/minecraft-data/data/bedrock/1.21.42/proto.yml +4337 -0
- package/minecraft-data/data/bedrock/1.21.42/protocol.json +3 -3
- package/minecraft-data/data/bedrock/1.21.42/types.yml +2422 -0
- package/minecraft-data/data/bedrock/1.21.50/protocol.json +13034 -0
- package/minecraft-data/data/bedrock/1.21.50/version.json +6 -0
- package/minecraft-data/data/bedrock/common/protocolVersions.json +6 -0
- package/minecraft-data/data/bedrock/common/versions.json +2 -1
- package/minecraft-data/data/bedrock/latest/proto.yml +79 -3
- package/minecraft-data/data/bedrock/latest/types.yml +20 -3
- package/minecraft-data/data/dataPaths.json +79 -3
- package/minecraft-data/data/pc/1.20.5/proto.yml +5 -34
- package/minecraft-data/data/pc/1.20.5/protocol.json +26 -129
- package/minecraft-data/data/pc/1.21/version.json +6 -0
- package/minecraft-data/data/pc/1.21.1/attributes.json +219 -0
- package/minecraft-data/data/pc/1.21.1/proto.yml +3534 -0
- package/minecraft-data/data/pc/1.21.1/protocol.json +55 -51
- package/minecraft-data/data/pc/1.21.3/attributes.json +226 -0
- package/minecraft-data/data/pc/1.21.3/biomes.json +652 -0
- package/minecraft-data/data/pc/1.21.3/blockCollisionShapes.json +137701 -0
- package/minecraft-data/data/pc/1.21.3/blocks.json +40773 -0
- package/minecraft-data/data/pc/1.21.3/entities.json +4158 -0
- package/minecraft-data/data/pc/1.21.3/foods.json +402 -0
- package/minecraft-data/data/pc/1.21.3/items.json +9038 -0
- package/minecraft-data/data/pc/1.21.3/language.json +6974 -0
- package/minecraft-data/data/pc/1.21.3/materials.json +134 -0
- package/minecraft-data/data/pc/1.21.3/particles.json +446 -0
- package/minecraft-data/data/pc/1.21.3/protocol.json +9518 -0
- package/minecraft-data/data/pc/1.21.3/recipes.json +29693 -0
- package/minecraft-data/data/pc/1.21.3/sounds.json +6546 -0
- package/minecraft-data/data/pc/1.21.3/tints.json +465 -0
- package/minecraft-data/data/pc/1.21.3/version.json +6 -0
- package/minecraft-data/data/pc/common/features.json +5 -0
- package/minecraft-data/data/pc/common/protocolVersions.json +80 -0
- package/minecraft-data/data/pc/common/versions.json +3 -2
- package/minecraft-data/data/pc/latest/proto.yml +444 -603
- package/minecraft-data/doc/history.md +19 -0
- package/minecraft-data/tools/js/extractPcEntityMetadata.js +32 -10
- package/minecraft-data/tools/js/extractSlotComponents.js +23 -0
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!version: 1.21.
|
|
1
|
+
!version: 1.21.3
|
|
2
2
|
!StartDocs: true
|
|
3
3
|
|
|
4
4
|
^types:
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
entityMetadataLoop: native
|
|
24
24
|
topBitSetTerminatedArray: native
|
|
25
25
|
bitfield: native
|
|
26
|
+
bitflags: native
|
|
26
27
|
container: native
|
|
27
28
|
switch: native
|
|
28
29
|
void: native
|
|
@@ -30,7 +31,8 @@
|
|
|
30
31
|
restBuffer: native
|
|
31
32
|
anonymousNbt: native
|
|
32
33
|
anonOptionalNbt: native
|
|
33
|
-
|
|
34
|
+
registryEntryHolder: native
|
|
35
|
+
registryEntryHolderSet: native
|
|
34
36
|
ByteArray: ["buffer", { "countType": "varint" }]
|
|
35
37
|
string: [
|
|
36
38
|
"pstring",
|
|
@@ -54,7 +56,72 @@
|
|
|
54
56
|
x: f64
|
|
55
57
|
y: f64
|
|
56
58
|
z: f64
|
|
57
|
-
|
|
59
|
+
IDSet: ["registryEntryHolderSet", {
|
|
60
|
+
"base": { name: "name", type: "string" },
|
|
61
|
+
"otherwise": { name: "ids", type: "varint" }
|
|
62
|
+
}]
|
|
63
|
+
ContainerID: varint
|
|
64
|
+
SoundEvent:
|
|
65
|
+
soundName: string
|
|
66
|
+
fixedRange?: f32
|
|
67
|
+
RecipeDisplay:
|
|
68
|
+
type: varint =>
|
|
69
|
+
- crafting_shapeless
|
|
70
|
+
- crafting_shaped
|
|
71
|
+
- furnace
|
|
72
|
+
- stonecutter
|
|
73
|
+
- smithing
|
|
74
|
+
data: type ?
|
|
75
|
+
if crafting_shapeless:
|
|
76
|
+
ingredients: SlotDisplay[]varint
|
|
77
|
+
result: SlotDisplay
|
|
78
|
+
craftingStation: SlotDisplay
|
|
79
|
+
if crafting_shaped:
|
|
80
|
+
width: varint
|
|
81
|
+
height: varint
|
|
82
|
+
ingredients: SlotDisplay[]varint
|
|
83
|
+
result: SlotDisplay
|
|
84
|
+
craftingStation: SlotDisplay
|
|
85
|
+
if furnace:
|
|
86
|
+
ingredient: SlotDisplay
|
|
87
|
+
fuel: SlotDisplay
|
|
88
|
+
result: SlotDisplay
|
|
89
|
+
craftingStation: SlotDisplay
|
|
90
|
+
duration: varint
|
|
91
|
+
experience: f32
|
|
92
|
+
if stonecutter:
|
|
93
|
+
ingredient: SlotDisplay
|
|
94
|
+
result: SlotDisplay
|
|
95
|
+
craftingStation: SlotDisplay
|
|
96
|
+
if smithing:
|
|
97
|
+
template: SlotDisplay
|
|
98
|
+
base: SlotDisplay
|
|
99
|
+
addition: SlotDisplay
|
|
100
|
+
result: SlotDisplay
|
|
101
|
+
craftingStation: SlotDisplay
|
|
102
|
+
SlotDisplay:
|
|
103
|
+
type: varint =>
|
|
104
|
+
- empty
|
|
105
|
+
- any_fuel
|
|
106
|
+
- item
|
|
107
|
+
- item_stack
|
|
108
|
+
- tag
|
|
109
|
+
- smithing_trim
|
|
110
|
+
- with_remainder
|
|
111
|
+
- composite
|
|
112
|
+
data: type ?
|
|
113
|
+
if empty or any_fuel: void
|
|
114
|
+
if item: varint
|
|
115
|
+
if item_stack: Slot
|
|
116
|
+
if tag: string
|
|
117
|
+
if simthing_trim:
|
|
118
|
+
base: SlotDisplay
|
|
119
|
+
material: SlotDisplay
|
|
120
|
+
pattern: SlotDisplay
|
|
121
|
+
if with_remainder:
|
|
122
|
+
input: SlotDisplay
|
|
123
|
+
remainder: SlotDisplay
|
|
124
|
+
if composite: SlotDisplay[]varint
|
|
58
125
|
SlotComponentType: varint =>
|
|
59
126
|
- custom_data
|
|
60
127
|
- max_stack_size
|
|
@@ -63,6 +130,7 @@
|
|
|
63
130
|
- unbreakable
|
|
64
131
|
- custom_name
|
|
65
132
|
- item_name
|
|
133
|
+
- item_model
|
|
66
134
|
- lore
|
|
67
135
|
- rarity
|
|
68
136
|
- enchantments
|
|
@@ -77,8 +145,17 @@
|
|
|
77
145
|
- enchantment_glint_override
|
|
78
146
|
- intangible_projectile
|
|
79
147
|
- food
|
|
80
|
-
-
|
|
148
|
+
- consumable
|
|
149
|
+
- use_remainder
|
|
150
|
+
- use_cooldown
|
|
151
|
+
- damage_resistant
|
|
81
152
|
- tool
|
|
153
|
+
- enchantable
|
|
154
|
+
- equippable
|
|
155
|
+
- repairable
|
|
156
|
+
- glider
|
|
157
|
+
- tooltip_style
|
|
158
|
+
- death_protection
|
|
82
159
|
- stored_enchantments
|
|
83
160
|
- dyed_color
|
|
84
161
|
- map_color
|
|
@@ -116,8 +193,9 @@
|
|
|
116
193
|
|
|
117
194
|
SlotComponent:
|
|
118
195
|
type: SlotComponentType
|
|
196
|
+
## Ref: client/net/minecraft/core/component/DataComponents.java
|
|
119
197
|
data: type ?
|
|
120
|
-
|
|
198
|
+
## TODO: look into how nbt works here
|
|
121
199
|
if custom_data: anonymousNbt
|
|
122
200
|
if max_stack_size: varint
|
|
123
201
|
if max_damage: varint
|
|
@@ -125,8 +203,13 @@
|
|
|
125
203
|
if unbreakable: bool
|
|
126
204
|
if custom_name: anonymousNbt
|
|
127
205
|
if item_name: anonymousNbt
|
|
206
|
+
if item_model: string
|
|
128
207
|
if lore: anonOptionalNbt[]varint
|
|
129
|
-
if rarity: varint
|
|
208
|
+
if rarity: varint =>
|
|
209
|
+
- common
|
|
210
|
+
- uncommon
|
|
211
|
+
- rare
|
|
212
|
+
- epic
|
|
130
213
|
if enchantments:
|
|
131
214
|
enchantments: []varint
|
|
132
215
|
id: varint
|
|
@@ -138,7 +221,6 @@
|
|
|
138
221
|
if attribute_modifiers:
|
|
139
222
|
attributes: []varint
|
|
140
223
|
typeId: varint
|
|
141
|
-
uniqueId: UUID
|
|
142
224
|
name: string
|
|
143
225
|
value: f64
|
|
144
226
|
operation: varint =>
|
|
@@ -164,53 +246,78 @@
|
|
|
164
246
|
if creative_slot_lock: void
|
|
165
247
|
if enchantment_glint_override: bool
|
|
166
248
|
if intangible_projectile: void
|
|
167
|
-
# Name Type Description
|
|
168
|
-
# Nutrition VarInt Non-negative
|
|
169
|
-
# Saturation Modifier Float How much saturation will be given after consuming the item.
|
|
170
|
-
# Can Always Eat Boolean Whether the item can always be eaten, even at full hunger.
|
|
171
|
-
# Seconds To Eat Float How long it takes to consume the item.
|
|
172
|
-
# Using converts to Slot Data This specifies the item produced after consuming the current item. In the Notchian server, this is used for stews, which turn into bowls. Set this to Air if the item should be consumed normally without leaving any other item after.
|
|
173
|
-
# Number of effects VarInt Number of elements in the following array.
|
|
174
|
-
# Effect Type ID Array Potion Effect The potion effect. See Potion Effect.
|
|
175
|
-
# Probability Float The probability for this effect to be chosen.
|
|
176
249
|
if food:
|
|
177
250
|
nutrition: varint
|
|
251
|
+
# How much saturation will be given after consuming the item.
|
|
178
252
|
saturationModifier: f32
|
|
253
|
+
# Whether the item can always be eaten, even at full hunger.
|
|
179
254
|
canAlwaysEat: bool
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
255
|
+
if consumable:
|
|
256
|
+
consume_seconds: f32
|
|
257
|
+
animation: varint =>
|
|
258
|
+
- none
|
|
259
|
+
- eat
|
|
260
|
+
- drink
|
|
261
|
+
- block
|
|
262
|
+
- bow
|
|
263
|
+
- spear
|
|
264
|
+
- crossbow
|
|
265
|
+
- spyglass
|
|
266
|
+
- toot_horn
|
|
267
|
+
- brush
|
|
268
|
+
sound: ["registryEntryHolder", {
|
|
269
|
+
"baseName": "soundId",
|
|
270
|
+
"otherwise": { name: "data", type: "SoundEvent" }
|
|
271
|
+
}]
|
|
272
|
+
makes_particles: bool
|
|
273
|
+
effects: ConsumeEffect[]varint
|
|
274
|
+
if use_remainder: Slot
|
|
275
|
+
if use_cooldown:
|
|
276
|
+
seconds: f32
|
|
277
|
+
cooldownGroup?: string
|
|
278
|
+
if damage_resistant: string
|
|
196
279
|
if tool:
|
|
197
280
|
rules: []varint
|
|
198
|
-
blocks:
|
|
199
|
-
|
|
200
|
-
speed
|
|
201
|
-
|
|
202
|
-
correctDropForBlocks
|
|
281
|
+
blocks: IDSet
|
|
282
|
+
# The speed at which the tool breaks this rules' blocks.
|
|
283
|
+
speed?: f32
|
|
284
|
+
# Whether items should drop only if this is the correct tool.
|
|
285
|
+
correctDropForBlocks?: bool
|
|
286
|
+
# The mining speed in case none of the previous rule were matched.
|
|
203
287
|
defaultMiningSpeed: f32
|
|
204
288
|
damagePerBlock: varint
|
|
205
|
-
#
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
289
|
+
# Enchantment cost up to which the item can be enchanted
|
|
290
|
+
if enchantable: varint
|
|
291
|
+
if equippable:
|
|
292
|
+
slot: varint =>
|
|
293
|
+
- main_hand
|
|
294
|
+
- off_hand
|
|
295
|
+
- feet
|
|
296
|
+
- legs
|
|
297
|
+
- chest
|
|
298
|
+
- head
|
|
299
|
+
- body
|
|
300
|
+
sound: ["registryEntryHolder", {
|
|
301
|
+
"baseName": "soundId",
|
|
302
|
+
"otherwise": { name: "data", type: "SoundEvent" }
|
|
303
|
+
}]
|
|
304
|
+
model?: string
|
|
305
|
+
cameraOverlay?: string
|
|
306
|
+
allowedEntities?: IDSet
|
|
307
|
+
dispensable: bool
|
|
308
|
+
swappable: bool
|
|
309
|
+
damageable: bool
|
|
310
|
+
if repairable:
|
|
311
|
+
items: IDSet
|
|
312
|
+
if tooltip_style: string
|
|
313
|
+
if death_protection:
|
|
314
|
+
effects: ConsumeEffect[]varint
|
|
210
315
|
if stored_enchantments:
|
|
211
316
|
enchantments: []varint
|
|
317
|
+
# The ID of the enchantment in the enchantment registry.
|
|
212
318
|
id: varint
|
|
213
319
|
level: varint
|
|
320
|
+
# Whether the list of enchantments should be shown on the item's tooltip.
|
|
214
321
|
showInTooltip: bool
|
|
215
322
|
if dyed_color:
|
|
216
323
|
color: varint
|
|
@@ -223,21 +330,13 @@
|
|
|
223
330
|
projectiles: Slot[]varint
|
|
224
331
|
if bundle_contents:
|
|
225
332
|
contents: Slot[]varint
|
|
226
|
-
# Name Type Description
|
|
227
|
-
# Has Potion ID Boolean Whether this potion has an ID in the potion registry. If true, it has the default effects associated with the potion type.
|
|
228
|
-
# Potion ID Optional VarInt The ID of the potion type in the potion registry. Only present if Has Potion ID is true.
|
|
229
|
-
# Has Custom Color Boolean Whether this potion has a custom color. If false, it uses the default color associated with the potion type.
|
|
230
|
-
# Custom Color Optional Int The RGB components of the color, encoded as an integer. Only present if Has Custom Color is true.
|
|
231
|
-
# Number Of Custom Effects VarInt The number of elements in the following array.
|
|
232
|
-
# Custom Effects Array of Potion Effect Any custom effects the potion might have. See Potion Effect.
|
|
233
333
|
if potion_contents:
|
|
234
|
-
|
|
235
|
-
potionId
|
|
236
|
-
|
|
237
|
-
customColor
|
|
238
|
-
customEffects: []varint
|
|
239
|
-
|
|
240
|
-
details: EffectDetail
|
|
334
|
+
# True if this potion has an ID in the potion registry--it has the default effects associated with the potion type.
|
|
335
|
+
potionId?: varint
|
|
336
|
+
# The RGB components of the color, encoded as an integer.
|
|
337
|
+
customColor?: varint
|
|
338
|
+
customEffects: PotionEffect[]varint
|
|
339
|
+
customName: string
|
|
241
340
|
# Name Type Description
|
|
242
341
|
# Number Of Effects VarInt Number of elements in the following array.
|
|
243
342
|
# Effect Type ID Array VarInt Enum The ID of the effect in the potion effect type registry.
|
|
@@ -374,7 +473,7 @@
|
|
|
374
473
|
if lodestone_tracker:
|
|
375
474
|
globalPosition?:
|
|
376
475
|
dimension: string
|
|
377
|
-
position:
|
|
476
|
+
position: position
|
|
378
477
|
tracked: bool
|
|
379
478
|
# Name Type Description
|
|
380
479
|
# Shape VarInt Enum Can be one of the following:
|
|
@@ -459,68 +558,12 @@
|
|
|
459
558
|
if container_loot: anonymousNbt
|
|
460
559
|
|
|
461
560
|
Slot:
|
|
462
|
-
itemCount:
|
|
561
|
+
itemCount: varint
|
|
463
562
|
_: itemCount ?
|
|
464
563
|
if 0: void
|
|
465
564
|
default:
|
|
466
|
-
|
|
565
|
+
item: varint
|
|
467
566
|
# https://wiki.vg/Slot_Data#Structured_components
|
|
468
|
-
# + public static final DataComponentType<CompoundTag> CUSTOM_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
469
|
-
# + public static final IntComponentType MAX_STACK_SIZE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
470
|
-
# + public static final IntComponentType MAX_DAMAGE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
471
|
-
# + public static final IntComponentType DAMAGE = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
472
|
-
# + public static final BooleanComponentType UNBREAKABLE = new BooleanComponentType(ByteBuf::readBoolean, ByteBuf::writeBoolean, BooleanDataComponent::new);
|
|
473
|
-
# + public static final DataComponentType<Component> CUSTOM_NAME = new DataComponentType<>(ItemCodecHelper::readComponent, ItemCodecHelper::writeComponent, ObjectDataComponent::new);
|
|
474
|
-
# + public static final DataComponentType<Component> ITEM_NAME = new DataComponentType<>(ItemCodecHelper::readComponent, ItemCodecHelper::writeComponent, ObjectDataComponent::new);
|
|
475
|
-
# + public static final DataComponentType<List<Component>> LORE = new DataComponentType<>(listReader(ItemCodecHelper::readComponent), listWriter(ItemCodecHelper::writeComponent), ObjectDataComponent::new);
|
|
476
|
-
# + public static final IntComponentType RARITY = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
477
|
-
# + public static final DataComponentType<ItemEnchantments> ENCHANTMENTS = new DataComponentType<>(ItemCodecHelper::readItemEnchantments, ItemCodecHelper::writeItemEnchantments, ObjectDataComponent::new);
|
|
478
|
-
# + public static final DataComponentType<AdventureModePredicate> CAN_PLACE_ON = new DataComponentType<>(ItemCodecHelper::readAdventureModePredicate, ItemCodecHelper::writeAdventureModePredicate, ObjectDataComponent::new);
|
|
479
|
-
# + public static final DataComponentType<AdventureModePredicate> CAN_BREAK = new DataComponentType<>(ItemCodecHelper::readAdventureModePredicate, ItemCodecHelper::writeAdventureModePredicate, ObjectDataComponent::new);
|
|
480
|
-
# + public static final DataComponentType<ItemAttributeModifiers> ATTRIBUTE_MODIFIERS = new DataComponentType<>(ItemCodecHelper::readItemAttributeModifiers, ItemCodecHelper::writeItemAttributeModifiers, ObjectDataComponent::new);
|
|
481
|
-
# + public static final IntComponentType CUSTOM_MODEL_DATA = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
482
|
-
# + public static final DataComponentType<Unit> HIDE_ADDITIONAL_TOOLTIP = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
|
|
483
|
-
# + public static final DataComponentType<Unit> HIDE_TOOLTIP = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
|
|
484
|
-
# + public static final IntComponentType REPAIR_COST = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
485
|
-
# + public static final DataComponentType<Unit> CREATIVE_SLOT_LOCK = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
|
|
486
|
-
# + public static final BooleanComponentType ENCHANTMENT_GLINT_OVERRIDE = new BooleanComponentType(ByteBuf::readBoolean, ByteBuf::writeBoolean, BooleanDataComponent::new);
|
|
487
|
-
# + public static final DataComponentType<CompoundTag> INTANGIBLE_PROJECTILE = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
488
|
-
# + public static final DataComponentType<FoodProperties> FOOD = new DataComponentType<>(ItemCodecHelper::readFoodProperties, ItemCodecHelper::writeFoodProperties, ObjectDataComponent::new);
|
|
489
|
-
# + public static final DataComponentType<Unit> FIRE_RESISTANT = new DataComponentType<>(unitReader(), unitWriter(), ObjectDataComponent::new);
|
|
490
|
-
# + public static final DataComponentType<ToolData> TOOL = new DataComponentType<>(ItemCodecHelper::readToolData, ItemCodecHelper::writeToolData, ObjectDataComponent::new);
|
|
491
|
-
# + public static final DataComponentType<ItemEnchantments> STORED_ENCHANTMENTS = new DataComponentType<>(ItemCodecHelper::readItemEnchantments, ItemCodecHelper::writeItemEnchantments, ObjectDataComponent::new);
|
|
492
|
-
# + public static final DataComponentType<DyedItemColor> DYED_COLOR = new DataComponentType<>(ItemCodecHelper::readDyedItemColor, ItemCodecHelper::writeDyedItemColor, ObjectDataComponent::new);
|
|
493
|
-
# + public static final IntComponentType MAP_COLOR = new IntComponentType((helper, input) -> input.readInt(), (helper, output, value) -> output.writeInt(value), IntDataComponent::new);
|
|
494
|
-
# + public static final IntComponentType MAP_ID = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
495
|
-
# + public static final DataComponentType<CompoundTag> MAP_DECORATIONS = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
496
|
-
# + public static final IntComponentType MAP_POST_PROCESSING = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
497
|
-
# + public static final DataComponentType<List<ItemStack>> CHARGED_PROJECTILES = new DataComponentType<>(listReader(ItemCodecHelper::readItemStack), listWriter(ItemCodecHelper::writeItemStack), ObjectDataComponent::new);
|
|
498
|
-
# + public static final DataComponentType<List<ItemStack>> BUNDLE_CONTENTS = new DataComponentType<>(listReader(ItemCodecHelper::readItemStack), listWriter(ItemCodecHelper::writeItemStack), ObjectDataComponent::new);
|
|
499
|
-
# + public static final DataComponentType<PotionContents> POTION_CONTENTS = new DataComponentType<>(ItemCodecHelper::readPotionContents, ItemCodecHelper::writePotionContents, ObjectDataComponent::new);
|
|
500
|
-
# + public static final DataComponentType<List<SuspiciousStewEffect>> SUSPICIOUS_STEW_EFFECTS = new DataComponentType<>(listReader(ItemCodecHelper::readStewEffect), listWriter(ItemCodecHelper::writeStewEffect), ObjectDataComponent::new);
|
|
501
|
-
# + public static final DataComponentType<WritableBookContent> WRITABLE_BOOK_CONTENT = new DataComponentType<>(ItemCodecHelper::readWritableBookContent, ItemCodecHelper::writeWritableBookContent, ObjectDataComponent::new);
|
|
502
|
-
# + public static final DataComponentType<WrittenBookContent> WRITTEN_BOOK_CONTENT = new DataComponentType<>(ItemCodecHelper::readWrittenBookContent, ItemCodecHelper::writeWrittenBookContent, ObjectDataComponent::new);
|
|
503
|
-
# + public static final DataComponentType<ArmorTrim> TRIM = new DataComponentType<>(ItemCodecHelper::readArmorTrim, ItemCodecHelper::writeArmorTrim, ObjectDataComponent::new);
|
|
504
|
-
# + public static final DataComponentType<CompoundTag> DEBUG_STICK_STATE = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
505
|
-
# + public static final DataComponentType<CompoundTag> ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
506
|
-
# + public static final DataComponentType<CompoundTag> BUCKET_ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
507
|
-
# + public static final DataComponentType<CompoundTag> BLOCK_ENTITY_DATA = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
508
|
-
# + public static final DataComponentType<Holder<Instrument>> INSTRUMENT = new DataComponentType<>(ItemCodecHelper::readInstrument, ItemCodecHelper::writeInstrument, ObjectDataComponent::new);
|
|
509
|
-
# + public static final IntComponentType OMINOUS_BOTTLE_AMPLIFIER = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
510
|
-
# + public static final DataComponentType<ListTag> RECIPES = new DataComponentType<>(ItemCodecHelper::readRecipes, ItemCodecHelper::writeRecipes, ObjectDataComponent::new);
|
|
511
|
-
# + public static final DataComponentType<LodestoneTracker> LODESTONE_TRACKER = new DataComponentType<>(ItemCodecHelper::readLodestoneTarget, ItemCodecHelper::writeLodestoneTarget, ObjectDataComponent::new);
|
|
512
|
-
# + public static final DataComponentType<Fireworks.FireworkExplosion> FIREWORK_EXPLOSION = new DataComponentType<>(ItemCodecHelper::readFireworkExplosion, ItemCodecHelper::writeFireworkExplosion, ObjectDataComponent::new);
|
|
513
|
-
# + public static final DataComponentType<Fireworks> FIREWORKS = new DataComponentType<>(ItemCodecHelper::readFireworks, ItemCodecHelper::writeFireworks, ObjectDataComponent::new);
|
|
514
|
-
# + public static final DataComponentType<GameProfile> PROFILE = new DataComponentType<>(ItemCodecHelper::readResolvableProfile, ItemCodecHelper::writeResolvableProfile, ObjectDataComponent::new);
|
|
515
|
-
# + public static final DataComponentType<String> NOTE_BLOCK_SOUND = new DataComponentType<>(ItemCodecHelper::readResourceLocation, ItemCodecHelper::writeResourceLocation, ObjectDataComponent::new);
|
|
516
|
-
# + public static final DataComponentType<List<BannerPatternLayer>> BANNER_PATTERNS = new DataComponentType<>(listReader(ItemCodecHelper::readBannerPatternLayer), listWriter(ItemCodecHelper::writeBannerPatternLayer), ObjectDataComponent::new);
|
|
517
|
-
# + public static final IntComponentType BASE_COLOR = new IntComponentType(ItemCodecHelper::readVarInt, ItemCodecHelper::writeVarInt, IntDataComponent::new);
|
|
518
|
-
# + public static final DataComponentType<List<Integer>> POT_DECORATIONS = new DataComponentType<>(listReader(ItemCodecHelper::readVarInt), listWriter(ItemCodecHelper::writeVarInt), ObjectDataComponent::new);
|
|
519
|
-
# + public static final DataComponentType<List<ItemStack>> CONTAINER = new DataComponentType<>(listReader(ItemCodecHelper::readOptionalItemStack), listWriter(MinecraftCodecHelper::writeOptionalItemStack), ObjectDataComponent::new);
|
|
520
|
-
# + public static final DataComponentType<BlockStateProperties> BLOCK_STATE = new DataComponentType<>(ItemCodecHelper::readBlockStateProperties, ItemCodecHelper::writeBlockStateProperties, ObjectDataComponent::new);
|
|
521
|
-
# + public static final DataComponentType<List<BeehiveOccupant>> BEES = new DataComponentType<>(listReader(ItemCodecHelper::readBeehiveOccupant), listWriter(ItemCodecHelper::writeBeehiveOccupant), ObjectDataComponent::new);
|
|
522
|
-
# + public static final DataComponentType<StringTag> LOCK = new DataComponentType<>(ItemCodecHelper::readLock, ItemCodecHelper::writeLock, ObjectDataComponent::new);
|
|
523
|
-
# + public static final DataComponentType<CompoundTag> CONTAINER_LOOT = new DataComponentType<>(ItemCodecHelper::readAnyTag, ItemCodecHelper::writeAnyTag, ObjectDataComponent::new);
|
|
524
567
|
addedComponentCount: varint
|
|
525
568
|
removedComponentCount: varint
|
|
526
569
|
components: SlotComponent[]$addedComponentCount
|
|
@@ -551,15 +594,31 @@
|
|
|
551
594
|
showIcon: bool
|
|
552
595
|
hiddenEffect?: EffectDetail
|
|
553
596
|
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
597
|
+
PotionEffect:
|
|
598
|
+
id: varint
|
|
599
|
+
details: EffectDetail
|
|
600
|
+
|
|
601
|
+
ConsumeEffect:
|
|
602
|
+
type: varint =>
|
|
603
|
+
- apply_effects
|
|
604
|
+
- remove_effects
|
|
605
|
+
- clear_all_effects
|
|
606
|
+
- teleport_randomly
|
|
607
|
+
- play_sound
|
|
608
|
+
_: type ?
|
|
609
|
+
if apply_effects:
|
|
610
|
+
effects: PotionEffect[]varint
|
|
611
|
+
probability: f32
|
|
612
|
+
if remove_effects:
|
|
613
|
+
effects: IDSet
|
|
614
|
+
if clear_all_effects: void
|
|
615
|
+
if teleport_randomly:
|
|
616
|
+
diameter: f32
|
|
617
|
+
if play_sound:
|
|
618
|
+
sound: ["registryEntryHolder", {
|
|
619
|
+
"baseName": "soundId",
|
|
620
|
+
"otherwise": { name: "data", type: "SoundEvent" }
|
|
621
|
+
}]
|
|
563
622
|
|
|
564
623
|
BlockProperty:
|
|
565
624
|
# Name of the block state property.
|
|
@@ -574,7 +633,10 @@
|
|
|
574
633
|
maxValue?: string
|
|
575
634
|
|
|
576
635
|
BlockPredicate:
|
|
577
|
-
blockSet?:
|
|
636
|
+
blockSet?: ["registryEntryHolderSet", {
|
|
637
|
+
"base": { name: "name", type: "string" },
|
|
638
|
+
"otherwise": { name: "blockIds", type: "varint" }
|
|
639
|
+
}]
|
|
578
640
|
properties?: BlockProperty[]varint
|
|
579
641
|
nbt: anonOptionalNbt
|
|
580
642
|
|
|
@@ -627,6 +689,7 @@
|
|
|
627
689
|
- instant_effect
|
|
628
690
|
- item
|
|
629
691
|
- vibration
|
|
692
|
+
- trail
|
|
630
693
|
- item_slime
|
|
631
694
|
- item_cobweb
|
|
632
695
|
- item_snowball
|
|
@@ -690,6 +753,7 @@
|
|
|
690
753
|
- ominous_spawning
|
|
691
754
|
- raid_omen
|
|
692
755
|
- trial_omen
|
|
756
|
+
- block_crumble
|
|
693
757
|
## ## Tips for reviewing particle data (as of 1.20.5)
|
|
694
758
|
## Inside the registry code, each particle can have an associated "options" type and
|
|
695
759
|
## each options type can add additional data to be encoded.
|
|
@@ -705,7 +769,7 @@
|
|
|
705
769
|
## which as we can see writes the varint to the buffer.
|
|
706
770
|
## If you want to see all the serializers try regexp searching "StreamCodec.*Particle"
|
|
707
771
|
data: type ?
|
|
708
|
-
if block or block_marker or falling_dust or dust_pillar: varint
|
|
772
|
+
if block or block_marker or falling_dust or dust_pillar or block_crumble: varint
|
|
709
773
|
if dust:
|
|
710
774
|
red: f32
|
|
711
775
|
green: f32
|
|
@@ -733,6 +797,9 @@
|
|
|
733
797
|
entityId: varint
|
|
734
798
|
entity_eye_height: f32
|
|
735
799
|
ticks: varint
|
|
800
|
+
if trail:
|
|
801
|
+
target: vec3f64
|
|
802
|
+
color: u8
|
|
736
803
|
ingredient: Slot[]varint
|
|
737
804
|
position: [
|
|
738
805
|
"bitfield",
|
|
@@ -842,36 +909,33 @@
|
|
|
842
909
|
if optional_unsigned_int: optvarint
|
|
843
910
|
if pose: varint
|
|
844
911
|
if cat_variant: varint
|
|
845
|
-
if wolf_variant:
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
maybeInputLength: varint
|
|
850
|
-
biomeLocation: maybeInputLength ?
|
|
851
|
-
if 0: string
|
|
852
|
-
biomeHolders: maybeInputLength ?
|
|
853
|
-
if 0: void
|
|
854
|
-
default: ["arrayWithLengthOffset", {"count": "type", "type": "varint", "lengthOffset": -1}]
|
|
912
|
+
if wolf_variant: ["registryEntryHolder", {
|
|
913
|
+
"baseName": "variantId",
|
|
914
|
+
"otherwise": { name: "variantData", type: "EntityMetadataWolfVariant" }
|
|
915
|
+
}]
|
|
855
916
|
if frog_variant: varint
|
|
856
917
|
if optional_global_pos: ["option", "string"]
|
|
857
|
-
if painting_variant:
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
918
|
+
if painting_variant: ["registryEntryHolder", {
|
|
919
|
+
"baseName": "variantId",
|
|
920
|
+
"otherwise": { name: "variantData", type: "EntityMetadataPaintingVariant" }
|
|
921
|
+
}]
|
|
861
922
|
if sniffer_state: varint
|
|
862
923
|
if armadillo_state: varint
|
|
863
924
|
if vector3: vec3f
|
|
864
925
|
if quaternion: vec4f
|
|
926
|
+
EntityMetadataPaintingVariant:
|
|
927
|
+
width: i32
|
|
928
|
+
height: i32
|
|
929
|
+
assetId: string
|
|
930
|
+
title?: anonymousNbt
|
|
931
|
+
author?: anonymousNbt
|
|
932
|
+
EntityMetadataWolfVariant:
|
|
933
|
+
wildTexture: string
|
|
934
|
+
tameTexture: string
|
|
935
|
+
angryTexture: string
|
|
936
|
+
biome: IDSet
|
|
937
|
+
|
|
865
938
|
entityMetadata: ["entityMetadataLoop", { "endVal": 255, "type": "entityMetadataEntry" }]
|
|
866
|
-
minecraft_simple_recipe_format:
|
|
867
|
-
category: varint
|
|
868
|
-
minecraft_smelting_format:
|
|
869
|
-
group: string
|
|
870
|
-
category: varint
|
|
871
|
-
ingredient: ingredient
|
|
872
|
-
result: Slot
|
|
873
|
-
experience: f32
|
|
874
|
-
cookTime: varint
|
|
875
939
|
tags: []varint
|
|
876
940
|
tagName: string
|
|
877
941
|
entries: varint[]varint
|
|
@@ -1240,6 +1304,16 @@
|
|
|
1240
1304
|
details: []varint
|
|
1241
1305
|
key: string
|
|
1242
1306
|
value: string
|
|
1307
|
+
# MC: ClientboundResourcePackPopPacket
|
|
1308
|
+
packet_common_remove_resource_pack:
|
|
1309
|
+
uuid?: UUID
|
|
1310
|
+
# MC: ClientboundResourcePackPushPacket
|
|
1311
|
+
packet_common_add_resource_pack:
|
|
1312
|
+
uuid: UUID
|
|
1313
|
+
url: string
|
|
1314
|
+
hash: string
|
|
1315
|
+
forced: bool
|
|
1316
|
+
promptMessage?: anonymousNbt
|
|
1243
1317
|
|
|
1244
1318
|
ServerLinkType: varint =>
|
|
1245
1319
|
- bug_report
|
|
@@ -1331,7 +1405,7 @@
|
|
|
1331
1405
|
}
|
|
1332
1406
|
]
|
|
1333
1407
|
shouldAuthenticate: bool
|
|
1334
|
-
# MC:
|
|
1408
|
+
# MC: ClientboundLoginFinishedPacket
|
|
1335
1409
|
packet_success:
|
|
1336
1410
|
uuid: UUID
|
|
1337
1411
|
username: string
|
|
@@ -1339,7 +1413,6 @@
|
|
|
1339
1413
|
name: string
|
|
1340
1414
|
value: string
|
|
1341
1415
|
signature?: string
|
|
1342
|
-
strictErrorHandling: bool
|
|
1343
1416
|
# MC: ClientboundLoginCompressionPacket
|
|
1344
1417
|
packet_compress:
|
|
1345
1418
|
threshold: varint
|
|
@@ -1432,16 +1505,6 @@
|
|
|
1432
1505
|
entries: []varint
|
|
1433
1506
|
key: string
|
|
1434
1507
|
value?: anonymousNbt
|
|
1435
|
-
# MC: ClientboundResourcePackPopPacket
|
|
1436
|
-
packet_remove_resource_pack:
|
|
1437
|
-
uuid?: UUID
|
|
1438
|
-
# MC: ClientboundResourcePackPushPacket
|
|
1439
|
-
packet_add_resource_pack:
|
|
1440
|
-
uuid: UUID
|
|
1441
|
-
url: string
|
|
1442
|
-
hash: string
|
|
1443
|
-
forced: bool
|
|
1444
|
-
promptMessage?: anonymousNbt
|
|
1445
1508
|
## (Store cookie and Transfer are Common) ##
|
|
1446
1509
|
# MC: ClientboundUpdateEnabledFeaturesPacket
|
|
1447
1510
|
packet_feature_flags:
|
|
@@ -1480,8 +1543,8 @@
|
|
|
1480
1543
|
if ping: packet_ping
|
|
1481
1544
|
if reset_chat: packet_reset_chat
|
|
1482
1545
|
if registry_data: packet_registry_data
|
|
1483
|
-
if remove_resource_pack:
|
|
1484
|
-
if add_resource_pack:
|
|
1546
|
+
if remove_resource_pack: packet_common_remove_resource_pack
|
|
1547
|
+
if add_resource_pack: packet_common_add_resource_pack
|
|
1485
1548
|
if store_cookie: packet_common_store_cookie
|
|
1486
1549
|
if transfer: packet_common_transfer
|
|
1487
1550
|
if feature_flags: packet_feature_flags
|
|
@@ -1500,6 +1563,7 @@
|
|
|
1500
1563
|
mainHand: varint
|
|
1501
1564
|
enableTextFiltering: bool
|
|
1502
1565
|
enableServerListing: bool
|
|
1566
|
+
particles: varint
|
|
1503
1567
|
## (Cookie Response is Common) ##
|
|
1504
1568
|
# MC: ServerboundCustomPayloadPacket
|
|
1505
1569
|
packet_custom_payload:
|
|
@@ -1560,6 +1624,7 @@
|
|
|
1560
1624
|
dimensionName: string
|
|
1561
1625
|
location: position
|
|
1562
1626
|
portalCooldown: varint
|
|
1627
|
+
seaLevel: varint
|
|
1563
1628
|
|
|
1564
1629
|
# MC: ClientboundAddEntityPacket
|
|
1565
1630
|
packet_spawn_entity:
|
|
@@ -1672,28 +1737,29 @@
|
|
|
1672
1737
|
rootIndex: varint
|
|
1673
1738
|
# MC: ClientboundContainerClosePacket
|
|
1674
1739
|
packet_close_window:
|
|
1675
|
-
windowId:
|
|
1740
|
+
windowId: ContainerID
|
|
1676
1741
|
# MC: ClientboundContainerSetContentPacket
|
|
1677
1742
|
packet_window_items:
|
|
1678
|
-
windowId:
|
|
1743
|
+
windowId: ContainerID
|
|
1679
1744
|
stateId: varint
|
|
1680
1745
|
items: Slot[]varint
|
|
1681
1746
|
carriedItem: Slot
|
|
1682
1747
|
# MC: ClientboundContainerSetDataPacket
|
|
1683
1748
|
packet_craft_progress_bar:
|
|
1684
|
-
windowId:
|
|
1749
|
+
windowId: ContainerID
|
|
1685
1750
|
property: i16
|
|
1686
1751
|
value: i16
|
|
1687
1752
|
# MC: ClientboundContainerSetSlotPacket
|
|
1688
1753
|
packet_set_slot:
|
|
1689
|
-
windowId:
|
|
1754
|
+
windowId: ContainerID
|
|
1690
1755
|
stateId: varint
|
|
1691
1756
|
slot: i16
|
|
1692
1757
|
item: Slot
|
|
1693
1758
|
## (Cookie Request is Common)
|
|
1694
1759
|
# MC: ClientboundCooldownPacket
|
|
1695
1760
|
packet_set_cooldown:
|
|
1696
|
-
|
|
1761
|
+
# TODO: figure out what this is
|
|
1762
|
+
cooldownGroup: string
|
|
1697
1763
|
cooldownTicks: varint
|
|
1698
1764
|
# MC: ClientboundCustomChatCompletionsPacket
|
|
1699
1765
|
packet_chat_suggestions:
|
|
@@ -1758,22 +1824,23 @@
|
|
|
1758
1824
|
packet_entity_status:
|
|
1759
1825
|
entityId: i32
|
|
1760
1826
|
entityStatus: i8
|
|
1761
|
-
# MC:
|
|
1762
|
-
|
|
1827
|
+
# MC: ClientboundEntityPositionSyncPacket
|
|
1828
|
+
packet_sync_entity_position:
|
|
1829
|
+
entityId: varint
|
|
1763
1830
|
x: f64
|
|
1764
1831
|
y: f64
|
|
1765
1832
|
z: f64
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1833
|
+
dx: f64
|
|
1834
|
+
dy: f64
|
|
1835
|
+
dz: f64
|
|
1836
|
+
yaw: f32
|
|
1837
|
+
pitch: f32
|
|
1838
|
+
onGround: bool
|
|
1839
|
+
# MC: ClientboundExplodePacket
|
|
1840
|
+
packet_explosion:
|
|
1841
|
+
center: vec3f
|
|
1842
|
+
playerKnockback?: vec3f
|
|
1843
|
+
explosionParticle: Particle
|
|
1777
1844
|
soundId: varint
|
|
1778
1845
|
_: soundId ?
|
|
1779
1846
|
if 0:
|
|
@@ -1791,7 +1858,7 @@
|
|
|
1791
1858
|
gameMode: f32
|
|
1792
1859
|
# MC: ClientboundHorseScreenOpenPacket
|
|
1793
1860
|
packet_open_horse_window:
|
|
1794
|
-
windowId:
|
|
1861
|
+
windowId: ContainerID
|
|
1795
1862
|
nbSlots: varint
|
|
1796
1863
|
entityId: i32
|
|
1797
1864
|
# MC: ClientboundHurtAnimationPacket
|
|
@@ -1905,7 +1972,7 @@
|
|
|
1905
1972
|
]
|
|
1906
1973
|
# MC: ClientboundMerchantOffersPacket
|
|
1907
1974
|
packet_trade_list:
|
|
1908
|
-
windowId:
|
|
1975
|
+
windowId: ContainerID
|
|
1909
1976
|
## https://github.com/extremeheat/extracted_minecraft_data/blob/client1.20.5/client/net/minecraft/world/item/trading/MerchantOffer.java#L210
|
|
1910
1977
|
trades: []varint
|
|
1911
1978
|
inputItem1:
|
|
@@ -1946,6 +2013,15 @@
|
|
|
1946
2013
|
yaw: i8
|
|
1947
2014
|
pitch: i8
|
|
1948
2015
|
onGround: bool
|
|
2016
|
+
# MC: ClientboundMoveMinecartPacket
|
|
2017
|
+
packet_move_minecart:
|
|
2018
|
+
entityId: varint
|
|
2019
|
+
steps: []varint
|
|
2020
|
+
position: vec3f
|
|
2021
|
+
movement: vec3f
|
|
2022
|
+
yaw: f32
|
|
2023
|
+
pitch: f32
|
|
2024
|
+
weight: f32
|
|
1949
2025
|
# MC: ClientboundMoveEntityPacket.Rot
|
|
1950
2026
|
packet_entity_look:
|
|
1951
2027
|
entityId: varint
|
|
@@ -1979,8 +2055,8 @@
|
|
|
1979
2055
|
id: i64
|
|
1980
2056
|
# MC: ClientboundPlaceGhostRecipePacket
|
|
1981
2057
|
packet_craft_recipe_response:
|
|
1982
|
-
windowId:
|
|
1983
|
-
|
|
2058
|
+
windowId: ContainerID
|
|
2059
|
+
recipeDisplay: RecipeDisplay
|
|
1984
2060
|
# MC: ClientboundPlayerAbilitiesPacket
|
|
1985
2061
|
packet_abilities:
|
|
1986
2062
|
flags: i8
|
|
@@ -2023,309 +2099,41 @@
|
|
|
2023
2099
|
players: UUID[]varint
|
|
2024
2100
|
# MC: ClientboundPlayerInfoUpdatePacket
|
|
2025
2101
|
packet_player_info:
|
|
2026
|
-
action
|
|
2102
|
+
# action is a bitfield of the above
|
|
2103
|
+
action: ["bitfield", [
|
|
2104
|
+
{ "name": "unused", "size": 1, "signed": false },
|
|
2105
|
+
{ "name": "update_priority", "size": 1, "signed": false },
|
|
2106
|
+
{ "name": "update_display_name", "size": 1, "signed": false },
|
|
2107
|
+
{ "name": "update_latency", "size": 1, "signed": false },
|
|
2108
|
+
{ "name": "update_listed", "size": 1, "signed": false },
|
|
2109
|
+
{ "name": "update_game_mode", "size": 1, "signed": false },
|
|
2110
|
+
{ "name": "initialize_chat", "size": 1, "signed": false },
|
|
2111
|
+
{ "name": "add_player", "size": 1, "signed": false }
|
|
2112
|
+
]]
|
|
2027
2113
|
data: []varint
|
|
2028
2114
|
uuid: UUID
|
|
2029
|
-
player: ../action ?
|
|
2115
|
+
player: ../action/add_player ?
|
|
2030
2116
|
if 1: game_profile
|
|
2031
|
-
if 3: game_profile
|
|
2032
|
-
if 5: game_profile
|
|
2033
|
-
if 7: game_profile
|
|
2034
|
-
if 9: game_profile
|
|
2035
|
-
if 11: game_profile
|
|
2036
|
-
if 13: game_profile
|
|
2037
|
-
if 15: game_profile
|
|
2038
|
-
if 17: game_profile
|
|
2039
|
-
if 19: game_profile
|
|
2040
|
-
if 21: game_profile
|
|
2041
|
-
if 23: game_profile
|
|
2042
|
-
if 25: game_profile
|
|
2043
|
-
if 27: game_profile
|
|
2044
|
-
if 29: game_profile
|
|
2045
|
-
if 31: game_profile
|
|
2046
|
-
if 33: game_profile
|
|
2047
|
-
if 35: game_profile
|
|
2048
|
-
if 37: game_profile
|
|
2049
|
-
if 39: game_profile
|
|
2050
|
-
if 41: game_profile
|
|
2051
|
-
if 43: game_profile
|
|
2052
|
-
if 45: game_profile
|
|
2053
|
-
if 47: game_profile
|
|
2054
|
-
if 49: game_profile
|
|
2055
|
-
if 51: game_profile
|
|
2056
|
-
if 53: game_profile
|
|
2057
|
-
if 55: game_profile
|
|
2058
|
-
if 57: game_profile
|
|
2059
|
-
if 59: game_profile
|
|
2060
|
-
if 61: game_profile
|
|
2061
|
-
if 63: game_profile
|
|
2062
2117
|
default: void
|
|
2063
|
-
chatSession: ../action ?
|
|
2064
|
-
if
|
|
2065
|
-
if 3: chat_session
|
|
2066
|
-
if 6: chat_session
|
|
2067
|
-
if 7: chat_session
|
|
2068
|
-
if 10: chat_session
|
|
2069
|
-
if 11: chat_session
|
|
2070
|
-
if 14: chat_session
|
|
2071
|
-
if 15: chat_session
|
|
2072
|
-
if 18: chat_session
|
|
2073
|
-
if 19: chat_session
|
|
2074
|
-
if 22: chat_session
|
|
2075
|
-
if 23: chat_session
|
|
2076
|
-
if 26: chat_session
|
|
2077
|
-
if 27: chat_session
|
|
2078
|
-
if 30: chat_session
|
|
2079
|
-
if 31: chat_session
|
|
2080
|
-
if 34: chat_session
|
|
2081
|
-
if 35: chat_session
|
|
2082
|
-
if 38: chat_session
|
|
2083
|
-
if 39: chat_session
|
|
2084
|
-
if 42: chat_session
|
|
2085
|
-
if 43: chat_session
|
|
2086
|
-
if 46: chat_session
|
|
2087
|
-
if 47: chat_session
|
|
2088
|
-
if 50: chat_session
|
|
2089
|
-
if 51: chat_session
|
|
2090
|
-
if 54: chat_session
|
|
2091
|
-
if 55: chat_session
|
|
2092
|
-
if 58: chat_session
|
|
2093
|
-
if 59: chat_session
|
|
2094
|
-
if 62: chat_session
|
|
2095
|
-
if 63: chat_session
|
|
2118
|
+
chatSession: ../action/initialize_chat ?
|
|
2119
|
+
if 1: chat_session
|
|
2096
2120
|
default: void
|
|
2097
|
-
gamemode: ../action ?
|
|
2098
|
-
if
|
|
2099
|
-
if 5: varint
|
|
2100
|
-
if 6: varint
|
|
2101
|
-
if 7: varint
|
|
2102
|
-
if 12: varint
|
|
2103
|
-
if 13: varint
|
|
2104
|
-
if 14: varint
|
|
2105
|
-
if 15: varint
|
|
2106
|
-
if 20: varint
|
|
2107
|
-
if 21: varint
|
|
2108
|
-
if 22: varint
|
|
2109
|
-
if 23: varint
|
|
2110
|
-
if 28: varint
|
|
2111
|
-
if 29: varint
|
|
2112
|
-
if 30: varint
|
|
2113
|
-
if 31: varint
|
|
2114
|
-
if 36: varint
|
|
2115
|
-
if 37: varint
|
|
2116
|
-
if 38: varint
|
|
2117
|
-
if 39: varint
|
|
2118
|
-
if 44: varint
|
|
2119
|
-
if 45: varint
|
|
2120
|
-
if 46: varint
|
|
2121
|
-
if 47: varint
|
|
2122
|
-
if 52: varint
|
|
2123
|
-
if 53: varint
|
|
2124
|
-
if 54: varint
|
|
2125
|
-
if 55: varint
|
|
2126
|
-
if 60: varint
|
|
2127
|
-
if 61: varint
|
|
2128
|
-
if 62: varint
|
|
2129
|
-
if 63: varint
|
|
2121
|
+
gamemode: ../action/update_game_mode ?
|
|
2122
|
+
if 1: varint
|
|
2130
2123
|
default: void
|
|
2131
|
-
listed: ../action ?
|
|
2132
|
-
if
|
|
2133
|
-
if 9: bool
|
|
2134
|
-
if 10: bool
|
|
2135
|
-
if 11: bool
|
|
2136
|
-
if 12: bool
|
|
2137
|
-
if 13: bool
|
|
2138
|
-
if 14: bool
|
|
2139
|
-
if 15: bool
|
|
2140
|
-
if 24: bool
|
|
2141
|
-
if 25: bool
|
|
2142
|
-
if 26: bool
|
|
2143
|
-
if 27: bool
|
|
2144
|
-
if 28: bool
|
|
2145
|
-
if 29: bool
|
|
2146
|
-
if 30: bool
|
|
2147
|
-
if 31: bool
|
|
2148
|
-
if 40: bool
|
|
2149
|
-
if 41: bool
|
|
2150
|
-
if 42: bool
|
|
2151
|
-
if 43: bool
|
|
2152
|
-
if 44: bool
|
|
2153
|
-
if 45: bool
|
|
2154
|
-
if 46: bool
|
|
2155
|
-
if 47: bool
|
|
2156
|
-
if 56: bool
|
|
2157
|
-
if 57: bool
|
|
2158
|
-
if 58: bool
|
|
2159
|
-
if 59: bool
|
|
2160
|
-
if 60: bool
|
|
2161
|
-
if 61: bool
|
|
2162
|
-
if 62: bool
|
|
2163
|
-
if 63: bool
|
|
2124
|
+
listed: ../action/update_listed ?
|
|
2125
|
+
if 1: varint
|
|
2164
2126
|
default: void
|
|
2165
|
-
latency: ../action ?
|
|
2166
|
-
if
|
|
2167
|
-
if 17: varint
|
|
2168
|
-
if 18: varint
|
|
2169
|
-
if 19: varint
|
|
2170
|
-
if 20: varint
|
|
2171
|
-
if 21: varint
|
|
2172
|
-
if 22: varint
|
|
2173
|
-
if 23: varint
|
|
2174
|
-
if 24: varint
|
|
2175
|
-
if 25: varint
|
|
2176
|
-
if 26: varint
|
|
2177
|
-
if 27: varint
|
|
2178
|
-
if 28: varint
|
|
2179
|
-
if 29: varint
|
|
2180
|
-
if 30: varint
|
|
2181
|
-
if 31: varint
|
|
2182
|
-
if 48: varint
|
|
2183
|
-
if 49: varint
|
|
2184
|
-
if 50: varint
|
|
2185
|
-
if 51: varint
|
|
2186
|
-
if 52: varint
|
|
2187
|
-
if 53: varint
|
|
2188
|
-
if 54: varint
|
|
2189
|
-
if 55: varint
|
|
2190
|
-
if 56: varint
|
|
2191
|
-
if 57: varint
|
|
2192
|
-
if 58: varint
|
|
2193
|
-
if 59: varint
|
|
2194
|
-
if 60: varint
|
|
2195
|
-
if 61: varint
|
|
2196
|
-
if 62: varint
|
|
2197
|
-
if 63: varint
|
|
2127
|
+
latency: ../action/update_latency ?
|
|
2128
|
+
if 1: varint
|
|
2198
2129
|
default: void
|
|
2199
|
-
displayName: ../action ?
|
|
2200
|
-
if
|
|
2201
|
-
"option",
|
|
2202
|
-
"anonymousNbt"
|
|
2203
|
-
]
|
|
2204
|
-
if 33: [
|
|
2205
|
-
"option",
|
|
2206
|
-
"anonymousNbt"
|
|
2207
|
-
]
|
|
2208
|
-
if 34: [
|
|
2209
|
-
"option",
|
|
2210
|
-
"anonymousNbt"
|
|
2211
|
-
]
|
|
2212
|
-
if 35: [
|
|
2213
|
-
"option",
|
|
2214
|
-
"anonymousNbt"
|
|
2215
|
-
]
|
|
2216
|
-
if 36: [
|
|
2217
|
-
"option",
|
|
2218
|
-
"anonymousNbt"
|
|
2219
|
-
]
|
|
2220
|
-
if 37: [
|
|
2221
|
-
"option",
|
|
2222
|
-
"anonymousNbt"
|
|
2223
|
-
]
|
|
2224
|
-
if 38: [
|
|
2225
|
-
"option",
|
|
2226
|
-
"anonymousNbt"
|
|
2227
|
-
]
|
|
2228
|
-
if 39: [
|
|
2229
|
-
"option",
|
|
2230
|
-
"anonymousNbt"
|
|
2231
|
-
]
|
|
2232
|
-
if 40: [
|
|
2233
|
-
"option",
|
|
2234
|
-
"anonymousNbt"
|
|
2235
|
-
]
|
|
2236
|
-
if 41: [
|
|
2237
|
-
"option",
|
|
2238
|
-
"anonymousNbt"
|
|
2239
|
-
]
|
|
2240
|
-
if 42: [
|
|
2241
|
-
"option",
|
|
2242
|
-
"anonymousNbt"
|
|
2243
|
-
]
|
|
2244
|
-
if 43: [
|
|
2245
|
-
"option",
|
|
2246
|
-
"anonymousNbt"
|
|
2247
|
-
]
|
|
2248
|
-
if 44: [
|
|
2249
|
-
"option",
|
|
2250
|
-
"anonymousNbt"
|
|
2251
|
-
]
|
|
2252
|
-
if 45: [
|
|
2253
|
-
"option",
|
|
2254
|
-
"anonymousNbt"
|
|
2255
|
-
]
|
|
2256
|
-
if 46: [
|
|
2257
|
-
"option",
|
|
2258
|
-
"anonymousNbt"
|
|
2259
|
-
]
|
|
2260
|
-
if 47: [
|
|
2261
|
-
"option",
|
|
2262
|
-
"anonymousNbt"
|
|
2263
|
-
]
|
|
2264
|
-
if 48: [
|
|
2265
|
-
"option",
|
|
2266
|
-
"anonymousNbt"
|
|
2267
|
-
]
|
|
2268
|
-
if 49: [
|
|
2269
|
-
"option",
|
|
2270
|
-
"anonymousNbt"
|
|
2271
|
-
]
|
|
2272
|
-
if 50: [
|
|
2273
|
-
"option",
|
|
2274
|
-
"anonymousNbt"
|
|
2275
|
-
]
|
|
2276
|
-
if 51: [
|
|
2277
|
-
"option",
|
|
2278
|
-
"anonymousNbt"
|
|
2279
|
-
]
|
|
2280
|
-
if 52: [
|
|
2281
|
-
"option",
|
|
2282
|
-
"anonymousNbt"
|
|
2283
|
-
]
|
|
2284
|
-
if 53: [
|
|
2285
|
-
"option",
|
|
2286
|
-
"anonymousNbt"
|
|
2287
|
-
]
|
|
2288
|
-
if 54: [
|
|
2289
|
-
"option",
|
|
2290
|
-
"anonymousNbt"
|
|
2291
|
-
]
|
|
2292
|
-
if 55: [
|
|
2293
|
-
"option",
|
|
2294
|
-
"anonymousNbt"
|
|
2295
|
-
]
|
|
2296
|
-
if 56: [
|
|
2297
|
-
"option",
|
|
2298
|
-
"anonymousNbt"
|
|
2299
|
-
]
|
|
2300
|
-
if 57: [
|
|
2301
|
-
"option",
|
|
2302
|
-
"anonymousNbt"
|
|
2303
|
-
]
|
|
2304
|
-
if 58: [
|
|
2305
|
-
"option",
|
|
2306
|
-
"anonymousNbt"
|
|
2307
|
-
]
|
|
2308
|
-
if 59: [
|
|
2309
|
-
"option",
|
|
2310
|
-
"anonymousNbt"
|
|
2311
|
-
]
|
|
2312
|
-
if 60: [
|
|
2313
|
-
"option",
|
|
2314
|
-
"anonymousNbt"
|
|
2315
|
-
]
|
|
2316
|
-
if 61: [
|
|
2317
|
-
"option",
|
|
2318
|
-
"anonymousNbt"
|
|
2319
|
-
]
|
|
2320
|
-
if 62: [
|
|
2321
|
-
"option",
|
|
2322
|
-
"anonymousNbt"
|
|
2323
|
-
]
|
|
2324
|
-
if 63: [
|
|
2325
|
-
"option",
|
|
2326
|
-
"anonymousNbt"
|
|
2327
|
-
]
|
|
2130
|
+
displayName: ../action/update_display_name ?
|
|
2131
|
+
if 1: ["option", "anonymousNbt"]
|
|
2328
2132
|
default: void
|
|
2133
|
+
listPriority: ../action/update_priority ?
|
|
2134
|
+
if 1: varint
|
|
2135
|
+
default: void
|
|
2136
|
+
|
|
2329
2137
|
# MC: ClientboundPlayerLookAtPacket
|
|
2330
2138
|
packet_face_player:
|
|
2331
2139
|
feet_eyes: varint
|
|
@@ -2339,30 +2147,84 @@
|
|
|
2339
2147
|
entity_feet_eyes: isEntity ?
|
|
2340
2148
|
if true: varint
|
|
2341
2149
|
default: void
|
|
2150
|
+
|
|
2151
|
+
# https://github.com/extremeheat/extracted_minecraft_data/blob/client1.21.2/client/net/minecraft/world/entity/Relative.java#L82
|
|
2152
|
+
PositionUpdateRelatives: ["bitflags", {
|
|
2153
|
+
"type": "u32",
|
|
2154
|
+
"flags": ["x", "y", "z", "yaw", "pitch", "dx", "dy", "dz", "yawDelta"]
|
|
2155
|
+
}]
|
|
2156
|
+
# PositionUpdateRelatives: ["bitfield", [
|
|
2157
|
+
# # unused bits on top
|
|
2158
|
+
# { "name": "unused", "size": 23, "signed": false },
|
|
2159
|
+
# { "name": "yawDelta", "size": 1, "signed": false },
|
|
2160
|
+
# { "name": "dz", "size": 1, "signed": false },
|
|
2161
|
+
# { "name": "dy", "size": 1, "signed": false },
|
|
2162
|
+
# { "name": "dx", "size": 1, "signed": false },
|
|
2163
|
+
# { "name": "pitch", "size": 1, "signed": false },
|
|
2164
|
+
# { "name": "yaw", "size": 1, "signed": false },
|
|
2165
|
+
# { "name": "z", "size": 1, "signed": false },
|
|
2166
|
+
# { "name": "y", "size": 1, "signed": false },
|
|
2167
|
+
# { "name": "x", "size": 1, "signed": false },
|
|
2168
|
+
# ]]
|
|
2342
2169
|
# MC: ClientboundPlayerPositionPacket
|
|
2343
2170
|
packet_position:
|
|
2171
|
+
teleportId: varint
|
|
2344
2172
|
x: f64
|
|
2345
2173
|
y: f64
|
|
2346
2174
|
z: f64
|
|
2175
|
+
dx: f64
|
|
2176
|
+
dy: f64
|
|
2177
|
+
dz: f64
|
|
2347
2178
|
yaw: f32
|
|
2348
2179
|
pitch: f32
|
|
2349
|
-
flags:
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
|
|
2359
|
-
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2180
|
+
flags: PositionUpdateRelatives
|
|
2181
|
+
# MC: ClientboundPlayerRotationPacket
|
|
2182
|
+
packet_player_rotation:
|
|
2183
|
+
yaw: f32
|
|
2184
|
+
pitch: f32
|
|
2185
|
+
|
|
2186
|
+
# MC: ClientboundRecipeBookAddPacket
|
|
2187
|
+
packet_recipe_book_add:
|
|
2188
|
+
entries: []varint
|
|
2189
|
+
# RecipeDisplayEntry
|
|
2190
|
+
recipe:
|
|
2191
|
+
displayId: varint
|
|
2192
|
+
display: RecipeDisplay
|
|
2193
|
+
group: optvarint
|
|
2194
|
+
# This ID corresponds to the "recipe_book_category" registry
|
|
2195
|
+
category: varint =>
|
|
2196
|
+
- crafting_building_blocks
|
|
2197
|
+
- crafting_redstone
|
|
2198
|
+
- crafting_equipment
|
|
2199
|
+
- crafting_misc
|
|
2200
|
+
- furnace_food
|
|
2201
|
+
- furnace_blocks
|
|
2202
|
+
- furnace_misc
|
|
2203
|
+
- blast_furnace_blocks
|
|
2204
|
+
- blast_furnace_misc
|
|
2205
|
+
- smoker_food
|
|
2206
|
+
- stonecutter
|
|
2207
|
+
- smithing
|
|
2208
|
+
- campfire
|
|
2209
|
+
craftingRequirements?: IDSet[]varint
|
|
2210
|
+
flags: ["bitflags", {
|
|
2211
|
+
"type": "u8",
|
|
2212
|
+
"flags": ["notification", "highlight"]
|
|
2213
|
+
}]
|
|
2214
|
+
replace: bool
|
|
2215
|
+
# MC: ClientboundRecipeBookRemovePacket
|
|
2216
|
+
packet_recipe_book_remove:
|
|
2217
|
+
recipeIds: varint[]varint
|
|
2218
|
+
# MC: ClientboundRecipeBookSettingsPacket
|
|
2219
|
+
packet_recipe_book_settings:
|
|
2220
|
+
craftingGuiOpen: bool
|
|
2221
|
+
craftingFilteringCraftable: bool
|
|
2222
|
+
smeltingGuiOpen: bool
|
|
2223
|
+
smeltingFilteringCraftable: bool
|
|
2224
|
+
blastGuiOpen: bool
|
|
2225
|
+
blastFilteringCraftable: bool
|
|
2226
|
+
smokerGuiOpen: bool
|
|
2227
|
+
smokerFilteringCraftable: bool
|
|
2366
2228
|
# MC: ClientboundRemoveEntitiesPacket
|
|
2367
2229
|
packet_entity_destroy:
|
|
2368
2230
|
entityIds: varint[]varint
|
|
@@ -2374,16 +2236,6 @@
|
|
|
2374
2236
|
packet_reset_score:
|
|
2375
2237
|
entity_name: string
|
|
2376
2238
|
objective_name?: string
|
|
2377
|
-
# MC: ClientboundResourcePackPopPacket
|
|
2378
|
-
packet_remove_resource_pack:
|
|
2379
|
-
uuid?: UUID
|
|
2380
|
-
# MC: ClientboundResourcePackPushPacket
|
|
2381
|
-
packet_add_resource_pack:
|
|
2382
|
-
uuid: UUID
|
|
2383
|
-
url: string
|
|
2384
|
-
hash: string
|
|
2385
|
-
forced: bool
|
|
2386
|
-
promptMessage?: anonymousNbt
|
|
2387
2239
|
# MC: ClientboundRespawnPacket
|
|
2388
2240
|
packet_respawn:
|
|
2389
2241
|
worldState: SpawnInfo
|
|
@@ -2432,9 +2284,6 @@
|
|
|
2432
2284
|
# MC: ClientboundSetCameraPacket
|
|
2433
2285
|
packet_camera:
|
|
2434
2286
|
cameraId: varint
|
|
2435
|
-
# MC: ClientboundSetCarriedItemPacket
|
|
2436
|
-
packet_held_item_slot:
|
|
2437
|
-
slot: i8
|
|
2438
2287
|
# MC: ClientboundSetChunkCacheCenterPacket
|
|
2439
2288
|
packet_update_view_position:
|
|
2440
2289
|
chunkX: varint
|
|
@@ -2442,6 +2291,9 @@
|
|
|
2442
2291
|
# MC: ClientboundSetChunkCacheRadiusPacket
|
|
2443
2292
|
packet_update_view_distance:
|
|
2444
2293
|
viewDistance: varint
|
|
2294
|
+
# MC: ClientboundSetCursorItemPacket
|
|
2295
|
+
packet_set_cursor_item:
|
|
2296
|
+
contents?: Slot
|
|
2445
2297
|
# MC: ClientboundSetDefaultSpawnPositionPacket
|
|
2446
2298
|
packet_spawn_position:
|
|
2447
2299
|
location: position
|
|
@@ -2495,6 +2347,9 @@
|
|
|
2495
2347
|
health: f32
|
|
2496
2348
|
food: varint
|
|
2497
2349
|
foodSaturation: f32
|
|
2350
|
+
# MC: ClientboundSetHeldSlotPacket
|
|
2351
|
+
packet_held_item_slot:
|
|
2352
|
+
slot: i8
|
|
2498
2353
|
# MC: ClientboundSetObjectivePacket
|
|
2499
2354
|
packet_scoreboard_objective:
|
|
2500
2355
|
name: string
|
|
@@ -2531,6 +2386,10 @@
|
|
|
2531
2386
|
packet_set_passengers:
|
|
2532
2387
|
entityId: varint
|
|
2533
2388
|
passengers: varint[]varint
|
|
2389
|
+
# MC: ClientboundSetPlayerInventoryPacket
|
|
2390
|
+
packet_set_player_inventory:
|
|
2391
|
+
slotId: varint
|
|
2392
|
+
contents?: Slot
|
|
2534
2393
|
# MC: ClientboundSetPlayerTeamPacket
|
|
2535
2394
|
packet_teams:
|
|
2536
2395
|
team: string
|
|
@@ -2589,6 +2448,7 @@
|
|
|
2589
2448
|
packet_update_time:
|
|
2590
2449
|
age: i64
|
|
2591
2450
|
time: i64
|
|
2451
|
+
tickDayTime: bool
|
|
2592
2452
|
# MC: ClientboundSetTitleTextPacket
|
|
2593
2453
|
packet_set_title_text:
|
|
2594
2454
|
text: anonymousNbt
|
|
@@ -2757,77 +2617,11 @@
|
|
|
2757
2617
|
packet_declare_recipes:
|
|
2758
2618
|
recipes: []varint
|
|
2759
2619
|
name: string
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
- minecraft:crafting_special_mapcloning
|
|
2766
|
-
- minecraft:crafting_special_mapextending
|
|
2767
|
-
- minecraft:crafting_special_firework_rocket
|
|
2768
|
-
- minecraft:crafting_special_firework_star
|
|
2769
|
-
- minecraft:crafting_special_firework_star_fade
|
|
2770
|
-
- minecraft:crafting_special_tippedarrow
|
|
2771
|
-
- minecraft:crafting_special_bannerduplicate
|
|
2772
|
-
- minecraft:crafting_special_shielddecoration
|
|
2773
|
-
- minecraft:crafting_special_shulkerboxcoloring
|
|
2774
|
-
- minecraft:crafting_special_suspiciousstew
|
|
2775
|
-
- minecraft:crafting_special_repairitem
|
|
2776
|
-
- minecraft:smelting
|
|
2777
|
-
- minecraft:blasting
|
|
2778
|
-
- minecraft:smoking
|
|
2779
|
-
- minecraft:campfire_cooking
|
|
2780
|
-
- minecraft:stonecutting
|
|
2781
|
-
- minecraft:smithing_transform
|
|
2782
|
-
- minecraft:smithing_trim
|
|
2783
|
-
- minecraft:crafting_decorated_pot
|
|
2784
|
-
data: type ?
|
|
2785
|
-
if minecraft:crafting_shapeless:
|
|
2786
|
-
group: string
|
|
2787
|
-
category: varint
|
|
2788
|
-
ingredients: ingredient[]varint
|
|
2789
|
-
result: Slot
|
|
2790
|
-
if minecraft:crafting_shaped:
|
|
2791
|
-
group: string
|
|
2792
|
-
category: varint
|
|
2793
|
-
width: varint
|
|
2794
|
-
height: varint
|
|
2795
|
-
ingredients: []$width
|
|
2796
|
-
_: ingredient[]$height
|
|
2797
|
-
result: Slot
|
|
2798
|
-
showNotification: bool
|
|
2799
|
-
if minecraft:crafting_special_armordye: minecraft_simple_recipe_format
|
|
2800
|
-
if minecraft:crafting_special_bookcloning: minecraft_simple_recipe_format
|
|
2801
|
-
if minecraft:crafting_special_mapcloning: minecraft_simple_recipe_format
|
|
2802
|
-
if minecraft:crafting_special_mapextending: minecraft_simple_recipe_format
|
|
2803
|
-
if minecraft:crafting_special_firework_rocket: minecraft_simple_recipe_format
|
|
2804
|
-
if minecraft:crafting_special_firework_star: minecraft_simple_recipe_format
|
|
2805
|
-
if minecraft:crafting_special_firework_star_fade: minecraft_simple_recipe_format
|
|
2806
|
-
if minecraft:crafting_special_repairitem: minecraft_simple_recipe_format
|
|
2807
|
-
if minecraft:crafting_special_tippedarrow: minecraft_simple_recipe_format
|
|
2808
|
-
if minecraft:crafting_special_bannerduplicate: minecraft_simple_recipe_format
|
|
2809
|
-
if minecraft:crafting_special_banneraddpattern: minecraft_simple_recipe_format
|
|
2810
|
-
if minecraft:crafting_special_shielddecoration: minecraft_simple_recipe_format
|
|
2811
|
-
if minecraft:crafting_special_shulkerboxcoloring: minecraft_simple_recipe_format
|
|
2812
|
-
if minecraft:crafting_special_suspiciousstew: minecraft_simple_recipe_format
|
|
2813
|
-
if minecraft:smelting: minecraft_smelting_format
|
|
2814
|
-
if minecraft:blasting: minecraft_smelting_format
|
|
2815
|
-
if minecraft:smoking: minecraft_smelting_format
|
|
2816
|
-
if minecraft:campfire_cooking: minecraft_smelting_format
|
|
2817
|
-
if minecraft:stonecutting:
|
|
2818
|
-
group: string
|
|
2819
|
-
ingredient: ingredient
|
|
2820
|
-
result: Slot
|
|
2821
|
-
if minecraft:smithing_transform:
|
|
2822
|
-
template: ingredient
|
|
2823
|
-
base: ingredient
|
|
2824
|
-
addition: ingredient
|
|
2825
|
-
result: Slot
|
|
2826
|
-
if minecraft:smithing_trim:
|
|
2827
|
-
template: ingredient
|
|
2828
|
-
base: ingredient
|
|
2829
|
-
addition: ingredient
|
|
2830
|
-
if minecraft:crafting_decorated_pot: minecraft_simple_recipe_format
|
|
2620
|
+
items: varint[]varint
|
|
2621
|
+
stoneCutterRecipes: []varint
|
|
2622
|
+
input: IDSet
|
|
2623
|
+
slotDisplay: SlotDisplay
|
|
2624
|
+
|
|
2831
2625
|
# MC: ClientboundUpdateTagsPacket
|
|
2832
2626
|
packet_tags:
|
|
2833
2627
|
tags: []varint
|
|
@@ -2837,6 +2631,7 @@
|
|
|
2837
2631
|
packet_set_projectile_power:
|
|
2838
2632
|
id: varint
|
|
2839
2633
|
accelerationPower: f64
|
|
2634
|
+
## (ClientboundCustomReportDetailsPacket, ClientboundServerLinksPacket is common)
|
|
2840
2635
|
|
|
2841
2636
|
packet:
|
|
2842
2637
|
name: varint =>
|
|
@@ -2872,6 +2667,7 @@
|
|
|
2872
2667
|
- kick_disconnect
|
|
2873
2668
|
- profileless_chat
|
|
2874
2669
|
- entity_status
|
|
2670
|
+
- sync_entity_position
|
|
2875
2671
|
- explosion
|
|
2876
2672
|
- unload_chunk
|
|
2877
2673
|
- game_state_change
|
|
@@ -2888,6 +2684,7 @@
|
|
|
2888
2684
|
- trade_list
|
|
2889
2685
|
- rel_entity_move
|
|
2890
2686
|
- entity_move_look
|
|
2687
|
+
- move_minecart
|
|
2891
2688
|
- entity_look
|
|
2892
2689
|
- vehicle_move
|
|
2893
2690
|
- open_book
|
|
@@ -2905,7 +2702,10 @@
|
|
|
2905
2702
|
- player_info
|
|
2906
2703
|
- face_player
|
|
2907
2704
|
- position
|
|
2908
|
-
-
|
|
2705
|
+
- player_rotation
|
|
2706
|
+
- recipe_book_add
|
|
2707
|
+
- recipe_book_remove
|
|
2708
|
+
- recipe_book_settings
|
|
2909
2709
|
- entity_destroy
|
|
2910
2710
|
- remove_entity_effect
|
|
2911
2711
|
- reset_score
|
|
@@ -2923,9 +2723,9 @@
|
|
|
2923
2723
|
- world_border_warning_delay
|
|
2924
2724
|
- world_border_warning_reach
|
|
2925
2725
|
- camera
|
|
2926
|
-
- held_item_slot
|
|
2927
2726
|
- update_view_position
|
|
2928
2727
|
- update_view_distance
|
|
2728
|
+
- set_cursor_item
|
|
2929
2729
|
- spawn_position
|
|
2930
2730
|
- scoreboard_display_objective
|
|
2931
2731
|
- entity_metadata
|
|
@@ -2934,8 +2734,10 @@
|
|
|
2934
2734
|
- entity_equipment
|
|
2935
2735
|
- experience
|
|
2936
2736
|
- update_health
|
|
2737
|
+
- held_item_slot
|
|
2937
2738
|
- scoreboard_objective
|
|
2938
2739
|
- set_passengers
|
|
2740
|
+
- set_player_inventory
|
|
2939
2741
|
- teams
|
|
2940
2742
|
- scoreboard_score
|
|
2941
2743
|
- simulation_distance
|
|
@@ -2961,6 +2763,9 @@
|
|
|
2961
2763
|
- entity_effect
|
|
2962
2764
|
- declare_recipes
|
|
2963
2765
|
- tags
|
|
2766
|
+
- set_projectile_power
|
|
2767
|
+
- custom_report_details
|
|
2768
|
+
- server_links
|
|
2964
2769
|
params: name ?
|
|
2965
2770
|
if bundle_delimiter: void
|
|
2966
2771
|
if spawn_entity: packet_spawn_entity
|
|
@@ -2994,6 +2799,7 @@
|
|
|
2994
2799
|
if kick_disconnect: packet_kick_disconnect
|
|
2995
2800
|
if profileless_chat: packet_profileless_chat
|
|
2996
2801
|
if entity_status: packet_entity_status
|
|
2802
|
+
if sync_entity_position: packet_sync_entity_position
|
|
2997
2803
|
if explosion: packet_explosion
|
|
2998
2804
|
if unload_chunk: packet_unload_chunk
|
|
2999
2805
|
if game_state_change: packet_game_state_change
|
|
@@ -3010,6 +2816,7 @@
|
|
|
3010
2816
|
if trade_list: packet_trade_list
|
|
3011
2817
|
if rel_entity_move: packet_rel_entity_move
|
|
3012
2818
|
if entity_move_look: packet_entity_move_look
|
|
2819
|
+
if move_minecart: packet_move_minecart
|
|
3013
2820
|
if entity_look: packet_entity_look
|
|
3014
2821
|
if vehicle_move: packet_vehicle_move
|
|
3015
2822
|
if open_book: packet_open_book
|
|
@@ -3027,12 +2834,15 @@
|
|
|
3027
2834
|
if player_info: packet_player_info
|
|
3028
2835
|
if face_player: packet_face_player
|
|
3029
2836
|
if position: packet_position
|
|
3030
|
-
if
|
|
2837
|
+
if player_rotation: packet_player_rotation
|
|
2838
|
+
if recipe_book_add: packet_recipe_book_add
|
|
2839
|
+
if recipe_book_remove: packet_recipe_book_remove
|
|
2840
|
+
if recipe_book_settings: packet_recipe_book_settings
|
|
3031
2841
|
if entity_destroy: packet_entity_destroy
|
|
3032
2842
|
if remove_entity_effect: packet_remove_entity_effect
|
|
3033
2843
|
if reset_score: packet_reset_score
|
|
3034
|
-
if remove_resource_pack:
|
|
3035
|
-
if add_resource_pack:
|
|
2844
|
+
if remove_resource_pack: packet_common_remove_resource_pack
|
|
2845
|
+
if add_resource_pack: packet_common_add_resource_pack
|
|
3036
2846
|
if respawn: packet_respawn
|
|
3037
2847
|
if entity_head_rotation: packet_entity_head_rotation
|
|
3038
2848
|
if multi_block_change: packet_multi_block_change
|
|
@@ -3045,9 +2855,10 @@
|
|
|
3045
2855
|
if world_border_warning_delay: packet_world_border_warning_delay
|
|
3046
2856
|
if world_border_warning_reach: packet_world_border_warning_reach
|
|
3047
2857
|
if camera: packet_camera
|
|
3048
|
-
if held_item_slot: packet_held_item_slot
|
|
3049
2858
|
if update_view_position: packet_update_view_position
|
|
3050
2859
|
if update_view_distance: packet_update_view_distance
|
|
2860
|
+
if set_cursor_item: packet_set_cursor_item
|
|
2861
|
+
if held_item_slot: packet_held_item_slot
|
|
3051
2862
|
if spawn_position: packet_spawn_position
|
|
3052
2863
|
if scoreboard_display_objective: packet_scoreboard_display_objective
|
|
3053
2864
|
if entity_metadata: packet_entity_metadata
|
|
@@ -3058,6 +2869,7 @@
|
|
|
3058
2869
|
if update_health: packet_update_health
|
|
3059
2870
|
if scoreboard_objective: packet_scoreboard_objective
|
|
3060
2871
|
if set_passengers: packet_set_passengers
|
|
2872
|
+
if set_player_inventory: packet_set_player_inventory
|
|
3061
2873
|
if teams: packet_teams
|
|
3062
2874
|
if scoreboard_score: packet_scoreboard_score
|
|
3063
2875
|
if simulation_distance: packet_simulation_distance
|
|
@@ -3083,6 +2895,9 @@
|
|
|
3083
2895
|
if entity_effect: packet_entity_effect
|
|
3084
2896
|
if declare_recipes: packet_declare_recipes
|
|
3085
2897
|
if tags: packet_tags
|
|
2898
|
+
if set_projectile_power: packet_set_projectile_power
|
|
2899
|
+
if custom_report_details: packet_common_custom_report_details
|
|
2900
|
+
if server_links: packet_common_server_links
|
|
3086
2901
|
|
|
3087
2902
|
^play.toServer.types:
|
|
3088
2903
|
# MC: ServerboundAcceptTeleportationPacket
|
|
@@ -3092,6 +2907,10 @@
|
|
|
3092
2907
|
packet_query_block_nbt:
|
|
3093
2908
|
transactionId: varint
|
|
3094
2909
|
location: position
|
|
2910
|
+
# MC: ServerboundSelectBundleItemPacket
|
|
2911
|
+
packet_select_bundle_item:
|
|
2912
|
+
slotId: varint
|
|
2913
|
+
selectedItemIndex: varint
|
|
3095
2914
|
# MC: ServerboundChangeDifficultyPacket
|
|
3096
2915
|
packet_set_difficulty:
|
|
3097
2916
|
newDifficulty: u8
|
|
@@ -3151,6 +2970,9 @@
|
|
|
3151
2970
|
# MC: ServerboundClientCommandPacket
|
|
3152
2971
|
packet_client_command:
|
|
3153
2972
|
actionId: varint
|
|
2973
|
+
# MC: ServerboundClientTickEndPacket
|
|
2974
|
+
packet_tick_end:
|
|
2975
|
+
# Empty
|
|
3154
2976
|
# MC: ServerboundClientInformationPacket
|
|
3155
2977
|
packet_settings:
|
|
3156
2978
|
locale: string
|
|
@@ -3161,6 +2983,10 @@
|
|
|
3161
2983
|
mainHand: varint
|
|
3162
2984
|
enableTextFiltering: bool
|
|
3163
2985
|
enableServerListing: bool
|
|
2986
|
+
particleStatus: varint =>
|
|
2987
|
+
- all
|
|
2988
|
+
- decreased
|
|
2989
|
+
- minimal
|
|
3164
2990
|
# MC: ServerboundCommandSuggestionPacket
|
|
3165
2991
|
packet_tab_complete:
|
|
3166
2992
|
transactionId: varint
|
|
@@ -3170,11 +2996,11 @@
|
|
|
3170
2996
|
# Empty
|
|
3171
2997
|
# MC: ServerboundContainerButtonClickPacket
|
|
3172
2998
|
packet_enchant_item:
|
|
3173
|
-
windowId:
|
|
2999
|
+
windowId: ContainerID
|
|
3174
3000
|
enchantment: i8
|
|
3175
3001
|
# MC: ServerboundContainerClickPacket
|
|
3176
3002
|
packet_window_click:
|
|
3177
|
-
windowId:
|
|
3003
|
+
windowId: ContainerID
|
|
3178
3004
|
stateId: varint
|
|
3179
3005
|
slot: i16
|
|
3180
3006
|
mouseButton: i8
|
|
@@ -3185,12 +3011,13 @@
|
|
|
3185
3011
|
cursorItem: Slot
|
|
3186
3012
|
# MC: ServerboundContainerClosePacket
|
|
3187
3013
|
packet_close_window:
|
|
3188
|
-
windowId:
|
|
3014
|
+
windowId: ContainerID
|
|
3189
3015
|
# MC: ServerboundContainerSlotStateChangedPacket
|
|
3190
3016
|
packet_set_slot_state:
|
|
3191
3017
|
slot_id: varint
|
|
3192
|
-
window_id:
|
|
3018
|
+
window_id: ContainerID
|
|
3193
3019
|
state: bool
|
|
3020
|
+
## (ServerboundCookieResponsePacket is common)
|
|
3194
3021
|
# MC: ServerboundCustomPayloadPacket
|
|
3195
3022
|
packet_custom_payload:
|
|
3196
3023
|
channel: string
|
|
@@ -3236,12 +3063,17 @@
|
|
|
3236
3063
|
# MC: ServerboundLockDifficultyPacket
|
|
3237
3064
|
packet_lock_difficulty:
|
|
3238
3065
|
locked: bool
|
|
3066
|
+
|
|
3067
|
+
MovementFlags: ["bitflags", {
|
|
3068
|
+
"type": "u8",
|
|
3069
|
+
"flags": ["onGround", "hasHorizontalCollision"]
|
|
3070
|
+
}]
|
|
3239
3071
|
# MC: ServerboundMovePlayerPacket.Pos
|
|
3240
3072
|
packet_position:
|
|
3241
3073
|
x: f64
|
|
3242
3074
|
y: f64
|
|
3243
3075
|
z: f64
|
|
3244
|
-
|
|
3076
|
+
flags: MovementFlags
|
|
3245
3077
|
# MC: ServerboundMovePlayerPacket.PosRot
|
|
3246
3078
|
packet_position_look:
|
|
3247
3079
|
x: f64
|
|
@@ -3249,15 +3081,15 @@
|
|
|
3249
3081
|
z: f64
|
|
3250
3082
|
yaw: f32
|
|
3251
3083
|
pitch: f32
|
|
3252
|
-
|
|
3084
|
+
flags: MovementFlags
|
|
3253
3085
|
# MC: ServerboundMovePlayerPacket.Rot
|
|
3254
3086
|
packet_look:
|
|
3255
3087
|
yaw: f32
|
|
3256
3088
|
pitch: f32
|
|
3257
|
-
|
|
3089
|
+
flags: MovementFlags
|
|
3258
3090
|
# MC: ServerboundMovePlayerPacket.StatusOnly
|
|
3259
3091
|
packet_flying:
|
|
3260
|
-
|
|
3092
|
+
flags: MovementFlags
|
|
3261
3093
|
# MC: ServerboundMoveVehiclePacket
|
|
3262
3094
|
packet_vehicle_move:
|
|
3263
3095
|
x: f64
|
|
@@ -3277,8 +3109,8 @@
|
|
|
3277
3109
|
id: i64
|
|
3278
3110
|
# MC: ServerboundPlaceRecipePacket
|
|
3279
3111
|
packet_craft_recipe_request:
|
|
3280
|
-
windowId:
|
|
3281
|
-
|
|
3112
|
+
windowId: ContainerID
|
|
3113
|
+
recipeId: varint
|
|
3282
3114
|
makeAll: bool
|
|
3283
3115
|
# MC: ServerboundPlayerAbilitiesPacket
|
|
3284
3116
|
packet_abilities:
|
|
@@ -3295,10 +3127,13 @@
|
|
|
3295
3127
|
actionId: varint
|
|
3296
3128
|
jumpBoost: varint
|
|
3297
3129
|
# MC: ServerboundPlayerInputPacket
|
|
3298
|
-
packet_steer_vehicle
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3130
|
+
# previously: packet_steer_vehicle
|
|
3131
|
+
packet_player_input:
|
|
3132
|
+
## client/net/minecraft/world/entity/player/Input.java
|
|
3133
|
+
inputs: ["bitflags", {
|
|
3134
|
+
"type": "u8",
|
|
3135
|
+
"flags": ["forward", "backward", "left", "right", "jump", "shift", "sprint"]
|
|
3136
|
+
}]
|
|
3302
3137
|
# MC: ServerboundPongPacket
|
|
3303
3138
|
packet_pong:
|
|
3304
3139
|
id: i32
|
|
@@ -3309,7 +3144,7 @@
|
|
|
3309
3144
|
filterActive: bool
|
|
3310
3145
|
# MC: ServerboundRecipeBookSeenRecipePacket
|
|
3311
3146
|
packet_displayed_recipe:
|
|
3312
|
-
recipeId:
|
|
3147
|
+
recipeId: varint
|
|
3313
3148
|
# MC: ServerboundRenameItemPacket
|
|
3314
3149
|
packet_name_item:
|
|
3315
3150
|
name: string
|
|
@@ -3399,6 +3234,7 @@
|
|
|
3399
3234
|
cursorY: f32
|
|
3400
3235
|
cursorZ: f32
|
|
3401
3236
|
insideBlock: bool
|
|
3237
|
+
worldBorderHit: bool
|
|
3402
3238
|
sequence: varint
|
|
3403
3239
|
# MC: ServerboundUseItemPacket
|
|
3404
3240
|
packet_use_item:
|
|
@@ -3410,6 +3246,7 @@
|
|
|
3410
3246
|
name: varint =>
|
|
3411
3247
|
- teleport_confirm
|
|
3412
3248
|
- query_block_nbt
|
|
3249
|
+
- select_bundle_item
|
|
3413
3250
|
- set_difficulty
|
|
3414
3251
|
- message_acknowledgement
|
|
3415
3252
|
- chat_command
|
|
@@ -3418,9 +3255,11 @@
|
|
|
3418
3255
|
- chat_session_update
|
|
3419
3256
|
- chunk_batch_received
|
|
3420
3257
|
- client_command
|
|
3258
|
+
- tick_end
|
|
3421
3259
|
- settings
|
|
3422
3260
|
- tab_complete
|
|
3423
3261
|
- configuration_acknowledged
|
|
3262
|
+
# Maybe rename enchant_item if it is used for other things too
|
|
3424
3263
|
- enchant_item
|
|
3425
3264
|
- window_click
|
|
3426
3265
|
- close_window
|
|
@@ -3446,7 +3285,7 @@
|
|
|
3446
3285
|
- abilities
|
|
3447
3286
|
- block_dig
|
|
3448
3287
|
- entity_action
|
|
3449
|
-
-
|
|
3288
|
+
- player_input
|
|
3450
3289
|
- pong
|
|
3451
3290
|
- recipe_book
|
|
3452
3291
|
- displayed_recipe
|
|
@@ -3469,6 +3308,7 @@
|
|
|
3469
3308
|
params: name ?
|
|
3470
3309
|
if teleport_confirm: packet_teleport_confirm
|
|
3471
3310
|
if query_block_nbt: packet_query_block_nbt
|
|
3311
|
+
if select_bundle_item: packet_select_bundle_item
|
|
3472
3312
|
if set_difficulty: packet_set_difficulty
|
|
3473
3313
|
if message_acknowledgement: packet_message_acknowledgement
|
|
3474
3314
|
if chat_command: packet_chat_command
|
|
@@ -3477,6 +3317,7 @@
|
|
|
3477
3317
|
if chat_session_update: packet_chat_session_update
|
|
3478
3318
|
if chunk_batch_received: packet_chunk_batch_received
|
|
3479
3319
|
if client_command: packet_client_command
|
|
3320
|
+
if tick_end: packet_tick_end
|
|
3480
3321
|
if settings: packet_settings
|
|
3481
3322
|
if tab_complete: packet_tab_complete
|
|
3482
3323
|
if configuration_acknowledged: packet_configuration_acknowledged
|
|
@@ -3504,7 +3345,7 @@
|
|
|
3504
3345
|
if abilities: packet_abilities
|
|
3505
3346
|
if block_dig: packet_block_dig
|
|
3506
3347
|
if entity_action: packet_entity_action
|
|
3507
|
-
if
|
|
3348
|
+
if player_input: packet_player_input
|
|
3508
3349
|
if pong: packet_pong
|
|
3509
3350
|
if recipe_book: packet_recipe_book
|
|
3510
3351
|
if displayed_recipe: packet_displayed_recipe
|