해당 글은 https://fred16157.github.io/java/java-minecraft-plugin-command/ 글을 참고하여 작성되었습니다.
plugin.yml에 명령어 정보를 추가해주어야 한다.
commands:
jt:
description: 테스트 명령어
usage: /jt, /jtest 를 입력하십시오
aliases:
- jtest
다음과 같이 추가해 주었다.
사용자가 명령어를 입력하면 처리를 할 클래스를 생성한다.
Command를 받아줄 클래스를 생성한 뒤,
package com.jong_plugin.JongPlugin;
import org.bukkit.Material;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
public class Command implements CommandExecutor { //명령어 처리 클래스는 CommandExecutor 인터페이스를 상속해야 한다.
@Override
public boolean onCommand(CommandSender sender, org.bukkit.command.Command command, String label, String[] args) {
if(sender instanceof Player){ //명령어를 사용자가 입력했으면
Player player=(Player) sender; //명령어 사용자 객체를 플레이어 객체로 변환
player.sendMessage("&6아이템을 지급하였습니다.");
ItemStack item=new ItemStack(Material.IRON_INGOT);
item.setAmount(1);
player.getInventory().addItem(item);
return true;
}else if(sender instanceof ConsoleCommandSender){
//콘솔창에서 사용한 경우
sender.sendMessage("플레이어가 아닙니다.");
return false;
}
return false;
}
}
jt 명령어를 입력하면 아이템을 주도록 테스트 코드를 작성하였다.
public class JongPlugin extends JavaPlugin {
@Override
public void onEnable(){
//플러그인 활성화
getLogger().info("Jong Plugin 활성화");
getCommand("jt").setExecutor(new Command());
}
getCommand("jt").setExecutor(new Command()); 코드가 추가 되었다.