Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Project overview

UMPK is a .NET 10 library for the Minecraft Java protocol. One codebase supports 49 protocol datasets from protocol 47 through 776. Vanilla source, official artifacts, and real packet captures are the acceptance oracle.
UMPK is a .NET 10 library for the Minecraft Java protocol. One codebase supports 50 protocol datasets from protocol 47 through 777. Vanilla source, official artifacts, and real packet captures are the acceptance oracle.

## Local skills

Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

This file records notable changes to UMPK.

## 0.9.0-beta.2 - 2026-09-22

- Add Minecraft Java 26.3 (protocol 777) support and update affected packet codecs.

## 0.9.0-beta.1 - 2026-09-12

- First public beta release.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Contributing to UMPK

Thanks for helping with UMPK. Small, well-tested changes are easier to review and safer across 49 protocol revisions.
Thanks for helping with UMPK. Small, well-tested changes are easier to review and safer across 50 protocol revisions.

Please follow the [Code of Conduct](CODE_OF_CONDUCT.md).

Expand Down
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<Project>
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<!-- UMPK's version. 0.9.0-beta.1 states both "pre-1.0" and "prerelease" honestly while Umpk.Commands still depends on prerelease Brigadier.NET. It flows into AssemblyInformationalVersionAttribute, which Umpk.Client.UmpkVersion reads back and which the consuming host reads through the same attribute, so this property is the ONE place the number is stated. A build that also sets SourceRevisionId (SourceLink does) gets "0.9.0-beta.1+<sha>"; UmpkVersion parses either shape. -->
<Version>0.9.0-beta.1</Version>
<!-- UMPK's version. 0.9.0-beta.2 states both "pre-1.0" and "prerelease" honestly while Umpk.Commands still depends on prerelease Brigadier.NET. It flows into AssemblyInformationalVersionAttribute, which Umpk.Client.UmpkVersion reads back and which the consuming host reads through the same attribute, so this property is the ONE place the number is stated. A build that also sets SourceRevisionId (SourceLink does) gets "0.9.0-beta.2+<sha>"; UmpkVersion parses either shape. -->
<Version>0.9.0-beta.2</Version>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ UMPK supports 49 Java protocol revisions across 72 named Minecraft releases. Pro

## Supported Minecraft versions

UMPK supports Java Edition play protocols from 1.8 through 26.2.
UMPK supports Java Edition play protocols from 1.8 through 26.3.

| Family | Supported releases |
| --- | --- |
Expand All @@ -53,7 +53,7 @@ Minecraft versions earlier than 1.8 are not supported. The legacy status ping ca
Install the [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0), then add the complete client stack:

```bash
dotnet add package Umpk --version 0.9.0-beta.1
dotnet add package Umpk --version 0.9.0-beta.2
```

You can instead install focused packages such as `Umpk.Protocol.Java`, `Umpk.Nbt`, or `Umpk.Text`. To build the source:
Expand Down Expand Up @@ -99,7 +99,7 @@ flowchart LR
Runtime -->|uses| Protocol[Protocol foundations<br/>Protocol.Java, Nbt, Core]
Runtime -->|uses| Generated[Generated version data<br/>Data.Java, Data.Lang]

Dataset[(data/java<br/>49 protocol datasets)] --> DataGen[Umpk.DataGen]
Dataset[(data/java<br/>50 protocol datasets)] --> DataGen[Umpk.DataGen]
DataGen -->|emits| Generated
Generated -->|binds codecs and registries| Protocol
Protocol <-->|Minecraft Java protocol| Server[Minecraft Java server]
Expand Down
261 changes: 261 additions & 0 deletions data/java/777/argument_types.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,261 @@
{
"_provenance": {
"version": "26.3",
"protocol": 777,
"mapping_source": "vineflower-direct",
"sources": [
"reports/registries.json#minecraft:command_argument_type"
],
"kind": "extracted"
},
"entries": [
{
"name": "brigadier:bool",
"id": 0
},
{
"name": "brigadier:float",
"id": 1
},
{
"name": "brigadier:double",
"id": 2
},
{
"name": "brigadier:integer",
"id": 3
},
{
"name": "brigadier:long",
"id": 4
},
{
"name": "brigadier:string",
"id": 5
},
{
"name": "minecraft:entity",
"id": 6
},
{
"name": "minecraft:game_profile",
"id": 7
},
{
"name": "minecraft:block_pos",
"id": 8
},
{
"name": "minecraft:column_pos",
"id": 9
},
{
"name": "minecraft:vec3",
"id": 10
},
{
"name": "minecraft:vec2",
"id": 11
},
{
"name": "minecraft:block_state",
"id": 12
},
{
"name": "minecraft:block_predicate",
"id": 13
},
{
"name": "minecraft:item_stack",
"id": 14
},
{
"name": "minecraft:item_predicate",
"id": 15
},
{
"name": "minecraft:team_color",
"id": 16
},
{
"name": "minecraft:hex_color",
"id": 17
},
{
"name": "minecraft:component",
"id": 18
},
{
"name": "minecraft:style",
"id": 19
},
{
"name": "minecraft:message",
"id": 20
},
{
"name": "minecraft:nbt_compound_tag",
"id": 21
},
{
"name": "minecraft:nbt_tag",
"id": 22
},
{
"name": "minecraft:nbt_path",
"id": 23
},
{
"name": "minecraft:objective",
"id": 24
},
{
"name": "minecraft:objective_criteria",
"id": 25
},
{
"name": "minecraft:operation",
"id": 26
},
{
"name": "minecraft:particle",
"id": 27
},
{
"name": "minecraft:angle",
"id": 28
},
{
"name": "minecraft:rotation",
"id": 29
},
{
"name": "minecraft:scoreboard_slot",
"id": 30
},
{
"name": "minecraft:score_holder",
"id": 31
},
{
"name": "minecraft:swizzle",
"id": 32
},
{
"name": "minecraft:team",
"id": 33
},
{
"name": "minecraft:item_slot",
"id": 34
},
{
"name": "minecraft:item_slots",
"id": 35
},
{
"name": "minecraft:resource_location",
"id": 36
},
{
"name": "minecraft:function",
"id": 37
},
{
"name": "minecraft:entity_anchor",
"id": 38
},
{
"name": "minecraft:int_range",
"id": 39
},
{
"name": "minecraft:float_range",
"id": 40
},
{
"name": "minecraft:dimension",
"id": 41
},
{
"name": "minecraft:gamemode",
"id": 42
},
{
"name": "minecraft:time",
"id": 43
},
{
"name": "minecraft:resource_or_tag",
"id": 44
},
{
"name": "minecraft:resource_or_tag_key",
"id": 45
},
{
"name": "minecraft:resource",
"id": 46
},
{
"name": "minecraft:resource_key",
"id": 47
},
{
"name": "minecraft:resource_selector",
"id": 48
},
{
"name": "minecraft:template_mirror",
"id": 49
},
{
"name": "minecraft:template_rotation",
"id": 50
},
{
"name": "minecraft:heightmap",
"id": 51
},
{
"name": "minecraft:loot_table",
"id": 52
},
{
"name": "minecraft:loot_predicate",
"id": 53
},
{
"name": "minecraft:loot_modifier",
"id": 54
},
{
"name": "minecraft:context_float_provider",
"id": 55
},
{
"name": "minecraft:context_int_provider",
"id": 56
},
{
"name": "minecraft:slot_source",
"id": 57
},
{
"name": "minecraft:dialog",
"id": 58
},
{
"name": "minecraft:feature",
"id": 59
},
{
"name": "minecraft:swing_animation",
"id": 60
},
{
"name": "minecraft:uuid",
"id": 61
}
]
}
Loading
Loading