2016-11-20 25 views
1

我目前正在使用Bukkit中的插件,但我在加載時遇到了一些問題。當我嘗試啓動服務器的錯誤消息像這樣出現:爲什麼不是我的plugin.yml加載? 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文件是問題。我試圖在其他論壇上找到解決這個問題的辦法,但似乎沒有任何幫助,所以我選擇在這裏問。誰能幫忙?

+0

歡迎來到SO!如果你找到你的答案,給它一個支票作爲接受的答案,所以你可以幫助未來的用戶! – Kerooker

回答

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 { 
0

您沒有正確縮進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