PRs waiting on a minecraft-data PR
| minecraft-data PR |
mineflayer PR |
mineflayer PR state |
| PrismarineJS/minecraft-data#1273 (open) |
#4062 |
not ready, green — approved; waits on the minecraft-data release |
| PrismarineJS/minecraft-data#1275 (merged 7 Sep, not in a release) |
#4063 |
not ready, green — safe to merge, sneak fix inert until the minecraft-data release |
| PrismarineJS/minecraft-data#1278 (open) |
#4089 |
not ready, red — waits on the minecraft-data release |
| PrismarineJS/minecraft-data#1282 (open) |
#4089 |
not ready, red — conflicting, and waits on the minecraft-data release |
PRs waiting on a protodef release
| Prereq |
mineflayer PR |
State |
| PrismarineJS/prismarine-item#184 merged and released |
#4027 |
not ready, red — waits on PrismarineJS/prismarine-item#184 |
| ProtoDef-io/node-protodef#177 and ProtoDef-io/ProtoDef#65 merged and released |
PrismarineJS/prismarine-item#184 |
not ready, red — waits on the protodef release; design question open |
| nothing; awaiting re-review |
ProtoDef-io/node-protodef#177, ProtoDef-io/ProtoDef#65 |
ready, green — pushed a response to @extremeheat's 6 Sep review on 12 Sep; the five threads are still open |
PRs that fix minecraft-data's data
Wire-layout and feature-flag fixes, each checked against a decompiled STREAM_CODEC. The recipe pair is unrelated to the rest and closes PrismarineJS/minecraft-data#182.
| PR |
Status |
| PrismarineJS/minecraft-data#1267 |
ready, green |
| PrismarineJS/minecraft-data#1273 |
ready, green — duplicates PrismarineJS/minecraft-data#1154 and PrismarineJS/minecraft-data#1251 |
| PrismarineJS/minecraft-data#1278 |
not ready, red — protocol.json desynced from the yaml, needs npm run build |
| PrismarineJS/minecraft-data#1282 |
ready, green |
| PrismarineJS/minecraft-data#1284 |
not ready, green — @extremeheat's question unanswered; design question open |
| PrismarineJS/minecraft-data#1292 |
ready, green — @extremeheat said on 12 Sep he might fix this himself |
| PrismarineJS/minecraft-data#1283 |
not ready, green — after PrismarineJS/minecraft-data-generator#81 |
| PrismarineJS/minecraft-data-generator#81 |
ready, green — produces PrismarineJS/minecraft-data#1283's data |
PRs ready to review
Green CI, mergeable, not waiting on another PR or a release.
| PR |
Status |
| #4021 |
ready, green — was your only objection |
| #4083 |
ready, green — closes #1587, half of #3274 |
| #4064 |
ready, green |
| #4067 |
ready, green — also fixes one of the master CI flakes |
| #4068 |
ready, green |
| #4069 |
ready, green |
| #4071 |
ready, green |
| #4073 |
ready, green |
| #4085 |
ready, green |
| #4086 |
ready, green |
| #4087 |
ready, green |
| #4088 |
ready, green |
| #4093 |
ready, green |
| #4100 |
ready, green |
| #4101 |
ready, green |
| #4102 |
ready, green |
| #4103 |
ready, green |
| #4104 |
ready, green |
| #4107 |
ready, green |
| #4108 |
ready, green |
| #4111 |
ready, green — same file as #4112, second one rebases |
| #4112 |
ready, green — same file as #4111, second one rebases |
| #4115 |
ready, green |
| #4116 |
ready, green |
| #4118 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#375 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#376 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#377 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#378 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#379 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#380 |
ready, green |
| PrismarineJS/mineflayer-pathfinder#381 |
ready, green |
| PrismarineJS/node-minecraft-protocol#1522 |
ready, green |
| PrismarineJS/node-minecraft-protocol#1523 |
ready, green |
| PrismarineJS/node-minecraft-protocol#1524 |
ready, green |
| PrismarineJS/node-minecraft-protocol#1527 |
ready, green — unblocks PrismarineJS/node-minecraft-protocol#1526 |
| PrismarineJS/prismarine-item#185 |
ready, green |
| PrismarineJS/prismarine-item#188 |
ready, green — read after PrismarineJS/prismarine-item#189 |
| PrismarineJS/prismarine-item#189 |
ready, green |
| ProtoDef-io/node-protodef#178 |
ready, green |
| ProtoDef-io/node-protodef#179 |
ready, green |
| ProtoDef-io/node-protodef#180 |
ready, green |
| ProtoDef-io/node-protodef#177 |
ready, green — pushed a response to @extremeheat's review on 12 Sep, five threads still open |
| ProtoDef-io/ProtoDef#65 |
ready, green — moves with ProtoDef-io/node-protodef#177 |
| PrismarineJS/minecraft-data#1292 |
ready, green — @extremeheat said on 12 Sep he might fix this himself |
| PrismarineJS/prismarine-viewer#488 |
ready, green |
| PrismarineJS/prismarine-viewer#490 |
ready, green — closes PrismarineJS/prismarine-viewer#57 |
| PrismarineJS/prismarine-viewer#506 |
ready, green |
| PrismarineJS/prismarine-viewer#509 |
ready, green |
| PrismarineJS/prismarine-viewer#513 |
ready, green |
| PrismarineJS/prismarine-viewer#514 |
ready, green |
(51 PRs)
PRs blocked on me
| PR |
State |
Why |
| #4065 |
not ready, green |
@rom1504 asked on 7 Sep why this is needed and said it does not follow the plugin interface; no reply from me, thread still open |
| PrismarineJS/minecraft-data#1284 |
not ready, green |
@extremeheat asked on 9 Sep whether the field is a fixed enum or variable, and expanded on 11 Sep after my last push; no reply from me |
| PrismarineJS/minecraft-data#1278 |
not ready, red |
CI says 26.1 (26.1) / protocol.json is desynced from yaml, please run 'npm run build'; the PR edits protocol.json without regenerating |
| PrismarineJS/prismarine-viewer#503 |
not ready, green |
based on a branch that merged as PrismarineJS/prismarine-viewer#501; needs retargeting to master |
| PrismarineJS/prismarine-viewer#484 |
not ready, red |
build (1.14.4) renders an empty frame; the dep releases it was waiting on have all shipped |
Other states
Red CI from master, not from the PR
| Repo and job |
Failure |
Affected PRs |
mineflayer — MC 1.16.5 1.17.1 1.18.2 1.19 red since 7 Sep, MC 1.19.2 1.19.3 1.19.4 1.20.1 since 12 Sep |
One flaky external test per run, a different one each time (master run) |
#4074, #4075, #4081, #4099 |
mineflayer-pathfinder — build (24.x) |
Physics test: Simulated states don't match Bot: (0.5, 3.7967356006686925, 13.30954454956581) !== Simulation: (0.5, 3.495200877005912, 13.45929100856761) |
PrismarineJS/mineflayer-pathfinder#382, on the identical assertion |
Stacked on another open PR's branch
| PR |
State |
Based on |
| #4094 |
not ready, green |
#4085 |
| PrismarineJS/prismarine-viewer#510 |
not ready, green |
PrismarineJS/prismarine-viewer#490 |
| PrismarineJS/prismarine-viewer#511 |
not ready, green |
PrismarineJS/prismarine-viewer#510 |
Ordering, both sides on master
| PR |
State |
Order |
Reason |
| PrismarineJS/node-minecraft-protocol#1526 |
not ready, red |
after PrismarineJS/node-minecraft-protocol#1527 |
PrismarineJS/node-minecraft-protocol#1526 un-hides the suite PrismarineJS/node-minecraft-protocol#1527 fixes, so all its jobs are red until then |
| PrismarineJS/node-minecraft-protocol#1525 |
ready, green |
either |
its new tests only start running in CI once PrismarineJS/node-minecraft-protocol#1526 and PrismarineJS/node-minecraft-protocol#1527 land |
| #4114 |
ready, green |
either, #4085 preferred first |
#4085 replaces the sequence: 0 this writes with a real shared counter |
| #4111, #4112 |
ready, green |
either |
both touch lib/scoreboard.js; whichever lands second needs a rebase |
| PrismarineJS/minecraft-data#1283 |
not ready, green |
after PrismarineJS/minecraft-data-generator#81 |
PrismarineJS/minecraft-data-generator#81 produces the data PrismarineJS/minecraft-data#1283 commits |
| PrismarineJS/prismarine-physics#142 |
not ready, green |
after #4083 |
#4083 exposes the flight state PrismarineJS/prismarine-physics#142 acts on |
Open design questions
| PR |
State |
Question |
| PrismarineJS/minecraft-data#1284 |
not ready, green |
It replaces a numeric enum mapper with a plain varint. @extremeheat's position is the opposite: eliminate the numeric enum datatypes across the protocol data. I have no preference. PrismarineJS/minecraft-data#1278 makes the same change to use_entity.hand, so whatever is decided here applies to it, but nobody has commented there. PrismarineJS/minecraft-data#1292 reverts four other 1.21.6 mappers on the same reasoning and keeps entity_action.actionId as a mapper, which is the case for naming them. |
| PrismarineJS/prismarine-item#184 |
not ready, red |
Whether HashedSlot hashing belongs in a generic hash protodef type (ProtoDef-io/node-protodef#177, ProtoDef-io/ProtoDef#65) or in prismarine-item. @extremeheat's feedback on where the hashing code should live is on ProtoDef-io/node-protodef#177; I pushed a response there on 12 Sep. |
Duplicates
| PR |
State |
Duplicates |
| PrismarineJS/minecraft-data#1273 |
ready, green |
PrismarineJS/minecraft-data#1154 and PrismarineJS/minecraft-data#1251, both open from other contributors |
A. Vanilla-client packet parity — 18
What mineflayer puts on the wire, diffed against the decompiled client (LocalPlayer.tick, MultiPlayerGameMode, ServerGamePacketListenerImpl). The symptom is usually that something works against a permissive server and does nothing against one that checks. Split out of #4066.
| PR |
Title |
Status |
| #4063 |
physics: send the movement input packets the vanilla client sends |
not ready, green — safe to merge, sneak fix inert until the minecraft-data release |
| #4064 |
health: send player_loaded when the vanilla client would |
ready, green |
| #4065 |
Send the client brand and Client Information when the vanilla client does |
not ready, green — @rom1504's question unanswered |
| #4069 |
send held_item_slot only when the slot differs from the slot the server holds |
ready, green |
| #4085 |
use_item and use_item_on like the vanilla client: shared prediction sequence, cursor on the clicked face, no empty-hand use, swing after the packet |
ready, green |
| #4094 |
Swing every tick while digging, skip STOP on instant breaks and abort with face DOWN |
not ready, green — stacked on #4085 |
| #4086 |
Send the client_command respawn after win_game with the actionId field |
ready, green |
| #4087 |
Report resource packs as ACCEPTED, DOWNLOADED, SUCCESSFULLY_LOADED and deny once |
ready, green |
| #4089 |
Right-click entities like the vanilla client: interact pair, real sneak state, hit point |
not ready, red — waits on the minecraft-data release |
| #4093 |
Dismount by holding sneak for one tick on 1.21.3+ |
ready, green |
| #4107 |
Answer pings and teleports at the start of the next tick, in arrival order |
ready, green |
| #4108 |
physics: a teleport leaves the standing flag alone |
ready, green |
| #4114 |
placeEntity: write a complete use_item when placing a boat |
ready, green — #4085 first is preferred |
| #4115 |
placeBlock: derive the face and the cursor from a raycast, like the client does |
ready, green |
| #4118 |
Expose the interaction ranges the server sends, and the reach check vanilla makes |
ready, green |
| PrismarineJS/node-minecraft-protocol#1522 |
Match the vanilla client in the login/configuration handshake: cookies, brand, per-login chat session, known packs |
ready, green |
| PrismarineJS/node-minecraft-protocol#1523 |
write the 0 holder id for inline registryEntryHolder entries |
ready, green |
| PrismarineJS/node-minecraft-protocol#1525 |
send a command with no signable argument as chat_command |
ready, green — after PrismarineJS/node-minecraft-protocol#1526 |
B. mineflayer state tracking and API surface — 18
Not packet parity: what mineflayer remembers. State surviving a login it should not, an event fired without its argument, a getter returning the wrong shape.
| PR |
Title |
Status |
| #4021 |
placeBlock: reject an occupied target up front |
ready, green — was your only objection |
| #4027 |
inventory: claim clicked slots by hash on 1.21.5+ |
not ready, red — waits on PrismarineJS/prismarine-item#184 |
| #4062 |
entities: read the 1.21.2+ entity_teleport layout |
not ready, green — approved; waits on the minecraft-data release |
| #4068 |
drop the physics tick backlog after an event-loop stall instead of draining it |
ready, green |
| #4071 |
reset teams and scoreboards on every login |
ready, green |
| #4073 |
make bot.controlState's properties enumerable |
ready, green |
| #4081 |
give teamRemoved the team that was removed |
not ready, red — master CI is red, not this PR |
| #4083 |
Track the abilities the server grants |
ready, green — closes #1587, half of #3274 |
| #4099 |
cancel the deferred respawn reply once it is stale, and write no movement packets outside play |
not ready, red — master CI is red, not this PR |
| #4100 |
Make the named scoreboard display slots non-enumerable |
ready, green |
| #4101 |
Throw a descriptive error when bot.chat is called before login |
ready, green |
| #4102 |
Normalize open_window titles to ChatMessage |
ready, green |
| #4103 |
Window state across close, re-login and respawn: stateId per window, close_window on respawn, closeWindow(null) |
ready, green |
| #4104 |
Accept play-phase resource packs when no resourcePack listener answers them |
ready, green |
| #4111 |
Read the scoreboard objective title as a chat component |
ready, green — same file as #4112, second one rebases |
| #4112 |
scoreboard: read the 1.20.3+ objective and score packets |
ready, green — same file as #4111, second one rebases |
| #4116 |
waitForTicks: say when it is physics that is missing, not the server |
ready, green |
| PrismarineJS/prismarine-physics#142 |
Obey the flight the server grants in the abilities packet |
not ready, green — after #4083, which exposes the state it acts on |
C. prismarine-item: 1.20.5+ item components — 4
Components are on the wire but items are still read as pre-1.20.5 NBT, so name, lore and custom data come back in the wrong shape or not at all.
| PR |
Title |
Status |
| PrismarineJS/prismarine-item#184 |
Item.toHashedNotch for 1.21.5+ window_click slot claims |
not ready, red — waits on the protodef release; design question open |
| PrismarineJS/prismarine-item#185 |
Expose the custom_data component as item.nbt on 1.20.5+ |
ready, green |
| PrismarineJS/prismarine-item#188 |
Render an item's custom name in displayName |
ready, green — read after PrismarineJS/prismarine-item#189 |
| PrismarineJS/prismarine-item#189 |
Read the custom name and lore components as the JSON string they used to be |
ready, green |
D. prismarine-viewer — 10
Two threads: the viewer drawing the wrong thing (nothing below y=0, no skins, no dropped items, invisible entities drawn), and a host/mesher split so the render path stops holding the event loop (PrismarineJS/prismarine-viewer#490 → PrismarineJS/prismarine-viewer#510 → PrismarineJS/prismarine-viewer#511).
| PR |
Title |
Status |
| PrismarineJS/prismarine-viewer#484 |
Add Minecraft 26.1 support |
not ready, red — empty render on 1.14.4 |
| PrismarineJS/prismarine-viewer#488 |
Render negative-Y sections on 1.18+ worlds |
ready, green |
| PrismarineJS/prismarine-viewer#490 |
Render player skins |
ready, green — closes PrismarineJS/prismarine-viewer#57 |
| PrismarineJS/prismarine-viewer#506 |
Render dropped items |
ready, green |
| PrismarineJS/prismarine-viewer#509 |
resolve entity bone parents by name, whatever their case |
ready, green |
| PrismarineJS/prismarine-viewer#513 |
Unload chunks the server unloads, and follow the world across a transfer |
ready, green |
| PrismarineJS/prismarine-viewer#514 |
Draw nothing for an invisible entity, like the vanilla client |
ready, green |
| PrismarineJS/prismarine-viewer#503 |
viewer.waitForReady() for a fully textured first frame |
not ready, green — conflicting, needs retargeting to master |
| PrismarineJS/prismarine-viewer#510 |
Decode host images without holding the event loop |
not ready, green — stacked on PrismarineJS/prismarine-viewer#490 |
| PrismarineJS/prismarine-viewer#511 |
Parse the block states in the mesher, not on the calling thread |
not ready, green — stacked on PrismarineJS/prismarine-viewer#510 |
E. mineflayer-pathfinder createHuman — 8
createHuman behaving unlike a player. Independent of each other and of the groups above.
| PR |
Title |
Status |
| PrismarineJS/mineflayer-pathfinder#375 |
goto rejects an unreachable goal instead of resolving; stop() no longer latches while idle |
ready, green |
| PrismarineJS/mineflayer-pathfinder#376 |
cap the wait for the head to settle |
ready, green |
| PrismarineJS/mineflayer-pathfinder#377 |
a walkTo for the goal in flight joins that walk instead of superseding it |
ready, green |
| PrismarineJS/mineflayer-pathfinder#378 |
take three-block drops |
ready, green |
| PrismarineJS/mineflayer-pathfinder#379 |
hold the controller through a setback storm |
ready, green |
| PrismarineJS/mineflayer-pathfinder#380 |
a walk that stops under an unreachable goal rejects instead of resolving |
ready, green |
| PrismarineJS/mineflayer-pathfinder#381 |
walkTo and lookAt say so when physics is disabled |
ready, green |
| PrismarineJS/mineflayer-pathfinder#382 |
bridge over gaps the way a player does |
not ready, red |
F. Test and CI plumbing — 7
No behaviour change. Tests passing for the wrong reason, or suites that have never run. The old -g <version> filter in nmp meant declare_commands handling, lpVec3 and ping have never run in any job.
| PR |
Title |
Status |
| #4067 |
test(nether): let retries pass by respecting the player's portal cooldown |
ready, green — also fixes one of the master CI flakes |
| #4074 |
test: gate the no-chunk physics check on a chunk load instead of a 2 s sleep |
not ready, red — master CI is red, not this PR |
| #4075 |
test: build only the versions under test |
not ready, red — master CI is red, not this PR |
| #4088 |
internal tests: wait for plugin injection before driving the bot from playerJoin |
ready, green |
| PrismarineJS/node-minecraft-protocol#1524 |
test: retry the vanilla ping while the server has no status yet |
ready, green |
| PrismarineJS/node-minecraft-protocol#1526 |
test: select the version under test with MC_VERSION instead of a title grep |
not ready, red — red until PrismarineJS/node-minecraft-protocol#1527 lands |
| PrismarineJS/node-minecraft-protocol#1527 |
test: give the declare_commands tree the packet's rootIndex |
ready, green — unblocks PrismarineJS/node-minecraft-protocol#1526 |
G. ProtoDef, upstream — 5
Not PrismarineJS, but the same reviewers and PrismarineJS work sits behind them. ProtoDef-io/node-protodef#177 and ProtoDef-io/ProtoDef#65 are the hash datatype for PrismarineJS/prismarine-item#184; the rest came from chasing unreadable packets in the harness.
| PR |
Title |
Status |
| ProtoDef-io/node-protodef#177 |
Add the hash datatype |
ready, green — pushed a response to @extremeheat's review on 12 Sep, five threads still open |
| ProtoDef-io/ProtoDef#65 |
Add the hash datatype — spec side of ProtoDef-io/node-protodef#177 |
ready, green — moves with ProtoDef-io/node-protodef#177 |
| ProtoDef-io/node-protodef#178 |
FullPacketParser: emit partialReadError with the chunk it could not read |
ready, green |
| ProtoDef-io/node-protodef#179 |
Throttle repeated packet-parse error logs in FullPacketParser |
ready, green |
| ProtoDef-io/node-protodef#180 |
Serializer: name the packet in write errors from a compiled protocol |
ready, green |