385f313a8b
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: d41796de SPIGOT-7071: Add Player#stopSound(SoundCategory category) 61dae5b2 SPIGOT-7011, SPIGOT-7065: Overhaul of structures CraftBukkit Changes: 991aeda12 SPIGOT-1729, SPIGOT-7090: Keep precision in teleportation between worlds 5c9a5f628 SPIGOT-7071: Add Player#stopSound(SoundCategory category) 68f888ded SPIGOT-7011, SPIGOT-7065: Overhaul of structures 0231a3746 Remove outdated build delay. Spigot Changes: 475f6008 Rebuild patches 8ce1761f Rebuild patches
94 Zeilen
4.5 KiB
Diff
94 Zeilen
4.5 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 e27be8fb00360d546557bdbfec2907736145fa0f..d5cbeb088c95537fa63a489603a71307481ee455 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -1687,8 +1687,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
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 00576a1d65b0e8f32af739c6f0383e2418360132..8ad19c44e4cfa39f81f8fc5e6a13e2649b6b0a3c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -144,6 +144,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
|
|
|
|
@@ -162,6 +163,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);
|
|
@@ -2115,6 +2120,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
|