为什么这个插件(minecraft java)不能工作?

问题描述 投票:-5回答:1

我使用的是eclipse(请记住,我是个初学者),我做了一个bukkit插件,但它不能工作--当它被放到我的Minecraft服务器的插件文件夹中时,它没有改变任何东西,而且自定义命令也不能工作。我已经安装了正确版本的bukkit。有人知道是什么问题吗?

Pastebin - https:/pastebin.comPbhLFic2PbhLFic2

package customcommands;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class customcommands extends JavaPlugin {

    @Override
    public void onEnable() {
        getLogger().info("This plugin is now on and fuctioning");
    }

    @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 false;
    }

    public boolean onCommand1(CommandSender sender, Command cmd, String label, String[] args) {

        if (cmd.getName().equalsIgnoreCase("discord") && sender instanceof Player) {

            Player player = (Player) sender;

            player.sendMessage("§c§lDiscord §8§l- §e Want to connect with us? §e§dhttps://discord.gg/T9fhEDh");
        }
        return false;

    }

    public boolean onCommand2(CommandSender sender, Command cmd, String label, String[] args) {

        if (cmd.getName().equalsIgnoreCase("website") && sender instanceof Player) {

            Player player = (Player) sender;

            player.sendMessage("§c§lShop §8§l- §e Want to visit the server website?  §e§dhttps://noname-mc.enjin.com/");

            return true;
        }
        return false;
    }
}
java minecraft bukkit
1个回答
1
投票

你所提供的片段存在多个问题。我强烈建议你阅读一些教程,专门针对这个问题,可以阅读一下这个。水龙头维基帖对于Bukkit和Spigot来说,这个过程是一样的。

你的命令无法工作是因为你没有注册CommandExecutor,你需要对以下内容进行修改 customcommands:

public class customcommands extends JavaPlugin implements CommandExecutor {

    @Override
    public void onEnable() {
        getLogger().info("This plugin is now on and functioning");
        this.getCommand("hello").setExecutor(this);
    }

但你有多个 onCommand 方法,CommandExecutors并不是这样工作的,你需要为每个新的 /命令,你需要将其放置在其他类中并进行注册。

你还将返回 false 这将提示CommandExecutor将命令的默认用法返回给玩家,就像您的 plugin.yml如果命令成功,你应该返回 true.

我建议你在深入了解Bukkit API之前先尝试一下Java教程,否则你会很吃力。

© www.soinside.com 2019 - 2024. All rights reserved.