java.lang.IllegalArgumentException:插件已初始化。什么';发生什么事了?

java.lang.IllegalArgumentException:插件已初始化。什么';发生什么事了?,java,minecraft,bukkit,Java,Minecraft,Bukkit,当我测试我的新插件时,会不断抛出一个异常:java.lang.IllegalArgumentException:插件已经初始化!请帮忙!代码如下: package me.plugin.example; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.event.Listener; import org.bukkit.ChatColor; import org.bukkit.GameMode; import org.bukk

当我测试我的新插件时,会不断抛出一个异常:java.lang.IllegalArgumentException:插件已经初始化!请帮忙!代码如下:

package me.plugin.example;

import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.event.Listener;
import org.bukkit.ChatColor;
import org.bukkit.GameMode;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;    


public class Main extends JavaPlugin implements Listener {

    @Override
    public void onEnable() {
        getServer().getPluginManager().registerEvents(new Main(), this);
    }

    @EventHandler
    public void onPlayerJoinEvent(PlayerJoinEvent event) {
        Player p = event.getPlayer();
        event.setJoinMessage(ChatColor.AQUA + p.getPlayerListName() +  " has joined the game.");
        p.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "Welcome to the server!");
        p.setGameMode(GameMode.ADVENTURE);

}

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
    Player player = (Player) sender;
    if (cmd.getName().equalsIgnoreCase("example")) {
        player.sendMessage(ChatColor.BOLD + ""+ ChatColor.ITALIC + "Hello! Hope you like to be set on fire. lol :P");
        player.setFireTicks(20);
    }
    return true;

}

@Override
public void onDisable() {

}
} 我知道每个插件只能声明一个JavaPlugin类,我想我正在这么做。但它一直在说:

java.lang.IllegalArgumentException: Plugin already initialized!
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at me.plugin.example.Main.<init>(Main.java:19) ~[?:?]
        at me.plugin.example.Main.onEnable(Main.java:27) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525) [spigot.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.IllegalStateException: Initial initialization
        at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at me.plugin.example.Main.<init>(Main.java:19) ~[?:?]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_201]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_201]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_201]
        at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_201]
        at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_201]
        at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:198) ~[spigot.jar:git-Spigot-db6de12-18fbb24]
        ... 2 more
java.lang.IllegalArgumentException:插件已经初始化!
在org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.plugin.java.JavaPlugin.(JavaPlugin.java:66)~[spiget.jar:git-spiget-db6de12-18fbb24]
at me.plugin.example.Main.(Main.java:19)~[?:?]
at me.plugin.example.Main.oneable(Main.java:27)~[?:?]
在org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340)[spigot.jar:git-spigot-db6de12-18fbb24]
在org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405)[spigot.jar:git-spigot-db6de12-18fbb24]
在org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357)[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317)[spigot.jar:git-spigot-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414)[spigot.jar:git-spigot-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378)[spigot.jar:git-spigot-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333)[spigot.jar:git-spigot-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.dicatedserver.init(dicatedserver.java:263)[spigot.jar:git-spigot-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:525)[spigot.jar:git-spigot-db6de12-18fbb24]
在java.lang.Thread.run(未知源代码)[?:1.8.0_201]
原因:java.lang.IllegalStateException:初始初始化
在org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.plugin.java.JavaPlugin.(JavaPlugin.java:66)~[spiget.jar:git-spiget-db6de12-18fbb24]
at me.plugin.example.Main.(Main.java:19)~[?:?]
在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)~[?:1.8.0_201]
在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源)~[?:1.8.0_201]
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知源)~[?:1.8.0_201]
在java.lang.reflect.Constructor.newInstance(未知源代码)~[?:1.8.0_201]
在java.lang.Class.newInstance(未知源代码)~[?:1.8.0_201]
在org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:76)~[spigot.jar:git-spigot-db6de12-18fbb24]
在org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251)~[spiget.jar:git-spiget-db6de12-18fbb24]
在org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:292)~[spiget.jar:git-spiget-db6de12-18fbb24]
在net.minecraft.server.v1_8_R3.dicatedserver.init(dicatedserver.java:198)~[spiget.jar:git-spiget-db6de12-18fbb24]
... 还有两个

我真的需要测试这个插件,看看它是否工作,任何帮助将不胜感激!谢谢大家!

PluginAlreadyInitialized
当.jar文件包含JavaPlugin类的多个子类时出错。在中的所有插件中仅使用一次JavaPlugin类

我真的建议您将事件处理程序放在一个单独的类中

尝试删除下面的行

getServer().getPluginManager().registerEvents(newmain(),this);

请不要多次问你的问题。

堆栈跟踪清楚地告诉你问题出在哪里
错误:

java.lang.IllegalArgumentException:插件已经初始化!
...
原因:java.lang.IllegalStateException:初始初始化
...
at me.plugin.example.Main.(Main.java:19)~[?:?]
您的代码:

@Override
public void onEnable() {
    getServer().getPluginManager().registerEvents(new Main(), this);
} //<-- 19th line
使用

getServer().getPluginManager().registerEvents(this, this);

据我所见,我的插件中只有一个子类。子类“Main”是唯一使用JavaPlugin的类。所以对我来说,我不明白你想说什么/@MoMoMeer如果有两个插件与主类具有相同的链接(比如一个插件是'com.rb2750.main',另一个是相同的),则会导致此问题。如果每个插件都有一个单独的包,比如'com.rb2750.plugin.Main'可能会更好。我已经将我的包重命名为“me.momomeer.eventexample”,但我仍然会收到相同的错误?发生了什么事?在
onEnable
中,您已经在该类的类实例中,不要实例化新实例,只需传递
这个
指针。@vandench感谢您指出错误!真的帮了大忙,我的插件现在可以工作了!:)谢谢你的评论!它确实帮助了插件。为滥发同样的问题道歉:P
getServer().getPluginManager().registerEvents(this, this);