aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch')
-rw-r--r--patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch104
1 files changed, 104 insertions, 0 deletions
diff --git a/patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch b/patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch
new file mode 100644
index 0000000000..d8b7b10015
--- /dev/null
+++ b/patches/server/0165-Add-setPlayerProfile-API-for-Skulls.patch
@@ -0,0 +1,104 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Aikar <[email protected]>
+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 08838e17979b59555adc242ccdd7af7cbf11f9d6..23374a104510025fd8f882361a29825d0bec6ee0 100644
+--- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
+@@ -98,7 +98,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;
+@@ -108,11 +123,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 a36fcd9bfcbd2b37d7cf40b32abc0aea2761ce15..d6e161374e0235031128a6ee86d1ffa875ea48aa 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
+@@ -153,6 +153,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()) {
+@@ -203,6 +216,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
+ }
+
+ @Override
++ @Deprecated // Paper
+ public PlayerProfile getOwnerProfile() {
+ if (!this.hasOwner()) {
+ return null;
+@@ -212,11 +226,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
+ }
+ }
+
+@@ -271,7 +286,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
+ super.serialize(builder);
+
+ if (this.profile != null) {
+- builder.put(CraftMetaSkull.SKULL_OWNER.BUKKIT, new CraftPlayerProfile(this.profile));
++ builder.put(CraftMetaSkull.SKULL_OWNER.BUKKIT, new com.destroystokyo.paper.profile.CraftPlayerProfile(this.profile)); // Paper
+ }
+
+ NamespacedKey namespacedKeyNB = this.getNoteBlockSound();