Snapshot 20w45a

This commit is contained in:
Five (Xer)
2020-11-04 22:35:27 +01:00
committed by FivePB
parent 06ecab2627
commit 7f0964155c
4 changed files with 40 additions and 2 deletions

View File

@@ -871,12 +871,13 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
ResourcePackRequest request = new ResourcePackRequest();
request.setUrl(url);
request.setHash("");
request.setRequired(false);
connection.write(request);
}
}
@Override
public void sendResourcePack(String url, byte[] hash) {
public void sendResourcePack(String url, byte[] hash, boolean isRequired) {
Preconditions.checkNotNull(url, "url");
Preconditions.checkNotNull(hash, "hash");
Preconditions.checkArgument(hash.length == 20, "Hash length is not 20");
@@ -885,10 +886,16 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
ResourcePackRequest request = new ResourcePackRequest();
request.setUrl(url);
request.setHash(ByteBufUtil.hexDump(hash));
request.setRequired(isRequired);
connection.write(request);
}
}
@Override
public void sendResourcePack(String url, byte[] hash) {
sendResourcePack(url, hash, false);
}
/**
* Sends a {@link KeepAlive} packet to the player with a random ID.
* The response will be ignored by Velocity as it will not match the

View File

@@ -30,6 +30,7 @@ public class ResourcePackRequest implements MinecraftPacket {
private @MonotonicNonNull String url;
private @MonotonicNonNull String hash;
private boolean isRequired; // 1.17+
public @Nullable String getUrl() {
return url;
@@ -39,6 +40,10 @@ public class ResourcePackRequest implements MinecraftPacket {
this.url = url;
}
public boolean isRequired() {
return isRequired;
}
public @Nullable String getHash() {
return hash;
}
@@ -47,10 +52,17 @@ public class ResourcePackRequest implements MinecraftPacket {
this.hash = hash;
}
public void setRequired(boolean required) {
isRequired = required;
}
@Override
public void decode(ByteBuf buf, Direction direction, ProtocolVersion protocolVersion) {
this.url = ProtocolUtils.readString(buf);
this.hash = ProtocolUtils.readString(buf);
if (protocolVersion.compareTo(ProtocolVersion.MINECRAFT_1_17) >= 0) {
this.isRequired = buf.readBoolean();
}
}
@Override
@@ -60,6 +72,9 @@ public class ResourcePackRequest implements MinecraftPacket {
}
ProtocolUtils.writeString(buf, url);
ProtocolUtils.writeString(buf, hash);
if (protocolVersion.compareTo(ProtocolVersion.MINECRAFT_1_17) >= 0) {
buf.writeBoolean(isRequired);
}
}
@Override