编辑:
我已经修改了我的代码并采用了更可靠的方法,但我的播放器仍然存在错误。
package me.kcsharkfin.commands;
import me.kcsharkfin.alreadysaid.AlreadySaid;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
public class HelpCommand implements CommandExecutor {
private AlreadySaid plugin;
public HelpCommand(AlreadySaid plugin) {
this.plugin - plugin;
plugin.getCommand("help").setExecutor(this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player))
sender.sendMessage("Only Players Have Permission to Execute This Command");
return true;
}
Player p - (Player) sender;
if (p.hasPermission("alreadysaid.command.help"))
p.sendMessgae("Test");
return true;
} else {
p.sendMessage("You Do Not Have Permision To Execute This Command!");
}
return false;
}
}
那是我的 HelpCommand.class,我还有一个 AlreadySaid.class
public void onEnable() {
this.config = new Config(this);
this.config.load();
getServer().getPluginManager().registerEvents(this, (Plugin)this);
new HelpCommand(this);
}
在onEnable部分,我尝试调用该命令,但它似乎对我没有多大帮助。
最佳答案
我相信我在你的 onCommand 方法中发现了你的问题
strings.length()!=1
但是,为了获取java对象数组的长度,您必须使用.length,因此只需将该行替换为
if (strings.length != 1) {
你应该表现得很好!
编辑
好吧,我现在意识到事实恰恰相反 因此,由于您的“strings”变量只是一个字符串,因此您不能执行 strings[0] 您需要做的就是
strings.equalsIgnoreCase("help")
关于java - 表达式的类型必须是数组类型,但它解析为字符串 | java ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081436/