Scoreboard Timer

Discussion in 'Plugin Development' started by WeaselBuilds, Jan 2, 2014.

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

    WeaselBuilds

    Hi there! I am having issues with a timer! The timer works perfectly, but when it runs out, it glitches and won't start it's next task.

    Code:java
    1. public class BuildTimer implements Runnable{
    2.  
    3. public int min;
    4. public int sec;
    5. public int secTime;
    6. public int taskID;
    7. public ArrayList<Player> players;
    8. public Game g;
    9.  
    10. public BuildTimer(int sec, ArrayList<Player> players, Game g, int taskID){
    11. this.secTime = 59;
    12. this.sec = sec;
    13. this.players = players;
    14. this.g = g;
    15. this.taskID = taskID;
    16. }
    17.  
    18. @Override
    19. public void run() {
    20. if(sec == 900){
    21. min = (sec / 60) - 1;
    22. }
    23.  
    24. if(sec != 0 && secTime != 0){
    25. sec--;
    26. secTime--;
    27. }else if(sec != 0 && sec % 60 == 15 || sec % 60 == 14 ||
    28. sec % 60 == 13 || sec % 60 == 12 || sec % 60 == 11 ||
    29. sec % 60 == 10 || sec % 60 == 9 || sec % 60 == 8 ||
    30. sec % 60 == 7 || sec % 60 == 6 || sec % 60 == 5 ||
    31. sec % 60 == 4 || sec % 60 == 3 || sec % 60 == 2 ||
    32. sec % 60 == 1 || sec % 60 == 0 && secTime == 0){
    33. sec--;
    34. min = (sec / 60) - 1;
    35. secTime = 59;
    36. MessageManager.getInstance().msgPlayers(players, MessageTypes.INFO, min + " minutes left until the walls fall!");
    37. return;
    38. }else if(sec == 0){
    39. MessageManager.getInstance().msgPlayers(players, MessageTypes.INFO, "The walls have fallen!");
    40. g.runStage(GameStage.Battle);
    41. Bukkit.getScheduler().cancelTask(taskID);
    42. }
    43.  
    44. this.scoreboardUpdate();
    45. }
    46.  
    47. private void scoreboardUpdate() {
    48. if(secTime < 10 && secTime >= 0){
    49. sbBlue.obj.setDisplayName(ChatColor.DARK_BLUE + "Team Count: " + ChatColor.GOLD + min + ":0" + secTime);
    50. sbRed.obj.setDisplayName(ChatColor.RED + "Team Count: " + ChatColor.GOLD + min + ":0" + secTime);
    51. sbGreen.obj.setDisplayName(ChatColor.GREEN + "Team Count: " + ChatColor.GOLD + min + ":0" + secTime);
    52. sbYellow.obj.setDisplayName(ChatColor.YELLOW + "Team Count: " + ChatColor.GOLD + min + ":0" + secTime);
    53. }else{
    54. sbBlue.obj.setDisplayName(ChatColor.DARK_BLUE + "Team Count: " + ChatColor.GOLD + min + ":" + secTime);
    55. sbRed.obj.setDisplayName(ChatColor.RED + "Team Count: " + ChatColor.GOLD + min + ":" + secTime);
    56. sbGreen.obj.setDisplayName(ChatColor.GREEN + "Team Count: " + ChatColor.GOLD + min + ":" + secTime);
    57. sbYellow.obj.setDisplayName(ChatColor.YELLOW + "Team Count: " + ChatColor.GOLD + min + ":" + secTime);
    58. }
    59. sbBlue.updateScores();
    60. sbRed.updateScores();
    61. sbGreen.updateScores();
    62. sbYellow.updateScores();
    63. }
    64. }


    If any more code is needed, I can add it!

    Thanks!
    ~Weasel
     
Thread Status:
Not open for further replies.

Share This Page