• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Skin des FakePlayers wird beim entfernen aus der TabList entfernt

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Guten Tag,
wie oben bereits beschrieben, wird der Skin eines FakeNPCs bei mir entfernt, wenn dieser von der TabList entfernt wird:

Für die hideInTab-Methode habe ich folgenden Code:
Code:
    public void hindeInTablist() {
        try {
            REMOVE_PLAYER = EnumPlayerInfoAction.getField("REMOVE_PLAYER").get(null);
            Object array = getArray(EntityPlayerClass, EntityPlayer);
            Constructor<?> Constructor = PacketPlayOutPlayerInfo.getConstructor(REMOVE_PLAYER.getClass(), array.getClass());;
            TabPacket = Constructor.newInstance(REMOVE_PLAYER, getArray(EntityPlayerClass, EntityPlayer));
            for(Player p : Bukkit.getOnlinePlayers()) {
                sendPackets(p, SpawnPacket, TabPacket);
            }
            GameProfile = new ProfileLoader(uuid, this.name, this.skin).loadProfile();
            for(Player p : Bukkit.getOnlinePlayers()) {
                sendPackets(p, packetOutEntity, packetHead);
            }
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

Die ganze Klasse kann hier eingesehen werden:
https://pastebin.com/eCFpTFum

Ich hoffe, dass mir wer helfen kann ;)

Mit freundlichen Grüßen,
Sebastian
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Die UUID von NPCs muss eine Version 2 UUID sein. In deinem verlinkten Code zeigt in Zeile 275, dass du eine Version 4 UUID erzeugst.
Ich weiß aber nicht, ob diese Änderung alleine dafür sorgt, dass die Skins erhalten bleiben. Schaue dir sonst auch ruhig den Code des Plugins Citizens an.
 

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Die UUID von NPCs muss eine Version 2 UUID sein. In deinem verlinkten Code zeigt in Zeile 275, dass du eine Version 4 UUID erzeugst.
Ich weiß aber nicht, ob diese Änderung alleine dafür sorgt, dass die Skins erhalten bleiben. Schaue dir sonst auch ruhig den Code des Plugins Citizens an.
Hallo, grundsätzlich funktionieren bei mir die Skins ja, nur wenn ich den FakePlayer über die hideInTabList-Methode aus der TabList-Entferne, geht auch der Skin flöten :/
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Das hast du bereits im ersten Beitrag gesagt. Ich würde jetzt einfach mal davon ausgehen, dass die Skins durch das Benutzen von UUID Version 2 erhalten bleiben oder dass Plugins wie Citizens noch auf andere Tricks zurückgreifen.
 

Yellowphoenix18

Vorarbeiter
Registriert
26 März 2013
Beiträge
287
Alter
26
Diamanten
300
Minecraft
YellowPhoenix18
Das hast du bereits im ersten Beitrag gesagt. Ich würde jetzt einfach mal davon ausgehen, dass die Skins durch das Benutzen von UUID Version 2 erhalten bleiben oder dass Plugins wie Citizens noch auf andere Tricks zurückgreifen.

Habe eine Lösung gefunden. Sende jetzt nurnoch das TabPacket und die Head-Rotation und setze einen verzögerten Sheduler ein, das reicht aus :)
 
Oben