Ir para conteúdo
  • 0

Dono da cabeça


JRaphael

Pergunta

Essa é a forma certa de setar o dono da cabeça? Eu não sei se fiz de forma errada ou se interfere porque o servidor não está em online mode.


                                    cabecaa.setItemMeta(cmeta);
                                    SkullMeta ccmeta = (SkullMeta) cabecaa.getItemMeta();
                                    ccmeta.setOwner(Bukkit.getServer().getOfflinePlayer(youtubers.get(c)).getUniqueId().toString()); // Aqui
                                    cabecaa.setItemMeta(ccmeta);

Outras partes do código:

 

 

Arraylist de youtubers:

 

 

                            ArrayList<String> youtubers = new ArrayList();
                            
                            for (Player todos : Bukkit.getOnlinePlayers()){
                                if (todos.hasPermission("jyoutube.youtuber")){
                                    youtubers.add(todos.getName());
                                }
                            }

 

 

Criando inventário e adicionando as cabeças

 

 

                                Inventory youtubergui = Bukkit.createInventory(null, tamanho, "Youtubers Online");
                                ArrayList<ItemStack> cabecasy = new ArrayList();
                                
                                for (int c = 0;c<youtubers.size();c++){
                                    ItemStack cabecaa = new ItemStack(397, 1, (short)3);
                                    ItemMeta cmeta = cabecaa.getItemMeta();
                                    cmeta.setDisplayName(ChatColor.GOLD + youtubers.get(c));
                                    ArrayList<String> clore = new ArrayList();
                                    clore.add(" §eNick: §7" + youtubers.get(c));
                                    clore.add(" §eCanal: §7em desenvolvimento");
                                    clore.add(" §eInscritos: §7em desenvolvimento");
                                    cmeta.setLore(clore);
                                    cabecaa.setItemMeta(cmeta);
                                    SkullMeta ccmeta = (SkullMeta) cabecaa.getItemMeta();
                                    ccmeta.setOwner(Bukkit.getServer().getOfflinePlayer(youtubers.get(c)).getUniqueId().toString());
                                    cabecaa.setItemMeta(ccmeta);
                                    cabecasy.add(cabecaa);
                                }
                                
                                for (int cc = 0;cc<cabecasy.size();cc++){
                                    youtubergui.addItem(cabecasy.get(cc));
                                }
                                
                                p.openInventory(youtubergui);

 

 

 

 

 

 

Testei entrando em um nick de uma amiga (original) pelo launcher pirata e não apareceu skin.

kx3nNFEURmW7TfBl_T8kDQ.png

Ow2g0KRaRG_RK893fFxjuA.png

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

(No primeiro for, você pode simplesmente mudar para for(ItemStack item : cabecazy) )

 

Para setar a cabeça é através do nome, aqui vai um exemplo: 

private ItemStack getHead(String nome, String motivo) {

		ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
		SkullMeta meta = (SkullMeta) item.getItemMeta();
		meta.setDisplayName("§cJogador " + nome);
		List<String> lore = new ArrayList<>();
		lore.add(" ");
		for (String s : stringSeparator(motivo)) {
			lore.add(" §7" + s);
		}
		lore.add(" ");
		meta.setLore(lore);
		meta.setOwner(nome);
		item.setItemMeta(meta);

		return item;
	}
Editado por gcunha
Link para o comentário
Compartilhar em outros sites

Se o seu servidor estiver online-mode false, é normal não aparecer.

 

Utilize o Skins Restorer

 Na verdade a skin da cabeça aparece sim, independente do modo que está offline ou online.

Link para o comentário
Compartilhar em outros sites

 

(No primeiro for, você pode simplesmente mudar para for(ItemStack item : cabecazy) )

 

Para setar a cabeça é através do nome, aqui vai um exemplo: 

private ItemStack getHead(String nome, String motivo) {

		ItemStack item = new ItemStack(Material.SKULL_ITEM, 1, (short) 3);
		SkullMeta meta = (SkullMeta) item.getItemMeta();
		meta.setDisplayName("§cJogador " + nome);
		List<String> lore = new ArrayList<>();
		lore.add(" ");
		for (String s : stringSeparator(motivo)) {
			lore.add(" §7" + s);
		}
		lore.add(" ");
		meta.setLore(lore);
		meta.setOwner(nome);
		item.setItemMeta(meta);

		return item;
	}

Obrigado, funcionou

GSIjz7ADQA2h2PvYEN6zGg.png

Link para o comentário
Compartilhar em outros sites

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