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
9 minutos atrás, bieel1503 disse:

Bem, você tá registrando um novo 'objetivo' na scoreboard, todos que estiverem com essa scoreboard vai ter os corações.

Então colocaria isso dentro de um if? Exemplo checar se nao for npc e colocar dentro?

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.
×
×
  • Criar Novo...