Skip to content

Commit

Permalink
Merge pull request #12 from Mojang/r/21_u2
Browse files Browse the repository at this point in the history
Protocol for r/21_u2 NetworkProtocolVersion 712
  • Loading branch information
oswaldolb authored Aug 14, 2024
2 parents e8b16c2 + f6912f5 commit 4204a7c
Show file tree
Hide file tree
Showing 371 changed files with 10,665 additions and 9,182 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
We share our Network Protocol with server partners so they can write their own Minecraft servers with their own code. This documentation compiles a series of tree diagrams that define the structure of the packets used by the Protocol, as well as related classes and enums.
Protocol is subject to change release over release.

Current Release - r/21
Current Release - r/21_u2
77 changes: 77 additions & 0 deletions changelog_712_7_16_24.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# Minecraft Network Protocol Docs 07/16/2024
For r21u2, Network Protocol Version 712


## New Packets

CurrentStructureFeaturePacket:
* Added mCurrentStructureFeature (string)
ServerboundDiagnosticsPacket:
* Added mTelemetry.mAvgFps (float)
* Added mTelemetry.mAvgServerSimTickTimeMS (float)
* Added mTelemetry.mAvgClientSimTickTimeMS (float)
* Added mTelemetry.mAvgBeginFrameTimeMS (float)
* Added mTelemetry.mAvgInputTimeMS (float)
* Added mTelemetry.mAvgRenderTimeMS (float)
* Added mTelemetry.mAvgEndFrameTimeMS (float)
* Added mTelemetry.mAvgRemainderTimePercent (float)
* Added mTelemetry.mAvgUnaccountedTimePercent (float)


## Packet Changes

InventoryContentPacket:
* Added mDynamicContainerId (uint32_t)
InventorySlotPacket:
* Added mDynamicContainerId (uint32_t)
ResourcePacksInfoPacket:
* Added pack.mIsAddonPack (bool) under mData.mBehaviorPacks
* Added pack.mIsAddonPack (bool) under mData.mResourcePacks


## Additional Types Added

FullContainerName:
* Added containerName.mName (enum ContainerEnumName)
* Added containerName.mDynamicId.mData (uint32_t)
TargetInstruction:
* Added mTargetCenterOffset (brstd::optional<Vec3>)
* Added mTargetActorId (int64_t)


## Additional Types Changed

CameraInstruction:
* Added mTarget (brstd::optional<TargetInstruction>)
* Added mRemoveTarget (brstd::optional<bool>)
ItemStackRequestSlotInfo:
* Removed mOpenContainerNetId
* Added mFullContainerName (FullContainerName)
ItemUseInventoryTransaction:
* Added mTriggerType (enum ItemUseInventoryTransaction::TriggerType) [description below]


## New Enums

ItemUseInventoryTransaction::TriggerType:
* Added Unknown(0)
* Added PlayerInput(1)
* Added SimulationTick(2)


## Enum Changes

ActorEvent:
* Added DEPRECATED_UPDATE_STRUCTURE_FEATURE(66)
* Removed UPDATE_STRUCTURE_FEATURE

Connection::DisconnectFailReason:
* Added SubClientLoginDisabled(116)

ContainerEnumName:
* Added DynamicContainer(63)

MinecraftPacketIds:
* Added CurrentStructureFeaturePacket(314)
* Added ServerboundDiagnosticsPacket(315)
* Displaced EndId
6 changes: 5 additions & 1 deletion dot/ActorLink.dot
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ rankdir = LR
117 -> 118
110 -> 119
119 -> 120
110 -> 121
121 -> 122

110 [label="ActorLink",comment="name: \"ActorLink\", typeName: \"\", id: 110, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
111 [label="Actor Unique ID - A",comment="name: \"Actor Unique ID - A\", typeName: \"ActorUniqueID\", id: 111, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
Expand All @@ -23,6 +25,8 @@ rankdir = LR
118 [label="bool",comment="name: \"bool\", typeName: \"\", id: 118, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
119 [label="Passenger Initiated",comment="name: \"Passenger Initiated\", typeName: \"\", id: 119, branchId: 0, recurseId: -1, attributes: 0, notes: \"Whether the link was changed by the passenger\""];
120 [label="bool",comment="name: \"bool\", typeName: \"\", id: 120, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;112;114;116;118;120}
121 [label="Vehicle Angular Velocity",comment="name: \"Vehicle Angular Velocity\", typeName: \"\", id: 121, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
122 [label="float",comment="name: \"float\", typeName: \"\", id: 122, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;112;114;116;118;120;122}

}
18 changes: 9 additions & 9 deletions dot/AddPlayerPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,11 @@ rankdir = LR
106 -> 107
105 -> 108
108 -> 109
109 -> 121
0 -> 122
122 -> 123
109 -> 123
0 -> 124
124 -> 125
0 -> 126
126 -> 127

0 [label="AddPlayerPacket",comment="name: \"AddPlayerPacket\", typeName: \"\", id: 0, branchId: 12, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="UUID",comment="name: \"UUID\", typeName: \"mce::UUID\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
Expand Down Expand Up @@ -80,11 +80,11 @@ rankdir = LR
107 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 107, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
108 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 108, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
109 [label="Link",comment="name: \"Link\", typeName: \"ActorLink\", id: 109, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
121 [label="ActorLink",comment="name: \"ActorLink\", typeName: \"\", id: 121, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
122 [label="Device Id",comment="name: \"Device Id\", typeName: \"\", id: 122, branchId: 0, recurseId: -1, attributes: 0, notes: \"A unique device id obtained from the connection request.\""];
123 [label="string",comment="name: \"string\", typeName: \"\", id: 123, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
124 [label="Build Platform",comment="name: \"Build Platform\", typeName: \"\", id: 124, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
125 [label="int",comment="name: \"int\", typeName: \"\", id: 125, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10;12;14;16;45;47;56;59;78;104;107;121;123;125}
123 [label="ActorLink",comment="name: \"ActorLink\", typeName: \"\", id: 123, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
124 [label="Device Id",comment="name: \"Device Id\", typeName: \"\", id: 124, branchId: 0, recurseId: -1, attributes: 0, notes: \"A unique device id obtained from the connection request.\""];
125 [label="string",comment="name: \"string\", typeName: \"\", id: 125, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
126 [label="Build Platform",comment="name: \"Build Platform\", typeName: \"\", id: 126, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
127 [label="int",comment="name: \"int\", typeName: \"\", id: 127, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10;12;14;16;45;47;56;59;78;104;107;123;125;127}

}
10 changes: 9 additions & 1 deletion dot/CameraInstruction.dot
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ rankdir = LR
8 -> 9
2 -> 10
10 -> 14
2 -> 15
15 -> 19
2 -> 20
20 -> 21

2 [label="CameraInstruction",comment="name: \"CameraInstruction\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
3 [label="Set",comment="name: \"Set\", typeName: \"std::optional<struct CameraInstruction::SetInstruction>\", id: 3, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
Expand All @@ -15,6 +19,10 @@ rankdir = LR
9 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
10 [label="Fade",comment="name: \"Fade\", typeName: \"std::optional<struct CameraInstruction::FadeInstruction>\", id: 10, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
14 [label="std::optional<struct CameraInstruction::FadeInstruction>",comment="name: \"std::optional<struct CameraInstruction::FadeInstruction>\", typeName: \"\", id: 14, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;7;9;14}
15 [label="Target",comment="name: \"Target\", typeName: \"std::optional<struct CameraInstruction::TargetInstruction>\", id: 15, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
19 [label="std::optional<struct CameraInstruction::TargetInstruction>",comment="name: \"std::optional<struct CameraInstruction::TargetInstruction>\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
20 [label="RemoveTarget",comment="name: \"RemoveTarget\", typeName: \"std::optional<bool>\", id: 20, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
21 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 21, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;7;9;14;19;21}

}
6 changes: 3 additions & 3 deletions dot/CameraInstructionPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ digraph "CameraInstructionPacket" {
rankdir = LR
0
0 -> 1
1 -> 15
1 -> 22

0 [label="CameraInstructionPacket",comment="name: \"CameraInstructionPacket\", typeName: \"\", id: 0, branchId: 300, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Camera Instruction",comment="name: \"Camera Instruction\", typeName: \"CameraInstruction\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
15 [label="CameraInstruction",comment="name: \"CameraInstruction\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;15}
22 [label="CameraInstruction",comment="name: \"CameraInstruction\", typeName: \"\", id: 22, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;22}

}
20 changes: 14 additions & 6 deletions dot/CameraPreset.dot
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,11 @@ rankdir = LR
8 -> 26
26 -> 30
8 -> 31
31 -> 35
31 -> 32
8 -> 33
33 -> 37
8 -> 38
38 -> 42

8 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
9 [label="Name",comment="name: \"Name\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
Expand All @@ -35,10 +39,14 @@ rankdir = LR
23 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
24 [label="Rot Y",comment="name: \"Rot Y\", typeName: \"std::optional<float>\", id: 24, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
25 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
26 [label="Listener",comment="name: \"Listener\", typeName: \"std::optional<enum CameraPreset::AudioListener>\", id: 26, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
30 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="Player Effects",comment="name: \"Player Effects\", typeName: \"std::optional<bool>\", id: 31, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
35 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;10;12;17;19;21;23;25;30;35}
26 [label="View Offset",comment="name: \"View Offset\", typeName: \"std::optional<class Vec2>\", id: 26, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
30 [label="std::optional<class Vec2>",comment="name: \"std::optional<class Vec2>\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="Radius",comment="name: \"Radius\", typeName: \"std::optional<float>\", id: 31, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
32 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
33 [label="Listener",comment="name: \"Listener\", typeName: \"std::optional<enum CameraPreset::AudioListener>\", id: 33, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
37 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
38 [label="Player Effects",comment="name: \"Player Effects\", typeName: \"std::optional<bool>\", id: 38, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
42 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 42, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;10;12;17;19;21;23;25;30;32;37;42}

}
6 changes: 3 additions & 3 deletions dot/CameraPresets.dot
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ rankdir = LR
4 -> 5
3 -> 6
6 -> 7
7 -> 36
7 -> 43

2 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
3 [label="Presets",comment="name: \"Presets\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
4 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
5 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
6 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
7 [label="Camera Preset",comment="name: \"Camera Preset\", typeName: \"CameraPreset\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
36 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 36, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;5;36}
43 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 43, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;5;43}

}
6 changes: 3 additions & 3 deletions dot/CameraPresetsPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ digraph "CameraPresetsPacket" {
rankdir = LR
0
0 -> 1
1 -> 37
1 -> 44

0 [label="CameraPresetsPacket",comment="name: \"CameraPresetsPacket\", typeName: \"\", id: 0, branchId: 198, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Camera Presets",comment="name: \"Camera Presets\", typeName: \"CameraPresets\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
37 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;37}
44 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 44, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;44}

}
6 changes: 5 additions & 1 deletion dot/ChangeDimensionPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ rankdir = LR
3 -> 4
0 -> 5
5 -> 6
0 -> 7
7 -> 11

0 [label="ChangeDimensionPacket",comment="name: \"ChangeDimensionPacket\", typeName: \"\", id: 0, branchId: 61, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Dimension ID",comment="name: \"Dimension ID\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"Currently supported: (0 -> Overworld, 1 -> Nether, 2 -> The End, 3 -> Undefined)\""];
Expand All @@ -15,6 +17,8 @@ rankdir = LR
4 [label="Vec3",comment="name: \"Vec3\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="Respawn",comment="name: \"Respawn\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="bool",comment="name: \"bool\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6}
7 [label="Loading Screen Id",comment="name: \"Loading Screen Id\", typeName: \"std::optional<unsigned int>\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"Leave empty if there is no loading screen expected on the client. This id needs to be unique and not conflict with any other active loading screens. This is implemented with an unsigned integer incrementing forever, and that is expected to not have collisions when it wraps around back to 0 if that could be a possibility.\""];
11 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;11}

}
8 changes: 8 additions & 0 deletions dot/ClientboundCloseFormPacket.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
digraph "ClientboundCloseFormPacket" {
rankdir = LR
0

0 [label="ClientboundCloseFormPacket",comment="name: \"ClientboundCloseFormPacket\", typeName: \"\", id: 0, branchId: 310, recurseId: -1, attributes: 0, notes: \"\""];
{ rank = max}

}
36 changes: 18 additions & 18 deletions dot/CodeBuilderSourcePacket.dot
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
digraph "CodeBuilderSourcePacket" {
rankdir = LR
0
0 -> 1
1 -> 2
0 -> 3
3 -> 4
0 -> 5
5 -> 6

0 [label="CodeBuilderSourcePacket",comment="name: \"CodeBuilderSourcePacket\", typeName: \"\", id: 0, branchId: 178, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Operation",comment="name: \"Operation\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="byte",comment="name: \"byte\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Category",comment="name: \"Category\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="byte",comment="name: \"byte\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
digraph "CodeBuilderSourcePacket" {
rankdir = LR
0
0 -> 1
1 -> 2
0 -> 3
3 -> 4
0 -> 5
5 -> 6

0 [label="CodeBuilderSourcePacket",comment="name: \"CodeBuilderSourcePacket\", typeName: \"\", id: 0, branchId: 178, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Operation",comment="name: \"Operation\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="byte",comment="name: \"byte\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Category",comment="name: \"Category\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="byte",comment="name: \"byte\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="CodeStatus",comment="name: \"CodeStatus\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="byte",comment="name: \"byte\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6}

}
{ rank = max;2;4;6}

}
26 changes: 13 additions & 13 deletions dot/ContainerClosePacket.dot
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
digraph "ContainerClosePacket" {
rankdir = LR
0
0 -> 1
1 -> 2
0 -> 3
3 -> 4
digraph "ContainerClosePacket" {
rankdir = LR
0
0 -> 1
1 -> 2
0 -> 3
3 -> 4
0 -> 5
5 -> 6

0 [label="ContainerClosePacket",comment="name: \"ContainerClosePacket\", typeName: \"\", id: 0, branchId: 47, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Container ID",comment="name: \"Container ID\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="byte",comment="name: \"byte\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];

0 [label="ContainerClosePacket",comment="name: \"ContainerClosePacket\", typeName: \"\", id: 0, branchId: 47, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Container ID",comment="name: \"Container ID\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="byte",comment="name: \"byte\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Container Type",comment="name: \"Container Type\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="byte",comment="name: \"byte\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="Server Initiated Close",comment="name: \"Server Initiated Close\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"True if the server initiated the closing\""];
6 [label="bool",comment="name: \"bool\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6}

}

}
12 changes: 12 additions & 0 deletions dot/CurrentStructureFeaturePacket.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
digraph "CurrentStructureFeaturePacket" {
rankdir = LR
0
0 -> 1
1 -> 2

0 [label="CurrentStructureFeaturePacket",comment="name: \"CurrentStructureFeaturePacket\", typeName: \"\", id: 0, branchId: 314, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Current Structure Feature",comment="name: \"Current Structure Feature\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"The identifier of the Structure Feature that the player is currently occupying. If the player is not occupying a structure then this value is an empty string.\""];
2 [label="string",comment="name: \"string\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2}

}
Loading

0 comments on commit 4204a7c

Please sign in to comment.