8cf2503804
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: 19830133 PR-925: Add hit entity/block to events extending ProjectileHitEvent CraftBukkit Changes: 5a72c3c04 SPIGOT-7510: Try to fix broken reflection usage of plugins 6fa69f235 PR-1281: Add hit entity/block to events extending ProjectileHitEvent 224f733ac Fix NPE introduced in #f4d977e
105 Zeilen
4.7 KiB
Diff
105 Zeilen
4.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Fri, 19 Jan 2018 00:36:25 -0500
|
|
Subject: [PATCH] Add setPlayerProfile API for Skulls
|
|
|
|
This allows you to create already filled textures on Skulls to avoid texture lookups
|
|
which commonly cause rate limit issues with Mojang API
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
|
|
index 6c40bb4e06322bcce31561f5cfb9dc53f266f062..ba063a4e52a841a4365efb1cf78415b04b2bcc4c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
|
|
@@ -111,7 +111,22 @@ public class CraftSkull extends CraftBlockEntityState<SkullBlockEntity> implemen
|
|
}
|
|
}
|
|
|
|
+ // Paper start
|
|
@Override
|
|
+ public void setPlayerProfile(com.destroystokyo.paper.profile.PlayerProfile profile) {
|
|
+ Preconditions.checkNotNull(profile, "profile");
|
|
+ this.profile = com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile);
|
|
+ }
|
|
+
|
|
+ @javax.annotation.Nullable
|
|
+ @Override
|
|
+ public com.destroystokyo.paper.profile.PlayerProfile getPlayerProfile() {
|
|
+ return profile != null ? com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitCopy(profile) : null;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
+ @Override
|
|
+ @Deprecated // Paper
|
|
public PlayerProfile getOwnerProfile() {
|
|
if (!this.hasOwner()) {
|
|
return null;
|
|
@@ -121,11 +136,12 @@ public class CraftSkull extends CraftBlockEntityState<SkullBlockEntity> implemen
|
|
}
|
|
|
|
@Override
|
|
+ @Deprecated // Paper
|
|
public void setOwnerProfile(PlayerProfile profile) {
|
|
if (profile == null) {
|
|
this.profile = null;
|
|
} else {
|
|
- this.profile = CraftPlayerProfile.validateSkullProfile(((CraftPlayerProfile) profile).buildGameProfile());
|
|
+ this.profile = CraftPlayerProfile.validateSkullProfile(((com.destroystokyo.paper.profile.SharedPlayerProfile) profile).buildGameProfile()); // Paper
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
|
|
index 028fbc9d7960fec6333301f249178833a24f980d..b6550a8c52122747668f9f0e93c2c2cbd2e86d94 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
|
|
@@ -189,6 +189,19 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
|
|
return this.hasOwner() ? this.profile.getName() : null;
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public void setPlayerProfile(@org.jetbrains.annotations.Nullable com.destroystokyo.paper.profile.PlayerProfile profile) {
|
|
+ setProfile((profile == null) ? null : com.destroystokyo.paper.profile.CraftPlayerProfile.asAuthlibCopy(profile));
|
|
+ }
|
|
+
|
|
+ @org.jetbrains.annotations.Nullable
|
|
+ @Override
|
|
+ public com.destroystokyo.paper.profile.PlayerProfile getPlayerProfile() {
|
|
+ return profile != null ? com.destroystokyo.paper.profile.CraftPlayerProfile.asBukkitCopy(profile) : null;
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public OfflinePlayer getOwningPlayer() {
|
|
if (this.hasOwner()) {
|
|
@@ -239,6 +252,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
|
|
}
|
|
|
|
@Override
|
|
+ @Deprecated // Paper
|
|
public PlayerProfile getOwnerProfile() {
|
|
if (!this.hasOwner()) {
|
|
return null;
|
|
@@ -248,11 +262,12 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
|
|
}
|
|
|
|
@Override
|
|
+ @Deprecated // Paper
|
|
public void setOwnerProfile(PlayerProfile profile) {
|
|
if (profile == null) {
|
|
this.setProfile(null);
|
|
} else {
|
|
- this.setProfile(CraftPlayerProfile.validateSkullProfile(((CraftPlayerProfile) profile).buildGameProfile()));
|
|
+ this.setProfile(CraftPlayerProfile.validateSkullProfile(((com.destroystokyo.paper.profile.SharedPlayerProfile) profile).buildGameProfile())); // Paper
|
|
}
|
|
}
|
|
|
|
@@ -307,7 +322,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
|
|
Builder<String, Object> serialize(Builder<String, Object> builder) {
|
|
super.serialize(builder);
|
|
if (this.profile != null) {
|
|
- return builder.put(CraftMetaSkull.SKULL_OWNER.BUKKIT, new CraftPlayerProfile(this.profile));
|
|
+ return builder.put(CraftMetaSkull.SKULL_OWNER.BUKKIT, new com.destroystokyo.paper.profile.CraftPlayerProfile(this.profile)); // Paper
|
|
}
|
|
NamespacedKey namespacedKeyNB = this.getNoteBlockSound();
|
|
if (namespacedKeyNB != null) {
|