我制作bukkit插件比较新,我对java有基本的了解。我的插件不起作用。从我在其他论坛上看到的情况来看,这是一个常见的错误,但没有一个解决方案有效。
这是我的错误:
[16:18:19 ERROR]: Could not load 'plugins/MtgCraft.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: Cannot find main class `me.sporech.MagictgCraft'
我的plugin.yml:
name: MtgCraft
main: me.sporech.MagictgCraft
version: 1.8
author: Sporech
description: A basic plugin
我的代码是:
package me.sporech;
import java.util.Set;
import org.bukkit.Material;
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.PlayerInteractEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class MagictgCraft extends JavaPlugin {
public static MagictgCraft plugin;
@Override
public void onEnable(){
getLogger().info("this is the plugin doing it");
}
@Override
public void onDisable(){
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("hello") && sender instanceof Player) {
Player player = (Player) sender;
player.sendMessage("Hello, " + player.getName() + "!");
return true;
}
return false;
}
@EventHandler
public void onPlayerInteractBlock(PlayerInteractEvent event) {
Player player = event.getPlayer();
if (player.getItemInHand().getType() == Material.STICK) {
player.getWorld().strikeLightning(player.getTargetBlock((Set<Material>) null, 200).getLocation());
}
}
}
答案 0 :(得分:2)
错误在于您的plugin.yml
,而不是您的代码。确保plugin.yml包含在默认包中,并在导出/压缩后在jar中。
它表示您的描述无效(“InvalidDescriptionException
”);它可能太短了,但这只是猜测。如果延长您的描述不起作用,请尝试使用“>
”和换行符进行描述,然后在下一行中写下描述,前面至少有8个空格,如下例中所示插件:
description: >
This super simple plugin has so many features your head may just implode.
以上工作在我的插件中,但老实说它不应该是必要的。不过,值得一试。
编辑:
对于不想筛选评论的未来读者,问题是plugin.yml
未包含在“src”文件夹中或导出的jar的默认包中。始终确保您的plugin.yml
在默认包中的导出jar中!