public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(sender instanceof Player) {
Player player = (Player) sender;
if(cmd.getName().equalsIgnoreCase("member")) {
String member = "member " + player.getName();
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), member);
player.sendMessage(getConfig().getStringList("MemberText"));
如何制作player.sendMessage(getConfig()。getStringList(“MemberText”));工作?当我尝试发布时会弹出一条错误消息。
错误:CommandSender类型中的方法sendMessage(String)不适用于参数(List)
答案 0 :(得分:1)
我不是Minecraft Modder,但似乎player.sendMessage()
需要一个字符串,但getConfig().getStringList("MemberText")
的返回类型是List
类型的返回类型。
尝试将结果转换为字符串,或循环浏览,并在列表中的每个项目上sendMessage
。
答案 1 :(得分:1)
循环浏览列表并发送每一行,或者如果配置中只有一行文字更改为getConfig().getStringList("MemberText")
至getConfig().getString("MemberText")
答案 2 :(得分:1)
你可以循环抛出MemberText
配置中的所有值,然后将这些值或其中一个发送给播放器。例如:
List<String> memberTextMessage = new ArrayList<String>();
memberTextMessage = this.getConfig.getStringList("MemberText");
//we now have all of the strings under "MemberText"
for(int i = 0; i < memberTextMessage.size(); i++){
//loop threw all the messages
String s = memberTextMessage.get(i);
player.sendMessage(s); //send the player the string
//This will send them all of the messages under "MemberText" in the config
}
只需确保在将memberTextMessage
分配给配置中的内容之前进行空检查,只是在配置中MemberText
下没有任何内容,否则,您将获得NullPointerException
}:
if(this.getConfig.contains("MemberText"){
否则,向玩家发送一条消息,说明MemberText
下没有任何内容,或者不发送任何内容。