yLR111 Postado Abril 26, 2020 Denunciar Compartilhar Postado Abril 26, 2020 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 More sharing options...
0 VictorHeaven Postado Abril 27, 2020 Denunciar Compartilhar Postado Abril 27, 2020 Verifica se o jogador não é um NPC do Citizens for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { if (!CitizensAPI.getNPCRegistry().isNPC(onlinePlayer)) { // Do stuff } } Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Abril 27, 2020 Autor Denunciar Compartilhar Postado Abril 27, 2020 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 More sharing options...
0 VictorHeaven Postado Abril 27, 2020 Denunciar Compartilhar Postado Abril 27, 2020 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 More sharing options...
0 yLR111 Postado Abril 27, 2020 Autor Denunciar Compartilhar Postado Abril 27, 2020 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 More sharing options...
0 bieel1503 Postado Abril 28, 2020 Denunciar Compartilhar Postado Abril 28, 2020 Bem, você tá registrando um novo 'objetivo' na scoreboard, todos que estiverem com essa scoreboard vai ter os corações. Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Abril 28, 2020 Autor Denunciar Compartilhar Postado Abril 28, 2020 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 More sharing options...
0 bieel1503 Postado Abril 28, 2020 Denunciar Compartilhar Postado Abril 28, 2020 Sim, só checar na hora que você estiver setando a scoreboard pros jogadores e não na hora de setar um novo objetivo. Link para o comentário Compartilhar em outros sites More sharing options...
0 yLR111 Postado Abril 28, 2020 Autor Denunciar Compartilhar Postado Abril 28, 2020 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 More sharing options...
0 bieel1503 Postado Abril 28, 2020 Denunciar Compartilhar Postado Abril 28, 2020 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 More sharing options...
0 yLR111 Postado Abril 28, 2020 Autor Denunciar Compartilhar Postado Abril 28, 2020 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: 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 More sharing options...
0 bieel1503 Postado Abril 28, 2020 Denunciar Compartilhar Postado Abril 28, 2020 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 More sharing options...
0 yLR111 Postado Abril 28, 2020 Autor Denunciar Compartilhar Postado Abril 28, 2020 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 More sharing options...
0 Nescaaallz Postado Maio 8, 2020 Denunciar Compartilhar Postado Maio 8, 2020 apaga a scoreboard.dat dos mundos e tenta novamente Link para o comentário Compartilhar em outros sites More sharing options...
0 TheGeneX Postado Maio 8, 2020 Denunciar Compartilhar Postado Maio 8, 2020 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...
Pergunta
yLR111
Como que faço que os NPC do Citizens não tenha coração em cima do nome?
Codigo:
Link para o comentário
Compartilhar em outros sites
14 respostass a esta questão
Posts Recomendados