【マインクラフト（統合版）】Websocketサーバーと連携できる「Ｅパック」「Ｎジャマー」のアイテムを作ってみました

# はじめに

ここでは「ホバーユニット」レシピの構成要素となっている以下のアイテムをご紹介します。

▼Ｅパック（customize:epack）
![Ｅパック](https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/epack.png "Ｅパック")

▼Ｎジャマー（customize:njammer）
![Ｎジャマー](https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/njammer.png "Ｎジャマー")

https://qiita.com/glasses_seven/items/690f46f3ac6181d91ebc/


# 動作環境

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


# 「Ｅパック」の使い方

「Ｅパック」を投げると高圧電流が漏れ出すので、半径５ブロック以内に近づいたものに範囲ダメージを与えます。

<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/epack-throw.gif" height="333px" width="500px" />

モンスターがダメージを受けると「Ｅパック」を攻撃しようとしてダメージを受けながら延々と近づこうとするので、モンスターホイホイと言ってもいいでしょう。
また、ブタやクリーパーが近づこうとすると以下のように変化します。
<br />

▼ブタの場合はピグリンになります
<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/pig.gif" height="333px" width="500px" />
<br />

▼クリーパーの場合は帯電クリーパーになります
<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/creeper.gif" height="333px" width="500px" />


# 「Ｎジャマー」の使い方

「Ｎジャマー」を投げると高圧電流と核エネルギーが漏れ出すので、半径５ブロック以内に近づいたものに範囲ダメージを与えます。

<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/njammer-throw.gif" height="333px" width="500px" />

「Ｅパック」と同じでモンスターがダメージを受けると「Ｎジャマー」を攻撃しようとしてダメージを受けながら延々と近づこうとします。
ブタやクリーパーが近づこうとするとピグリンになったり帯電クリーパーになるのは「Ｅパック」と同じですが、「Ｎジャマー」の場合はそれに加えて村人やスケルトンが近づこうと以下のように変化します。
<br />

▼村人の場合は村人ゾンビになります
<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/villager.gif" height="333px" width="500px" />
少しわかりにくいですが、村人ゾンビ化したあと太陽に晒されて燃えています。
<br />

▼スケルトンの場合はストレイになります
<img src="https://socket-manager.github.io/document/minecraft-contents/img/hover-unit-components/skeleton.gif" height="333px" width="500px" />


# 「Ｅパック」の取得

ゲーム内では武器鍛冶師との取引で取得する事ができます。

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


# 「Ｎジャマー」の取得

ゲーム内では行商人との取引で取得する事ができます。

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


# おわりに

「召雷の魔石」実装時と同じようにWebsocketサーバーを介したネットショップとの接続中は「Ｅパック」「Ｎジャマー」共に投擲できないようにしています。

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

今回はバニラのふぐ毒の効果でも使われている`minecraft:area_attack`（範囲攻撃）コンポーネントを利用しています。

ダメージタイプにはlightningやmagmaなどが指定できるので落雷やマグマで燃える様子を期待して色々と試してみました。

．．．が、見た目上は普通にダメージを与えているだけで他と変化があるわけでもなく使いどころが微妙だったので、今回はエンティティイベントとして実装されているbecome系イベントと組み合わせて遊んでみました。

ここでご紹介したアイテムは「投擲アイテム」の作り方を基に作成し、範囲攻撃やイベント処理を実装したカスタムエンティティを「発射体エンティティ」として作成したものです。

https://qiita.com/glasses_seven/items/1c2dddcea47e8fd531a0/

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