[Spigot] EntityPlayer zweite Skinlayer wird nicht angezeigt?

Hallo,

ich möchte gerne per Packets "Fake"-Spieler wie bei beispielsweise Hypixel erstellen - die einen Skin haben. Der Skin wird angezeigt, aber leider fehlt die zweite Layer, also Hut, Jacke usw. Folgende Klasse nutze ich, um dem FakeSpieler einen Skin zusetzen und ihn aus der Tabliste wieder verschwinden zu lassen. Alles funktioniert, nur wie gesagt, die zweite Layer des Skins wird nicht angezeigt.

public class NPC {
public static final PacketPlayOutPlayerInfo NPC1_CREATE, NPC1_HIDE;
public static final PacketPlayOutNamedEntitySpawn NPC1;

static {
    String value = "...", signature = "..."; //Zeichen spam
    GameProfile gp = new GameProfile(UUID.randomUUID(), "Citybuild");
    gp.getProperties().put("textures", new Property("textures", value, signature));
    
    EntityPlayer cb = createPlayer(gp, new Location(Bukkit.getWorld("world"), -35.5, 101, 40.5, 0F, 0F));
    NPC1_CREATE = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, cb);
    NPC1_HIDE = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, cb);
    NPC1 = new PacketPlayOutNamedEntitySpawn(cb);
    
    Scoreboard sb  = Bukkit.getScoreboardManager().getMainScoreboard();
    Team t = sb.getTeam("npc");
    if(t == null) sb.registerNewTeam("npc");
    t.setNameTagVisibility(NameTagVisibility.NEVER);
    t.addPlayer(Bukkit.getOfflinePlayer("Citybuild"));
}

private static EntityPlayer createPlayer(GameProfile gp, Location loc) {
    World w = ((CraftWorld) loc.getWorld()).getHandle();
    EntityPlayer e = new EntityPlayer( MinecraftServer.getServer(), ((CraftWorld) loc.getWorld()).getHandle(), gp, new PlayerInteractManager(w));
    e.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
    return e;
}

Vielen Dank!

Server, Computer, Internet, programmieren, Java, Minecraft, Minecraft Server, Plug-in, Spigot
1 Antwort