Jump to content

Bestimmte menge an Items auf Inventar entfernen


Empfohlene Beiträge

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

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 von Joey
vertippt
Link zu diesem Kommentar
Auf anderen Seiten teilen

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B