public static Skin parseUnsignedSkin(@Nullable Node node) throws InvalidXMLException { if(node == null) return null; String data = node.getValueNormalize(); try { Base64.decodeBase64(data.getBytes()); } catch(IllegalArgumentException e) { throw new InvalidXMLException("Skin data is not valid base64", node); } return new Skin(data, null); }
public Skin needSkin(String text) { return MapUtils.computeIfAbsent(skins, text, t -> { final ConfigurationSection skinSection = root.getConfigurationSection("skins"); if(skinSection != null) { final String referenced = skinSection.getString(text); if(referenced != null && !referenced.equals(text)) { return needSkin(referenced); } } return new Skin(text, null); }); }
public static PacketPlayOutPlayerInfo.PlayerInfoData playerListPacketData(PacketPlayOutPlayerInfo packet, UUID uuid, String name, @Nullable BaseComponent displayName, GameMode gamemode, int ping, @Nullable Skin skin) { GameProfile profile = new GameProfile(uuid, name); if(skin != null) { for(Map.Entry<String, Collection<Property>> entry : Skins.toProperties(skin).asMap().entrySet()) { profile.getProperties().putAll(entry.getKey(), entry.getValue()); } } PacketPlayOutPlayerInfo.PlayerInfoData data = packet.new PlayerInfoData(profile, ping, gamemode == null ? null : EnumGamemode.getById(gamemode.getValue()), null); data.displayName = displayName == null ? null : new BaseComponent[]{ displayName }; return data; }
@Command(aliases = {"info"}, desc = "Dump the encoded data for a player's skin", usage = "[player]") public void info(CommandContext args, CommandSender sender) throws CommandException { Skin skin = CommandUtils.getPlayerOrSelf(args, sender, 0).getSkin(); sender.sendMessage(ChatColor.BLUE + "Textures: " + ChatColor.WHITE + skin.getData()); sender.sendMessage(ChatColor.BLUE + "Signature: " + ChatColor.WHITE + skin.getSignature()); }
@Command(aliases = {"none"}, desc = "Clear a player's skin, making them steve/alex", usage = "[player]") public void none(CommandContext args, CommandSender sender) throws CommandException { Player player = CommandUtils.getPlayerOrSelf(args, sender, 0); player.setSkin(Skin.EMPTY); sender.sendMessage(ChatColor.WHITE + "Cleared the skin of " + player.getDisplayName(sender)); }
/** * Refresh the given player's fake appearance for the given viewer, assuming the given identity */ private void refreshFakeNameAndSkin(Player player, Identity identity, @Nullable String fakeDisplayName, Player viewer) { if(identity.isRevealed(viewer)) { player.setFakeNameAndSkin(viewer, null, null); player.setFakeDisplayName(viewer, null); } else { player.setFakeNameAndSkin(viewer, identity.getNickname(), Skin.EMPTY); player.setFakeDisplayName(viewer, fakeDisplayName); } }
public static Packet playerListAddPacket(UUID uuid, String name, @Nullable BaseComponent displayName, GameMode gamemode, int ping, @Nullable Skin skin) { PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(PacketPlayOutPlayerInfo.EnumPlayerInfoAction.ADD_PLAYER); packet.add(playerListPacketData(packet, uuid, name, displayName, gamemode, ping, skin)); return packet; }
@Override public @Nullable Skin getSkin(TabView view) { return DEFAULT_SKIN; }
@Override public @Nullable Skin getSkin(TabView view) { final Identity identity = identityProvider.currentIdentity(player); return identity.isDisguised(view.getViewer()) ? null : player.getSkin(); }
@EventHandler public void onPlayerChangeSkinParts(PlayerSkinPartsChangeEvent event) { getPlayer(event.getPlayer()).setHat(event.getPlayer().getSkinParts().contains(Skin.Part.HAT)); }
/** * Skin for the entry's icon */ @Nullable Skin getSkin(TabView view);