mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-11 17:31:06 +01:00
1c5f8b0fce
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: 33a2b476 PR-734: Make PlayerInventory#getItem Nullable CraftBukkit Changes: 953d3ddc SPIGOT-3034: PlayerKickEvent.setLeaveMessage(String) doesn't actually do anything 2c47af0c SPIGOT-6963: CraftMetaBlockState#getBlockState applied TileEntity ids without the minecraft namespace prefix.
93 lines
4.4 KiB
Diff
93 lines
4.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 44039e85bbb53e7bf89f9572c29c21fb4b147cc7..1ff86d507700ac39752efcbfbbc9b29dcbeb1fc1 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -1654,8 +1654,11 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser
|
|
ServerGamePacketListenerImpl.LOGGER.info("Disconnecting {} due to resource pack rejection", this.player.getName());
|
|
this.disconnect(new TranslatableComponent("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 44d732b3f17c4848f5ce99f3120f87dd9fe2b6c0..ccf555c97ee9364c965c5194939602f91d46043f 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -139,6 +139,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
|
|
|
|
@@ -155,6 +156,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);
|
|
@@ -2017,6 +2022,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
|