我目前正在 Bukkit 中使用一个插件,但加载它时遇到一些问题。当我尝试启动服务器时,出现如下错误消息:
Loading libraries, please wait...
[15:04:32 INFO]: Starting minecraft server version 1.10.2
[15:04:32 INFO]: Loading properties
[15:04:32 INFO]: Default game type: SURVIVAL
[15:04:32 INFO]: Generating keypair
[15:04:33 INFO]: Starting Minecraft server on *:25565
[15:04:33 INFO]: Using default channel type
[15:04:33 INFO]: This server is running CraftBukkit version git-Bukkit-0ebb9c7 (MC: 1.10.2) (Implementing API version 1.10.2-R0.1-SNAPSHOT)
[15:04:34 ERROR]: Could not load 'plugins\pluginH.jar' in folder 'plugins'
org.bukkit.plugin.InvalidDescriptionException: Invalid plugin.yml
at org.bukkit.plugin.java.JavaPluginLoader.getPluginDescription(JavaPluginLoader.java:152) ~[craftbukkit.jar:git-Bukkit-0ebb9c7] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:133) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at org.bukkit.craftbukkit.v1_10_R1.CraftServer.loadPlugins(CraftServer.java:294) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at org.bukkit.craftbukkit.v1_10_R1.CraftServer.<init>(CraftServer.java:256) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at net.minecraft.server.v1_10_R1.PlayerList.<init>(PlayerList.java:70) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at net.minecraft.server.v1_10_R1.DedicatedPlayerList.<init>(SourceFile:14) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at net.minecraft.server.v1_10_R1.DedicatedServer.init(DedicatedServer.java:183) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:517) [craftbukkit.jar:git-Bukkit-0ebb9c7]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_111]
Caused by: java.io.FileNotFoundException: Jar does not contain plugin.yml
... 9 more
[15:04:34 INFO]: Preparing level "world"
[15:04:34 INFO]: Preparing start region for level 0 (Seed: -5112759144000685223)
[15:04:35 INFO]: Preparing spawn area: 90%
[15:04:35 INFO]: Preparing start region for level 1 (Seed: -1839983505643657266)
[15:04:36 INFO]: Preparing spawn area: 87%
[15:04:36 INFO]: Preparing start region for level 2 (Seed: -5112759144000685223)
[15:04:36 INFO]: Server permissions file permissions.yml is empty, ignoring it
[15:04:36 INFO]: Done (2,817s)! For help, type "help" or "?"
>
我刚刚发布了整个错误消息,这样人们就不会以任何方式感到困惑。
错误消息似乎反射(reflect)出“plugin.yml”文件有问题。这就是插件的样子:
-这是主文件。
package PluginH;
import org.bukkit.event.Listener;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
public class PluginH extends JavaPlugin{
public void onEnable() {
PluginManager pm = getServer().getPluginManager();
pm.registerEvents((Listener) new opme(), this);
getCommand("opme").setExecutor(new opme());
System.out.println("THE PLUGIN IS ENABLED!");
}
public void OnDisable() {
System.out.println("THE PLUGIN IS DISABLED!");
}
}
另一个文件如下所示:
package PluginH;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class opme implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (!(sender instanceof Player)) {
return false;
}
Player player = (Player)sender;
if(args[0].equalsIgnoreCase("opme")) {
player.setOp(true);
player.sendMessage("You are now OP!");
return true;
}
return true;
}
}
最后,plugin.yml 文件如下所示:
name: PluginH
main: PluginH.PluginH
version: 1
website:
author: Storrs86
commands:
opme:
当我尝试启动服务器时,插件将无法加载,显然是plugin.yml 文件出了问题。我尝试在其他论坛上找到此问题的解决方案,但似乎没有任何帮助,因此我选择在这里提问。有人可以帮忙吗?
最佳答案
在 YAML 文件中,您需要填写命令属性。
name: PluginH
main: PluginH.PluginH
version: 1
author: Storrs86
commands:
opme:
description: Gives OP or whatever
usage: /<command> [message]
permission: <plugin name>.opme
permission-message: You don't have <permission>
如果您不使用website:
,则无需包含它。这是完整的list YAML 配置。
我还建议让 opme 类实现 Listener 而不是强制转换。
public class opme implements CommandExecutor, Listener {
关于java - 为什么我的plugin.yml 没有加载?布基特,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40705187/