Ir para conteúdo
  • 0

[Duvida] menu Gui


zKingOfKill

Pergunta

Pessoal to com uma duvida meio chata, tipo
 

     String[] enchantLevels = this.config.getEnchantLevels(ench);
    List<String> levels = new ArrayList();
    
     for (String enchantLevel : enchantLevels) {
       enchantLevel = enchantLevel.substring(5);
       int level = Integer.parseInt(enchantLevel);
      if (this.permsys.hasEnchantPermission(p, ench, level)) {
         ItemStack tmp = item.clone();
         ItemMeta meta = tmp.getItemMeta();
        List<String> lores = new ArrayList();
        lores.add(ChatColor.GOLD + "Nivel: " + level);
         if (!(this.config.getEconomy() instanceof NullPayment)) {
          int price = this.config.getPrice(ench, level);

           lores.add(ChatColor.GREEN + "Preço: " + price);
         }
        lores.add(ChatColor.GOLD + "Rank necessario: " + level);
        meta.setLore(lores);
         tmp.setItemMeta(meta);
         
        itemlist.add(tmp);
         levels.add(enchantLevel);
       }
     }

Pessoal basicamente esse codigo acima faz isso aqui, que ta no print,

sabe essa linha aqui  "lores.add(ChatColor.GOLD + "Rank necessario: " + level);"

 

preciso fazer algo que mostre o rank necessario dependendo do nivel

exemplo:  se for numero 1, mostre o rank necessario novato, e se for 2 mostre membro, se for 3 mostre carvao

nao sei se consegui explicar mt bem.. mas espero que tenham entendido..

 

ja tentei de tudo e nao consigo '-', alguem ajuda?

 

ddd.png

Editado por zKingOfKill
Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

Eu quero meio que dar um replace pra substuir o numero (do level) por um nome (que no caso é o nome do rank)..

e exibir isso ai nessa linha "lores.add(ChatColor.GOLD + "Rank necessario: " + level);"

 String[] enchantLevels = this.config.getEnchantLevels(ench);
    List<String> levels = new ArrayList();
    
     for (String enchantLevel : enchantLevels) {
       enchantLevel = enchantLevel.substring(5);
       int level = Integer.parseInt(enchantLevel);
      if (this.permsys.hasEnchantPermission(p, ench, level)) {
         ItemStack tmp = item.clone();
         ItemMeta meta = tmp.getItemMeta();
        List<String> lores = new ArrayList();
        lores.add(ChatColor.GOLD + "Nivel: " + level);
         if (!(this.config.getEconomy() instanceof NullPayment)) {
          int price = this.config.getPrice(ench, level);

           lores.add(ChatColor.GREEN + "Preço: " + price);
         }
        String level_name = "";
        if (level == 1)
            name = "Novato";
        if (level == 2)
            name = "Básico";
        // ...
        lores.add(ChatColor.GOLD + "Rank necessario: " + level_name);
        meta.setLore(lores);
         tmp.setItemMeta(meta);
         
        itemlist.add(tmp);
         levels.add(enchantLevel);
       }
     }
Link para o comentário
Compartilhar em outros sites

Você quer pegar o rank necessário através do level?

Eu quero meio que dar um replace pra substuir o numero (do level) por um nome (que no caso é o nome do rank)..

e exibir isso ai nessa linha "lores.add(ChatColor.GOLD + "Rank necessario: " + level);"

Link para o comentário
Compartilhar em outros sites

 String[] enchantLevels = this.config.getEnchantLevels(ench);
    List<String> levels = new ArrayList();
    
     for (String enchantLevel : enchantLevels) {
       enchantLevel = enchantLevel.substring(5);
       int level = Integer.parseInt(enchantLevel);
      if (this.permsys.hasEnchantPermission(p, ench, level)) {
         ItemStack tmp = item.clone();
         ItemMeta meta = tmp.getItemMeta();
        List<String> lores = new ArrayList();
        lores.add(ChatColor.GOLD + "Nivel: " + level);
         if (!(this.config.getEconomy() instanceof NullPayment)) {
          int price = this.config.getPrice(ench, level);

           lores.add(ChatColor.GREEN + "Preço: " + price);
         }
        String level_name = "";
        if (level == 1)
            name = "Novato";
        if (level == 2)
            name = "Básico";
        // ...
        lores.add(ChatColor.GOLD + "Rank necessario: " + level_name);
        meta.setLore(lores);
         tmp.setItemMeta(meta);
         
        itemlist.add(tmp);
         levels.add(enchantLevel);
       }
     }

 

Funcionou, so que é "lores.add(ChatColor.GOLD + "Rank necessario: " + name);

 

 

Agora tem outro problema, tipo como são varios encantamentos, definir um level geral nao é mt funcional..

 

Queria dividir isso ai por encantamentos...

 

 

tipo se o encantamento for  knockback e o nivel for 1 entao exibi um nome em rank necessario, se o encantamento e o numero forem outro entao aparece outro nome..

Editado por zKingOfKill
Link para o comentário
Compartilhar em outros sites


	
	public String getRankForLevel(int level){ // 5 e um exempo, o level voce pega ai da forma que tu ja fez...
		for(String s:getConfig().getConfigurationSection("Leveis").getKeys(false)){
			String levelR = s; // s = Level1,Level2,Level3,etc...
			// Level = 5 letras, ent removemos o Level e sobra so o level...
			levelR=levelR.substring(5);
			int rankParse = Integer.parseInt(levelR);
			if(level==rankParse){
				return getConfig().getString("Leveis.Level"+level+".Rank");
			}
		}
		
		/* Na config ficara assim:
		 Leveis:
		   Level1:
		     Rank: "Novado"
		   Level2:
		     Rank: "Membro"
		 * */
		return "null";
	}

Tá ai o método e explicando como por na config também... Qq coisa pergunta

Link para o comentário
Compartilhar em outros sites


	
	public String getRankForLevel(int level){ // 5 e um exempo, o level voce pega ai da forma que tu ja fez...
		for(String s:getConfig().getConfigurationSection("Leveis").getKeys(false)){
			String levelR = s; // s = Level1,Level2,Level3,etc...
			// Level = 5 letras, ent removemos o Level e sobra so o level...
			levelR=levelR.substring(5);
			int rankParse = Integer.parseInt(levelR);
			if(level==rankParse){
				return getConfig().getString("Leveis.Level"+level+".Rank");
			}
		}
		
		/* Na config ficara assim:
		 Leveis:
		   Level1:
		     Rank: "Novado"
		   Level2:
		     Rank: "Membro"
		 * */
		return "null";
	}

Tá ai o método e explicando como por na config também... Qq coisa pergunta

 

eu preciso separar isso ai por encantamentos.. tipo definir rank de acordo com o encantamento e o level..

Link para o comentário
Compartilhar em outros sites

Ficaria mais ou menos assim:

/* Configuração */

enchantments:
  protection:
    name: '&b&oProteção contra Projéteis'
    levels:
      1:
	name: 'Novato'
        price: 300

/* Código */	
	
for (String enchantmentName : getConfig().getConfigurationSection("enchantments").getKeys(false)) {
	for (String enchantmentLevel : getConfig().getConfigurationSection("enchantments." + enchantmentName + ".levels").getKeys(false)) {
		im.setDisplayName(getConfig().getString("enchantments." + enchantmentName + ".name").replace("&", "§"));
		ArrayList<String> lore = new ArrayList<String>();
		lore.add(ChatColor.GOLD + "Level: " + getConfig().getString("enchantments." + enchantmentName + ".levels." + enchantmentLevel));
		lore.add(ChatColor.GREEN + "Preço: " + getConfig().getInt("enchantments." + enchantmentName + ".levels." + enchantmentLevel + ".price"));
		lore.add(ChatColor.GOLD + "Rank necessário: " + getConfig().getString("enchantments." + enchantmentName + ".levels." + enchantmentLevel + ".name"));
		im.setLore(lore);
		tmp.setItemMeta(im);
	}
}
Editado por GamerVanini
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...