Mojangcam

마인크래프트 플러그인 - 공지 플러그인 만들기 본문

Minecraft Plugin

마인크래프트 플러그인 - 공지 플러그인 만들기

Mojangcam 2023. 12. 22. 03:15
반응형

 

마인크래프트 플러그인 - 공지 플러그인 만들기

1. 공지 플러그인의 기능

  • 공지 등록: 서버 관리자는 플러그인을 통해 공지 사항을 등록할 수 있습니다.
  • 공지 전달: 등록된 공지는 플러그인이 적용된 서버에 접속한 플레이어들에게 자동으로 전달됩니다.
  • 공지 관리: 서버 관리자는 공지를 추가, 수정, 삭제할 수 있습니다.

2. 공지 플러그인 개발 방법

2.1. 개발 환경 설정

  1. Java 개발 키트(JDK)를 설치합니다.
  2. 통합 개발 환경(IDE)를 설치합니다.
  3. Bukkit 또는 Spigot API를 다운로드합니다.

2.2. 프로젝트 생성

  1. IDE에서 새로운 Java 프로젝트를 생성합니다.
  2. Bukkit 또는 Spigot API를 프로젝트에 추가합니다.

2.3. 공지 플러그인 개발

  1. 플러그인의 메인 클래스를 생성합니다.
  2. 이벤트 리스너를 등록합니다.
  3. 명령어 핸들러를 작성합니다.
  4. 플러그인의 기능을 구현합니다.

3. 소스 코드

Plugin.java


package com.nextplugin.yourplugin;

import java.util.logging.Logger;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.ConsoleCommandSender;

import com.nextplugin.testcommand.testcommand;
/*
 * nextsystem java plugin
 */
public class Plugin extends JavaPlugin {
    private static final Logger LOGGER = Logger.getLogger("nextsystem");
    public ConsoleCommandSender consol = Bukkit.getConsoleSender();

    public void onEnable() {
        getServer().getPluginManager().registerEvents(new GuiListener(), this);

        consol.sendMessage(ChatColor.AQUA + "[플러그인 활성화 중 입니다.]");
        getCommand("test").setExecutor(new testcommand());
        LOGGER.info("plugin enabled");
    }

    public void onDisable() {
        LOGGER.info("plugin disabled");
    }

    public static Plugin getInstance(){
        return getPlugin(Plugin.class);
    }
}
  

testcommand.java


package com.nextplugin.testcommand;

import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import net.md_5.bungee.api.ChatColor;

public class testcommand implements CommandExecutor {
    @Override
    public boolean onCommand(CommandSender sender, Command command, String s, String[] args){
        Player player = (Player) sender;
        if (player.isOp()){
            if(args.length == 0){
                player.sendMessage("사용법 : /test [Message]");
                return false;
            }
            String message = "";
            for (String arg : args){
                message += arg;
                message += " ";
            }
            for (Player recPlayer : Bukkit.getOnlinePlayers()){
                recPlayer.sendMessage("[" +
                                        ChatColor.of(java.awt.Color.yellow) +
                                        "공지" +
                                        ChatColor.of(java.awt.Color.white) +
                                        "]" +
                                        ChatColor.of(java.awt.Color.green) +
                                        " " + message);
            }
        }
        else{
            player.sendMessage("명령어를 사용 할 권한이 없습니다.");
        }
        return true;
    }
}

  

plugin.yml


name: nextsystem
main: com.nextplugin.yourplugin.Plugin
version: 0.0.1
api-version: 1.15
commands :
  test:
    description: test
    usage: /test
  

4. 마무리 인사

지금까지 "마인크래프트 플러그인 - 공지 플러그인 만들기"에 대해 알아보았습니다. 공지 플러그인은 마인크래프트 서버 운영에 있어서 중요한 역할을 수행하므로, 개발에 도전해보세요! 추가적인 도움이 필요하거나 다른 질문이 있으시면 언제든지 물어보세요.

반응형