zNicolas__ Postado Janeiro 24, 2019 Denunciar Compartilhar Postado Janeiro 24, 2019 (editado) Olá a todos, uma boa tarde, bom hoje venho com mais uma dúvida Eu gostaria de uma solução pra pegar meu itemstack via config mas contanto que a config esteja assim PremiosCaixa: - 264 1 name:&cPremio - 276 1 name:&cPremio ench:damage_all=1 - 266 1 name:&cPremio eu até tive uma solução e o código ficou assim: public void setItems() { List<String> section = config.getStringList("PremiosCaixa"); for (String s : section) { List<String> liStrings = new ArrayList<>(Arrays.asList(s.split(" "))); if (liStrings.size() >= 3) { String name = "", ench = ""; int level = 0; ArrayList<String> lore = new ArrayList<>(); for (String string2 : liStrings) { String[] split = string2.split(":"); String lk = split[1].replaceAll("&", "§").replaceAll("_", " "); if (string2.contains("name:")) { name = lk; } if (string2.contains("lore:")) { String[] lores = split[1].split("/"); for (String string3 : lores) { if (string3.contains("_")) { lore.add(string3.replaceAll("_", " ").replaceAll("&", "§")); } else { lore.add(string3.replaceAll("&", "§")); } } } if (string2.contains("enchantment:")) { String enchs[] = string2.substring(12).split("="); ench = enchs[0]; level = Integer.valueOf(enchs[1]); } } if (!name.isEmpty()) { if (!ench.isEmpty() && !lore.isEmpty()) { premios.add(ItemAPI.createitem(Material.getMaterial(Integer.valueOf(liStrings.get(0))), Integer.valueOf(liStrings.get(1)), name, lore, Enchantment.getByName(ench), level)); } else if (!ench.isEmpty() && lore.isEmpty()) { premios.add(ItemAPI.createitem(Material.getMaterial(Integer.valueOf(liStrings.get(0))), Integer.valueOf(liStrings.get(1)), name, Enchantment.getByName(ench), level)); } else if (ench.isEmpty() && lore.isEmpty()) { premios.add(ItemAPI.createitem(Material.getMaterial(Integer.valueOf(liStrings.get(0))), Integer.valueOf(liStrings.get(1)), name)); } } else { premios.add(ItemAPI.createitem(Material.getMaterial(Integer.valueOf(liStrings.get(0))), Integer.valueOf(liStrings.get(1)))); } } else { premios.add(ItemAPI.createitem(Material.getMaterial(Integer.valueOf(liStrings.get(0))), Integer.valueOf(liStrings.get(1)))); } } } Porém tenho certeza de que o código ficou enorme, gostaria de saber se algum de vocês tem alguma solução para obter o itemstack de forma mais prática já pensei de tudo e pesquisei portanto, as pessoas dizem para setar na config como itemstack, mas eu não posso fazer isso porque quero resgatar o itemstack da config do jeito citado no primeiro código... Agradeço desde já !!! ? Editado Janeiro 24, 2019 por zNicolas__ Link para o comentário Compartilhar em outros sites More sharing options...
RUSHyoutuber Postado Janeiro 25, 2019 Denunciar Compartilhar Postado Janeiro 25, 2019 Dessa maneira aqui você tem uma List<String> PremiosCaixa: - 264 1 name:&cPremio - 276 1 name:&cPremio ench:damage_all=1 - 266 1 name:&cPremio A unica maneira de pegar as dessa string sera usando split(" ") para splitar a cada espaço, e depois dentro desse ir fazendo ifs de acordo com cada ação que você quer tomar como setar o nome colocar encantamentos etc... 1 Link para o comentário Compartilhar em outros sites More sharing options...
zNicolas__ Postado Janeiro 25, 2019 Autor Denunciar Compartilhar Postado Janeiro 25, 2019 Bom se só há essa forma eu vou criar uma outra config, pra pegar o itemstack via getItemstack... obrigado Rush !! Link para o comentário Compartilhar em outros sites More sharing options...
InVinicius Postado Janeiro 25, 2019 Denunciar Compartilhar Postado Janeiro 25, 2019 Sua dúvida foi marcada como resolvida pela nossa equipe. Caso sua dúvida não tenha sido sanada, crie outro tópico. OBS: Essa mensagem é automática Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados