【マイクラ統合版】左クリック(攻撃)を検知する方法を解説! – 1.21.120で変わったScriptAPI

はじめに

先の1.21.120のアップデートでマイクラ統合版は様々な点で変化しました。これはScriptAPIも例外ではありません。様々なクラスやメソッドが追加された中で、「左クリックを検知するプロパティー」が追加されたのはご存じでしょうか?

厳密に言えば左クリックそのものではなく攻撃モーションのトリガーですが、アドオン制作上、だいぶ汎用性が高いことは間違いありません。これは従来の「右クリック検知」とは明確に一線を画す存在です。

Character
素振りを検知できるということですね

本記事では、この左クリック検知のプロパティに焦点を当て、左クリックをトリガーする方法についてまとめていきます。

なお、本スクリプトの詳細については下記の動画でも説明していますので、宜しければご参照ください:

準備

本記事はScriptAPIそのものを前提とします。これは、「JavaScriptというプログラミング言語を用いてゲームシステムをカスタマイズする機能」のことです。まだ環境構築が済んでいない場合は、先に以下の記事をご覧になることをおススメします:

manifest.json

本機能は執筆時点(2025.11)ではベータ版です。したがって、アドオンの要項を定義するmanifest.json内でベータ版のminecraft/serverモジュールを呼び出す必要があります。具体的には、dependencies内で

Copied!
"dependencies": [
    {
      "module_name": "@minecraft/server",
      "version": "beta"
    }
],

のように記述する必要があります。

Character
同アップデートでベータ版の呼び出しには「beta」だけで済むようになりました

モジュールのインストール

続いて、当該ベータ版モジュールのインストールも行いましょう。厳密にはこれは必須ではないのですが、VSCodeなどでスクリプトを記述する際に補完機能が出てくるので、これをやっておくと便利です。

まずは、コマンドプロンプトを起動し、cdコマンドでアドオンがあるフォルダに移動します。

Copied!
cd "C:\Users\(ユーザー名)\AppData\Roaming\Minecraft Bedrock\Users\Shared\games\com.mojang\development_behavior_packs\(アドオンのフォルダ名)"
  • (ユーザー名)と(アドオンのフォルダ名)は個人の環境に合わせて変更してください

パス名に空白を含むので、今回の場合は引用符は必須です。なお、アドオンの作業フォルダのパスについてはこちらの記事も詳しいです:

続いて、以下のコマンドを実行します。

Copied!
npm init

何やら聞かれると思いますが、エンターキーを押し続ければ先に進めます。

最後に、以下のコマンドを実行して今回のベータ版のモジュールをインストールします。

Copied!
npm install @minecraft/server@2.4.0-beta.1.21.120-stable
Character
今回はベータ版を指定するので「@beta」を付します

これにて今回用いるminecraft/serverモジュールのインポートが完了します。後はスクリプトを書くだけですね!

スクリプト

さて、今回の本題、左クリック(攻撃アクション)をトリガーするプロパティーを使っていきます。まずは、アドオン内にscriptsフォルダを作成し、その中にmain.jsを配置していつも通りimport文を宣言しましょう:

Copied!
import * as server from "@minecraft/server";
Character
これはいつも通りですね

続いて、以下は左クリックを検知してメッセージを表示するプログラムです:

Copied!
server.world.afterEvents.playerSwingStart.subscribe(ev => {
  const player = ev.player;
  player.sendMessage("腕を振りました");
})

ご覧の通り、左クリックを行ったプレイヤーを取得して変数playerに格納し、そのplayerについてsendMessageを用いてメッセージを表示しています。他にもitemStackやswingSourceなどが使えるようです[参考]。

Copied!
const itemStack = ev.heldItemStack; // 左クリック時に持っていたアイテムを取得
const swingSource = ev.swingSource; // 攻撃モーションに至った原因
  • swingSourceはPreviewです

確認

上記のプログラムを書いて保存すると、ゲーム内で素振りに対してメッセージが表示されることが分かると思います:

おしまい

以上のように、1.21.120のアップデートにて「左クリックそのもの」を検知できるようになりました。従来はMolangやアニコンを駆使して何とかできていたものが、こうして簡単にできるようになったことは我々アドオン制作者にとって大きなことです。積極的に活用できるといいですね。

今回解説したスクリプトを使って、友人・コミュニティー内で24時間いつでも遊べるマルチサーバーを構築したい場合は、VPS(レンタルサーバー)の導入が近道です。

私の開発・検証環境では「シンVPS」を使用しています。

シンVPS コントロールパネル画像

以前は自宅PCでホストしていましたが、PCの電源を切り忘れるストレスや、電気代を考慮して移行しました。シンVPSを選んだ決め手は、圧倒的なコストパフォーマンスです。

  • 月額の安さ 4GBプランでも月額1,200円程度(長期契約なら1,000円以下)と維持費が安く済みます。
  • 高速な読み込み 全プランでNVMe SSDを採用しており、ワールドの読み込みや重いコマンド処理でもラグを感じにくいです。
※最低利用期間が3ヶ月からという縛りはありますが、サーバーを長期で安定運用するならむしろ割安になります。

以下のリンクから申し込むと初回利用料金が10%OFFになります。
(1ヶ月以上の契約対象。「安くて速い」サーバーを探している方はぜひ試してみてください)

シンVPS 公式サイトを見てみる
(10%OFF適用)
マルチサーバーの立て方はこちら
最新情報をチェックしよう!