Ir para conteúdo
  • 1

Remover coração do NPC (Citizens)


yLR111

Pergunta

Como que faço que os NPC do Citizens não tenha coração em cima do nome?

 

Codigo:

	    Objective health = board.registerNewObjective("showhealth", "health");
	    health.setDisplaySlot(DisplaySlot.BELOW_NAME);
	    health.setDisplayName("§c❤");
	    
	    for(Player p1 : Bukkit.getOnlinePlayers()) {
	    	health.getScore(p).setScore((int)p.getHealth());
			
	    }

 

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
11 minutos atrás, VictorHeaven disse:

Verifica se o jogador não é um NPC do Citizens


for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
    if (!CitizensAPI.getNPCRegistry().isNPC(onlinePlayer)) {
        // Do stuff
    }
}

Tentei fazer assim e não foi:

	    Objective health = board.registerNewObjective("showhealth", "health");
	    health.setDisplaySlot(DisplaySlot.BELOW_NAME);
	    health.setDisplayName("§c❤");
	    
	    
	    for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
	        if (!CitizensAPI.getNPCRegistry().isNPC(onlinePlayer)) {
	        	health.getScore(onlinePlayer).setScore((int)onlinePlayer.getHealth());
	        }
	    }

 

Link para o comentário
Compartilhar em outros sites

  • 0
5 minutos atrás, yLR111 disse:

Tentei fazer assim e não foi:


	    Objective health = board.registerNewObjective("showhealth", "health");
	    health.setDisplaySlot(DisplaySlot.BELOW_NAME);
	    health.setDisplayName("§c❤");
	    
	    
	    for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
	        if (!CitizensAPI.getNPCRegistry().isNPC(onlinePlayer)) {
	        	health.getScore(onlinePlayer).setScore((int)onlinePlayer.getHealth());
	        }
	    }

 

Tenta
 

for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
    if (CitizensAPI.getNPCRegistry().getByUniqueId(onlinePlayer.getUniqueId()) == null) {
        // Do stuff
    }
}
Link para o comentário
Compartilhar em outros sites

  • 0
7 minutos atrás, VictorHeaven disse:

Tenta
 


for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
    if (CitizensAPI.getNPCRegistry().getByUniqueId(onlinePlayer.getUniqueId()) == null) {
        // Do stuff
    }
}

Tentei novamente e não funcionou, to tempo tentando resolver e não consigo.

	    Objective health = board.registerNewObjective("showhealth", "health");
	    health.setDisplaySlot(DisplaySlot.BELOW_NAME);
	    health.setDisplayName("§c❤");
	    
	    for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
	        if (CitizensAPI.getNPCRegistry().getByUniqueId(onlinePlayer.getUniqueId()) == null) {
	        	health.getScore(onlinePlayer).setScore((int)onlinePlayer.getHealth());
	        }
	    }

 

Link para o comentário
Compartilhar em outros sites

  • 0
14 minutos atrás, bieel1503 disse:

Sim, só checar na hora que você estiver setando a scoreboard pros jogadores e não na hora de setar um novo objetivo.

Assim? me passa seu discord.

 

	public static void Scoreboard(Player p) {
		
		org.bukkit.scoreboard.Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
		
		
	    
	    for (Player onlinePlayer : Bukkit.getOnlinePlayers()) {
	    	
	        if (!CitizensAPI.getNPCRegistry().isNPC(onlinePlayer)) {
	        	
	        	Objective health = board.registerNewObjective("showhealth", "health");
	        	health.setDisplaySlot(DisplaySlot.BELOW_NAME);
	        	health.setDisplayName("§c❤");
	        	
	        	health.getScore(onlinePlayer).setScore((int)onlinePlayer.getHealth());
	        }
	    	
	    }
	    
	    p.setScoreboard(board);
	}

 

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

public static void Scoreboard(Player player){
  if(CitizensAPI.getNPCRegistry().isNPC(player)) return;
  Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  Objective objective = scoreboard.registerNewObjective("showhealth", "health");
  objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
  objective.setDisplayName("§c❤");
  player.setHealth(player.getHealth());
  player.setScoreboard(scoreboard);
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
10 minutos atrás, bieel1503 disse:

Tenta assim:


public static void Scoreboard(Player player){
  if(CitizensAPI.getNPCRegistry().isNPC(player)) return;
  Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  Objective objective = scoreboard.registerNewObjective("showhealth", "health");
  objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
  objective.setDisplayName("§c❤");
  player.setHealth(player.getHealth());
  player.setScoreboard(scoreboard);
}

 

Continua mesma coisa:

Screenshot_3.png.262e2badc07755b5505fde77cff42120.png

 

package me.leo.teste;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scoreboard.DisplaySlot;
import org.bukkit.scoreboard.Objective;

import net.citizensnpcs.api.CitizensAPI;

public class Main extends JavaPlugin implements Listener{
	
	public static Main plugin;
	
	
	public void onEnable() {
		plugin = this;
		Bukkit.getPluginManager().registerEvents(this, this);
	}
	public void onDisable() {
		
	}
	@EventHandler
	public void aoEntrar(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		
		Scoreboard(p);
		
	}
	public static void Scoreboard(Player player){
		  if(CitizensAPI.getNPCRegistry().isNPC(player)) return;
		  org.bukkit.scoreboard.Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
		  Objective objective = scoreboard.registerNewObjective("showhealth", "health");
		  objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
		  objective.setDisplayName("§c❤");
		  player.setHealth(player.getHealth());
		  player.setScoreboard(scoreboard);
		}

}

 

Link para o comentário
Compartilhar em outros sites

  • 0

eita, que estranho... deveria estar funcionando. o evento pega o NPC? tenta fazer isso:

public static void Scoreboard(Player player){
  if(CitizensAPI.getNPCRegistry().isNPC(player)){
    Bukkit.broadcastMessage("NPC teste");
    return;
  }
  Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  Objective objective = scoreboard.registerNewObjective("showhealth", "health");
  objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
  objective.setDisplayName("§c❤");
  player.setScoreboard(scoreboard);
  player.setHealth(player.getHealth());
}

compila, reinicia o servidor e vê se aparece "NPC teste" no console. provalvelmente não vai aparecer... desculpa ai, não sei mais como te ajudar.

Link para o comentário
Compartilhar em outros sites

  • 0
11 minutos atrás, bieel1503 disse:

eita, que estranho... deveria estar funcionando. o evento pega o NPC? tenta fazer isso:


public static void Scoreboard(Player player){
  if(CitizensAPI.getNPCRegistry().isNPC(player)){
    Bukkit.broadcastMessage("NPC teste");
    return;
  }
  Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  Objective objective = scoreboard.registerNewObjective("showhealth", "health");
  objective.setDisplaySlot(DisplaySlot.BELOW_NAME);
  objective.setDisplayName("§c❤");
  player.setScoreboard(scoreboard);
  player.setHealth(player.getHealth());
}

compila, reinicia o servidor e vê se aparece "NPC teste" no console. provalvelmente não vai aparecer... desculpa ai, não sei mais como te ajudar.

é não funcionou, mas tranquilo!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
  • Quem está navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...