PEcandestroyとcanplaceon

マイクラPE1.1で追加された「アドベンチャーモード」。ブロックを自由に破壊したり設置したりできないモードです。そんなアドベンチャーモードでブロックを壊したり置いたりするには、コマンドを使って「壊せるブロック」「置けるブロック」を設定したアイテムを入手する必要があるんです。この記事では、NBTタグ...ではなく「コンポーネント」の「can_destroy」「can_place_on」を設定したアイテムの入手方法を解説します。

[2017年4月7日追記] 大嘘書いてすみません。giveコマンドも使えましたので追記&改訂しました。

スポンサーリンク

アップデート「1.1」の内容まとめはこちら

PEバージョン1.1のアップデート内容まとめ記事
PE11アップデート内容まとめ
https://napoan.com/pe-update-11/

いつもの。読んでね


「壊せるブロック」「置けるブロック」を設定したアイテムとは? 仕組みを解説

このままじゃ何もできない

/gamemode 2でアドベンチャーモードに切り替えましょう。すると持っている道具やブロックが一切使えなくなります。何故かと言うと「壊せるブロック」や「置けるブロック」の設定をしていないからです。

can_destroyの仕組み

ということで、道具にminecraft:can_destroyという「コンポーネント」を設定すればいいんです。NBTタグじゃないので書き方がPC版とちょっと違いますよ。設定すれば指定したブロックを壊せるようになります。

can_place_onの仕組み

ブロックにminecraft:can_place_onというコンポーネントを設定すれば、今度は 「置けるブロック」を設定できます。指定したブロックに隣接する状態でならブロックを設置できます。


壊せるブロック(can_destroy)を設定したアイテムを入手するコマンドを解説

それでは早速「壊せるブロック」を設定した木のシャベルを入手してみましょう。

土と草ブロックと砂と砂利だけ壊せる木のシャベルを入手するコマンド
/give @p wooden_shovel 1 0 {"minecraft:can_destroy":{"blocks":["dirt","grass","sand","gravel"]}}

こちらのコマンドはgiveコマンドですのでインベントリの空きスロットにアイテムが出ます。

土と草ブロックと砂と砂利だけ壊せる木のシャベルをホットバーの左端にセットするコマンド
replaceitemコマンドの結果
/replaceitem entity @p slot.hotbar 0 wooden_shovel 1 0 {"minecraft:can_destroy":{"blocks":["dirt","grass","sand","gravel"]}}
もし「指定したスロットにアイテムを置きたい!」場合はこちらを使って下さい。ホットバー(手持ちバー)の左端のアイテムが強制的に置き換わります。
replaceitemコマンド

使う場面は少ないですが、一応replaceitemコマンドの書き方を説明しておきます。replaceitemコマンドはチェストなどのブロックに対しても使えるのですが、今回はプレイヤーにアイテムを与える(置き換える)のでentityモードにして、@pなどと書いてターゲットを指定しましょう。次にスロットの指定ですが、ここではslot.hotbar 0と書くことで「ホットバーの左端」を指定しています。後はgiveコマンドと同じようにID 数 データ値の順で書きましょう。

slot.hotbar

slot.hotbarでホットバーのスロットを指定する場合の番号はこんな感じ。左端は1ではなく0なので注意しましょう。

slot.inventory

slot.inventoryにすればインベントリにアイテムを配置することもできます。インベントリ画面の上一段はホットバーなので注意。

can_destroyの書き方

最後にcan_destroyコンポーネントの書き方をマスターしましょう。{"minecraft:can_destroy":{"blocks":["ID","ID",...]}}という風に、四角カッコの中にIDを並べて書きます。もちろん単体で指定することもできます。


置けるブロック(can_destroy)を設定したアイテムを入手するコマンドを解説

土と草ブロックと砂と砂利にだけ置けるオークの木材を入手するコマンド
/give @p planks 1 0 {"minecraft:can_place_on":{"blocks":["dirt","grass","sand","gravel"]}}
土と草ブロックと砂と砂利にだけ置けるオークの木材をホットバーの左端にセットするコマンド
木材
/replaceitem entity @p slot.hotbar 0 planks 1 0 {"minecraft:can_place_on":{"blocks":["dirt","grass","sand","gravel"]}}
もし「指定したスロットにアイテムを置きたい!」場合はこちらを使って下さい。

先程のコマンドのcan_destroycan_place_onに変わっただけです。

can_place_onの書き方

can_place_onの設定の書き方。2つのアンダーバーを忘れないように注意。


スポンサーリンク

毎度毎度ツイート、コメント等ありがとうございます。Twitterではブログの更新状況など色々呟いてます。気軽にフォロー下さい。

スポンサーリンク

コメント

  • でんでん (Minecraft ID:denden0816)

    1コメ!
    やっとちょっとした
    データを設定できるように
    なりましたねw
    (↑PCユーザーが何を言っている)

    • 11月45日14秒

      PCユーザーアピールしてて草