From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Tue, 17 Aug 2021 17:39:21 -0500 Subject: [PATCH] Add component support to resource pack api diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 2622cf83dd501b982fdd20b31d174bb0d63d1218..d6618a4ba0e830449f2cf6e60b1d6ff8747bc373 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -1733,24 +1733,36 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @Override public void setResourcePack(String url, byte[] hash, String prompt) { + // Purpur start + this.setResourcePack(url, hash, io.papermc.paper.adventure.PaperAdventure.LEGACY_SECTION_UXRC.deserialize(prompt), false); + } + + @Override + public void setResourcePack(String url, byte[] hash, net.kyori.adventure.text.Component prompt) { this.setResourcePack(url, hash, prompt, false); } @Override public void setResourcePack(String url, byte[] hash, boolean force) { - this.setResourcePack(url, hash, null, force); + this.setResourcePack(url, hash, (net.kyori.adventure.text.Component) null, force); } @Override public void setResourcePack(String url, byte[] hash, String prompt, boolean force) { + this.setResourcePack(url, hash, prompt == null ? null : io.papermc.paper.adventure.PaperAdventure.LEGACY_SECTION_UXRC.deserialize(prompt), force); + } + + @Override + public void setResourcePack(String url, byte[] hash, net.kyori.adventure.text.Component prompt, boolean force) { + // Purpur end Validate.notNull(url, "Resource pack URL cannot be null"); if (hash != null) { Validate.isTrue(hash.length == 20, "Resource pack hash should be 20 bytes long but was " + hash.length); - this.getHandle().sendTexturePack(url, BaseEncoding.base16().lowerCase().encode(hash), force, CraftChatMessage.fromStringOrNull(prompt, true)); + this.getHandle().sendTexturePack(url, BaseEncoding.base16().lowerCase().encode(hash), force, io.papermc.paper.adventure.PaperAdventure.asVanilla(prompt)); // Purpur } else { - this.getHandle().sendTexturePack(url, "", force, CraftChatMessage.fromStringOrNull(prompt, true)); + this.getHandle().sendTexturePack(url, "", force, io.papermc.paper.adventure.PaperAdventure.asVanilla(prompt)); // Purpur } }