From 8da512628263584ab75b4fb932781a2f242d08a5 Mon Sep 17 00:00:00 2001 From: Nate Mortensen Date: Tue, 17 Dec 2013 19:23:26 -0700 Subject: [PATCH] Add new setResourcePack method. Fixes BUKKIT-5015 Minecraft now uses resource packs instead of texture packs, which broke the setTexturePack method, as the client no longer listens on the MC|TPack channel. This commit fixes the issue by adding in a setResourcePack method, and by deprecating setTexturePack and rewriting it to call the newly added setResourcePack. In order to simplify the method and prevent this from happening in the future, setResourcePack calls EntityPlayer.a(String) to use the same logic as minecraft when sending resource packs. --- .../org/bukkit/craftbukkit/entity/CraftPlayer.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index 48c5ae9c69..33169e2978 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -880,12 +880,14 @@ public class CraftPlayer extends CraftHumanEntity implements Player { } public void setTexturePack(String url) { - Validate.notNull(url, "Texture pack URL cannot be null"); + setResourcePack(url); + } - byte[] message = (url + "\0" + "16").getBytes(); - Validate.isTrue(message.length <= Messenger.MAX_MESSAGE_SIZE, "Texture pack URL is too long"); + @Override + public void setResourcePack(String url) { + Validate.notNull(url, "Resource pack URL cannot be null"); - getHandle().playerConnection.sendPacket(new PacketPlayOutCustomPayload("MC|TPack", message)); + getHandle().a(url); // should be setResourcePack } public void addChannel(String channel) {