jonathan Geschrieben 13. April 2020 Share Geschrieben 13. April 2020 Hallo ich würde gerne in meinem Plugin etwas ausführen wenn ein Spieler ein bestimmtes Item mit einer bestimmten Lore im Inventar hat. Ich habe jetzt das Problem das das Ereignis schon ausgeführt wird wenn ich das Item mit irgendeinem Namen und irgendeiner Lore im Inventar habe. Ich hoffe es kann mir einer helfen Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
FireSpirit15 Geschrieben 13. April 2020 Share Geschrieben 13. April 2020 Hey, um dir weiterhelfen zu können wäre es von Vorteil, wenn du deinen Code hier rein schicken könntest. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jonathan Geschrieben 13. April 2020 Autor Share Geschrieben 13. April 2020 (bearbeitet) public static boolean keyAbfrageCase1( Player player, ItemStack item){ for(int i = 0; i < player.getInventory().getSize(); i++) { if(player.getInventory().getContents().getType() == item.getType() && item.hasItemMeta()) { bearbeitet 13. April 2020 von jonathan Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
FireSpirit15 Geschrieben 13. April 2020 Share Geschrieben 13. April 2020 (bearbeitet) Hey, ich habe deine Abfrage zur Bearbeitung in einen Command umgeschrieben und die notwendigen Zeilen im Code ergänzt. So wie ich dich verstanden habe, möchtest du abfragen, ob ein Spieler eine Lore und ein anderes Item, beide mit Metadaten, besitzt, und anschließend eine Aktion ausführen. Du solltest dazu im Code zur Vereinfachung die notwendigen Meta-Daten festlegen und anschließend abfragen, ob diese vorhanden sind. Dazu habe ich folgenden Code verwendet: @Override public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { if (cmd.getName().equalsIgnoreCase("testinventory")) { Player p = (Player) sender; //Minecart ItemStack minecart = new ItemStack(Material.MINECART); ItemMeta m1 = minecart.getItemMeta(); m1.setDisplayName("Modified minecart"); minecart.setItemMeta(m1); //Item ItemStack item = new ItemStack(Material.COBBLESTONE); ItemMeta m2 = item.getItemMeta(); m2.setDisplayName("Modified item"); item.setItemMeta(m2); if (p.getInventory().contains(minecart) && p.getInventory().contains(item)) { Bukkit.broadcastMessage("Items found!"); if (minecart.hasItemMeta() && item.hasItemMeta()) { Bukkit.broadcastMessage("Item meta true"); } else { Bukkit.broadcastMessage("Item meta false"); } } else { Bukkit.broadcastMessage("Items not found!"); } } return false; } Die Abfrage "hasItemMeta" kannst du auch rauslassen, da in meinem Beispiel die Meta-Daten bereits festgelegt sind und somit die Items ohne die entsprechenden Meta-Daten nicht gefunden werden können. Anhand meines Beispiels kannst du deine Methode dann entsprechend umschreiben, um beide Items nach den Meta-Daten abzufragen. Ich hoffe, ich habe dich soweit richtig verstanden und konnte dir weiterhelfen! Bei weiteren Fragen kannst du dich gerne an mich wenden. Mit freundlichen Grüßen FireSpirit15 bearbeitet 13. April 2020 von FireSpirit15 2 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jonathan Geschrieben 13. April 2020 Autor Share Geschrieben 13. April 2020 (bearbeitet) Du hast etwas falsch verstanden, ich will nicht nach dem Minecart sondern nach der Lore also das was unter dem Item steht itemMeta.setLore(Arrays.asList("text")); bearbeitet 13. April 2020 von jonathan Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
jonathan Geschrieben 14. April 2020 Autor Share Geschrieben 14. April 2020 (bearbeitet) So wie es mit Lore funktioniert weiß ich jetzt danke dir! Aber es funktioniert nicht mehr wenn man mehr als ein Item im Inventar hat. Weißt du zufällig wie das geht? Und kann mir jemand erklären wie man die Funktion removeItem anwendet? bearbeitet 14. April 2020 von jonathan Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden