72 lines
3.4 KiB
Diff
72 lines
3.4 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Jedediah Smith <jedediah@silencegreys.com>
|
||
|
Date: Sat, 4 Apr 2015 23:17:52 -0400
|
||
|
Subject: [PATCH] Complete resource pack API
|
||
|
|
||
|
|
||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||
|
index 00689dc07625a02781052c5df2e466e8abe85708..73683ba59d0aff3a61f555b4ae15753e9e4e6141 100644
|
||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||
|
@@ -1603,7 +1603,11 @@ public class ServerGamePacketListenerImpl implements ServerGamePacketListener {
|
||
|
// CraftBukkit start
|
||
|
public void handleResourcePackResponse(ServerboundResourcePackPacket packet) {
|
||
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
||
|
- this.craftServer.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()]));
|
||
|
+ // Paper start
|
||
|
+ PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];
|
||
|
+ player.getBukkitEntity().setResourcePackStatus(packStatus);
|
||
|
+ this.craftServer.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), packStatus));
|
||
|
+ // Paper end
|
||
|
}
|
||
|
// CraftBukkit end
|
||
|
|
||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
index 3b9d61b524441f65646edf7d403b6c5b5345b1e5..dd29038778d73fae84df360515f3c670915f1d48 100644
|
||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||
|
@@ -136,6 +136,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||
|
private double health = 20;
|
||
|
private boolean scaledHealth = false;
|
||
|
private double healthScale = 20;
|
||
|
+ // Paper start
|
||
|
+ private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
|
||
|
+ private String resourcePackHash;
|
||
|
+ // Paper end
|
||
|
|
||
|
public CraftPlayer(CraftServer server, ServerPlayer entity) {
|
||
|
super(server, entity);
|
||
|
@@ -1872,6 +1876,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||
|
public boolean getAffectsSpawning() {
|
||
|
return this.getHandle().affectsSpawning;
|
||
|
}
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public void setResourcePack(String url, String hash) {
|
||
|
+ Validate.notNull(url, "Resource pack URL cannot be null");
|
||
|
+ Validate.notNull(hash, "Hash cannot be null");
|
||
|
+ this.getHandle().sendTexturePack(url, hash);
|
||
|
+ }
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public org.bukkit.event.player.PlayerResourcePackStatusEvent.Status getResourcePackStatus() {
|
||
|
+ return this.resourcePackStatus;
|
||
|
+ }
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public String getResourcePackHash() {
|
||
|
+ return this.resourcePackHash;
|
||
|
+ }
|
||
|
+
|
||
|
+ @Override
|
||
|
+ public boolean hasResourcePack() {
|
||
|
+ return this.resourcePackStatus == org.bukkit.event.player.PlayerResourcePackStatusEvent.Status.SUCCESSFULLY_LOADED;
|
||
|
+ }
|
||
|
+
|
||
|
+ public void setResourcePackStatus(org.bukkit.event.player.PlayerResourcePackStatusEvent.Status status) {
|
||
|
+ this.resourcePackStatus = status;
|
||
|
+ }
|
||
|
// Paper end
|
||
|
|
||
|
@Override
|