aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0064-Complete-resource-pack-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0064-Complete-resource-pack-API.patch')
-rw-r--r--patches/server/0064-Complete-resource-pack-API.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/patches/server/0064-Complete-resource-pack-API.patch b/patches/server/0064-Complete-resource-pack-API.patch
new file mode 100644
index 0000000000..cac7d1f1fb
--- /dev/null
+++ b/patches/server/0064-Complete-resource-pack-API.patch
@@ -0,0 +1,93 @@
+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 e21a6961bab606036440f2a6bd90998b4129ae10..9f0a5b950a022aa2a3d3d60837fdb9023f041a9b 100644
+--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
++++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+@@ -1768,8 +1768,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 342cd3c6ffdcf46f0329e072fae446c5e9665e33..307c76b2d06b748304d28d6634e86bb91f3ded67 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+@@ -150,6 +150,7 @@ import org.bukkit.plugin.Plugin;
+ import org.bukkit.plugin.messaging.StandardMessenger;
+ import org.bukkit.profile.PlayerProfile;
+ import org.bukkit.scoreboard.Scoreboard;
++import org.jetbrains.annotations.NotNull;
+
+ import net.md_5.bungee.api.chat.BaseComponent; // Spigot
+
+@@ -168,6 +169,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);
+@@ -2206,6 +2211,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