#system.runの部分を一回だけ実行したい

1 messages · Page 1 of 1 (latest)

young crest
#

'''js
world.beforeEvents.playerInteractWithBlock.subscribe(ev => {
const player = ev.player;
const block = ev.block;

if (player.hasTag("killer")) {
    if (block.typeId === "minecraft:chest") {
        ev.cancel = true;
        system.run(() => {
            player.sendMessage("警備員はチェストを開けれない!");
            player.runCommand("effect @s saturation 1 0 true");
        })
    }    
}

})
'''
この構文の中のsystem.runの中を一回だけ実行するにはどうすればよいでしょうか?

tardy rampart
#
world.beforeEvents.playerInteractWithBlock.subscribe(ev => {
    const player = ev.player;
    const block = ev.block;

    if (player.hasTag("killer")) {
        if (block.typeId === "minecraft:chest") {
            ev.cancel = true;
            player.sendMessage("警備員はチェストを開けれない!");
            player.runCommand("effect @s saturation 1 0 true");
        }
    }
})
wraith vale
#

一回だけってどういうことだ

young crest
#

イベントが発火するたびに1回みたいな...

wraith vale
#

ああ
isFirstEventってことか

#
world.beforeEvents.playerInteractWithBlock.subscribe(ev => {
  const player = ev.player;
  const block = ev.block;

  if (player.hasTag("killer") && block.typeId === "minecraft:chest") {
    ev.cancel = true;
    if (ev.isFirstEvent) {
      system.run(() => {
        player.sendMessage("警備員はチェストを開けれない!");
        player.runCommand("effect @s saturation 1 0 true");
      });
    }
  }
});```多分こう
young crest
#

試してきます