5b6dfb3463
This work is 100% unfinished. I am pushing it up so that we as a team can work on this update. Do not try to use this branch. You will fail.
84 lines
3.7 KiB
Diff
84 lines
3.7 KiB
Diff
From e8d1d0159c1cba0d04340218e701786a9adf8d66 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/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
index 27c255c8d..2cc277e4f 100644
|
|
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
|
|
@@ -1308,7 +1308,13 @@ public class PlayerConnection implements PacketListenerPlayIn, ITickable {
|
|
|
|
}
|
|
|
|
- public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) {}
|
|
+ public void a(PacketPlayInResourcePackStatus packetplayinresourcepackstatus) {
|
|
+ // Paper start;
|
|
+ final PlayerResourcePackStatusEvent.Status status = PlayerResourcePackStatusEvent.Status.values()[packetplayinresourcepackstatus.status.ordinal()];
|
|
+ this.getPlayer().setResourcePackStatus(status);
|
|
+ this.server.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(getPlayer(), status));
|
|
+ // Paper end
|
|
+ }
|
|
|
|
public void a(PacketPlayInBoatMove packetplayinboatmove) {
|
|
PlayerConnectionUtils.ensureMainThread(packetplayinboatmove, this, this.player.getWorldServer());
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index aacf8ea7f..f6a7f08f9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -54,6 +54,7 @@ import net.minecraft.server.PacketPlayOutCustomSoundEffect;
|
|
import net.minecraft.server.PacketPlayOutMap;
|
|
import net.minecraft.server.PacketPlayOutNamedSoundEffect;
|
|
import net.minecraft.server.PacketPlayOutPlayerInfo;
|
|
+import net.minecraft.server.PacketPlayOutPlayerListHeaderFooter;
|
|
import net.minecraft.server.PacketPlayOutSpawnPosition;
|
|
import net.minecraft.server.PacketPlayOutStopSound;
|
|
import net.minecraft.server.PacketPlayOutTitle;
|
|
@@ -126,6 +127,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, EntityPlayer entity) {
|
|
super(server, entity);
|
|
@@ -1691,6 +1696,32 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
((WorldServer) getHandle().world).getPlayerChunkMap().updateViewDistance(getHandle(), viewDistance);
|
|
}
|
|
|
|
+ @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().setResourcePack(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;
|
|
+ }
|
|
+
|
|
// Spigot start
|
|
private final Player.Spigot spigot = new Player.Spigot()
|
|
{
|
|
--
|
|
2.18.0
|
|
|