Skip to content
GitHub

코드 주입

모든 자바로 작성된 코드는 마인크래프트 서버에 주입되어 실행됩니다. 이 과정에서 Bukkit API를 사용하여 서버와 상호작용합니다.

Main 클래스에 아래와 같이 onLoad, onEnable, onDisable 메소드를 작성합니다.

SomeProjectPlugin.java
package dev.erudites.someproject;

import org.bukkit.plugin.java.JavaPlugin;

public class SomeProjectPlugin extends JavaPlugin {

    @Override
    public void onLoad() {
        System.out.println("SomeProjectPlugin is loading...");
    }

    @Override
    public void onEnable() {
        System.out.println("SomeProjectPlugin is enabled!");
    }

    @Override
    public void onDisable() {
        System.out.println("SomeProjectPlugin is disabled!");
    }
}

실행 및 종료 시, 콘솔에 출력된 로그를 확인하면 위 노트와 같은 결과가 나옵니다.

latest.log
Starting Paper...

Starting org.bukkit.craftbukkit.Main

...

[17:36:51 INFO]: [PluginInitializerManager] Initialized 1 plugin
[17:36:51 INFO]: [PluginInitializerManager] Bukkit plugins (1):
 - SomeProject (0.1.0)

...

[17:36:57 INFO]: [SomeProject] Loading server plugin SomeProject v0.1.0
[17:36:57 INFO]: [SomeProject] [STDOUT] SomeProjectPlugin is loading...
[17:36:57 INFO]: Preparing level "world"
[17:37:00 INFO]: Preparing start region for dimension minecraft:overworld
[17:37:02 INFO]: Time elapsed: 1692 ms
[17:37:02 INFO]: Preparing start region for dimension minecraft:the_nether
[17:37:02 INFO]: Time elapsed: 235 ms
[17:37:02 INFO]: Preparing start region for dimension minecraft:the_end
[17:37:02 INFO]: Time elapsed: 168 ms
[17:37:02 INFO]: [SomeProject] Enabling SomeProject v0.1.0
[17:37:02 INFO]: [SomeProject] [STDOUT] SomeProjectPlugin is enabled!

...

[17:37:02 INFO]: Done preparing level "world" (5.761s)
[17:37:02 INFO]: Running delayed init tasks
[17:37:02 INFO]: Done (13.159s)! For help, type "help"

> stop

[17:38:59 INFO]: Stopping the server
[17:38:59 INFO]: Stopping server
[17:38:59 INFO]: [SomeProject] Disabling SomeProject v0.1.0
[17:38:59 INFO]: [SomeProject] [STDOUT] SomeProjectPlugin is disabled!
[17:38:59 INFO]: Saving players
[17:38:59 INFO]: Saving worlds
[17:38:59 INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld

...

[17:39:00 INFO]: ThreadedAnvilChunkStorage: All dimensions are saved