当我测试我的插件时,以下异常被抛出:java.lang.非法参数例外:插件已经初始化!
插件可以工作,但事件“AdventureModel”不可以,这是代码:
package net.battleheroes.spigot.spacepvp;
import org.bukkit.Bukkit;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import net.battleheroes.spigot.spacepvp.cmd.Feed;
import net.battleheroes.spigot.spacepvp.cmd.Fly;
import net.battleheroes.spigot.spacepvp.cmd.Heal;
import net.battleheroes.spigot.spacepvp.cmd.Kits;
import net.battleheroes.spigot.spacepvp.cmd.Spacepvp;
import net.battleheroes.spigot.spacepvp.cmd.gamemode;
import net.battleheroes.spigot.spacepvp.util.AdventureMode;
import net.battleheroes.spigot.spacepvp.util.ChatFormatting;
import net.battleheroes.spigot.spacepvp.util.Messages;
public class MainClass extends JavaPlugin implements ChatFormatting, Messages{
public void onEnable() {
Bukkit.getServer().getLogger().info(tag + green + enabled + orange + brand);
registerCommands();
registerEvents();
}
public void onDisable() {
Bukkit.getServer().getLogger().info(tag + red + disabled + orange + brand);
}
public void registerCommands() {
getCommand("spacepvp").setExecutor(new Spacepvp());
getCommand("kit").setExecutor(new Kits());
getCommand("heal").setExecutor(new Heal());
getCommand("feed").setExecutor(new Feed());
getCommand("fly").setExecutor(new Fly());
getCommand("gamemode").setExecutor(new gamemode());
}
public void registerEvents() {
PluginManager pm = getServer().getPluginManager();
pm.registerEvents(new AdventureMode(), this);
}
}
我没有任何其他具有相同类的插件,并且测试服务器目录是空的。
错误
[07:41:11 ERROR]: Error occurred while enabling SpacePVP v0.4 (Is it up to date?)
java.lang.IllegalArgumentException: Plugin already initialized!
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:67) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.battleheroes.spigot.spacepvp.cmd.Fly.<init>(Fly.java:10) ~[?:?]
at net.battleheroes.spigot.spacepvp.MainClass.registerCommands(MainClass.java:40) ~[?:?]
at net.battleheroes.spigot.spacepvp.MainClass.onEnable(MainClass.java:24) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:376) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:326) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.t(MinecraftServer.java:421) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.l(MinecraftServer.java:382) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.a(MinecraftServer.java:337) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:272) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:544) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
Caused by: java.lang.IllegalStateException: Initial initialization
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:125) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:67) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.battleheroes.spigot.spacepvp.MainClass.<init>(MainClass.java:18) ~[?:?]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_121]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_121]
at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_121]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.craftbukkit.v1_11_R1.CraftServer.loadPlugins(CraftServer.java:301) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at net.minecraft.server.v1_11_R1.DedicatedServer.init(DedicatedServer.java:204) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
... 2 more
在构建 Fly
实例期间出现问题,如以下堆栈跟踪摘录中所述。
java.lang.IllegalArgumentException: Plugin already initialized!
at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:122) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:67) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
---> at net.battleheroes.spigot.spacepvp.cmd.Fly.<init>(Fly.java:10) ~[?:?]
at net.battleheroes.spigot.spacepvp.MainClass.registerCommands(MainClass.java:40) ~[?:?]
at net.battleheroes.spigot.spacepvp.MainClass.onEnable(MainClass.java:24) ~[?:?]
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[spigot.jar:git-Spigot-3fb9445-2b6c9f4]
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [spigot.jar:git-Spigot-3fb9445-2b6c9f4]
唉,没有额外的源代码,我只能告诉你这么多。检查< code>Fly的构造函数和/或其超类的构造函数,确保没有尝试创建< code>JavaPlugin派生类的另一个实例。我猜< code>Fly是从< code>MainClass或< code>JavaPlugin扩展而来的。
问题内容: 当我测试新插件时,不断抛出异常:java.lang.IllegalArgumentException:插件已初始化!请帮忙!这是代码: 我知道您只应该为每个插件声明一个JavaPlugin类,我认为我正在这样做。但它一直在说: 我真的需要测试此插件,看看它是否有效,任何帮助将不胜感激!谢谢! 问题答案: stacktrace清楚地指出了问题出在哪里。什么是堆栈跟踪,如何使用它来调试应用
在for循环中,我的目标是破坏其他没有被破坏的玩家。所以,我做了一个新的事件,它的原因是自杀,这样当它破坏玩家时,这个方法就不会被再次调用,最终杀死玩家。我做了我的研究,发现了调用一个新的实体损坏事件来损坏玩家,但它似乎不起作用。我需要一种替代的方法来损坏我的玩家,但不要一次又一次地调用这个事件。 <code>p.Damage(event.getDamage)放置在内部时,事件循环。 注释代码有效
我正在尝试使用buckecord/Bukkit插件消息通道来接收关于玩家的数据(特别是他们在哪个聊天通道),首先从buk kit发送一个插件消息- 我在这里使用了教程,但服务器只是崩溃了,因为当从Bungee服务器接收到插件消息时,不会触发,所以不会触发。 以下是请求信息的代码: 下面是收到的插件消息的代码: 如果有一种方法可以做到这一点,而不需要等待服务器的其余部分(插件的其余部分可以在等待响应
试图在AS上运行检测测试。 ExampleInstrumentedTest.java build.gradle 更新:注释行后- initMocks(this); 它的构建很好(也不例外),但上下文被嘲笑现在是空的。
我想知道是否有一种方法可以使插件具有当用户在我的网站上执行操作时触发的事件。我想这样做来制作一个定制商店,因为我不喜欢 Enjin 或 Buycraft,因为它们不是很可定制。
这是我的测试: 我使用的是NetBeans 8.2。我已经下载了mockito-core-2.7.0.jar,然后选择“test libraries”->“add jar”并添加了mockito-core-2.7.0.jar。 类路径和一切看起来都很好,我仍然得到异常。