Any sword counts as a hit tool. The list of tools that register a hit was five swords hardcoded in 2012 -- wood, stone, iron, gold, diamond. Netherite arrived with Minecraft 1.16 in 2020 and was never added, so the best sword in the game did nothing while a diamond one worked. It is now a name test, so the next sword is covered before anyone notices it is not.
fill no longer crashes the server. Filling a cuboid ran block physics on
every placement, which is what was bringing the server down on large fills.
/py runs a named script rather than evaluating whatever arrives in chat.
Replies are read as lines, not as websocket frames. A frame is not a
reply: websockify relays a TCP stream, so a long answer arrives in several
frames and two short answers can share one. world.getBlockTypes() is 20KB of
material names and the first frame carried 95 of 1196, stopping mid-list at
BLACK_STAINED_GLASS_PANE. That truncated list passed every sanity check and
was accepted as the server's whole inventory, so every material after B was
reported to the user as one their server did not have -- while being placed
perfectly, because only the warning was wrong.
Your server is remembered. connect to my Minecraft uses whatever that
browser last connected to, so an example works without anyone editing somebody
else's address out of it, and no example ships with a real server in it.
Eleven blocks that were switched off now work, including sword hit vector position, which threw on the first hit after every quiet period and had been
commented out of the palette for years as a result.
gamepad and fetch are ported from arpruss/rjmscratch, with the four
bugs they arrived with fixed. Those fixes have been sent upstream.
Three that use what Scratch has and Python does not: a loudness tower you shout at, a camera you wave at to walk, and a piano you play with a sword.