Plugin Help A way to clean the code ?

Discussion in 'Plugin Help/Development/Requests' started by iPheonix, Feb 10, 2016.

Thread Status:
Not open for further replies.
  1. Offline

    iPheonix

    Hey there ! I would need your help, I know that seeing the code will shock you but I don't really have a better way to make it cleaner, would you have an idea ?

    The code :
    Code:
        @EventHandler
        public void event(PlayerLoginEvent event)
        {
            final Player player = event.getPlayer();
    
            Bukkit.getScheduler().scheduleSyncRepeatingTask(AeriaCore.getPlugin(), new Runnable()
            {
                public void run() {
                    if (player.hasPermission("aeria.group.admin")) {
                        AeriaScoreBoard scoreboard = new AeriaScoreBoard(ChatColor.BOLD + "" + ChatColor.GREEN + "AeriaMC " + Bukkit.getOnlinePlayers().size() + "/999");
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.AQUA + "\u27b8 Pseudo : " + player.getName());
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.RED + "Admin" + ChatColor.WHITE + "]");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.LIGHT_PURPLE + "\u27b8 Monde : " + player.getWorld().getName());
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GOLD + "\u27b8 Coins : " + ChatColor.GOLD + EconManager.getBalance(player.getName()) + " \u272A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.BLUE + "\u27b8 Niveau : N/A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.YELLOW + "Bon jeu sur Aeria !");
                        scoreboard.build();
                        scoreboard.send(player);
                    } else if (player.hasPermission("aeria.group.moderator")) {
                        AeriaScoreBoard scoreboard = new AeriaScoreBoard(ChatColor.BOLD + "" + ChatColor.GREEN + "AeriaMC " + Bukkit.getOnlinePlayers().size() + "/999");
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.AQUA + "\u27b8 Pseudo : " + player.getName());
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.DARK_GREEN + "Modo" + ChatColor.WHITE + "]");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.LIGHT_PURPLE + "\u27b8 Monde : " + player.getWorld().getName());
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GOLD + "\u27b8 Coins : " + ChatColor.GOLD + EconManager.getBalance(player.getName()) + " \u272A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.BLUE + "\u27b8 Niveau : N/A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.YELLOW + "Bon jeu sur Aeria !");
                        scoreboard.build();
                        scoreboard.send(player);
                    }
    Like how would I make it look for a certain permission or rank of the player ?
     
  2. Offline

    teej107

    @iPheonix they both look the same in the if and else statements. What's the difference?
     
  3. Offline

    iPheonix

    No but I was asking like how I could make the code mor like compact, is it possible or is this the maximum i could do ?
     
  4. Offline

    timtower Administrator Administrator Moderator

    @iPheonix Put the double text in functions. Call those functions outside the if statement, then only add what is permission specific.
     
  5. Offline

    iPheonix

    Oh yes ! I've thought that aswell at the moment, thanks.

    Tried this but still doesn't work :

    Code:
        @EventHandler
        public void event(PlayerLoginEvent event)
        {
            final Player player = event.getPlayer();
    
            Bukkit.getScheduler().scheduleSyncRepeatingTask(AeriaCore.getPlugin(), new Runnable()
            {
                public void run() {
                    AeriaScoreBoard scoreboard = new AeriaScoreBoard(ChatColor.BOLD + "" + ChatColor.GREEN + "AeriaMC " + Bukkit.getOnlinePlayers().size() + "/999");
                    if (player.hasPermission("aeria.group.admin")) {
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.AQUA + "\u27b8 Pseudo : " + player.getName());
                        scoreboard.blankLine();
                        getPlayerRank(player);
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.LIGHT_PURPLE + "\u27b8 Monde : " + player.getWorld().getName());
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GOLD + "\u27b8 Coins : " + ChatColor.GOLD + EconManager.getBalance(player.getName()) + " \u272A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.BLUE + "\u27b8 Niveau : N/A");
                        scoreboard.blankLine();
                        scoreboard.add(ChatColor.GRAY + "-=-=-=-=-=-=-=-");
                        scoreboard.add(ChatColor.YELLOW + "Bon jeu sur Aeria !");
                        scoreboard.build();
                        scoreboard.send(player);
                    }
                }
            }, 0L, 100L);
        }
    
        public void getPlayerRank(Player player) {
            AeriaScoreBoard scoreboard = new AeriaScoreBoard(ChatColor.BOLD + "" + ChatColor.GREEN + "AeriaMC " + Bukkit.getOnlinePlayers().size() + "/999");
            if(player.hasPermission("aeria.group.admin")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.RED + "Admin" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.moderator")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.DARK_GREEN + "Modo" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.minivip")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "[MiniVIP]");
            }else if(player.hasPermission("aeria.group.vip")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.DARK_PURPLE + "VIP" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.aeriamember")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.GOLD + "AeriaMember" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.megavip")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.AQUA + "MegaVIP" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.aeriavip")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.GREEN + "AeriaVIP" + ChatColor.WHITE + "]");
            }else if(player.hasPermission("aeria.group.builder")){
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.WHITE + "["+ ChatColor.DARK_GREEN + "Buildeur" + ChatColor.WHITE + "]");
            }else{
                scoreboard.add(ChatColor.YELLOW + "\u27b8 Rang : " + ChatColor.GRAY + "Joueur");
            }
        }
     
    Last edited by a moderator: Feb 10, 2016
  6. Offline

    timtower Administrator Administrator Moderator

    @iPheonix Please define does not work.
    Did you register the event?
     
  7. Offline

    teej107

    Don't write duplicate code. If you come across a part of code needs to be different for certain things then move the if/else statement to that part.
     
  8. Offline

    iPheonix

    Oh yes I guessed it out ! Thanks a lot ! Sorry for the disturbance
     
Thread Status:
Not open for further replies.

Share This Page