Frogguer Postado Novembro 17, 2016 Denunciar Compartilhar Postado Novembro 17, 2016 Olá queria poder adicionar encantamentos no itens da config esta assim o cod public ArrayList<ItemStack> GetDroppedItems() { ArrayList<ItemStack> toreturn = new ArrayList<ItemStack>(); Set<String> droppeditems = configGetter.getConfig().getConfigurationSection("DroppedItems.").getKeys(false); for (String item : droppeditems) { String material = configGetter.getConfig().getString("DroppedItems." + item + ".MATERIAL"); for (int amount = configGetter.getConfig().getInt("DroppedItems." + item + ".AMOUNT"), i = 0; i <= amount; ++i) { toreturn.add(new ItemStack(Material.valueOf(material), 1)); } } return toreturn; } quero deixar desse jeito a config DroppedItems: Item1: MATERIAL: IRON_PICKAXE AMOUNT: 1 ENCANTAMENTO: FORTUNE UNBREAKING Item2: MATERIAL: GOLD_INGOT AMOUNT: 7 Item3: MATERIAL: IRON_INGOT AMOUNT: 5 Item4: MATERIAL: LOG AMOUNT: 3 Link para o comentário Compartilhar em outros sites More sharing options...
Guest VitorEmanoel Postado Novembro 17, 2016 Denunciar Compartilhar Postado Novembro 17, 2016 Tenta isso, fiz rapidin aqui, não sei se combina com seu código, mas tenta usar a mesma logica. String[] guide = main.getConfig().getString("DroppedItems." + item + ".ENCHANT").split("-"); item.addEnchantment(Enchantment.getByName(guide[0].toUpperCase()), Integer.parseInt(guide[1])); Config: Item4: MATERIAL: LOG AMOUNT: 3 ENCHANT: EFICIENCIA-1 -> Level do enchant |>Enchant E claro que você tem que usar o mesmo nome que está nos enum da classe Enchantment. Link para o comentário Compartilhar em outros sites More sharing options...
Frogguer Postado Novembro 17, 2016 Autor Denunciar Compartilhar Postado Novembro 17, 2016 Tenta isso, fiz rapidin aqui, não sei se combina com seu código, mas tenta usar a mesma logica. String[] guide = main.getConfig().getString("DroppedItems." + item + ".ENCHANT").split("-"); item.addEnchantment(Enchantment.getByName(guide[0].toUpperCase()), Integer.parseInt(guide[1])); Config: Item4: MATERIAL: LOG AMOUNT: 3 ENCHANT: EFICIENCIA-1 -> Level do enchant |>Enchant E claro que você tem que usar o mesmo nome que está nos enum da classe Enchantment. deu erro '- quando importa item.addEnchantment(Enchantment.getByName Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 17, 2016 Denunciar Compartilhar Postado Novembro 17, 2016 (editado) deu erro '- quando importa item.addEnchantment(Enchantment.getByName Antes do código do Vítor, ItemStack item = new ItemStack(Material.valueOf(material), 1); Deve dar erro por causa disso,se não for.. não era suposto dar erro Depois disso é do código do Vítor, toreturn.add(item) Editado Novembro 17, 2016 por zAth Link para o comentário Compartilhar em outros sites More sharing options...
Frogguer Postado Novembro 17, 2016 Autor Denunciar Compartilhar Postado Novembro 17, 2016 Antes do código do Vítor, ItemStack item = new ItemStack(Material.valueOf(material), 1); Deve dar erro por causa disso,se não for.. não era suposto dar erro Depois disso é do código do Vítor, toreturn.add(item) deu certo mais da erro na config Item4: MATERIAL: LOG AMOUNT: 3 ENCHANT: EFICIENCIA-1 e como posso por mais de um encantamentos em um item ? Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Novembro 17, 2016 Denunciar Compartilhar Postado Novembro 17, 2016 Da uma olhada nesse código que eu fiz pra um carinha que queria a mesma coisa. https://gist.github.com/leonardosnt/ea205f7e4f1bfaf841af639985054761 O formato seria assim. ID:DATA, QTD, DISPLAY_NAME, ENCANTAMENTO:NIVEL ... Link para o comentário Compartilhar em outros sites More sharing options...
zAth Postado Novembro 18, 2016 Denunciar Compartilhar Postado Novembro 18, 2016 (editado) deu certo mais da erro na config Item4: MATERIAL: LOG AMOUNT: 3 ENCHANT: EFICIENCIA-1 e como posso por mais de um encantamentos em um item ? ItemStack itemstack = new ItemStack(Material.valueOf(material), 1); for(String s : main.getConfig().getStringList("DroppedItems." + item + ".ENCHANT")){ String enchant = s.split("-")[0]; String level= s.split("-")[1]; if(Enchantment.getByName(enchant) != null) { if (Enchantment.getByName(enchant).canEnchantItem(itemstack)) { itemstack.addUnsafeEnchantment(Enchantment.getByName(enchant), Integer.parseInt(level)); } } } toreturn.add(itemstack); config Item4: MATERIAL: LOG AMOUNT: 3 ENCHANT: - 'EFICIENCIA-1' - 'DURABILITY-1' Editado Novembro 18, 2016 por zAth 1 Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Novembro 18, 2016 Denunciar Compartilhar Postado Novembro 18, 2016 Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas.Atenciosamente,Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Frogguer
Olá queria poder adicionar encantamentos no itens da config
esta assim o cod
quero deixar desse jeito a config
Link para o comentário
Compartilhar em outros sites
7 respostass a esta questão
Posts Recomendados