ServerHilfe Geschrieben 8. Mai 2017 Share Geschrieben 8. Mai 2017 Ich suche schon seit fast einer Woche nach einer Lösung.. Wie man eine bestimmte Menge an Items entfernen kann. Z.B 29 Diamanten. p.getInventory().remove(new ItemStack(org.bukkit.Material.GOLD_INGOT,29)); geht nicht, da dies nur funktioniert, wenn der ItemStack genau 29 hat.. Bei mehr funktioniert es nicht :/ Im Internet habe ich nur For schleifen gefunden die nicht Funktionieren. Wie mache ich das? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Joey Geschrieben 8. Mai 2017 Share Geschrieben 8. Mai 2017 (bearbeitet) Ist evtl. ein bisschen unschön, da der Spieler die Sortierung der besagten Items verliert, allerdings währe das so mein erster Einfall: public boolean removeItem(Player p, int id, int amount){ int i = 0; for(ItemStack item : p.getInventory().getContents()){ //Geht alle Slots im Inventar durch if (!(item == null)){ //Ist in dem Slot ein Item? if (item.getType().getId() == id){ //Ist das Item das gefragte? i = i + item.getAmount(); //Hier speichern wir die komplette Anzahl der vorhandenen Items p.getInventory().remove(item); //Hier entfernen wir diese p.updateInventory(); } } }; if (i >= amount){ //Wenn genug Items vorhanden sind, geben wir dem Spieler die Differenz zurück p.getInventory().addItem(new ItemStack(Material.getMaterial(id), i-amount)); p.updateInventory(); return true; }else{ //Wenn nicht genügend Items vorhanden sind, geben wir dem Spieler seine Items wieder p.getInventory().addItem(new ItemStack(Material.getMaterial(id), i)); p.updateInventory(); } return false; } Funktioniert auch mit Werten über 64. bearbeitet 8. Mai 2017 von Joey vertippt 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