๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ/ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ๋“ค๊ธฐ

[๋งˆ์ธํฌ๋ž˜ํ”„ํŠธ ํ”Œ๋Ÿฌ๊ทธ์ธ๋งŒ๋“ค๊ธฐ] ์ปค๋งจ๋“œ 2. Argument๊ฐ€ ์žˆ๋Š” ์ปค๋งจ๋“œ

PPYOM๐ŸŒŸ 2024. 6. 26. 12:53

 

์•ˆ๋…•ํ•˜์„ธ์š” ๋ฟ€์ž…๋‹ˆ๋‹ค!

 

์ด๋ฒˆ์—” ์ €๋ฒˆ ๊ธ€์— ์ด์–ด์„œ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

์ €๋ฒˆ ๊ธ€์—์„œ๋Š” ์ปค๋งจ๋“œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ๋‹จ์ˆœํ•˜๊ฒŒ ์ถœ๋ ฅํ•˜๊ธฐ๋งŒ ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ์—๋Š” ์ปค๋งจ๋“œ์— ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ํ…์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

 

๊ทธ๋Ÿผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค!!

 

 


 

๋ชฉํ‘œ

ํ…์ŠคํŠธ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ๋ชจ๋‘์—๊ฒŒ ๋ณด์—ฌ์ฃผ๋Š” ์ปค๋งจ๋“œ ๋งŒ๋“ค๊ธฐ

 

 

์„ค๋ช…

์ปค๋งจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ณดํ†ต ์ปค๋งจ๋“œ๋งŒ ์“ฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ธ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค!

์˜ˆ๋ฅผ๋“ค์–ด 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));
        }
    }
}

 

 

๊ฒฐ๊ณผ

 

 

 


 

 

 

์ž˜ ์ฝ์–ด๋ณด์…จ๋‚˜์š”?!

 

๋‹ค์Œ์—๋Š” ํ”Œ๋ ˆ์ด์–ด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ์ปค๋งจ๋“œ ์˜ˆ์ œ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฒ ์Šต๋‹ˆ๋‹ค!!

 

๋ฟ€์ด์˜€์Šต๋‹ˆ๋‹ค ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!

728x90