summaryrefslogtreecommitdiffhomepage
path: root/patches/unapplied/server/0065-Complete-resource-pack-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/unapplied/server/0065-Complete-resource-pack-API.patch')
-rw-r--r--patches/unapplied/server/0065-Complete-resource-pack-API.patch85
1 files changed, 85 insertions, 0 deletions
diff --git a/patches/unapplied/server/0065-Complete-resource-pack-API.patch b/patches/unapplied/server/0065-Complete-resource-pack-API.patch
new file mode 100644
index 0000000000..cb2efb14cc
--- /dev/null
+++ b/patches/unapplied/server/0065-Complete-resource-pack-API.patch
@@ -0,0 +1,85 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jedediah Smith <[email protected]>
+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 dae74cda3b9faa0c8aeecc6c7bc329950033f653..dac2665008b5ba49134c84373f916c5c6ed355e9 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -1756,8 +1756,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
+ ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
+ this.disconnect(Component.translatable("multiplayer.requiredTexturePrompt.disconnect"));
+ }
+- this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()])); // CraftBukkit
+-
++ // Paper start
++ PlayerResourcePackStatusEvent.Status packStatus = PlayerResourcePackStatusEvent.Status.values()[packet.action.ordinal()];
++ player.getBukkitEntity().setResourcePackStatus(packStatus);
++ this.cserver.getPluginManager().callEvent(new PlayerResourcePackStatusEvent(this.getCraftPlayer(), packStatus)); // CraftBukkit
++ // Paper end
+ }
+
+ @Override
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+index 470eac3191c09c7c7fe4b36165ed1c213bac421c..31785e1cee09977356ee2b65a7d41df2c959d1b2 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -178,6 +178,10 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ private double healthScale = 20;
+ private CraftWorldBorder clientWorldBorder = null;
+ private BorderChangeListener clientWorldBorderListener = this.createWorldBorderListener();
++ // Paper start
++ private org.bukkit.event.player.PlayerResourcePackStatusEvent.Status resourcePackStatus;
++ private String resourcePackHash;
++ // Paper end
+
+ public CraftPlayer(CraftServer server, ServerPlayer entity) {
+ super(server, entity);
+@@ -2361,6 +2365,45 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
+ public boolean getAffectsSpawning() {
+ return this.getHandle().affectsSpawning;
+ }
++
++ @Override
++ public void setResourcePack(@NotNull String url, @NotNull String hash) {
++ this.setResourcePack(url, hash, false, null);
++ }
++
++ @Override
++ public void setResourcePack(@NotNull String url, @NotNull String hash, boolean required) {
++ this.setResourcePack(url, hash, required, null);
++ }
++
++ @Override
++ public void setResourcePack(@NotNull String url, @NotNull String hash, boolean required, net.kyori.adventure.text.Component resourcePackPrompt) {
++ Validate.notNull(url, "Resource pack URL cannot be null");
++ Validate.notNull(hash, "Hash cannot be null");
++ net.minecraft.network.chat.Component promptComponent = resourcePackPrompt != null ?
++ io.papermc.paper.adventure.PaperAdventure.asVanilla(resourcePackPrompt) :
++ null;
++ this.getHandle().sendTexturePack(url, hash, required, promptComponent);
++ }
++
++ @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