Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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 /帮助<;pluginname>;如果有效,实际命令将不返回任何内容。Minecraft 1.14.4插件_Java_Plugins_Minecraft - Fatal编程技术网

Java /帮助<;pluginname>;如果有效,实际命令将不返回任何内容。Minecraft 1.14.4插件

Java /帮助<;pluginname>;如果有效,实际命令将不返回任何内容。Minecraft 1.14.4插件,java,plugins,minecraft,Java,Plugins,Minecraft,我试图在1.14.4中编写一个minecraft插件,/help firstplugin可以工作,但是/hello不会发送任何消息 我的Main.Java: package com.Epic_Waffle.firstplugin; 导入org.bukkit.command.CommandSender; 导入org.bukkit.entity.Player; 导入org.bukkit.plugin.java.JavaPlugin; 导入com.mojang.brigadier.Command; 导

我试图在1.14.4中编写一个minecraft插件,
/help firstplugin
可以工作,但是
/hello
不会发送任何消息

我的Main.Java:

package com.Epic_Waffle.firstplugin;
导入org.bukkit.command.CommandSender;
导入org.bukkit.entity.Player;
导入org.bukkit.plugin.java.JavaPlugin;
导入com.mojang.brigadier.Command;
导入net.md_5.bungee.api.ChatColor;
公共类Main扩展了JavaPlugin{
@凌驾
public void onEnable(){
System.out.println(“FirstPlugin成功启用!”);
}
@凌驾
公共无效不可撤销(){
System.out.println(“FirstPlugin已禁用,没有错误!”);
}
公共布尔onCommand(CommandSender、Command cmd、字符串标签、字符串[]args){
系统输出打印(cmd);
if(cmd.toString().equals(“/hello”)){
if(播放机的发送方实例){
玩家=(玩家)发送者;
player.sendMessage(ChatColor.YELLOW+“你好!”+ChatColor.GREEN+player.getName()+ChatColor.YELLOW+“您的健康状况已恢复!”);
player.setHealth(20.0);
}否则{
System.out.println(“您不能通过控制台使用此命令”);
}
}
返回false;
}
}
我的plugin.yml

version: 1.0
name: FirstPlugin
main: com.Epic_Waffle.firstplugin.Main
author: Epic_Waffle
description: FirstPlugin
commands:
  hello:
    aliases: []
    description: Cool hello command!

在调用每个命令之前,必须使用spigotapi注册它(请参阅下面的onEnable方法)。您已经通过将命令添加到plugin.yml执行了第一步。我还包括下面这个方法调用的文档。尽管这些是1.16版的文件,但自1.14版以来,在注册CommandExecutor方面没有做任何更改。确保尝试注册的对象实现了
CommandExecutor

public void setExecutor​(@Nullable
CommandExecutor executor)
Sets the CommandExecutor to run when parsing this command
Parameters:
executor - New executor to run


此外,我建议在onCommand方法中使用
Command 35; getName()
而不是我的评论中所述的
toString()

该命令是否像
System.out.print(cmd)那样打印出来建议它应该?它打印什么?它有前导斜杠吗?请尝试使用
cmd.getName()
而不是
cmd.toString()
。请注意,斜杠将不包括在内@Jon什么都没发生我把cmd执行人放在哪里?在主课上?你可以选择放在哪里。但一般来说,如果需要很多逻辑,最好使用不同的类。在您的用例中,在主类中确实可以。
@Override
public void onEnable() {
    this.getCommand("hello").setExecutor( this );
    System.out.println("FirstPlugin successfully enabled!");
}