Mirror von
https://github.com/PaperMC/Velocity.git
synchronisiert 2024-11-17 05:20:14 +01:00
Merge branch 'dev/1.1.0' into experiment/io_uring
Dieser Commit ist enthalten in:
Commit
00ec974ad7
@ -16,7 +16,7 @@ allprojects {
|
||||
apply plugin: "com.github.spotbugs"
|
||||
|
||||
group 'com.velocitypowered'
|
||||
version '1.1.2-SNAPSHOT'
|
||||
version '1.1.3-SNAPSHOT'
|
||||
|
||||
ext {
|
||||
// dependency versions
|
||||
|
@ -78,9 +78,9 @@ public class Java11VelocityCompressor implements VelocityCompressor {
|
||||
destination.writerIndex(destination.writerIndex() + produced);
|
||||
}
|
||||
|
||||
if (inflater.getBytesWritten() != uncompressedSize) {
|
||||
throw new DataFormatException("Did not write the exact expected number of"
|
||||
+ " uncompressed bytes, expected " + uncompressedSize);
|
||||
if (!inflater.finished()) {
|
||||
throw new DataFormatException("Received a deflate stream that was too large, wanted "
|
||||
+ uncompressedSize);
|
||||
}
|
||||
source.readerIndex(origIdx + inflater.getTotalIn());
|
||||
} catch (Throwable e) {
|
||||
|
@ -204,6 +204,7 @@ public class AvailableCommands implements MinecraftPacket {
|
||||
private final int redirectTo;
|
||||
private final @Nullable ArgumentBuilder<CommandSource, ?> args;
|
||||
private @MonotonicNonNull CommandNode<CommandSource> built;
|
||||
private boolean validated;
|
||||
|
||||
private WireNode(int idx, byte flags, int[] children, int redirectTo,
|
||||
@Nullable ArgumentBuilder<CommandSource, ?> args) {
|
||||
@ -212,18 +213,34 @@ public class AvailableCommands implements MinecraftPacket {
|
||||
this.children = children;
|
||||
this.redirectTo = redirectTo;
|
||||
this.args = args;
|
||||
this.validated = false;
|
||||
}
|
||||
|
||||
void validate(WireNode[] wireNodes) {
|
||||
// Ensure all children exist. Note that we delay checking if the node has been built yet;
|
||||
// that needs to come after this node is built.
|
||||
for (int child : children) {
|
||||
if (child < 0 || child >= wireNodes.length) {
|
||||
throw new IllegalStateException("Node points to non-existent index " + child);
|
||||
}
|
||||
}
|
||||
|
||||
if (redirectTo != -1) {
|
||||
if (redirectTo < 0 || redirectTo >= wireNodes.length) {
|
||||
throw new IllegalStateException("Redirect node points to non-existent index "
|
||||
+ redirectTo);
|
||||
}
|
||||
}
|
||||
|
||||
this.validated = true;
|
||||
}
|
||||
|
||||
boolean toNode(WireNode[] wireNodes) {
|
||||
if (this.built == null) {
|
||||
// Ensure all children exist. Note that we delay checking if the node has been built yet;
|
||||
// that needs to come after this node is built.
|
||||
for (int child : children) {
|
||||
if (child >= wireNodes.length) {
|
||||
throw new IllegalStateException("Node points to non-existent index " + redirectTo);
|
||||
}
|
||||
}
|
||||
if (!this.validated) {
|
||||
this.validate(wireNodes);
|
||||
}
|
||||
|
||||
if (this.built == null) {
|
||||
int type = flags & FLAG_NODE_TYPE;
|
||||
if (type == NODE_TYPE_ROOT) {
|
||||
this.built = new RootCommandNode<>();
|
||||
@ -234,10 +251,6 @@ public class AvailableCommands implements MinecraftPacket {
|
||||
|
||||
// Add any redirects
|
||||
if (redirectTo != -1) {
|
||||
if (redirectTo >= wireNodes.length) {
|
||||
throw new IllegalStateException("Node points to non-existent index " + redirectTo);
|
||||
}
|
||||
|
||||
WireNode redirect = wireNodes[redirectTo];
|
||||
if (redirect.built != null) {
|
||||
args.redirect(redirect.built);
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren