2023-12-09 00:13:02 +01:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
Date: Fri, 8 Dec 2023 15:06:16 -0800
|
|
|
|
Subject: [PATCH] Keep previous behavior for setResourcePack
|
|
|
|
|
|
|
|
Before multiple packs were allowed, setResourcePack
|
|
|
|
resulted in the client's existing server pack being
|
|
|
|
replaced. To keep this behavior, we will remove all
|
|
|
|
packs before sending the new pack. Other API exists
|
|
|
|
for adding a new pack to the existing packs on a client.
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
2024-01-26 20:17:06 +01:00
|
|
|
index 87e7071a381540be3b1db55f5d606e9e1e117b39..afdc702682af7ddf338fe00a1b1912766e728f41 100644
|
2023-12-09 00:13:02 +01:00
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
2024-01-26 20:17:06 +01:00
|
|
|
@@ -1803,8 +1803,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
2023-12-09 00:13:02 +01:00
|
|
|
if (hash != null) {
|
|
|
|
Preconditions.checkArgument(hash.length == 20, "Resource pack hash should be 20 bytes long but was %s", hash.length);
|
|
|
|
|
|
|
|
+ this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket(Optional.empty())); // Paper - keep previous behavior of clearing packs
|
|
|
|
this.getHandle().connection.send(new ClientboundResourcePackPushPacket(id, url, BaseEncoding.base16().lowerCase().encode(hash), force, CraftChatMessage.fromStringOrNull(prompt, true)));
|
|
|
|
} else {
|
|
|
|
+ this.getHandle().connection.send(new net.minecraft.network.protocol.common.ClientboundResourcePackPopPacket(Optional.empty())); // Paper - keep previous behavior of clearing packs
|
|
|
|
this.getHandle().connection.send(new ClientboundResourcePackPushPacket(id, url, "", force, CraftChatMessage.fromStringOrNull(prompt, true)));
|
|
|
|
}
|
|
|
|
}
|