Solved Converting a string to an integer

Discussion in 'Plugin Development' started by glory_fades, May 28, 2015.

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

    glory_fades

    so for my scoreboard since u can only set the score as a int, i want the players name to be set in the scoreboard. I get no errors just when i upload the plugin the scoreboard doesnt show up, and if i deleted the int values the plugin works again.

    Code:
    package me.ahrims.scoreboard;
    
    import java.util.Collection;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.EnderPearl;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.ProjectileLaunchEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    
    import com.massivecraft.factions.entity.Faction;
    import com.massivecraft.factions.entity.MPlayer;
    
    public class Fscore extends JavaPlugin implements Listener {
    
            
            private Scoreboard board;
        
            public void onEnable() {
                getServer().getPluginManager().registerEvents(this, this);
        
                makeScoreboard();
            }
        
            public void makeScoreboard() {
                board = Bukkit.getScoreboardManager().getNewScoreboard();
                for (Player p : Bukkit.getOnlinePlayers())
                {
                MPlayer mp = MPlayer.get(p);
                int sv = mp.getPowerRounded();
                String str = p.getName();
                int sv1 = mp.getFaction().getPowerRounded();
                int sv2 = Integer.parseInt(str);
                Objective objective = board.registerNewObjective("Test", "Test2");
                objective.setDisplayName(ChatColor.AQUA + "Exo" + ChatColor.DARK_AQUA + "PvP");
                objective.setDisplaySlot(DisplaySlot.SIDEBAR);
               
        
                Score score = objective.getScore(ChatColor.DARK_RED + "Online Players");
                score.setScore(Bukkit.getOnlinePlayers().size());
        
                Score score2 = objective.getScore(ChatColor.DARK_AQUA + "Your Name");
                score2.setScore(sv2);
        
                Score score3 = objective.getScore(ChatColor.DARK_RED + "Faction Power");
                score3.setScore(sv1);
        
                Score score4 = objective.getScore(ChatColor.AQUA + "Your Current Power");
                score4.setScore(sv);
            }
            }
            @EventHandler
            public void onjoin(PlayerJoinEvent e) {
                Player p = e.getPlayer();
                p.setScoreboard(board);
            }
        }
     
  2. Offline

    Agentleader1

    Code:
    Integer.parseInt(String);
    or casting it.
     
  3. Offline

    glory_fades

    Code:
     String str = p.getName();
                int sv1 = mp.getFaction().getPowerRounded();
                int sv2 = Integer.parseInt(str);
    i already have that but still nothing
     
  4. Offline

    Agentleader1

    @glory_fades Make sure to tahg me for me to notice your reply. Anyways, if a string contains nonnumeric characters, it will send an error.
     
  5. Offline

    glory_fades

    @Agentleader1 aight do u have another way i could set p.getName(); to an integer tho?
     
  6. Offline

    Agentleader1

    @glory_fades

    Code:
    player.getName().replaceAll("[a-zA-Z[_]]","");
     
  7. Offline

    glory_fades

    @Agentleader1 oh well that wouldnt really work for my scoreboard, i want it to display the players name ive seen it done before so i was wondering if anyone knew how to do it
     
  8. Offline

    Agentleader1

    @glory_fades You can display their name on the scoreboard on the left part, but not the integer. The only reason you'd NEED to convert ANY STRING to an integer in scoreboards is to set something to score.

    Code:
    Score score = obj.getScore(Bukkit.getOfflinePlayer("Player's Name Here")); //name has to be less than 17 characters.
    score.setScore(int);
     
  9. Offline

    glory_fades

    okay well thank you :D
     
  10. Offline

    Agentleader1

    @glory_fades Don't forget to mark this thread as solved.
     
Thread Status:
Not open for further replies.

Share This Page