BeforeItemUseEvent クラス

BeforeItemUseEventは使用中のアイテムに関する情報が含まれるイベントクラスです。このイベントは実際にアイテムを使う「前に」使おうとしているアイテムと使ったエンティティの情報を取得することができます。また、アイテムの使用をキャンセルすることも可能です。

更新履歴
  • 2023/02/17
    • サンプルコードを修正

プロパティ

cancel

cancel: boolean;

trueにセットすることでこのアイテムの使用をキャンセルすることができる。

Type: boolean

item

item: ItemStack;

使おうとしているアイテム(アイテムスタック)

Type: ItemStack(公式サイト)

source

read-only source: Entity;

このイベントを発生させた(=アイテムを使おうとしている)エンティティ。

Type: Entity(公式サイト)

サンプルコード

特定アイテムの使用を無効化する

cancelプロパティを利用することでアイテムの使用をなかったことにできます。ここでは「釣り竿(minecraft:fishing_rod)」の使用をキャンセルして釣りができない状態にしてみます。

import { world } from "@minecraft/server";
world.events.beforeItemUse.subscribe(ev => {
  if(ev.item.id === "minecraft:fishing_rod"){
    ev.cancel = true;
  }
});

特定のアイテムが使われたら特定のコマンドを実行する

sourceプロパティとitemプロパティを組み合わせれば特定のアイテムを使ったときにコマンドを実行することができます。以下の例は棒(minecraft:stick)を使ったときに、棒を使ったプレイヤーがsummonコマンドを使って自分に雷を落とすコードです。

import { world } from "mojang-minecraft";

world.events.beforeItemUse.subscribe(ev => {
  if(ev.item.id === "minecraft:stick"){
    ev.source.runCommand("summon lightning_bolt ~~~");
  }
});

マルチプレイ時の特定の道具禁止縛りなんかに使えそうです。