[Minecraft plugin] HotTime Event - 테스트 커맨드 작성

jong·2021년 3월 8일
0

취미

목록 보기
7/12

플러그인 기능 추가

plugin.yml 명령어 추가

name: HotTimeEvent
main: io.github.potato_y.hottimeevent.HotTimeEvent
version: 1.0

commands:
  HottimeEventTest:
    description: 플러그인이 정상 작동하는지 확인하세요.
    usage: /HET 를 입력하세요.
    aliases: 
      - HET
    permission: hottimeevent.het
    permission-message: You do not have permission to use this command.

permissions:
  hottimeevent.het:
    default: op

전입점 추가


테스트 명령어를 수행할 코드를 새 클래스를 생성해 넣어주기로 했다.

HotTimeEvent class

    ...
    
    @Override
    public void onEnable(){
        //플러그인 활성화
        getLogger().info("§eHotTime event on");
        //플러그인 활성화
+       getCommand("hottimeeventtest").setExecutor(new TestCommand());
    }
    
    ...

명령어 수행 코드

TestCommand

public class TestCommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String s, String[] strings) {

        Bukkit.broadcastMessage("[ §cHotTime Event§f ] 모든 유저에게 테스트 아이템을 지급합니다."); //모든 유저에게 메시지 전송
        ItemStack item = new ItemStack(Material.matchMaterial("paper")); //종이 아이템 생성
        ItemMeta itemMeta = item.getItemMeta(); //아이템 메타 데이터 생성 및 미리 생성한 아이템 메타 데이터 가져오기기
        itemMeta.setDisplayName("§cHotTime Event!"); //아이템 이름 변경
        item.setItemMeta(itemMeta); //변경한 메타 아이템 입혀주기

        for (Player p : Bukkit.getOnlinePlayers()) { //모든 플레이어에게
            p.getInventory().addItem(item); //플레이어에게 아이템 부여
            p.sendMessage("[ §cHotTime Event§f ] " + p.getName() + " 님 아이템이 도착하였습니다."); //도착 메시지

        }
        return true; //정상 작동
    }
}

기능은 정상적으로 작동하는 것을 확인했다. 다만 aliases가 정상적으로 작동하지 않는 문제를 확인했다. hett로 변경하니 정상 작동하는 것으로 보아 het가 사용할 수 없는 명령어 문구인듯하다.

profile
공부 기록

0개의 댓글