Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 主类中未启用Minecraft插口命令_Java_Bukkit - Fatal编程技术网

Java 主类中未启用Minecraft插口命令

Java 主类中未启用Minecraft插口命令,java,bukkit,Java,Bukkit,我的命令(特别是只有我的cmd2命令)未注册,当我启动服务器时,控制台显示错误。另一个命令cmd1起作用,但cmd2不起作用。我真的不知道为什么,所以我来这里寻求帮助 我的一些主课: package me.Vamp.Test; import me.Vamp.Test.Events.EventsClass; import org.bukkit.ChatColor; import org.bukkit.plugin.java.JavaPlugin; public class Main exten

我的命令(特别是只有我的cmd2命令)未注册,当我启动服务器时,控制台显示错误。另一个命令cmd1起作用,但cmd2不起作用。我真的不知道为什么,所以我来这里寻求帮助

我的一些主课:

package me.Vamp.Test;

import me.Vamp.Test.Events.EventsClass;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

    private Commands commands = new Commands();

    @Override
    public void onEnable() {
        /* Enabler */
        getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "\n\nTest Plugin has been enabled.\n\n");
        /* Events Register */
        getServer().getPluginManager().registerEvents(new EventsClass(), this);
        /* Commands Register */
        getCommand(commands.cmd1).setExecutor(commands);
        getCommand(commands.cmd2).setExecutor(commands);
    }
}
package me.Vamp.Test;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.ArrayList;

public class Commands implements Listener, CommandExecutor {

    public String cmd2 = "getpickaxe";

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender instanceof Player) {

            /*
            /getPickaxe Command
            */

            if (cmd.getName().equalsIgnoreCase(cmd2)) {
                Player player = (Player) sender;
                if (args.length == 0) {
                    commandGetPickaxe(player);
                    return true;
                } else {
                    player.sendMessage(Colors.chat("&c&lERROR &cToo many arguments&8."));
                    return true;
                }
            }

        } else {

            sender.sendMessage(Colors.chat("&c&lERROR &cOnly players can use this command&8."));

            return true;
        }
        return false;
    }

    public void commandGetPickaxe(Player player){
        Inventory inv = player.getInventory();
        ItemStack item = new ItemStack(Material.WOOD_PICKAXE, 1);
        ItemMeta meta = item.getItemMeta();
        ArrayList<String> lore = new ArrayList<String>();

        meta.setDisplayName(Colors.chat("&3Wooden Pickaxe"));
        lore.add(Colors.chat("&7&oThe Starter Pickaxe&8&o."));
        meta.setLore(lore);
        item.setItemMeta(meta);

        inv.addItem(new ItemStack(item));
        player.sendMessage(Colors.chat("&8&l» &3You have received a Wooden Pickaxe&8."));
    }
}
以下类(命令)仅针对出错的命令(cmd2)显示。如果需要cmd1的代码,我将显示它。 我的一些命令类:

package me.Vamp.Test;

import me.Vamp.Test.Events.EventsClass;
import org.bukkit.ChatColor;
import org.bukkit.plugin.java.JavaPlugin;

public class Main extends JavaPlugin {

    private Commands commands = new Commands();

    @Override
    public void onEnable() {
        /* Enabler */
        getServer().getConsoleSender().sendMessage(ChatColor.GREEN + "\n\nTest Plugin has been enabled.\n\n");
        /* Events Register */
        getServer().getPluginManager().registerEvents(new EventsClass(), this);
        /* Commands Register */
        getCommand(commands.cmd1).setExecutor(commands);
        getCommand(commands.cmd2).setExecutor(commands);
    }
}
package me.Vamp.Test;

import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.ArrayList;

public class Commands implements Listener, CommandExecutor {

    public String cmd2 = "getpickaxe";

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
        if (sender instanceof Player) {

            /*
            /getPickaxe Command
            */

            if (cmd.getName().equalsIgnoreCase(cmd2)) {
                Player player = (Player) sender;
                if (args.length == 0) {
                    commandGetPickaxe(player);
                    return true;
                } else {
                    player.sendMessage(Colors.chat("&c&lERROR &cToo many arguments&8."));
                    return true;
                }
            }

        } else {

            sender.sendMessage(Colors.chat("&c&lERROR &cOnly players can use this command&8."));

            return true;
        }
        return false;
    }

    public void commandGetPickaxe(Player player){
        Inventory inv = player.getInventory();
        ItemStack item = new ItemStack(Material.WOOD_PICKAXE, 1);
        ItemMeta meta = item.getItemMeta();
        ArrayList<String> lore = new ArrayList<String>();

        meta.setDisplayName(Colors.chat("&3Wooden Pickaxe"));
        lore.add(Colors.chat("&7&oThe Starter Pickaxe&8&o."));
        meta.setLore(lore);
        item.setItemMeta(meta);

        inv.addItem(new ItemStack(item));
        player.sendMessage(Colors.chat("&8&l» &3You have received a Wooden Pickaxe&8."));
    }
}
package me.Vamp.Test;
导入org.bukkit.Material;
导入org.bukkit.command.command;
导入org.bukkit.command.CommandExecutor;
导入org.bukkit.command.CommandSender;
导入org.bukkit.entity.Player;
导入org.bukkit.event.Listener;
导入org.bukkit.inventory.inventory;
导入org.bukkit.inventory.ItemStack;
导入org.bukkit.inventory.meta.ItemMeta;
导入java.util.ArrayList;
公共类命令实现侦听器、命令执行器{
公共字符串cmd2=“getpickaxe”;
@凌驾
公共布尔onCommand(CommandSender、Command cmd、字符串标签、字符串[]args){
if(播放机的发送方实例){
/*
/getPickaxe命令
*/
if(cmd.getName().equalsIgnoreCase(cmd2)){
玩家=(玩家)发送者;
如果(args.length==0){
命令鹤嘴锄(玩家);
返回true;
}否则{
player.sendMessage(Colors.chat(&c&lERROR&cToo-many-arguments&8.);
返回true;
}
}
}否则{
sender.sendMessage(Colors.chat(&c&lERROR&cOnly玩家可以使用这个命令&8”);
返回true;
}
返回false;
}
公共无效命令鹤嘴锄(玩家){
Inventory=player.getInventory();
ItemStack item=新ItemStack(Material.WOOD\u鹤嘴锄,1);
ItemMeta=item.getItemMeta();
ArrayList lore=新的ArrayList();
meta.setDisplayName(Colors.chat(&3woody pickex));
lore.add(Colors.chat(&7&other启动镐&8&o.));
梅塔·塞洛尔(lore);
item.setItemMeta(meta);
存货附加项(新项目堆栈(项目));
player.sendMessage(Colors.chat(&8&l»&3您收到了一把木制鹤嘴锄&8.);
}
}
这只是我的控制台上的显示错误

我的控制台


我可以建议您添加大量打印语句以查看什么是空的吗

/* Commands Register */
System.out.println("cmd1 " + commands.cmd1);
System.out.println("cmd2 " + commands.cmd2);
System.out.println("cmdObj " + commands);
getCommand(commands.cmd1).setExecutor(commands);
getCommand(commands.cmd2).setExecutor(commands);
编辑1:似乎您缺少plugin.yml中的命令?
有可能是打字错误,仔细看。如果您认为一切都很好,但错误仍然存在,请编辑您的原始帖子并包含plugin.yml文件。谢谢

这回答了你的问题吗?对不起,但这与Bukkit或Minecraft无关。我敢肯定,这个错误与Bukkit代码有关。给你:[11:55:13信息]:cmd1 testplugin[11:55:13信息]:cmd2 getpickaxe[11:55:13信息]:cmdObj me.Vamp.Test。Commands@58d58c1c[11:55:13错误]:(与以前完全相同的错误)另外,命令1(cmd1)可以工作,它只是命令2(cmd2)尝试执行时出现问题。顺便说一句,我已成功复制了你的错误,现在让我找到一个修复@VampI认为我找到了答案,让我检查一下,我将在2秒钟内更新帖子:)谢谢回答我的问题!我完全忘了把它添加到plugin.yml中,所以谢谢你提醒我!:)