본문 바로가기

마인크래프트 애드온 제작

블록을 부수는 이벤트 확인하기, 블록 부수면 점수가 올라간다! #애드온제작

 

특정 블록을 부수면 실행되는 이벤트를 제작해봅시다!

 

복붙용 코드


console.warn("불러옴")

import * as server from "@minecraft/server"
import * as ui from "@minecraft/server-ui"

const { world } = server;

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

world.beforeEvents.playerBreakBlock.subscribe((event) => {
    const playername = event.player.name;
    const block = event.block.typeId;

    world.getDimension("overworld").runCommandAsync(`title @a actionbar ${playername}가 ${block}를 캤습니다.`);

    if (block === "minecraft:diamond_ore" || block === "minecraft:deepslate_diamond_ore") {

        world.getDimension("overworld").runCommandAsync(`scoreboard players add ${playername} diamond 1`);
    }

});

// 커스텀 명령어
world.afterEvents.chatSend.subscribe(e => {

    const msg = e.message

    if (msg == "1") {
        e.sender.runCommand("scoreboard objectives add diamond dummy 다이아몬드")
        e.sender.runCommand("scoreboard objectives setdisplay sidebar diamond")
        e.sender.runCommand("/scoreboard players set @a diamond 0")

    }
})


🏆스크립트 API에 대해서 잘 모른다면 다음 글을 참고하세요! 🏆

https://stevecoding.tistory.com/2

 

 

- 💡 채팅명령어 1을 입력해서 스코어보드값 약속하기

 

아래 변수 const msg는 플레이어가 입력한 e.message를 의미해요.

const msg = e.message 

 

- 🚧 블록 부수는 이벤트 받아 스코어보드값 올리고 어떤 블록을 부쉈는지 알리기

 

아래 변수 const playername 은 블록을 부수는 플레이어입니다. event.player.name 문법을 잘 알아두세요.

const playername = event.player.name

 

아래 변수 const block는 부순 블록의 이름입니다. 

const block = event.block.typeId;

 

if문 아래 다음 코드는 명령을 실행하는 모습입니다. ${playername}를 통해 블록을 부순 사람의 스코어보드 값이 올라간다는 것을 잘 보세요!

world.getDimension("overworld").runCommandAsync(`scoreboard players add ${playername} diamond 1`); }

 

 

이해가 안된다면 영상에서 더 자세히 확인해보세요.