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

NPC Abfrage (Erlädigt)

Melonemax

Redstoneengineer
Registriert
20 Februar 2021
Beiträge
37
Diamanten
250
Ich Arbeite Grade mit der Citizens API und wolle Fragen wie ich eine Abfrage machen kann welchen NPC cuh grade anglicke und weiß nicht wie ich habe es schon verucht in dem ich den Namen des NPC abfrage aber das hat nicht Funktioniert
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Es wäre hilfreich, deinen aktuellen Code zu sehen. Ohne Code kann man dazu wenig sagen.

Normales vorgehen wäre das NPCRightClickEvent zu nutzen, dann getNPC() und von diesem NPC dann einfach getName() - nicht sonderlich kompliziert.

Sinnvoller ist allerdings die ID, denn Namen können doppelt vorhanden sein. Auch diese lässt sich auf den gleichen Weg herausfinden. Ein Blick in die Javadocs ist da immer empfehlenswert.
 

Melonemax

Redstoneengineer
Registriert
20 Februar 2021
Beiträge
37
Diamanten
250
Code:
    @EventHandler
    public void onClick(NPCRightClickEvent event) {
        NPC npc = event.getNPC();
        Player p = event.getClicker();

        if (npc.getName().equals("Bob")){
            p.sendMessage("test");
        }
    }
Mir wurde auf dem Citizens DC gesagt das man da nicht mit getName() macht sonder das man Irgendwelche Eigenschaften Abfragt
 

Melonemax

Redstoneengineer
Registriert
20 Februar 2021
Beiträge
37
Diamanten
250
Das ist das Fertige Ergebnis (Für alle die das mal nach Lesen)

Code:
@EventHandler
    public void onClick(NPCRightClickEvent event) {
        Entity npc = event.getNPC().getEntity();  // angeklickter NPC
        Player p = event.getClicker(); // Spieler der den NPC angeklickt hat

        if (npc.getName().equalsIgnoreCase("Bob")){ //NPC Name
            //Was aufgeführt werden soll
        }
    }
 
Oben