Now we just use builtin INetAddress predicates or HostRange, rather than
a mix of custom predicates, sets and HostRange.
Also add some other ranges from the reserved list, and link to that list
to make it a bit easier to find stuff in the future.
I don't konw if this actually matters, but better safe than sorry.
Everything here confuses me — my understanding of RFC 6052 was that
private IP addresses cannot be used with NAT64, but AWS apparently
allows it? Not sure if I or Amazon is wrong (or both!).
- Split implementation of `parallel.waitFor{All,Any}` up. Their
implementations are now sufficiently complicated it doesn't make
sense to share the core.
- Support spawning new functions from within `parallel.waitForAll`.
- Flesh out the `parallel.waitForAll` docs a little.
- Add a new LuaTable.get(int) overload to handle getting an integer key
instead.
- Update CobaltLuaMachine for more sensible Java->LuaValue conversion
for looking up keys.
- Add some tests for our two LuaTable implementations.
- Randomly reformat two files because spotless is ???
Fixes#2430
- Add (very basic) details provider for entities.
- Add commands.getEntity(selector) function, which gets details for all
matching entities.
Fixes#2383
The shebang/interpreter program is run with the *resolved* path of the
original program. However, this path was not marked with a leading `/`,
meaning interpreters may try to resolve it again.
We now add an explicit leading `/`, to ensure the path is treated as
absolute.
- Bump CC:T Javadoc version, to fix issues with dropping newlines when
converting to Markdown. I'd originally planned to switch to
Markdown-style Javadocs, but tooling is stil a bit lacking
(Intelli's formatting of @params is entirely broken for instance).
- Force more recent ASM version, to allow Forge to run.
If a fluid uses NBT tags, then when we construct our NBT-less
FluidStack, then the fluid does not match and will not be transferred.
Instead, we search the source tank for a matching FluidStack, and use
that directly.
This is a bit limiting if a tank contains multiple versions of the fluid
with different NBT, but hopefully that's not too common.
Fixes#2355
This should avoid allocating slightly less memory *in some cases*. I
dare say there's still ways to OOM here. But also, if you want to OOM
the server, you don't need to place a sign to do it!
Closes#2365.
- Reorganise the HTTP test code to make it a bit more extensible. Add
support for sending messages to connected websockets.
- Provide a friendlier message for too-large-payload errors.
- Return failure reason from Websocket.receive
Fixes#2149.
We remove support for multiple event listeners, and now just use a
simple event queue again. This makes the code a little simpler, and
removes the risk of race conditions where we do do something, and it
queues the event before we call pullEvent().
We removed onNeighborChange in 676fb5fb53,
on the basis that this was no longer needed for peripheral updates.
However, it *is* required for redstone updates, as MoreRed does not
trigger any block updates for bundled cables.
Fixes#2316.
I do not like the flow of this page, but did not know how better to
structure it.
We really need a way to write things which use the same type syntax as
parameters. I don't like how this (and events!) are formatted so
differently. It'll do for now though.
There's some nasty hacks here around potion durations on other items.
This should get a bit cleaner in newer versions of the game, once we
switch to data components.
Fixes#2266.
Fixes#2332.
I *think* what's going on here is:
- When we place a block with the turtle, we copy items between the
turtle's inventory and the fake player's inventory. We *don't* clear
items from the fake player's inventory after placing, as we'll do it
next time we use the fake player.
- At the start of the next tick, Stack Refill then loops over the
fake player's inventory and moves some items around. However, because
we just set the items directly (rather than using .copy()), this
mutates the items in the turtle's inventory too!
To fix this, we just clear the player's inventory after finishing with
it, so Stack Refill never sees these items.
- Shuffle some of the accessors in PocketComputerItem around, to make
them easier to use in the lectern code.
I still don't think we've got a good interface here. We could
possibly move more of the update code into PocketBrain, and just have
PocketComputerItem responsible for syncing brain<->stack
state. Something to fiddle with, but not sure it would be any
cleaner.
- Set the bottom peripheral when the pocket computer is placed in the
lectern (and on block updates, etc...), and clear it when removed.
Again, the code here is uglier than I would like (particularly with
all the instanceofs). I did wonder about having some LecternBehaviour
class, which holds the printout/pocket-specific state, but there's so
many places we need to hook in (and they're so different between the
two), I'm not sure it's worth it right now.
Fixes#2126, closes#2223.