Testen ob ein Spieler mindestens die Anzahl x eines Items im Inventar hat?

2 Antworten

Zum Überprüfen kannst du dir die Methode "containsAtLeast" ( https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/inventory/Inventory.html#containsAtLeast(org.bukkit.inventory.ItemStack,%20int) )  verwenden.

Allerdings musst du das Entfernen der Items selbst realisieren. Dazu kannst du über die ItemStacks die sich im Inventar befinden iterieren und so lange Stacks entfernen / in der Anzahl reduzieren bis du genug Materialien entfernt hast.

Code ist grob aus dem Gedächtnis zusammengepuzzelt, dient mehr dazu das Vorgehen zu illustrieren.

Material waehrung = ...;
int zuBezahlen = ...;

for (ItemStack stack : inventar) {
if (waehrung.equals(stack.getType())) {
if (stack.getAmount() <= zuBezahlen) {
zuBezahlen -= stack.getAmount();
inventar.remove(stack);
  } else {
stack.setAmount(stack.getAmount - zuBezahlen);
zuBezahlen = 0;
}
if (zuBezahlen == 0) break;
}
}
ZombiemamLP 
Fragesteller
 15.10.2016, 22:31

Dankeschön für die Antwort, endlich mal jemand der was weiß :c 

0
DexterNemrod  15.10.2016, 22:43
@ZombiemamLP

"Endlich mal" - du hast grad mal ne halbe Stunde warten müssen auf die Hilfe, die du völlig kostenlos erhalten hast. Da brauchst du nicht mit "endlich mal" zu kommen. Niemand hier ist verpflichtet, dir zu helfen und selbst wenn niemand dir eine Lösung serviert hat, brauchst du diejenigen die einen Teil ihrer Zeit geopfert haben, um dir einen Hinweis in die richtige Richtung zu geben jetzt nicht auf diese Weise abzukanzeln.

Überdenk mal deine Anspruchshaltung mein Freund...

0
MagicPhoenixTv  15.10.2016, 22:54
@DexterNemrod

Ähm @DexterNemrod ich bin mir nicht sicher ob mit "Endlich mal" die Zeit die inzwischen vergangen ist gemeint wurde, sondern ich glaube das er eher schon andere Fragen gestellt hat und keine Guten Antworten erhalten hat. Und das dann so auf die Art meint dass er froh ist das er mal eine Gute Antwort bekommen hat :)

0
DexterNemrod  15.10.2016, 22:56
@MagicPhoenixTv

So oder so, wenn ich oder andere Freizeit investieren um anderen zu helfen, reagiere ich übermäßig allergisch auf phrasen wie "endlich" "wenigstens" sowie deren äquivalente :D

Manchmal manifestiert sich das so, dass ich im Stil eines überkochenden Teekessels kurz rante, und danach ist alles wieder in Ordnung :^)

0
ZombiemamLP 
Fragesteller
 15.10.2016, 23:00
@DexterNemrod

@DexterNemrod Die Variante von MagicPhoenixTv stimmt, das letzte mal als ich eine Frage zu einem etwas anderem Thema gestellt habe, habe ich die Antwort bekommen ich solle das doch mit Command Blocks machen.. Ist nicht so hilfreich wie deine Antwort, und ich bedanke mich nochmals bei dir :) Allgemein bekommt man hier nur Antworten, wenn grade jemand da ist der sich mit dem Thema gut auskennt (da habe ich großes Glück gehabt).


EDIT: Ich betone nochmal "jemand der sich gut auskennt" :P nur so..

0

Ich bin mir nicht sicher, aber ich glaube es gibt eine Methode namens deinItemStack#getAmount

ZombiemamLP 
Fragesteller
 15.10.2016, 21:21

Hmm... es ist aber anscheinend nicht möglich zu testen ob ein Spieler ein Minimum an Items hat ich kann nur testen ob ein Spieler eine bestimmte anzahl hat, oder finde ich da etwas nicht?

0