【问题标题】:Why isn't my plugin.yml loading? Bukkit为什么我的 plugin.yml 没有加载?布吉
【发布时间】:2016-11-20 14:26:20
【问题描述】:

我目前正在使用 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 "?"
>

我刚刚发布了整个错误消息,以免人们以任何方式感到困惑。

错误消息似乎表明“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 文件是问题所在。我试图在其他论坛上找到解决此问题的方法,但似乎没有任何帮助,因此我选择在这里提问。有人可以帮忙吗?

【问题讨论】:

  • 欢迎来到 SO!如果您找到了答案,请将其勾选为已接受的答案,这样您就可以帮助未来的用户!

标签: java plugins bukkit


【解决方案1】:

在 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:。这是 YAML 配置的完整 list

我还建议让 opme 类实现 Listener 而不是强制转换。

public class opme implements CommandExecutor, Listener {

【讨论】:

    【解决方案2】:

    您没有正确缩进 plugin.yml。下面是正确缩进的 plugin.yml 示例。

    name: PluginName
    version: 1.0
    main: package.MainClass
    author: DamnHippo
    
    commands:
      cmdname:
        description: How to use the command.
        usage: /cmdname <args>
    

    这里是 plugin.yml 文档的链接以及您可以在其中使用的函数。 http://wiki.bukkit.org/Plugin_YAML

    【讨论】:

      猜你喜欢
      • 2015-12-24
      • 2012-01-09
      • 1970-01-01
      • 2016-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 2013-06-16
      相关资源
      最近更新 更多