You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地测试服务器初始化Minecraft Bukkit插件两次导致启动报错的问题求助

本地测试服务器初始化Minecraft Bukkit插件两次导致启动报错的问题求助

各位大佬好,我正在开发一个Minecraft Bukkit插件,每次启动测试服务器时都会遇到插件重复初始化的错误,具体报错信息如下:

[11:05:09 ERROR]: Error occurred while enabling JizzpowerpluginByAndysepp v0.1.1-indev (Is it up to date?)
java.lang.IllegalArgumentException: Plugin already initialized!
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:281) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.init(PluginClassLoader.java:153) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:57) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at jizzpowerpluginbyandysepp-0.1.1-indev.jar/ch.ksrminecraft.jizzpowerpluginByAndysepp.listeners.SilenceWarden.<init>(SilenceWarden.java:18) ~[jizzpowerpluginbyandysepp-0.1.1-indev.jar:?]
        at jizzpowerpluginbyandysepp-0.1.1-indev.jar/ch.ksrminecraft.jizzpowerpluginByAndysepp.JizzpowerpluginByAndysepp.registerListeners(JizzpowerpluginByAndysepp.java:34) ~[jizzpowerpluginbyandysepp-0.1.1-indev.jar:?]
        at jizzpowerpluginbyandysepp-0.1.1-indev.jar/ch.ksrminecraft.jizzpowerpluginByAndysepp.JizzpowerpluginByAndysepp.onEnable(JizzpowerpluginByAndysepp.java:18) ~[jizzpowerpluginbyandysepp-0.1.1-indev.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:284) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.manager.PaperPluginInstanceManager.enablePlugin(PaperPluginInstanceManager.java:202) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at io.papermc.paper.plugin.manager.PaperPluginManagerImpl.enablePlugin(PaperPluginManagerImpl.java:109) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:520) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.CraftServer.enablePlugin(CraftServer.java:657) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:606) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.MinecraftServer.loadWorld0(MinecraftServer.java:743) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.MinecraftServer.loadLevel(MinecraftServer.java:488) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:322) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1163) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.MinecraftServer.lambda$spin$2(MinecraftServer.java:310) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at java.base/java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.IllegalStateException: Initial initialization
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:284) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.PluginClassLoader.init(PluginClassLoader.java:153) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:57) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at jizzpowerpluginbyandysepp-0.1.1-indev.jar/ch.ksrminecraft.jizzpowerpluginByAndysepp.JizzpowerpluginByAndysepp.<init>(JizzpowerpluginByAndysepp.java:12) ~[jizzpowerpluginbyandysepp-0.1.1-indev.jar:?]
        at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502) ~[?:?]
        at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486) ~[?:?]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:98) ~[paper-api-1.21.4-R0.1-SNAPSHOT.jar:?]
        at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:125) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at io.papermc.paper.plugin.provider.type.spigot.SpigotPluginProvider.createInstance(SpigotPluginProvider.java:35) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at io.papermc.paper.plugin.entrypoint.strategy.modern.ModernPluginLoadingStrategy.loadProviders(ModernPluginLoadingStrategy.java:116) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at io.papermc.paper.plugin.storage.SimpleProviderStorage.enter(SimpleProviderStorage.java:38) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at io.papermc.paper.plugin.entrypoint.LaunchEntryPointHandler.enter(LaunchEntryPointHandler.java:39) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:563) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        at net.minecraft.server.dedicated.DedicatedServer.initServer(DedicatedServer.java:277) ~[paper-1.21.4.jar:1.21.4-164-8eb8e44]
        ... 3 more

这个错误提示Plugin already initialized!,说明我的插件被初始化了两次,但我已经做了以下排查:

  • 试过分别使用Maven打包生成的两个jar包(original-jizzpowerpluginbyandysepp-0.1.1-indev.jar和jizzpowerpluginbyandysepp-0.1.1-indev.jar)单独测试
  • 确认插件文件夹里没有放置重复的插件文件

我根据错误堆栈做了分析:
从报错信息里可以看到,第一次初始化是在主类的构造阶段,而第二次初始化是在初始化SilenceWarden监听器的时候触发的,错误根源指向主类JizzpowerpluginByAndysepp的第12行。

我的主类代码如下:

package ch.ksrminecraft.jizzpowerpluginByAndysepp;

import org.bukkit.plugin.java.JavaPlugin;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.commands.GUICommand;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.commands.PlayerTroll;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.listeners.SilenceWarden;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.listeners.InventoryListener;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.utils.TrollTabCompleter;
import ch.ksrminecraft.jizzpowerpluginByAndysepp.utils.ItemBuilder;


public final class JizzpowerpluginByAndysepp extends JavaPlugin { // <-- line 12
    @Override
    public void onEnable() {
        // Plugin startup logic
        registerCommands();
        registerListeners();

    }

    @Override
    public void onDisable() {
        // Plugin shutdown logic
    }

    private void registerCommands() { // registerCommands() is called in onEnable() to register the commands
        getCommand("troll").setExecutor(new PlayerTroll(this));
        getCommand("troll").setTabCompleter(new TrollTabCompleter(this));
        getCommand("trollgui").setExecutor(new GUICommand(this));
    }

    private void registerListeners( ) { // registerListeners() is called in onEnable() to register the listeners
        getServer().getPluginManager().registerEvents(new SilenceWarden(this), this);
        getServer().getPluginManager().registerEvents(new InventoryListener(this), this);
    }
}

我感觉问题应该出在主类里,但实在看不出哪里有问题,为什么会触发插件的两次初始化呢?恳请各位大佬帮忙指点一下!

备注:内容来源于stack exchange,提问作者Andysepp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:22:59