• 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!

PacketPlayOutEntityEquipment funktioniert nicht..

F

Firegun

Guest
Moin, ich programmiere TTT und habe das Problem, dass man selbst seine Rüstung sieht, aber andere sehen von den anderen sie nicht. Wenn ich die Inventory ID auf die Hand setze das sieht man es, aber wenn man es bei den Rüstungen machen will geht es irgendwie nicht. Hier der Code: https://hastebin.com/arodoxeyew.css
Sorry, wenn es etwas länger ist..
Danke schonmal im Vorraus :)
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
Man kann anhang deines Beitrags weder erkennen, was TTT ist, noch was du vor hast, warum du den Entity State mit Netzwerkpaketen faken willst, was das mit Inventory ID zu tun hat, auf welcher Serverversion du bist oder was überhaupt genau die Fehlermeldung/Fehlerursache ist, die dich dazu veranlagt hat, hier zu posten.

Falls dein Code allerdings tatsächlich aus solchen langen Zeilen besteht, dann solltest du das schleunigst ändern, weil sie sind unlesbar. Außerdem solltest du auch erklären, was in den aktuellen Variabeln gespeichert ist. Wenn du deinen Beitrag entsprechend angepasst hast, bin ich mir sicher, dass man dir helfen kann.
 
Zuletzt bearbeitet:

Skyriis

Kuhfänger
Registriert
11 Juni 2018
Beiträge
59
Diamanten
329
Minecraft
MrProfessor
Was in Teufels namen ist das?

Ich musste mich jetzt erstmal hinsetzen und deinen Code weniges für mich lesbar machen (die 5 Minuten meines Lebens bekomme ich nie wieder zurück).
Java:
((CraftPlayer) current2).getHandle().playerConnection.sendPacket(
    new PacketPlayOutEntityEquipment(
        current.getEntityId(),
        current.getUniqueId().equals(current2.getUniqueId()) ? 2 : 2,
        CraftItemStack.asNMSCopy(
            new ItemBuilder(Material.LEATHER_CHESTPLATE)
                .setLeatherArmorColor(getPlayerRoleColor(playerRole))
                .build()
        )
    )
);


public static Color getPlayerRoleColor(Role role){
    Color color;

    switch(role){
        case Role.TRAITOR:
            color = Color.RED;
            break;
        
        case Role.DETECTIVE:
            color = Color.AQUA;
            break;
        
        case Role.SPECTATOR:
            color = Color.GRAY;
            break;
            
        default:
            color = Color.LIME;
    }
    
    return color;
}
So und nun Frage ich mich...
Was genau tust du auf line 4?
Java:
current.getUniqueId().equals(current2.getUniqueId()) ? 2 : 2,
Ergibt das nicht immer 2?
 
F

Firegun

Guest
Hier ist der Code erstmal etwas verständlicher: https://hastebin.com/ciwudilomi.cs bei Line 4 Habe ich erstmal rumgetestet und es war davor: ? 2 : 4, Ich versuche den Spielern die, die Rolle Traitor haben eine Lederüstung rot zu setzten, den Innocents die Grüne, die Innocents sehen die Traitor dann grün. Nur das funktioniert dort halt einfach nicht. Mit getPlayerRole bekomme ich die Rolle des Spielers.
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Wenn du mit Packets die Rüstung setzt, sieht sie natürlich auch nur der Spieler an den du die Packets sendest. Wenn du möchtest das andere Spieler die Fake-Rüstung ebenfalls sehen (z.B. das ganze Team) musst du das entsprechende Packet natürlich auch an diese senden.
Das das nicht auf Items in der Hand zutrifft wird sicherlich auch irgendeinen Grund haben.
 
Oben