Make skulls pretend to only use names like before 1.7.8.
Any new API here needs more thought, skulls require a name but OfflinePlayer is not guaranteed to have one. There is a Mojang approved way to get a complete profile from a name but not from a UUID so for now just pretend this still only uses names.
Dieser Commit ist enthalten in:
Ursprung
6ad36f09e5
Commit
a8d5c1224f
@ -14,6 +14,7 @@ import org.bukkit.craftbukkit.CraftWorld;
|
|||||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||||
|
|
||||||
public class CraftSkull extends CraftBlockState implements Skull {
|
public class CraftSkull extends CraftBlockState implements Skull {
|
||||||
|
private static final int MAX_OWNER_LENGTH = 16;
|
||||||
private final TileEntitySkull skull;
|
private final TileEntitySkull skull;
|
||||||
private GameProfile profile;
|
private GameProfile profile;
|
||||||
private SkullType skullType;
|
private SkullType skullType;
|
||||||
@ -146,31 +147,23 @@ public class CraftSkull extends CraftBlockState implements Skull {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getOwner() {
|
public String getOwner() {
|
||||||
return profile.getName();
|
return hasOwner() ? profile.getName() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean setOwner(String name) {
|
public boolean setOwner(String name) {
|
||||||
return false;
|
if (name == null || name.length() > MAX_OWNER_LENGTH) {
|
||||||
}
|
|
||||||
|
|
||||||
public OfflinePlayer getPlayer() {
|
|
||||||
return MinecraftServer.getServer().server.getOfflinePlayer(profile);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean setPlayer(OfflinePlayer player) {
|
|
||||||
GameProfile profile;
|
|
||||||
if (player instanceof CraftPlayer) {
|
|
||||||
profile = ((CraftPlayer) player).getProfile();
|
|
||||||
} else if (player instanceof CraftOfflinePlayer) {
|
|
||||||
profile = ((CraftOfflinePlayer) player).getProfile();
|
|
||||||
} else {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GameProfile profile = MinecraftServer.getServer().getUserCache().a(name);
|
||||||
if (profile == null) {
|
if (profile == null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (skullType != SkullType.PLAYER) {
|
||||||
|
skullType = SkullType.PLAYER;
|
||||||
|
}
|
||||||
|
|
||||||
this.profile = profile;
|
this.profile = profile;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
In neuem Issue referenzieren
Einen Benutzer sperren