aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch')
-rw-r--r--Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch99
1 files changed, 99 insertions, 0 deletions
diff --git a/Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch b/Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch
new file mode 100644
index 0000000000..da897bd972
--- /dev/null
+++ b/Spigot-Server-Patches-Unmapped/0188-Add-setPlayerProfile-API-for-Skulls.patch
@@ -0,0 +1,99 @@
+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 80ee7ab69ff70431d51321d403e5e3400a24bd67..00fb749f4d181d8d830496cf741d589e10af5098 100644
+--- a/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
++++ b/src/main/java/org/bukkit/craftbukkit/block/CraftSkull.java
+@@ -1,5 +1,7 @@
+ package org.bukkit.craftbukkit.block;
+
++import com.destroystokyo.paper.profile.CraftPlayerProfile;
++import com.destroystokyo.paper.profile.PlayerProfile;
+ import com.google.common.base.Preconditions;
+ import com.mojang.authlib.GameProfile;
+ import net.minecraft.server.MinecraftServer;
+@@ -15,6 +17,7 @@ import org.bukkit.block.data.BlockData;
+ import org.bukkit.block.data.Directional;
+ import org.bukkit.block.data.Rotatable;
+ import org.bukkit.craftbukkit.entity.CraftPlayer;
++import javax.annotation.Nullable;
+
+ public class CraftSkull extends CraftBlockEntityState<TileEntitySkull> implements Skull {
+
+@@ -105,6 +108,20 @@ public class CraftSkull extends CraftBlockEntityState<TileEntitySkull> implement
+ }
+ }
+
++ // Paper start
++ @Override
++ public void setPlayerProfile(PlayerProfile profile) {
++ Preconditions.checkNotNull(profile, "profile");
++ this.profile = CraftPlayerProfile.asAuthlibCopy(profile);
++ }
++
++ @Nullable
++ @Override
++ public PlayerProfile getPlayerProfile() {
++ return profile != null ? CraftPlayerProfile.asBukkitCopy(profile) : null;
++ }
++ // Paper end
++
+ @Override
+ public BlockFace getRotation() {
+ BlockData blockData = getBlockData();
+diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
+index 8298ae9bf1c5635f08552c15f004b3d0f6e9f19b..6db0d35eba647a0e81ca464fa52dc4a404ddd2ab 100644
+--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
++++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
+@@ -8,6 +8,8 @@ import net.minecraft.nbt.GameProfileSerializer;
+ import net.minecraft.nbt.NBTBase;
+ import net.minecraft.nbt.NBTTagCompound;
+ import net.minecraft.world.level.block.entity.TileEntitySkull;
++import com.destroystokyo.paper.profile.CraftPlayerProfile;
++import com.destroystokyo.paper.profile.PlayerProfile;
+ import org.bukkit.Bukkit;
+ import org.bukkit.Material;
+ import org.bukkit.OfflinePlayer;
+@@ -18,6 +20,7 @@ import org.bukkit.craftbukkit.inventory.CraftMetaItem.SerializableMeta;
+ import org.bukkit.craftbukkit.util.CraftMagicNumbers;
+ import org.bukkit.inventory.meta.SkullMeta;
+
++import javax.annotation.Nullable;
+ @DelegateDeserialization(SerializableMeta.class)
+ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
+
+@@ -149,6 +152,19 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
+ return hasOwner() ? profile.getName() : null;
+ }
+
++ // Paper start
++ @Override
++ public void setPlayerProfile(@Nullable PlayerProfile profile) {
++ setProfile((profile == null) ? null : CraftPlayerProfile.asAuthlibCopy(profile));
++ }
++
++ @Nullable
++ @Override
++ public PlayerProfile getPlayerProfile() {
++ return profile != null ? CraftPlayerProfile.asBukkitCopy(profile) : null;
++ }
++ // Paper end
++
+ @Override
+ public OfflinePlayer getOwningPlayer() {
+ if (hasOwner()) {
+@@ -175,7 +191,7 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
+ } else {
+ // Paper start - Use Online Players Skull
+ GameProfile newProfile = null;
+- net.minecraft.server.EntityPlayer player = net.minecraft.server.MinecraftServer.getServer().getPlayerList().getPlayer(name);
++ net.minecraft.server.level.EntityPlayer player = net.minecraft.server.MinecraftServer.getServer().getPlayerList().getPlayer(name);
+ if (player != null) newProfile = player.getProfile();
+ if (newProfile == null) newProfile = new GameProfile(null, name);
+ setProfile(newProfile);