Minecraft adalah game yang sangat populer dan memiliki banyak fitur, salah satunya adalah sistem inventory player. Dalam beberapa kasus, kita perlu mengetahui apakah sebuah slot dalam inventory player tidak dipenuhi dengan item atau tidak. Hal ini terkadang diperlukan untuk mengatur perilaku player atau melakukan aksi tertentu berdasarkan status inventory player.
Namun, ternyata Minecraft memiliki bug yang menyebabkan filter "has_equipment" tidak dapat digunakan untuk mengetahui apakah sebuah slot dalam inventory player kosong. Filter ini biasanya digunakan untuk mengetahui apakah player mempunyai item tertentu atau tidak, namun tidak dapat mengetahui apakah sebuah slot dalam inventory player dipenuhi dengan air atau string kosong ("").
Dalam hal ini, kita perlu menggunakan cara lain untuk mengetahui apakah sebuah slot dalam inventory player kosong. Salah satu cara yang dapat digunakan adalah menggunakan komando /execute
dan data
.
Cara Pertama: Mengetahui Apakah Slot Inventory Kosong
Komando /execute if entity @p[nbt={Inventory:[{Slot:0b},{Slot:1b},{Slot:2b},{Slot:3b},{Slot:4b},{Slot:5b},{Slot:6b},{Slot:7b},{Slot:8b}]}] run say Hotbar is not full
dapat digunakan untuk mengetahui apakah slot inventory player tidak dipenuhi dengan item. Komando ini akan mencari player yang memiliki inventory yang tidak penuh dan mengatakan "Hotbar is not full" di chat.
Cara Kedua: Mengetahui Apakah Slot Inventory Kosong dengan NBT
Kita juga dapat menggunakan NBT (Named Binary Tag) untuk mengetahui apakah sebuah slot dalam inventory player kosong. Komando /data get entity @p Inventory[{Slot:9b}]
dapat digunakan untuk mendapatkan data NBT dari item yang terletak di slot 9 inventory player.
Contoh Penggunaan
Berikut adalah contoh penggunaan cara-cara di atas:
/execute if entity @a[nbt={Inventory:[{Slot: 9b,id:"minecraft:paper",Count:1b,tag:{display: {Name: '{"text":"Ticket to ride"}'}}}]}] run say Lets go!
– Komando ini akan mencari player yang memiliki item "Ticket to ride" di slot 9 inventory player dan mengatakan "Lets go!" di chat./data get entity @p Inventory[{Slot:9b}]
– Komando ini akan mendapatkan data NBT dari item yang terletak di slot 9 inventory player.
Dengan demikian, kita dapat menggunakan beberapa cara untuk mengetahui apakah sebuah slot dalam inventory player kosong atau tidak.