반응형
SMALL
이전 강의
아직 1강을 보지 않으신 분들은 보고 오시기 바랍니다!
커스텀 커맨드
마인크래프트에서 제공하지 않는 기능들을 플러그인을 통해 직접 만들 수 있습니다! 새로운 명령어를 만들어서 기능을 만들어봅시다.
① 새로운 Java Class 만들기
② 코드 작성하기
1. CommandExecutor 구현
package com.example.myplugin;
import org.bukkit.command.CommandExecutor;
public class MyCommandExecutor implements CommandExecutor {
}
2. onCommand 메서드 구현하기
package org.blog.pluginExample;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class MyCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
return false;
}
}
3. onCommand 함수 내용 작성하기
package org.blog.pluginExample;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
public class MyCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, Command cmd, @NotNull String label, String[] args) {
if(cmd.getName().equalsIgnoreCase("test")) {
if(sender instanceof Player) {
sender.sendMessage("플러그인 작동");
return false;
}
sender.sendMessage("========================" + "\r \n"
+ " 콘솔창에서 입력되었습니다." + "\r\n"
+ " 플레이어가 치시기 바랍니다." + "\r\n"
+ " ========================");
return false;
}
return true;
}
}
<코드 설명>
1. public boolean onCommand(@NotNull CommandSender sender, Command cmd, @NotNull String label, String[] args)
2. if(cmd.getName().equalsIgnoreCase("test")) {
3. if(sender instanceof Player) {
4. sender.sendMessage("플러그인 작동");
5. return false;
6. sender.sendMessage("========================" + "\r \n" + " 콘솔창에서 입력되었습니다." + "\r\n" + " 플레이어가 치시기 바랍니다." + "\r\n" + " ========================");
③ plugin.yml 작성하기
commands:
test:
description: "플러그인의 작동 여부를 알려줍니다."
usage: /test
④ PluginExample 클래스와 MyCommand 클래스 연결하기
package org.blog.pluginExample;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.Objects;
public final class PluginExample extends JavaPlugin {
@Override
public void onEnable() {
// Plugin startup logic
getLogger().info("플러그인이 활성화되었습니다.");
Objects.requireNonNull(this.getCommand("test")).setExecutor(new MyCommand());
}
@Override
public void onDisable() {
// Plugin shutdown logic
getLogger().info("플러그인이 비활성화되었습니다.");
}
}
Objects.requireNonNull(this.getCommand("test")).setExecutor(new MyCommand());
<코드 설명>
1. this.getCommand("test"):
commands:
test:
description: "Test command"
2. Objects.requireNonNull(this.getCommand("test")):
3. .setExecutor(new MyCommand()):
4. 이 코드를 onEnable()에 작성하는 이유:
⑤ jar 파일 빌드하기
⑥ 플러그인이 잘 적용되었는지 확인하고 명령어 테스트하기
마무리
반응형
LIST
'마인크래프트 플러그인' 카테고리의 다른 글
마인크래프트 플러그인 강좌 4강 - 커스텀 스코어보드 구현 (0) | 2024.11.25 |
---|---|
마인크래프트 플러그인 강좌 3강 - 커스텀 인벤토리 구현 (0) | 2024.11.23 |
마인크래프트 플러그인 강좌 1강 - 첫 플러그인 만들기 (3) | 2024.11.21 |
마인크래프트 플러그인 강좌 0강 - 준비하기 (2) | 2024.11.20 |