I am developing a minecraft bukkit plugin. Whenever I want to test the plugin by starting a server, the following error appears:
[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
This means that my plugin is getting initialized twice, for whatever reason.
I tried with both plugins which were packaged by maven (original-jizzpowerpluginbyandysepp-0.1.1-indev.jar and jizzpowerpluginbyandysepp-0.1.1-indev.jar) one at a time and made sure there were no duplicate plugins inside the plugin folder. Still, the problem persisted.
I googled the problem and saw that someone had shown how to see where the problem occurred. The error caused by my plugin is like so:
java.lang.IllegalArgumentException: Plugin already initialized!
...
Caused by: java.lang.IllegalStateException: Initial initialization
...
at jizzpowerpluginbyandysepp-0.1.1-indev.jar/ch.ksrminecraft.jizzpowerpluginByAndysepp.JizzpowerpluginByAndysepp.<init>(JizzpowerpluginByAndysepp.java:12) ~[jizzpowerpluginbyandysepp-0.1.1-indev.jar:?]
This means that the error comes from line 12 of my main class (JizzpowerpluginByAndysepp) My main class looks like this:
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);
}
}
My interpretation is that something is wrong with the main class, but I can't see what.
As @Jannis mentioned, the problem lies in the SilenceWarden class. When digging into the problem, I realized that something was wrong with the constructor. So I tried the plugin without said constructor to no avail. Then I realized that SilenceWarden extended JavaPlugin for some reason, something that only the main class may do. So I deleted that extension and presto! I don't know how that happened, maybe ChatGPT didn't know what it was doing. Thanks for your help!