【マインクラフト（統合版）】Websocketサーバーと連携できる「はかいのつるぎ」を作ってみました

# はじめに

「いかずちの杖」の場合は落雷による攻撃でしたが、今回はエンダークリスタルによる爆撃を対空武器として使えるようにしてみました。

▼「いかずちの杖」についてはコチラ

https://qiita.com/glasses_seven/items/6f125a1d45f5d9cef538/


# 動作環境

<dl>
    <dt>プラットフォーム</dt>
    <dd>Windows10</dd>
    <dt>マインクラフト（統合版）</dt>
    <dd>Bedrock Edition v1.21.51</dd>
    <dt>socket-manager</dt>
    <dd>v1.14.1</dd>
    <dt>言語</dt>
    <dd>PHP v8.2.4（v8.1.0以降）</dd>
</dl>


# 発射イメージ

▼一人称
![一人称画面](https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/first-person.gif "一人称画面")

▼横から見た場合
![横から見た画面](https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/side.gif "横から見た画面")

「召雷の魔石」で実装していたエンティティプロパティも採用しているので、「ネットショップ」に接続中は発動しないのはもちろんですが、最初の爆発地点までのブランクが生まれるので爆風の影響が少なくなるようにしています。

それでもエンダークリスタルの爆風の威力が強すぎて、ある程度のダメージとノックバックの影響は受けます。

その為、上の画面ではダメージを受けた時のリアクションが入っていますが、実際は発射から数秒間の間は無敵状態にしているのでダメージが入らないようにしています。
                    
▼「召雷の魔石」についてはコチラ

https://qiita.com/glasses_seven/items/e58ec2ceaf2850461965/

▼「エンティティプロパティ」についてはコチラ

https://qiita.com/glasses_seven/items/5553772d3fa8edd09cc0/

▼「ネットショップ」についてはコチラ

https://qiita.com/glasses_seven/items/e77bfb43baf55e35680b/

▼上空に向かって放った場合
![上空に放った時の画面](https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/night.gif "上空に放った時の画面")

空中を旋回しているガストやファントムに対しても、ある程度の高さまでなら攻撃が届くので有利に戦えます。

▼破壊力の確認
![破壊力の確認](https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/small-hill.gif "破壊力の確認")

威力が集中できる「はかいの矢」を使った「機雷の弓」に比べると攻撃力は劣りますが、小さな丘程度の地面であれば貫通します。

▼「はかいの矢」についてはコチラ

https://qiita.com/glasses_seven/items/98ea8e43b406f75c41df/

▼「機雷の弓」についてはコチラ

https://qiita.com/glasses_seven/items/294da5d23bd2e894f7d0/


# 「はかいのつるぎ」の取得

socket-manager環境のビヘイビアパック／リソースパックなどのアドオンパックを適用しておけば、以下の方法で「はかいのつるぎ」が手に入ります。

### クラフトする場合

▼必要な素材
![必要な素材](https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/recipe-material.png "必要な素材")

▼レシピパターン
<img src="https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/recipe.png" />

今回は無形レシピのため、アイテムの数さえ合っていれば配置は自由です。

:::note info
無形レシピの作り方や詳細は[>> レシピの作り方](https://qiita.com/glasses_seven/items/6865c9c3ae5d756a2989#無形レシピについて "レシピの作り方")（無形レシピ）のページをご覧ください。
:::

### ショップで購入する場合

以下のショップで購入できます。

https://qiita.com/glasses_seven/items/e77bfb43baf55e35680b/

### コマンドで取得する場合

以下はワールドオーナーやシステム組み込み用としてコマンドで取得する方法です。
<img src="https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/get-command.png" height="354px" width="500px" />
<img src="https://socket-manager.github.io/document/minecraft-contents/img/explode-sword/get-explode-sword.png" height="354px" width="500px" />

---

あとはsocket-managerでWebsocketサーバーを起動後、マインクラフトからの接続が完了すれば「はかいのつるぎ」を含めた各種コンテンツが使えるようになります。

:::note info
socket-managerの導入方法やアドオンパックの所在については以下のページでご紹介していますのでご興味のある方はご覧ください。
:::

https://qiita.com/glasses_seven/items/433ac9d9fcbdb72c6d18/

:::note info
アドオンパックの適用方法については以下のページでご紹介しています。
:::

https://qiita.com/glasses_seven/items/7a174722c9030e669eac


# おわりに

今回の実装でも「風の杖」の時と同じようにクライアント（マインクラフト）側での実装がメインとなっています。

https://qiita.com/glasses_seven/items/3135aab823428dcc708e

<br />
実装のベースは発射アイテムによる発射体カスタムエンティティの発射ですが、発射体の移動と伴にエンダークリスタルの召喚コマンドを実行する事で発射アイテムをかざした方向へ直線的に爆撃できるようにしています。

この実装によって爆撃の効果が遠くまで及ぶので、上記の画面で地面を破壊したイメージのように、ある程度のブロックの厚みがあっても貫通させる事ができます。

https://qiita.com/glasses_seven/items/ed7e18730c9c5de3295c/

https://qiita.com/glasses_seven/items/6bcd386abd74db01e450/

<br />
また、「はかいのつるぎ」は「いかずちの杖」と融合させて使う事もできます。

https://qiita.com/glasses_seven/items/dc70171f09f5d0e77202/