表达式的类型必须是数组类型,但解析为字符串| Java
编辑: 我已经修改了我的代码,做了一些更可靠的事情,尽管我的播放器仍然有错误表达式的类型必须是数组类型,但解析为字符串| Java,java,string,boolean,minecraft,detect,Java,String,Boolean,Minecraft,Detect,编辑: 我已经修改了我的代码,做了一些更可靠的事情,尽管我的播放器仍然有错误 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.bu
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”变量只是一个字符串,所以不能执行字符串[0]
你需要做的就是
strings.equalsIgnoreCase("help")
在这几行代码中,哪一行出现了错误?嗯,那不是我遇到问题的代码行。我对行
if(strings[0].equalsIgnoreCase(“help”){
有问题。另外,当调用getNoPermissionMessage()
时,生成的聊天消息应该是红色还是灰色的?(即,此方法及其调用方构造不良)。嗯,这不是我遇到问题的代码行。我遇到问题的代码行是if(strings[0]。equalsIgnoreCase(“help”){
。噢,ok strings不是数组,所以您不需要[0]