2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

お題は不問!Qiita Engineer Festa 2024で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

【マインクラフト(統合版)】Websocketサーバーを使って「いなずまの矢」を作ってみました

Last updated at Posted at 2024-07-16

はじめに

以下のように矢を放った場所へ稲妻を落とせます。
いなずまの矢

地上だけではなく以下の場所でも使える事を確認しています。

  • 水中
  • 洞窟
  • ネザー
  • エンド

動作環境

プラットフォーム
Windows10
マインクラフト(統合版)
Windows Edition v1.21.2
socket-manager
v1.13.3
言語
PHP v8.2.4(v8.1.0以降)

「いなずまの矢」を取得

socket-manager環境のビヘイビアパック/リソースパックなどのアドオンパックを適用しておけば、以下の方法でユニークアイテムとして「いなずまの矢」が手に入ります。

ショップで購入する場合

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

コマンドで取得する場合

以下はワールドオーナーやシステム組み込み用としてコマンドで取得する方法です。

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

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

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

サーバーサイドの実装

今回も「いなずまの弓」を作った時と同様にItemUsedのサブスクライブイベントを使用しています。
サブスクライブイベントの処理内容については以下の記事をご覧ください。

今回の実装では「いなずまの弓」を作った時と処理フローが少し異なります。


【いなずまの弓の場合】

(1)ItemUsedイベント(弓を使った時)の発生
(2)稲妻を落とす座標を計算してsummonコマンドを発行

【いなずまの矢の場合】

(1)ItemUsedイベント(弓を使った時)の発生
(2)ItemUsedイベント(矢を放った時)の発生
(3)放った矢にタグを発行
(4)放った矢の場所にsummonコマンドを発行

上記の事から大きく分けて二つの大きな違いがあります。

まず一つ目はイベントが2回発行されるという事です。
つまり「弓を使ったイベント」⇒「矢を放ったイベント」の順で2回発行されます。

そして二つ目の違いは放った矢にタグを付与しているところです。
これはJava版でも同じでしたが弓で矢を放つと別のエンティティ(矢)としてスポーンしますので、「いなずまの矢」を放ったプレイヤーの矢(エンティティ)にタグを付与する事で特別な矢である事を認識させます。
そして稲妻を落とす時(summonコマンド発行時)にターゲットセレクタでタグを指定するようにしています。
これをしておかないと通常の矢を放った時でも発動してしまいます。

あと忘れてはいけないのはWebsocketサーバーからはexecuteコマンドを発行できないという事です。
元々このコマンドはエンティティから実行されるように設計されているようなのでWebsocketサーバーはエンティティだと認識されていないからです。
そのため今回はWebsocketサーバーからfunctionコマンドを発行する事で実際のコマンド処理をビヘイビアパックで賄うようにしています。

実装内容の詳細は他のコンテンツも含めて以下のページでご紹介していますのでご興味のある方はご覧ください。

タグの付与方法の説明については以下のページでご紹介しています。

おわりに

先に作っていた「いなずまの弓」とコンボするとこんなイメージ。
いなずまの弓とコンボ

これで安全に帯電クリーパーやピグリンも量産し放題でしょう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?