#持ち物をform

1 messages · Page 1 of 1 (latest)

dusk pewter
#

自分のインベントリにあるアイテムをActionFormで表示させたいです。

sage dune
#

私が思い付くものだと、
const itemStack = <Player>.getComponent("minecraft:inventory").container.getItem(スロット番号);
でinventoryコンポーネントからItemStack取得してform.button(itemStack.typeId);

スロット番号を増やしながら反復処理していけばいけると思います!ざっくりですが

#

あ、でも何もなかった時はitemStackにundefinedが入るので、
if (itemStack) form.button(itemStack.typeId);
みたいにすると問題ないと思います

sour folio
#

プレイヤーのcontainer数をforで回すのも手

dusk pewter
#

別にbutton追加したら解決しました

dusk pewter
sage dune
#

空ではないのにそうなったなら、どこかがおかしいのかもしれませんが

sage dune
# dusk pewter つまりどういうことですか

おそらくですが

const { inventorySize } = <player>.getComponent("minecraft:inventory");

でインベントリのサイズ(スロットの数)を取得して、

for (let i = 0; i < inventorySize; i += 1){
//処理
}

という風に反復処理できるってことだと思うます(本人ではないので合ってるかは分からない)

dusk pewter
#

なるほど

sage dune
#

おっと、
思うます → 思います

dusk pewter
#

-# リプライメンションされてるんだが(

sour folio
#
const { container } = <Player>.getComponent('inventory');

  for (let i = 0; i < container.size; i++) {
    const item = container.getItem(i);
    if (!item) continue;
      //item.typeId等が使える
  }

こう書けますね

dusk pewter
#

なるほど。ありがとうございます。