Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Spigot Minecraft] Score dupliquer

    5 mai 2021 à 21:43:23

    Bonjour je viens ici parce que mon score est dupliquer il se supprime pas quand je le remplace. le code :

    package fr.pastalapate.ForestFaction.listeners;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;
    
    import fr.pastalapate.ForestFaction.FMain;
    import fr.pastalapate.ForestFaction.rank.RankList;
    import fr.pastalapate.ForestFaction.rank.Ranks;
    
    public class PlayerListener implements Listener {
    
    	private FMain main;
    
    	public PlayerListener(FMain fMain) {
    		this.main = fMain;
    	}
    	
    	@EventHandler
    	private void onJoin(PlayerJoinEvent e) {
    		Player player = e.getPlayer();
    		
    		if(!main.data.getConfig().contains("players." + player.getUniqueId().toString() + ".rank")) {
    			main.data.getConfig().set("players." + player.getUniqueId().toString() + ".towny", "No Faction ");
    			main.data.getConfig().set("players." + player.getUniqueId().toString() + ".rankId", 0);
    			
    			main.data.saveConfig();
    		}
    		updateScorboard();
    		createBord(player);
    		main.data.saveConfig();
    	}
    	
    	@EventHandler
    	public void onPlayerChat(AsyncPlayerChatEvent e) {
    		Player player = e.getPlayer();
    		RankList rankList = new RankList();
    		Ranks rank = rankList.getRank(main.data.getConfig().getInt("players." + player.getUniqueId().toString() + ".rankId"));
    		String towny = main.data.getConfig().getString("players." + player.getUniqueId().toString() + ".towny");
    		
    		e.setFormat("[" + rank.getNameColor() + rank.getName() + ChatColor.RESET + "] " + ChatColor.YELLOW + towny + rank.getChatColor() + "%s : %s");
    		updateScorboard();
    	}
    	
    	public void createBord(Player player) {
    			String UUID = player.getUniqueId().toString();
    			String towny = main.data.getConfig().getString("players." + UUID + ".towny");
    			RankList rankList = new RankList();
    			Ranks rank = rankList.getRank(main.data.getConfig().getInt("players." + UUID + ".rankId"));
    			ScoreboardManager manager = Bukkit.getScoreboardManager();
    			Scoreboard board = manager.getNewScoreboard();
    			Objective obj = board.registerNewObjective("HubScoreboard-1", "dummy", ChatColor.BLACK + "<<" + ChatColor.YELLOW + "ForestCity" + ChatColor.BLACK + ">>");
    			Score score = obj.getScore(ChatColor.BLUE + "=-=-=-=-=-=-=-=-=-=-");
    			Score score2 = obj.getScore(ChatColor.AQUA + "Joueur en ligne : " + ChatColor.DARK_AQUA + Bukkit.getOnlinePlayers().size());
    			Score score3 = obj.getScore(ChatColor.AQUA + "Votre grade : " + rank.getNameColor() + rank.getName());
    			Score score4 = obj.getScore(ChatColor.AQUA + "Votre ville : " + towny);
    			
    			obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    			score.setScore(4);
    			score2.setScore(3);
    			score3.setScore(2);
    			score4.setScore(1);
    			
    			player.setScoreboard(board);
    	}
    	
    	public void updateScorboard() {
    		for (Player online : Bukkit.getOnlinePlayers())
    		{
    				String UUID = online.getUniqueId().toString();
    				String towny = main.data.getConfig().getString("players." + UUID + ".towny");
    				RankList rankList = new RankList();
    				Ranks rank = rankList.getRank(main.data.getConfig().getInt("players." + UUID + ".rankId"));
    				Scoreboard board = online.getScoreboard();
    				Objective obj = online.getScoreboard().getObjective(DisplaySlot.SIDEBAR);
    				Score score = obj.getScore(ChatColor.BLUE + "=-=-=-=-=-=-=-=-=-=-");
    				Score score2 = obj.getScore(ChatColor.AQUA + "Joueur en ligne : " + ChatColor.DARK_AQUA + Bukkit.getOnlinePlayers().size());
    				Score score3 = obj.getScore(ChatColor.AQUA + "Votre grade : " + rank.getNameColor() + rank.getName());
    				Score score4 =  obj.getScore(ChatColor.AQUA + "Votre ville : " + towny);
    				
    				score.setScore(4);
    				score2.setScore(3);
    				score3.setScore(2);
    				score4.setScore(1);
    		}
    	}
    
    	public void enabled() {
    		if (!Bukkit.getOnlinePlayers().isEmpty()){
    			for (Player online : Bukkit.getOnlinePlayers()) {
    				createBord(online);
    			}
    		}
    	}
    
    }



    -
    Edité par PastaLaPate 5 mai 2021 à 21:44:59

    • Partager sur Facebook
    • Partager sur Twitter

    [Spigot Minecraft] Score dupliquer

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown