#java #bukkit
#java #буккит
Вопрос:
Я кодирую плагин для друга и сталкиваюсь с проблемой. Когда я добавляю предметы в инвентарь, они не отображаются, когда игрок запускает команду /kits. Вот мой код:
public void createInv() {
inv = Bukkit.createInventory(null, this.getConfig().getInt("slots"), ChatColor.translateAlternateColorCodes('amp;', this.getConfig().getString("header")));
ItemStack item = new ItemStack(Material.matchMaterial(this.getConfig().getString("kits.1.icon")));
ItemMeta meta = item.getItemMeta();
List<String> lore = new ArrayList<String>();
for (String key : this.getConfig().getStringList("kits")) {
lore.clear();
item.setType(Material.matchMaterial(this.getConfig().getString("kits." key ".icon")));
lore.add(this.getConfig().getString("kits." key ".lore"));
meta.setLore(lore);
meta.setDisplayName(ChatColor.translateAlternateColorCodes('amp;', this.getConfig().getString("kits." key ".name")));
item.setItemMeta(meta);
inv.setItem(this.getConfig().getInt("kits." key ".slot"), item);
}
}
Вот моя OnCommand:
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (label.equalsIgnoreCase("kits")) {
if (!(sender instanceof Player)) {
sender.sendMessage("You cannot use this command!");
return true;
}
Player player = (Player) sender;
player.openInventory(inv);
}
return false;
}
Я просмотрел так много форумов и еще не нашел исправления, поэтому любая помощь очень ценится!
Кроме того, это патрубок 1.16.1
Комментарии:
1. Вы получаете сообщение об ошибке? Если это так, пожалуйста, обновите вопрос с помощью трассировки стека.
createInv
Находится в том же классе, что и ваша OnCommand? Если да, то гдеcreateInv
вызывается?
Ответ №1:
public Inventory getInventory() {
Inventory inv = Bukkit.createInventory(null, this.getConfig().getInt("slots"), ChatColor.translateAlternateColorCodes('amp;', this.getConfig().getString("header")));
for (String key : this.getConfig().getStringList("kits")) { //maybe this returns nothing?
ItemStack item = new ItemStack(Material.matchMaterial(this.getConfig().getString("kits.1.icon")));
ItemMeta meta = item.getItemMeta();
List<String> lore = new ArrayList<String>();
lore.clear(); //??? it´s a empty list
item.setType(Material.matchMaterial(this.getConfig().getString("kits." key ".icon")));
lore.add(this.getConfig().getString("kits." key ".lore"));
meta.setLore(lore);
meta.setDisplayName(ChatColor.translateAlternateColorCodes('amp;', this.getConfig().getString("kits." key ".name")));
item.setItemMeta(meta);
inv.setItem(this.getConfig().getInt("kits." key ".slot"), item);
}
return inv;
}
p.openInventory(getInventory()); //later