모든 자바로 작성된 코드는 마인크래프트 서버에 주입되어 실행됩니다. 이 과정에서 Bukkit API를 사용하여 서버와 상호작용합니다.
onLoad, onEnable, onDisable 메소드
Section titled “onLoad, onEnable, onDisable 메소드”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