【问题标题】:Why won't this plugin (for minecraft java) work?为什么这个插件(用于 minecraft java)不起作用?
【发布时间】:2020-06-02 04:45:49
【问题描述】:

我使用 eclipse(请记住,我是初学者),我制作了一个不起作用的 bukkit 插件 - 当它放入我的 Minecraft 服务器的插件文件夹时,它不会改变任何东西,并且自定义命令不起作用。我已经安装了正确版本的 bukkit。有谁知道怎么回事?

Pastebin - https://pastebin.com/PbhLFic2PbhLFic2

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

【问题讨论】:

  • 您需要在问题中发布相关代码,而不仅仅是链接到我们必须下载的另一个站点。
  • 您还需要详细说明“不起作用”。
  • @JosephSible-ReinstateMonica - 抱歉,提案已修复。谢谢!
  • 您可以通过将多行代码放在三个反引号中来包含多行代码。像这样:int a = 0;。如果您还将“java”添加到反引号的第一个三元组,您还将获得语法突出显示。
  • @MelvinWM 您能否详细说明或给我看一下您的意思?我不太清楚你的意思是什么

标签: java minecraft bukkit


【解决方案1】:

您提供的 sn-p 存在多个问题。我强烈建议你通读一些教程,专门针对这个问题,阅读这个Spigot Wiki post; 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 不能这样工作,你需要为每个新的/command 创建一个新的CommandExecutor,你需要将它们放在其他类中并注册它们.

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

我建议您在深入学习 Bukkit API 之前先尝试 Java 教程,否则您会遇到困难。

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    相关资源
    最近更新 更多