summaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorWojciech Stryjewski <thvortex@gmail.com>2012-10-09 15:57:39 -0500
committerEvilSeph <evilseph@gmail.com>2012-12-20 22:09:38 -0500
commitf377a7680fb29ac55870fb6f73c2b5262241b8ef (patch)
treed691b9073e7827e8447aa7a576f75c14a5b040dc /src/main/java
parentf4836fb42813cbd7bfaf2cca35ac50cc07fbdc98 (diff)
downloadcraftbukkit-f377a7680fb29ac55870fb6f73c2b5262241b8ef.tar
craftbukkit-f377a7680fb29ac55870fb6f73c2b5262241b8ef.tar.gz
craftbukkit-f377a7680fb29ac55870fb6f73c2b5262241b8ef.tar.lz
craftbukkit-f377a7680fb29ac55870fb6f73c2b5262241b8ef.tar.xz
craftbukkit-f377a7680fb29ac55870fb6f73c2b5262241b8ef.zip
Add API to allow plugins to request players switch to a texture pack. Adds BUKKIT-2579
The setTexturePack method causes the player's client to download and switch to a texture pack specified by a URL. Note: Players can disable server textures on their client, in which case this API would not affect them.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 750e9509..beb62a00 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -47,6 +47,7 @@ import org.bukkit.inventory.InventoryView.Property;
import org.bukkit.map.MapView;
import org.bukkit.metadata.MetadataValue;
import org.bukkit.plugin.Plugin;
+import org.bukkit.plugin.messaging.Messenger;
import org.bukkit.plugin.messaging.StandardMessenger;
@DelegateDeserialization(CraftOfflinePlayer.class)
@@ -782,6 +783,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
}
}
+ public void setTexturePack(String url) {
+ Validate.notNull(url, "Texture pack URL cannot be null");
+
+ byte[] message = (url + "\0" + "16").getBytes();
+ Validate.isTrue(message.length <= Messenger.MAX_MESSAGE_SIZE, "Texture pack URL is too long");
+
+ getHandle().playerConnection.sendPacket(new Packet250CustomPayload("MC|TPack", message));
+ }
+
public void addChannel(String channel) {
if (channels.add(channel)) {
server.getPluginManager().callEvent(new PlayerRegisterChannelEvent(this, channel));