2016-05-24 4 views
0

У меня есть проблемы с моим плагином для Bukkit и Spigot. Когда я использую команду/комплекты, открывается только пустой инвентарь. Вот мой код:Невозможно добавить товар в инвентарь (Bukkit/Spigot)

 for (int i = 0; i<main.cfg.getConfigurationSection("kits").getKeys(false).size();i++) { 
      String s = (String) main.cfg.getConfigurationSection("kits").getKeys(false).toArray()[i]; 
      ItemStack is = new ItemStack(Material.valueOf(main.cfg.getString("kits." + s + ".mat"))); 
      ItemMeta im = is.getItemMeta(); 
      im.setDisplayName(s); 
      is.setItemMeta(im); 
      cont.add(is); 
     } 

стек элемент является допустимым, но когда я kits.add (есть) элемент не добавляется в инвентарь.

  • Я создал комплекты инвентаря с Bukkit.createInventory(null,size,"Kits"); и он показывает правильно
  • После того как я добавил все элементы, я открываю инвентарь с ((Player)sender).openInventory(kits);

Вы видите cont.add(is) в коде, так как Я попытался составить список ItemStack (продолжение), а затем в другом цикле добавить все элементы в инвентарь, но это не должно иметь значения.

ответ

1

Я нашел решение этой проблемы. Это связано с тем, что я вычислил размер инвентаря в зависимости от количества наборов. Сегодня я задавался вопросом, почему у меня было 3 линии в инвентаре и всего 1 комплект. это должно сделать только 1 строку. то я установил его на 54 элемента, поэтому 6 строк в качестве размера инвентаря, и это сработало! Решение: убедитесь, что вы создаете по крайней мере 3 строки в своем инвентаре, тогда это должно сработать.

0

Единственное, что может быть, это «main.cfg.getConfigurationSection (« наборы »). GetKeys (false) .size()» возвращает 0, заставляя код в цикле for никогда не выполняться. Возможно, вы можете добавить «sender.sendMessage (« цикл for работает »); внутри цикла for, чтобы убедиться, что он фактически запущен.

+0

Я уверен, что он запущен, потому что я помещал sysout в цикл для печати данных itemStack. и он потушил данные. – TimoHo

+0

Хм, это сложный ... –

+0

«Хм, это сложный вопрос ... - Билл Рэй 13 часов назад» Да, это так, со всеми моими другими плагинами графический интерфейс над кадастрами работает отлично, но я все сделал точно как в этом. – TimoHo

-1

Это не добавить, это AddItem :)

cont.addItem(is); 
+0

cont is not a Inventory Это список (прочитайте мое редактирование) – TimoHo

+0

О, мой плохой. Это действительно странно. – Ark9026