
์๋ ํ์ธ์ ๋ฟ์ ๋๋ค!
์ด๋ฒ์ ์ ๋ฒ ๊ธ์ ์ด์ด์ ์งํํด๋ณด๊ฒ ์ต๋๋ค!
์ ๋ฒ ๊ธ์์๋ ์ปค๋งจ๋๋ฅผ ์ ๋ ฅํ๋ฉด ๋จ์ํ๊ฒ ์ถ๋ ฅํ๊ธฐ๋ง ํ๋ค๋ฉด ์ด๋ฒ์๋ ์ปค๋งจ๋์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ฉด ํด๋น ํ ์คํธ๋ฅผ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค!
๊ทธ๋ผ ์์ํฉ๋๋ค!!
๋ชฉํ
ํ ์คํธ๋ฅผ ์ ๋ ฅ๋ฐ์์ ๋ชจ๋์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ปค๋งจ๋ ๋ง๋ค๊ธฐ
์ค๋ช
์ปค๋งจ๋๋ฅผ ์ฌ์ฉํ ๋์๋ ๋ณดํต ์ปค๋งจ๋๋ง ์ฐ๋ ๊ฒ์ด ์๋ ์ธ์์ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค!
์๋ฅผ๋ค์ด gamemode์ ๊ฒฝ์ฐ ๋จ๋ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ์๋๋ผ gamemode ๋ณ๊ฒฝํ ๋ชจ๋ (optional)์ฌ์ฉํ ๋์ ์ ์ ๋ ฅํด์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ์ฌ์ฉํ ๋์์ ์ง์ ํ์ง ์๋ ๊ฒฝ์ฐ ํด๋น ๋ช ๋ น์ด๋ฅผ ์ ๋ ฅํ ํ๋ ์ด์ด์ ๊ฒ์ ๋ชจ๋๋ฅผ ๋ณ๊ฒฝํ ๋ชจ๋๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์ด์ฒ๋ผ ์ธ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ฑ ๋ค์ํ ์ปค๋งจ๋๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค!!
๊ทธ๋ผ ์ง์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค!
์ฝ๋
์ ๋ฒ ๊ธ์์ ๋ง๋ ํ๋ก์ ํธ์ ์ด์ด์ ์งํํฉ๋๋ค!
plugin.yml
name: CommandPlugin
version: '${version}'
main: com.ppyom.CommandPlugin
api-version: '1.20'
commands:
...
notice:
description: ๊ณต์ง
usage: /notice <message>
aliases: [n]
NoticeCommand.java
์ปค๋งจ๋ ํด๋์ค์ ๋๋ค.
args.length == 0์ธ ๊ฒฝ์ฐ ๋ด์ฉ์ ์ ๋ ฅํ๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ด์ธ์ ๊ฒฝ์ฐ ์ ๋ ฅ๋ฐ์ ๋ด์ฉ์ ๋ชจ๋์๊ฒ ์ ์กํฉ๋๋ค.
package com.ppyom.command;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class NoticeCommand implements CommandExecutor {
@Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
if(args.length == 0) {
sender.sendMessage("๊ณต์ง๋ฅผ ์ํ ๋ด์ฉ์ ์
๋ ฅํด์ฃผ์ธ์.");
return false;
}
Bukkit.broadcast(Component.text(String.format("\n๐ข %s\n", String.join(" ", args))));
return true;
}
}
CommandPlugin.java
๋ฉ์ธ ํด๋์ค์ ๋๋ค.
์์์ ๋ง๋ ์ปค๋งจ๋ ํด๋์ค๋ฅผ ๋ฑ๋กํด์ฃผ์์ต๋๋ค.
package com.ppyom;
import com.ppyom.command.NoticeCommand;
import com.ppyom.command.TestCommand;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.java.JavaPlugin;
public final class CommandPlugin extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("CommandPlugin Enable");
registerCommand("test", new TestCommand());
registerCommand("notice", new NoticeCommand());
}
@Override
public void onDisable() {
getLogger().info("CommandPlugin Disable");
}
private void registerCommand(String name, CommandExecutor commandExecutor) {
PluginCommand pluginCommand = getServer().getPluginCommand(name);
if(pluginCommand != null) {
pluginCommand.setExecutor(commandExecutor);
} else {
getLogger().warning(String.format("Command %s is not found!", name));
}
}
}
๊ฒฐ๊ณผ

์ ์ฝ์ด๋ณด์ จ๋์?!
๋ค์์๋ ํ๋ ์ด์ด๋ฅผ ์ ๋ ฅ๋ฐ๋ ์ปค๋งจ๋ ์์ ๋ฅผ ๊ฐ์ ธ์ค๊ฒ ์ต๋๋ค!!
๋ฟ์ด์์ต๋๋ค ๊ฐ์ฌํฉ๋๋ค!!