0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マイクラアドオン イベント一覧

0
Last updated at Posted at 2025-11-21

初めに

この記事では、主にscriptAPIにおける全イベントを紹介します。
取得できるデータ、説明などメモ代わりに記しておきます。
記入日:2025/11/21
参照サイト1
参照サイト2

1.blockExplode

発火条件:ブロックが爆発によって破壊されたとき
beforeEventsの有無:なし
※破壊されたブロックごとにイベントが呼ばれるため、数十単位で発動することがある。

import { world } from "@minecraft/server";

world.afterEvents.blockExplode.subscribe(ev => {
    let source = ev.source; // 爆発源。クリーパーなどのエンティティや、TNTなどのブロックが入る
    let permutation = ev.explodedBlockPermutation; // 爆発前にあったブロック。
    let block = ev.block; // 爆発後に残ったブロック(大体はair)
    let dimension = ev.dimension; // 爆発がおきたディメンション
});

2.buttonPush

発火条件:ボタンが押されたとき
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.buttonPush.subscribe(ev => {
    let source = ev.source; // 実行者(押したプレイヤー)
    let block = ev.block; // ブロック(ボタン)
    let dimension = ev.dimension; // イベントが発生したディメンション    
})

3.dataDrivenEntityTrigger

発火条件:エンティティのDDEが変化
beforeEventsの有無:なし
※イメージしづらいですが、エンティティの「状態」が変化したときという理解でOKです。
例:クリーパーの爆発が始まる。村人がゾンビになる。等々

import { world } from "@minecraft/server";

world.afterEvents.dataDrivenEntityTrigger.subscribe(ev => {
    let eventId = ev.eventId; // eventのIDが入る。例:村人がゾンビ化=>"become_zombie"
    let modifiers = ev.getModifiers(); // イベントが発火した理由が入るらしい...使わないので割愛
    let entity = ev.entity; // イベント対象のエンティティ
})

4.entityDie

発火条件:エンティティが死亡
beforeEventsの有無:なし
※クリーパーが爆発した場合は発火しない。アイテムをkillコマンドしても発火する。

import { world } from "@minecraft/server";

world.afterEvents.entityDie.subscribe(ev => {
    let entity = ev.deadEntity; // 死んだエンティティ
    let source = ev.damageSource; // 危害を加えたエンティティ
})

5.entityHealthChanged

発火条件:エンティティのHPが変動(増加or減少)
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.entityHealthChanged.subscribe(ev => {
    let oldValue = ev.oldValue; // ダメージが変化する前のHP
    let newValue = ev.newValue; // ダメージが変化した後のHP
    let entity = ev.entity; // 対象のエンティティ
    // HPが18から19に回復した場合、oldValue=18,newValue=19となる
})

6.effectAdd

発火条件:エンティティにエフェクトを付与
beforeEventsの有無:あり

import { world } from "@minecraft/server";
//afterイベントの場合
world.afterEvents.effectAdd.subscribe(ev => {
    let entity = ev.entity;
    let effect = ev.effect;
})
import { world } from "@minecraft/server";
//beforeイベントの場合
world.beforeEvents.effectAdd.subscribe(ev => {
    let entity = ev.entity; // エンティティ
    let effect = ev.effect; // エフェクト
    ev.cancel = true; // イベントのキャンセル(付与を取り消し)が可能
})

7.entityHitBlock

発火条件:エンティティがブロックに対して左クリック
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.entityHitBlock.subscribe(ev => {
    let blockFace = ev.blockFace; // 叩いた面(Up,Down,North等)
    let damagingEntity = ev.damagingEntity; // 叩いたエンティティ
    let block = ev.hitBlock; // 叩いたブロック
    let blockPermutation = ev.hitBlockPermutation; // ブロックの状態
})

8.entityHitEntity

発火条件:エンティティがエンティティに近接攻撃を行ったとき
beforeEventsの有無:なし
※ダメージ量は取得できない。ダメージ量は次のイベントで

import { world } from "@minecraft/server";

world.afterEvents.entityHitEntity.subscribe(ev => {
    let attacker = ev.damagingEntity; // 攻撃を与えたエンティティ
    let victim = ev.hitEntity; // 攻撃を受けたエンティティ
})

9.entityHurt

発火条件:エンティティがダメージを受ける
beforeEventsの有無:なし
※上のイベントと違い、落下等の環境ダメージでも発火する

import { world } from "@minecraft/server";

world.afterEvents.entityHurt.subscribe(ev => {
    let damage = ev.damage; // ダメージ量
    let source = ev.damageSource; // ダメージ源
    let victim = ev.hurtEntity; // ダメージを食らったエンティティ
})

10.entityLoad

発火条件:読み込まれていないチャンクにいるエンティティがチャンクと共に読み込まれる
beforeEventsの有無:なし
※条件がイマイチ分からず発火できなかったので、コードだけ掲載

import { world } from "@minecraft/server";

world.afterEvents.entityLoad.subscribe(ev => {
    let entity = ev.entity; // ロードされたエンティティ
})

11.entityRemove

発火条件:エンティティが何らかの原因で消えたとき
beforeEventsの有無:あり
※殺されたとき、デスポーンしたとき等様々な要因があります。

import { world } from "@minecraft/server";
// afterの場合
world.afterEvents.entityRemove.subscribe(ev => {
    let entityId = ev.removedEntityId; // エンティティid(スポーン時に割り振られる)
    let typeId = ev.typeId; // エンティティのタイプ(minecraft:cow,minecraft:creeper等々)
})
import { world } from "@minecraft/server";
//beforeの場合
world.beforeEvents.entityRemove.subscribe(ev => {
    let entityId = ev.removedEntityId; // エンティティid(スポーン時に割り振られる)
    let typeId = ev.typeId; // エンティティのタイプ(minecraft:cow,minecraft:creeper等々)
    ev.cancel = true; // エラーは出ないけど意味はないです
})

このイベントは特殊で、cancelプロパティは持ってるが、意味を持たないので、beforeもafterも特に違いはありません。

12.entitySpawn

発火条件:エンティティがスポーン
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.entitySpawn.subscribe(ev => {
    let entity = ev.entity; // スポーンしたエンティティ
    let cause = ev.cause; // スポーン理由(大体はSpawned,繁殖の場合はBorn)
})

13.explosion

発火条件:エンティティ又はブロックが爆発したとき
beforeEventsの有無:あり
※blockExplodeとは違い、爆発源に対してのみイベントが呼ばれる。

import { world } from "@minecraft/server";
// afterの場合
world.afterEvents.explosion.subscribe(ev => {
    let source = ev.source; // 爆発源
    let dimension = ev.dimension; // 爆発の起きたディメンション
    let impactedBlocks = ev.getImpactedBlocks(); // 影響を受けたブロックのリスト
})
import { world } from "@minecraft/server";
// beforeの場合
world.beforeEvents.explosion.subscribe(ev => {
    let source = ev.source; // 爆発源
    let dimension = ev.dimension; // 爆発の起きたディメンション
    let impactedBlocks = ev.getImpactedBlocks(); // 影響を受けたブロックのリスト
    ev.cancel = true; // イベント(爆発)のキャンセル
})

14.gameRuleChange

発火条件:ゲームルールが変更されたとき
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.gameRuleChange.subscribe(ev => {
    let rule = ev.rule; // 変更対象のルール(例:天候の変化="doWeatherCycle")
    let value = ev.value; // 変更後の値(true / false)
})

15.itemCompleteUse

発火条件:アイテムの使用を完了した瞬間に発火
beforeEventsの有無:なし
※長押しで使用するアイテム(食べ物等)にのみ反応する。

import { world } from "@minecraft/server";

world.afterEvents.itemCompleteUse.subscribe(ev => {
    let duration = ev.useDuration; // 使用時間
    let source = ev.source; // 使用者
    let item = ev.itemStack; // 使用されたアイテム
})

durationは実質使い物にならないらしい(常に0)

16.itemReleaseUse

発火条件:長押しで使用するアイテムの長押しを離したとき
beforeEventsの有無:なし
例:20tickで食べ終わる肉を19tick目で離したとき、durationは1になる。

import { world } from "@minecraft/server";

world.afterEvents.itemReleaseUse.subscribe(ev => {
    let duration = ev.useDuration; // 完了までの残り時間(tick)
    let source = ev.source; // 使用者
    let item = ev.itemStack; // 使用されたアイテム
})

17.itemStartUse

発火条件:長押しで使用するアイテムの使用を始めたとき
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.itemStartUse.subscribe(ev => {
    let duration = ev.useDuration; // 完了までにかかる時間(tick)
    let source = ev.source; // 使用者
    let item = ev.itemStack; // 使用されたアイテム
})

18.itemStartUseOn

発火条件:ブロックの対して右クリックで動作を行ったとき
beforeEventsの有無:なし
例:クワで土を耕す。水バケツで水を設置。ブロックをブロックの側面に設置等々

import { world } from "@minecraft/server";

world.afterEvents.itemStartUseOn.subscribe(ev => {
    let face = ev.blockFace; // 右クリックしたブロックの面(Up,South,North等々)
    let item = ev.itemStack; // 使用したアイテム
    let source = ev.source; // 使用者
    let block = ev.block; // 右クリックされたブロック 
})

19.itemStopUse

発火条件:長押しで使用するアイテムの使用が途中でキャンセルされたとき
beforeEventsの有無:なし

16.itemReleaseUseとほぼ同じ。但し、itemStopUseは使用中にスロットを切り替えても発火するのに対し、itemReleaseUseは発火しないという微妙な違いがある。
例えば、肉を食べてる途中に長押しを離した場合、どちらも発火する。
しかし、肉を食べてる途中に手持ちのアイテムを入れ替えると、itemStopUseしか発火しない。

20.itemUse

発火条件:アイテムを右クリックしたとき
beforeEventsの有無:あり

import { world } from "@minecraft/server";
// afterの場合
world.afterEvents.itemUse.subscribe(ev => {
    let source = ev.source; // 使用者
    let item = ev.itemStack; // 使用されたアイテム
})
import { world } from "@minecraft/server";
// beforeの場合
world.beforeEvents.itemUse.subscribe(ev => {
    let source = ev.source; // 使用者
    let item = ev.itemStack; // 使用されたアイテム
    ev.cancel = true; // イベントのキャンセル
})

※キャンセルをすると、長押しで使用する系のアイテムが使えなくなる。

21.leverAction

発火条件:レバーに状態変化があったとき
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.leverAction.subscribe(ev => {
    let isPowered = ev.isPowered; // レバーの電源の状態(true / false)
    let player = ev.player; // レバーをいじったプレイヤー
    let dimension = ev.dimension; // イベントが発生したディメンション
    let block = ev.block; // ブロック(対象のレバー)
})

22.pistonActivate

発火条件:ワールド内のピストンの伸縮に変化があったとき
beforeEventsの有無:なし

import { world } from "@minecraft/server";

world.afterEvents.pistonActivate.subscribe(ev => {
    let piston = ev.piston; // ブロック(ピストン)の情報
    let isExpanding = ev.isExpanding; // ピストンの伸縮状態(true / false)
    let dimension = ev.dimension; // イベントが発生したディメンション
    let block = ev.block; // ブロック(ピストン)
})

一旦ここでやる気が途切れたのでいつか追記します....

23.playerBreakBlock

発火条件:
beforeEventsの有無:なし

24.playerButtonInput

発火条件:
beforeEventsの有無:なし

25.playerDimensionChange

発火条件:
beforeEventsの有無:なし

26.playerEmote

発火条件:
beforeEventsの有無:なし

27.playerGameModeChange

発火条件:
beforeEventsの有無:なし

28.playerHotbarSelectedSlotChange

発火条件:
beforeEventsの有無:なし

29.playerInputModeChange

発火条件:
beforeEventsの有無:なし

30.playerInputPermissionCategoryChange

発火条件:
beforeEventsの有無:なし

31.playerInteractWithBlock

発火条件:
beforeEventsの有無:なし

32.playerInteractWithEntity

発火条件:
beforeEventsの有無:なし

33.playerInventoryItemChange

発火条件:
beforeEventsの有無:なし

34.playerJoin

発火条件:
beforeEventsの有無:なし

35.playerLeave

発火条件:
beforeEventsの有無:なし

36.playerPlaceBlock

発火条件:
beforeEventsの有無:なし

37.playerSpawn

発火条件:
beforeEventsの有無:なし

38.pressurePlatePop

発火条件:
beforeEventsの有無:なし

39.pressurePlatePush

発火条件:
beforeEventsの有無:なし

40.projectileHitBlock

発火条件:
beforeEventsの有無:なし

41.projectileHitEntity

発火条件:
beforeEventsの有無:なし

42.targetBlockHit

発火条件:
beforeEventsの有無:なし

43.tripWireTrip

発火条件:
beforeEventsの有無:なし

44.weatherChange

発火条件:
beforeEventsの有無:なし

45.worldLoad

発火条件:
beforeEventsの有無:なし

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?