summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2017-09-06 16:14:21 +1000
committermd_5 <git@md-5.net>2017-09-06 16:14:37 +1000
commit9e3636d82a294ae9eaa1ba355765e1e471c66a6c (patch)
treee512e044b38c824ba859ab8f6b1b61410d47290e
parent178caf9ac289d9e9d274e6ba421ea390bc5755b0 (diff)
downloadcraftbukkit-9e3636d82a294ae9eaa1ba355765e1e471c66a6c.tar
craftbukkit-9e3636d82a294ae9eaa1ba355765e1e471c66a6c.tar.gz
craftbukkit-9e3636d82a294ae9eaa1ba355765e1e471c66a6c.tar.lz
craftbukkit-9e3636d82a294ae9eaa1ba355765e1e471c66a6c.tar.xz
craftbukkit-9e3636d82a294ae9eaa1ba355765e1e471c66a6c.zip
SPIGOT-3553: Add OfflinePlayer based methods to SkullMeta
-rw-r--r--src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
index b9c54472..fbc16890 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaSkull.java
@@ -6,7 +6,9 @@ import net.minecraft.server.GameProfileSerializer;
import net.minecraft.server.NBTBase;
import net.minecraft.server.NBTTagCompound;
+import org.bukkit.Bukkit;
import org.bukkit.Material;
+import org.bukkit.OfflinePlayer;
import org.bukkit.configuration.serialization.DelegateDeserialization;
import org.bukkit.craftbukkit.inventory.CraftMetaItem.SerializableMeta;
import org.bukkit.craftbukkit.util.CraftMagicNumbers;
@@ -111,6 +113,21 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
return hasOwner() ? profile.getName() : null;
}
+ @Override
+ public OfflinePlayer getOwningPlayer() {
+ if (hasOwner()) {
+ if (profile.getId() != null) {
+ return Bukkit.getOfflinePlayer(profile.getId());
+ }
+
+ if (profile.getName() != null) {
+ return Bukkit.getOfflinePlayer(profile.getName());
+ }
+ }
+
+ return null;
+ }
+
public boolean setOwner(String name) {
if (name != null && name.length() > MAX_OWNER_LENGTH) {
return false;
@@ -126,6 +143,13 @@ class CraftMetaSkull extends CraftMetaItem implements SkullMeta {
}
@Override
+ public boolean setOwningPlayer(OfflinePlayer owner) {
+ profile = (owner == null) ? null : new GameProfile(owner.getUniqueId(), owner.getName());
+
+ return true;
+ }
+
+ @Override
int applyHash() {
final int original;
int hash = original = super.applyHash();