Wie prüfe ich das ein Spieler ein Item im Inventar hat, und das wenn er es hat eine bestimmte Aktion ausgeführt wird?
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Kommt ganz darauf an, wie du dein Inventar programmiert hast...
Angenommen, alle Items sind in einer std::list, könntest du einfach in deiner Query durch die gesamte Liste iterieren und bei jeder Iteration den Iterator auf seine ID prüfen.
Beispiel:
bool doesPlayerHasItem(ITEM id) { for(Item *i : *player->itemlist) { if(i->id == id) return true; } return false; }
/testfor @p {Inventory:[{id:"minecraft:diamond_sword"}]}
testet ob der Spieler ein Diamant Schwert im inventar hat. Dies kopierst du in ein command_block. Der command_block muss auf wiederholen gestellt sein.
Daran setzt du einen Redstone Comparator verstärkst das Signal mit einen repeater. Und verbindet das ausgehende redstone signal mit der gewünschten Aktion.