Multiple Scoreboards | New to Scoreboards

Discussion in 'Plugin Development' started by Niknea, Mar 30, 2014.

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

    Niknea

    Hey guys, I was wondering how I can make multiple scoreboards for a player? I would like to have a scoreboard under the players name, and one on the right hand side. Thanks!
     
  2. Offline

    xXSniperzzXx_SD

    Niknea
    You just create two objectives on the same scoreboard. One that displays on the sidebar and the other under the name(Not sure what it's called)

    Then i'm assuming you know how to show them the scoreboard, and set values on it. If not just tahg me.
     
    Niknea likes this.
  3. Offline

    GriffinPvP

    You can just have one scoreboard for all players online, and register 2 objectives for each of them. There's no need creating 2 scoreboards for each player. Example:
    Code:java
    1. private static Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
    2.  
    3. public static void updateScoreboad(Player player) {
    4.  
    5. StringBuilder builder = new StringBuilder(player.getName()); //Trimming player's name, because objective name can't be longer than 16 chars.
    6. builder.setLength(14);
    7.  
    8. Objective sidebar = (board.getObjective(builder.toString() + "sb") == null ? board.registerNewObjective(builder.toString() + "sb", "dummy") : board.getObjective(builder.toString() + "bn"));
    9. Objective belowName = (board.getObjective(builder.toString() + "bn") == null ? board.registerNewObjective(builder.toString() + "bn", "dummy") : board.getObjective(builder.toString() + "sb"));
    10.  
    11. belowName.setDisplaySlot(DisplaySlot.BELOW_NAME);
    12. belowName.setDisplayName(ChatColor.GRAY + "Your stuff");
    13.  
    14. sidebar.setDisplaySlot(DisplaySlot.SIDEBAR);
    15. sidebar.setDisplayName(ChatColor.RED + "Stats");
    16.  
    17. Score kills = sidebar.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Kills"));
    18. Score deaths = sidebar.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Deaths"));
    19.  
    20. kills.setScore(/*YourInteger*/69);
    21. deaths.setScore(/*YourInteger*/69);
    22.  
    23. player.setScoreboard(board);
    24. }

    I got this as a result (Wasn't able to test below name one, but I'm pretty sure it works.)
    [​IMG]
     
    Niknea likes this.
  4. Offline

    Niknea

    xXSniperzzXx_SD GriffinPvP Didin't work :/ Here is my code,

    Updating Scoreboard
    Code:java
    1. public void updateScoreboardv2(Player p)
    2. {
    3. this.manager = Bukkit.getScoreboardManager();
    4. this.s = this.manager.getNewScoreboard();
    5. this.objective = this.s.registerNewObjective("kills", "dummy");
    6. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    7. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    8. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    9. this.score.setScore(this.redteam);
    10. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    11. score1.setScore(0);
    12. Score score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Kit Picked"));
    13. score2.setScore(-1);
    14. Score score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Blue Team:"));
    15. score4.setScore(this.blueteam);
    16. Score score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    17. if (this.ninja.contains(p.getName())) {
    18. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Ninja"));
    19. }
    20. else if (this.flash.contains(p.getName())) {
    21. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Flash"));
    22. }
    23. else if (this.shotty.contains(p.getName())) {
    24. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Shotty"));
    25. }
    26. else if (this.agent.contains(p.getName())) {
    27. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Agent"));
    28. }
    29. else if (this.sniper.contains(p.getName())) {
    30. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Sniper"));
    31. }
    32. else if (this.commando.contains(p.getName())) {
    33. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Commando"));
    34. }
    35. else if (this.magneto.contains(p.getName())) {
    36. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Magneto"));
    37. }
    38. else if (this.spider.contains(p.getName())) {
    39. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Spider"));
    40. }
    41. else if(magician.contains(p.getName())){
    42. score3 = objective.getScore(Bukkit.getOfflinePlayer("Magician"));
    43. }
    44. else {
    45. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    46. }
    47. if (this.kills.containsKey(p.getName())) {
    48. score5.setScore(((Integer)this.kills.get(p.getName())).intValue());
    49. }
    50. else {
    51. score5.setScore(0);
    52. }
    53. this.score3.setScore(-2);
    54. int kills = getConfig().getInt(p.getName() + ".Kills");
    55. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    56. if(kills == 0 || deaths == 0){
    57. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    58. score8.setScore(1);
    59. }
    60. else{
    61. int kd = kills / deaths;
    62. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    63. score8.setScore(kd);
    64. }
    65. p.setScoreboard(this.s);
    66. }


    and creating the scoreboard
    Code:java
    1. ScoreboardManager manager;
    2. Scoreboard s;
    3. Score score;
    4. Score score3;
    5. Objective objective;
    6.  
    7. Objective objectivev2;
    8.  
    9. public void onEnable()
    10. {
    11. Bukkit.getServer().getPluginManager().registerEvents(new onStart(this), this);
    12. Bukkit.getServer().getPluginManager().registerEvents(new onSwitch(this), this);
    13. Bukkit.getServer().getPluginManager().registerEvents(new Pistol(this), this);
    14. Bukkit.getServer().getPluginManager().registerEvents(new Reload(this), this);
    15. Bukkit.getServer().getPluginManager().registerEvents(new Shotgun(this), this);
    16. Bukkit.getServer().getPluginManager().registerEvents(new Tracker(this), this);
    17. Bukkit.getServer().getPluginManager().registerEvents(new FreeGUI(this), this);
    18. Bukkit.getServer().getPluginManager().registerEvents(new DonorGUI(this), this);
    19. Bukkit.getServer().getPluginManager().registerEvents(new WoolPickup(this), this);
    20. Bukkit.getServer().getPluginManager().registerEvents(new NoInventoryMove(this), this);
    21. Bukkit.getServer().getPluginManager().registerEvents(new onHit(this), this);
    22. Bukkit.getServer().getPluginManager().registerEvents(new NoHungerLoss(this), this);
    23. Bukkit.getServer().getPluginManager().registerEvents(new onQuit(this), this);
    24. Bukkit.getServer().getPluginManager().registerEvents(new NinjaListener(this), this);
    25. Bukkit.getServer().getPluginManager().registerEvents(new onSnipe(this), this);
    26. Bukkit.getServer().getPluginManager().registerEvents(new MagnetoListener(this), this);
    27. Bukkit.getServer().getPluginManager().registerEvents(new SpiderListener(this), this);
    28. Bukkit.getServer().getPluginManager().registerEvents(new MagicianListener(this), this);
    29. Bukkit.getServer().getPluginManager().registerEvents(new NoHit(this), this);
    30. getCommand("vote").setExecutor(new VoteCommand(this));
    31.  
    32.  
    33. this.manager = Bukkit.getScoreboardManager();
    34. this.s = this.manager.getNewScoreboard();
    35. this.objective = this.s.registerNewObjective("kills", "dummy");
    36. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    37. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    38.  
    39. objectivev2 = s.registerNewObjective("test2", "dummy");
    40. objectivev2.setDisplaySlot(DisplaySlot.BELOW_NAME);
    41.  
    42. objectivev2.setDisplayName("§b§lKD");
    43.  
    44. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    45. this.score.setScore(0);
    46. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    47. score1.setScore(-1);
    48. Score score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Kit Picked"));
    49. score2.setScore(10);
    50. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    51. this.score3.setScore(9);
    52. Score score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Blue Team:"));
    53. score4.setScore(0);
    54. Score score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    55. score5.setScore(0);
    56. }


    The side scoreboard still works, just not the one below the players head. All help would be great, thanks!
     
  5. Offline

    GriffinPvP

    Niknea
    By using that method you're creating a new scoreboard for each player.
    Code:
    this.s = this.manager.getNewScoreboard();
    I guess you could do that, but you're creating a new instance of a scoreboard every time you call that method.

    Also, I couldn't detect the problem in your code, but you can base on the code I showed you, here's the result: [​IMG]
     
  6. Offline

    Niknea

    GriffinPvP Still not sure whats causing it, here is my entire code.
    Code:java
    1. package me.niknea.eball;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7. import org.bukkit.scoreboard.*;
    8.  
    9. import java.util.ArrayList;
    10. import java.util.HashMap;
    11.  
    12. public class Main extends JavaPlugin
    13. {
    14. static Main plugin;
    15. String prefix = ChatColor.DARK_PURPLE + "eBall" + ChatColor.DARK_RED + "" + ChatColor.BOLD + " > ";
    16.  
    17. ArrayList<String> blue = new ArrayList();
    18. ArrayList<String> red = new ArrayList();
    19. ArrayList<String> ingame = new ArrayList();
    20.  
    21. ArrayList<String> redflag = new ArrayList();
    22. ArrayList<String> blueflag = new ArrayList();
    23.  
    24. ArrayList<String> ninja = new ArrayList();
    25. ArrayList<String> ninja3ks = new ArrayList();
    26.  
    27. ArrayList<String> flash = new ArrayList();
    28.  
    29. ArrayList<String> shotty = new ArrayList();
    30.  
    31. ArrayList<String> shottyks3 = new ArrayList();
    32. ArrayList<String> shottyks5 = new ArrayList();
    33. ArrayList<String> shottyks7 = new ArrayList();
    34.  
    35. ArrayList<String> agent = new ArrayList();
    36.  
    37. ArrayList<String> agentks7 = new ArrayList();
    38.  
    39. ArrayList<String> sniper = new ArrayList();
    40.  
    41. ArrayList<String> sniperks3 = new ArrayList();
    42. ArrayList<String> sniperks5 = new ArrayList();
    43. ArrayList<String> sniperks7 = new ArrayList();
    44.  
    45. ArrayList<String> commando = new ArrayList();
    46.  
    47. ArrayList<String> commandoks3 = new ArrayList();
    48. ArrayList<String> commandoks5 = new ArrayList();
    49. ArrayList<String> commandoks7 = new ArrayList();
    50.  
    51. ArrayList<String> magneto = new ArrayList();
    52.  
    53. ArrayList<String> magnetoks3 = new ArrayList();
    54. ArrayList<String> magnetoks5 = new ArrayList();
    55. ArrayList<String> magnetoks7 = new ArrayList();
    56.  
    57. ArrayList<String> spider = new ArrayList();
    58.  
    59. ArrayList<String> spiderks7 = new ArrayList();
    60.  
    61. ArrayList<String> onMagneto = new ArrayList();
    62.  
    63. ArrayList<String> magician = new ArrayList();
    64.  
    65. ArrayList<String> cdmagician = new ArrayList();
    66.  
    67. ArrayList<String> magicianks3 = new ArrayList();
    68. ArrayList<String> magicianks5 = new ArrayList();
    69.  
    70. ArrayList<String> on = new ArrayList();
    71.  
    72. HashMap<String, Integer> killstreak = new HashMap();
    73.  
    74. HashMap<String, Integer> kills = new HashMap();
    75.  
    76. int redteam = 0;
    77. int blueteam = 0;
    78.  
    79. boolean isStarted = false;
    80. boolean gameStarted = false;
    81. boolean arena1 = false;
    82. int vote1 = 0;
    83. boolean arena2 = false;
    84. int vote2 = 0;
    85. boolean arena3 = false;
    86. int vote3 = 0;
    87.  
    88. ScoreboardManager manager;
    89. Scoreboard s;
    90. Score score;
    91. Score score3;
    92. Objective objective;
    93.  
    94. Objective objectivev2;
    95.  
    96. public void onEnable()
    97. {
    98. Bukkit.getServer().getPluginManager().registerEvents(new onStart(this), this);
    99. Bukkit.getServer().getPluginManager().registerEvents(new onSwitch(this), this);
    100. Bukkit.getServer().getPluginManager().registerEvents(new Pistol(this), this);
    101. Bukkit.getServer().getPluginManager().registerEvents(new Reload(this), this);
    102. Bukkit.getServer().getPluginManager().registerEvents(new Shotgun(this), this);
    103. Bukkit.getServer().getPluginManager().registerEvents(new Tracker(this), this);
    104. Bukkit.getServer().getPluginManager().registerEvents(new FreeGUI(this), this);
    105. Bukkit.getServer().getPluginManager().registerEvents(new DonorGUI(this), this);
    106. Bukkit.getServer().getPluginManager().registerEvents(new WoolPickup(this), this);
    107. Bukkit.getServer().getPluginManager().registerEvents(new NoInventoryMove(this), this);
    108. Bukkit.getServer().getPluginManager().registerEvents(new onHit(this), this);
    109. Bukkit.getServer().getPluginManager().registerEvents(new NoHungerLoss(this), this);
    110. Bukkit.getServer().getPluginManager().registerEvents(new onQuit(this), this);
    111. Bukkit.getServer().getPluginManager().registerEvents(new NinjaListener(this), this);
    112. Bukkit.getServer().getPluginManager().registerEvents(new onSnipe(this), this);
    113. Bukkit.getServer().getPluginManager().registerEvents(new MagnetoListener(this), this);
    114. Bukkit.getServer().getPluginManager().registerEvents(new SpiderListener(this), this);
    115. Bukkit.getServer().getPluginManager().registerEvents(new MagicianListener(this), this);
    116. Bukkit.getServer().getPluginManager().registerEvents(new NoHit(this), this);
    117. getCommand("vote").setExecutor(new VoteCommand(this));
    118.  
    119.  
    120. this.manager = Bukkit.getScoreboardManager();
    121. this.s = this.manager.getNewScoreboard();
    122. this.objective = this.s.registerNewObjective("kills", "dummy");
    123. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    124. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    125.  
    126. objectivev2 = s.registerNewObjective("kd", "dummy");
    127. objectivev2.setDisplaySlot(DisplaySlot.BELOW_NAME);
    128.  
    129. objectivev2.setDisplayName("§b§lKD");
    130.  
    131. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    132. this.score.setScore(0);
    133. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    134. score1.setScore(-1);
    135. Score score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Kit Picked"));
    136. score2.setScore(10);
    137. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    138. this.score3.setScore(9);
    139. Score score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Blue Team:"));
    140. score4.setScore(0);
    141. Score score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    142. score5.setScore(0);
    143.  
    144. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    145. public void run() {
    146. for (Player p : Bukkit.getOnlinePlayers()){
    147. Main.this.updateScoreboardv2(p);
    148. }
    149. }
    150. }
    151.  
    152.  
    153. , 5L, 60L);
    154. }
    155.  
    156. public void updateScoreboardv2(Player p)
    157. {
    158. this.manager = Bukkit.getScoreboardManager();
    159. this.s = this.manager.getNewScoreboard();
    160. this.objective = this.s.registerNewObjective("kills", "dummy");
    161. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    162. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    163. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    164. this.score.setScore(this.redteam);
    165. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    166. score1.setScore(0);
    167. Score score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Kit Picked"));
    168. score2.setScore(-1);
    169. Score score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Blue Team:"));
    170. score4.setScore(this.blueteam);
    171. Score score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    172. if (this.ninja.contains(p.getName())) {
    173. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Ninja"));
    174. }
    175. else if (this.flash.contains(p.getName())) {
    176. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Flash"));
    177. }
    178. else if (this.shotty.contains(p.getName())) {
    179. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Shotty"));
    180. }
    181. else if (this.agent.contains(p.getName())) {
    182. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Agent"));
    183. }
    184. else if (this.sniper.contains(p.getName())) {
    185. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Sniper"));
    186. }
    187. else if (this.commando.contains(p.getName())) {
    188. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Commando"));
    189. }
    190. else if (this.magneto.contains(p.getName())) {
    191. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Magneto"));
    192. }
    193. else if (this.spider.contains(p.getName())) {
    194. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Spider"));
    195. }
    196. else if(magician.contains(p.getName())){
    197. score3 = objective.getScore(Bukkit.getOfflinePlayer("Magician"));
    198. }
    199. else {
    200. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    201. }
    202. if (this.kills.containsKey(p.getName())) {
    203. score5.setScore(((Integer)this.kills.get(p.getName())).intValue());
    204. }
    205. else {
    206. score5.setScore(0);
    207. }
    208. this.score3.setScore(-2);
    209. int kills = getConfig().getInt(p.getName() + ".Kills");
    210. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    211. if(kills == 0 || deaths == 0){
    212. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    213. score8.setScore(1);
    214. }
    215. else{
    216. int kd = kills / deaths;
    217. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    218. score8.setScore(kd);
    219. }
    220. p.setScoreboard(this.s);
    221. }
    222.  
    223. public void updateScoreboard() {
    224. this.score.setScore(Bukkit.getOnlinePlayers().length);
    225. }
    226.  
    227.  
    228. public void addKill(Player p, int i) {
    229. getConfig().set(p.getName() + ".Kills",
    230. getConfig().getInt(p.getName() + ".Kills", 0) + i);
    231. saveConfig();
    232. }
    233.  
    234. public void addDeath(Player p, int i) {
    235. getConfig().set(p.getName() + ".Deaths",
    236. getConfig().getInt(p.getName() + ".Deaths", 0) + i);
    237. saveConfig();
    238. }
    239.  
    240. public void checkKD(Player p){
    241. int kills = getConfig().getInt(p.getName() + ".Kills");
    242. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    243. if(kills == 0 || deaths == 0){
    244. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    245. score2.setScore(1);
    246. }
    247. else{
    248. int kd = kills / deaths;
    249. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    250. score2.setScore(kd);
    251. }
    252. }
    253. }


    xXSniperzzXx_SD GriffinPvP Alrighty, I have figured it out, but now, players don't have their own scoreboards, any ideas why? CODE:
    Code:java
    1. package me.niknea.eball;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7. import org.bukkit.scoreboard.*;
    8.  
    9. import java.util.ArrayList;
    10. import java.util.HashMap;
    11.  
    12. public class Main extends JavaPlugin
    13. {
    14. static Main plugin;
    15. String prefix = ChatColor.DARK_PURPLE + "eBall" + ChatColor.DARK_RED + "" + ChatColor.BOLD + " > ";
    16.  
    17. ArrayList<String> blue = new ArrayList();
    18. ArrayList<String> red = new ArrayList();
    19. ArrayList<String> ingame = new ArrayList();
    20.  
    21. ArrayList<String> redflag = new ArrayList();
    22. ArrayList<String> blueflag = new ArrayList();
    23.  
    24. ArrayList<String> ninja = new ArrayList();
    25. ArrayList<String> ninja3ks = new ArrayList();
    26.  
    27. ArrayList<String> flash = new ArrayList();
    28.  
    29. ArrayList<String> shotty = new ArrayList();
    30.  
    31. ArrayList<String> shottyks3 = new ArrayList();
    32. ArrayList<String> shottyks5 = new ArrayList();
    33. ArrayList<String> shottyks7 = new ArrayList();
    34.  
    35. ArrayList<String> agent = new ArrayList();
    36.  
    37. ArrayList<String> agentks7 = new ArrayList();
    38.  
    39. ArrayList<String> sniper = new ArrayList();
    40.  
    41. ArrayList<String> sniperks3 = new ArrayList();
    42. ArrayList<String> sniperks5 = new ArrayList();
    43. ArrayList<String> sniperks7 = new ArrayList();
    44.  
    45. ArrayList<String> commando = new ArrayList();
    46.  
    47. ArrayList<String> commandoks3 = new ArrayList();
    48. ArrayList<String> commandoks5 = new ArrayList();
    49. ArrayList<String> commandoks7 = new ArrayList();
    50.  
    51. ArrayList<String> magneto = new ArrayList();
    52.  
    53. ArrayList<String> magnetoks3 = new ArrayList();
    54. ArrayList<String> magnetoks5 = new ArrayList();
    55. ArrayList<String> magnetoks7 = new ArrayList();
    56.  
    57. ArrayList<String> spider = new ArrayList();
    58.  
    59. ArrayList<String> spiderks7 = new ArrayList();
    60.  
    61. ArrayList<String> onMagneto = new ArrayList();
    62.  
    63. ArrayList<String> magician = new ArrayList();
    64.  
    65. ArrayList<String> cdmagician = new ArrayList();
    66.  
    67. ArrayList<String> magicianks3 = new ArrayList();
    68. ArrayList<String> magicianks5 = new ArrayList();
    69.  
    70. ArrayList<String> on = new ArrayList();
    71.  
    72. HashMap<String, Integer> killstreak = new HashMap();
    73.  
    74. HashMap<String, Integer> kills = new HashMap();
    75.  
    76. int redteam = 0;
    77. int blueteam = 0;
    78.  
    79. boolean isStarted = false;
    80. boolean gameStarted = false;
    81. boolean arena1 = false;
    82. int vote1 = 0;
    83. boolean arena2 = false;
    84. int vote2 = 0;
    85. boolean arena3 = false;
    86. int vote3 = 0;
    87.  
    88. ScoreboardManager manager;
    89. Scoreboard s;
    90. Score score;
    91. Score score3;
    92. Objective objective;
    93. Score score4;
    94. Score score5;
    95. Score score2;
    96.  
    97. Objective objectivev2;
    98.  
    99. public void onEnable()
    100. {
    101. Bukkit.getServer().getPluginManager().registerEvents(new onStart(this), this);
    102. Bukkit.getServer().getPluginManager().registerEvents(new onSwitch(this), this);
    103. Bukkit.getServer().getPluginManager().registerEvents(new Pistol(this), this);
    104. Bukkit.getServer().getPluginManager().registerEvents(new Reload(this), this);
    105. Bukkit.getServer().getPluginManager().registerEvents(new Shotgun(this), this);
    106. Bukkit.getServer().getPluginManager().registerEvents(new Tracker(this), this);
    107. Bukkit.getServer().getPluginManager().registerEvents(new FreeGUI(this), this);
    108. Bukkit.getServer().getPluginManager().registerEvents(new DonorGUI(this), this);
    109. Bukkit.getServer().getPluginManager().registerEvents(new WoolPickup(this), this);
    110. Bukkit.getServer().getPluginManager().registerEvents(new NoInventoryMove(this), this);
    111. Bukkit.getServer().getPluginManager().registerEvents(new onHit(this), this);
    112. Bukkit.getServer().getPluginManager().registerEvents(new NoHungerLoss(this), this);
    113. Bukkit.getServer().getPluginManager().registerEvents(new onQuit(this), this);
    114. Bukkit.getServer().getPluginManager().registerEvents(new NinjaListener(this), this);
    115. Bukkit.getServer().getPluginManager().registerEvents(new onSnipe(this), this);
    116. Bukkit.getServer().getPluginManager().registerEvents(new MagnetoListener(this), this);
    117. Bukkit.getServer().getPluginManager().registerEvents(new SpiderListener(this), this);
    118. Bukkit.getServer().getPluginManager().registerEvents(new MagicianListener(this), this);
    119. Bukkit.getServer().getPluginManager().registerEvents(new NoHit(this), this);
    120. getCommand("vote").setExecutor(new VoteCommand(this));
    121.  
    122.  
    123. this.manager = Bukkit.getScoreboardManager();
    124. this.s = this.manager.getNewScoreboard();
    125. this.objective = this.s.registerNewObjective("kills", "dummy");
    126. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    127. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    128.  
    129. objectivev2 = s.registerNewObjective("kd", "dummy");
    130. objectivev2.setDisplaySlot(DisplaySlot.BELOW_NAME);
    131.  
    132. objectivev2.setDisplayName("§b§lKD");
    133.  
    134. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    135. this.score.setScore(0);
    136. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    137. score1.setScore(-1);
    138. score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Kit Picked"));
    139. score2.setScore(10);
    140. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    141. this.score3.setScore(9);
    142. score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Blue Team:"));
    143. score4.setScore(0);
    144. score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    145. score5.setScore(0);
    146.  
    147. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    148. public void run() {
    149. for (Player p : Bukkit.getOnlinePlayers()){
    150. Main.this.updateScoreboardv2(p);
    151. p.setScoreboard(s);
    152. }
    153. }
    154. }
    155.  
    156.  
    157. , 5L, 60L);
    158. }
    159.  
    160. public void updateScoreboardv2(Player p)
    161. {
    162. this.score.setScore(this.redteam);
    163. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    164. score1.setScore(0);
    165. score2.setScore(-1);
    166. score4.setScore(this.blueteam);
    167. if (this.ninja.contains(p.getName())) {
    168. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Ninja"));
    169. }
    170. else if (this.flash.contains(p.getName())) {
    171. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Flash"));
    172. }
    173. else if (this.shotty.contains(p.getName())) {
    174. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Shotty"));
    175. }
    176. else if (this.agent.contains(p.getName())) {
    177. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Agent"));
    178. }
    179. else if (this.sniper.contains(p.getName())) {
    180. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Sniper"));
    181. }
    182. else if (this.commando.contains(p.getName())) {
    183. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Commando"));
    184. }
    185. else if (this.magneto.contains(p.getName())) {
    186. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Magneto"));
    187. }
    188. else if (this.spider.contains(p.getName())) {
    189. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Spider"));
    190. }
    191. else if(magician.contains(p.getName())){
    192. score3 = objective.getScore(Bukkit.getOfflinePlayer("Magician"));
    193. }
    194. else {
    195. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    196. }
    197. if (this.kills.containsKey(p.getName())) {
    198. score5.setScore(((Integer)this.kills.get(p.getName())).intValue());
    199. }
    200. else {
    201. score5.setScore(0);
    202. }
    203. this.score3.setScore(-2);
    204. int kills = getConfig().getInt(p.getName() + ".Kills");
    205. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    206. if(kills == 0 || deaths == 0){
    207. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    208. score8.setScore(1);
    209. }
    210. else{
    211. int kd = kills / deaths;
    212. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    213. score8.setScore(kd);
    214. }
    215. }
    216.  
    217. public void updateScoreboard() {
    218. this.score.setScore(Bukkit.getOnlinePlayers().length);
    219. }
    220.  
    221.  
    222. public void addKill(Player p, int i) {
    223. getConfig().set(p.getName() + ".Kills",
    224. getConfig().getInt(p.getName() + ".Kills", 0) + i);
    225. saveConfig();
    226. }
    227.  
    228. public void addDeath(Player p, int i) {
    229. getConfig().set(p.getName() + ".Deaths",
    230. getConfig().getInt(p.getName() + ".Deaths", 0) + i);
    231. saveConfig();
    232. }
    233.  
    234. public void checkKD(Player p){
    235. int kills = getConfig().getInt(p.getName() + ".Kills");
    236. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    237. if(kills == 0 || deaths == 0){
    238. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    239. score2.setScore(1);
    240. }
    241. else{
    242. int kd = kills / deaths;
    243. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    244. score2.setScore(kd);
    245. }
    246. }
    247. }


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 7, 2016
  7. Offline

    xXSniperzzXx_SD

    Niknea
    If you want every player to have their own scoreboard, then you'll need to create a new scoreboard for every player, Because I think what I saw in your code is that you're creating the one, then updating it for every player.

    But the main problem you're going to have is that if you create a new scoreboard for everyone, everyone's going to see different things under the player's names. But if you use the same scoreboard, everyone will see the text under player's names, but the sidebar will show the same thing to all players.
     
  8. Offline

    Niknea

    xXSniperzzXx_SD The scoreboard now work, but now the name above the players head dosen't work, do you know how to fix this?

    CODE :
    Code:java
    1. package me.niknea.eball;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.entity.Player;
    6. import org.bukkit.plugin.java.JavaPlugin;
    7. import org.bukkit.scoreboard.*;
    8.  
    9. import java.util.ArrayList;
    10. import java.util.HashMap;
    11.  
    12. public class Main extends JavaPlugin
    13. {
    14. static Main plugin;
    15. String prefix = ChatColor.DARK_PURPLE + "eBall" + ChatColor.DARK_RED + "" + ChatColor.BOLD + " > ";
    16.  
    17. ArrayList<String> blue = new ArrayList();
    18. ArrayList<String> red = new ArrayList();
    19. ArrayList<String> ingame = new ArrayList();
    20.  
    21. ArrayList<String> redflag = new ArrayList();
    22. ArrayList<String> blueflag = new ArrayList();
    23.  
    24. ArrayList<String> ninja = new ArrayList();
    25. ArrayList<String> ninja3ks = new ArrayList();
    26.  
    27. ArrayList<String> flash = new ArrayList();
    28.  
    29. ArrayList<String> shotty = new ArrayList();
    30.  
    31. ArrayList<String> shottyks3 = new ArrayList();
    32. ArrayList<String> shottyks5 = new ArrayList();
    33. ArrayList<String> shottyks7 = new ArrayList();
    34.  
    35. ArrayList<String> agent = new ArrayList();
    36.  
    37. ArrayList<String> agentks7 = new ArrayList();
    38.  
    39. ArrayList<String> sniper = new ArrayList();
    40.  
    41. ArrayList<String> sniperks3 = new ArrayList();
    42. ArrayList<String> sniperks5 = new ArrayList();
    43. ArrayList<String> sniperks7 = new ArrayList();
    44.  
    45. ArrayList<String> commando = new ArrayList();
    46.  
    47. ArrayList<String> commandoks3 = new ArrayList();
    48. ArrayList<String> commandoks5 = new ArrayList();
    49. ArrayList<String> commandoks7 = new ArrayList();
    50.  
    51. ArrayList<String> magneto = new ArrayList();
    52.  
    53. ArrayList<String> magnetoks3 = new ArrayList();
    54. ArrayList<String> magnetoks5 = new ArrayList();
    55. ArrayList<String> magnetoks7 = new ArrayList();
    56.  
    57. ArrayList<String> spider = new ArrayList();
    58.  
    59. ArrayList<String> spiderks7 = new ArrayList();
    60.  
    61. ArrayList<String> onMagneto = new ArrayList();
    62.  
    63. ArrayList<String> magician = new ArrayList();
    64.  
    65. ArrayList<String> cdmagician = new ArrayList();
    66.  
    67. ArrayList<String> magicianks3 = new ArrayList();
    68. ArrayList<String> magicianks5 = new ArrayList();
    69.  
    70. ArrayList<String> on = new ArrayList();
    71.  
    72. HashMap<String, Integer> killstreak = new HashMap();
    73.  
    74. HashMap<String, Integer> kills = new HashMap();
    75.  
    76. int redteam = 0;
    77. int blueteam = 0;
    78.  
    79. boolean isStarted = false;
    80. boolean gameStarted = false;
    81. boolean arena1 = false;
    82. int vote1 = 0;
    83. boolean arena2 = false;
    84. int vote2 = 0;
    85. boolean arena3 = false;
    86. int vote3 = 0;
    87.  
    88. ScoreboardManager manager;
    89. Scoreboard s;
    90. Score score;
    91. Score score3;
    92. Objective objective;
    93. Score score4;
    94. Score score5;
    95. Score score2;
    96.  
    97. Objective objectivev2;
    98.  
    99. public void onEnable()
    100. {
    101. Bukkit.getServer().getPluginManager().registerEvents(new onStart(this), this);
    102. Bukkit.getServer().getPluginManager().registerEvents(new onSwitch(this), this);
    103. Bukkit.getServer().getPluginManager().registerEvents(new Pistol(this), this);
    104. Bukkit.getServer().getPluginManager().registerEvents(new Reload(this), this);
    105. Bukkit.getServer().getPluginManager().registerEvents(new Shotgun(this), this);
    106. Bukkit.getServer().getPluginManager().registerEvents(new Tracker(this), this);
    107. Bukkit.getServer().getPluginManager().registerEvents(new FreeGUI(this), this);
    108. Bukkit.getServer().getPluginManager().registerEvents(new DonorGUI(this), this);
    109. Bukkit.getServer().getPluginManager().registerEvents(new WoolPickup(this), this);
    110. Bukkit.getServer().getPluginManager().registerEvents(new NoInventoryMove(this), this);
    111. Bukkit.getServer().getPluginManager().registerEvents(new onHit(this), this);
    112. Bukkit.getServer().getPluginManager().registerEvents(new NoHungerLoss(this), this);
    113. Bukkit.getServer().getPluginManager().registerEvents(new onQuit(this), this);
    114. Bukkit.getServer().getPluginManager().registerEvents(new NinjaListener(this), this);
    115. Bukkit.getServer().getPluginManager().registerEvents(new onSnipe(this), this);
    116. Bukkit.getServer().getPluginManager().registerEvents(new MagnetoListener(this), this);
    117. Bukkit.getServer().getPluginManager().registerEvents(new SpiderListener(this), this);
    118. Bukkit.getServer().getPluginManager().registerEvents(new MagicianListener(this), this);
    119. Bukkit.getServer().getPluginManager().registerEvents(new NoHit(this), this);
    120. getCommand("vote").setExecutor(new VoteCommand(this));
    121.  
    122.  
    123. this.manager = Bukkit.getScoreboardManager();
    124. this.s = this.manager.getNewScoreboard();
    125. this.objective = this.s.registerNewObjective("kills", "dummy");
    126. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    127. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    128.  
    129. objectivev2 = s.registerNewObjective("kd", "dummy");
    130. objectivev2.setDisplaySlot(DisplaySlot.BELOW_NAME);
    131.  
    132. objectivev2.setDisplayName("§b§lKD");
    133.  
    134. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    135. this.score.setScore(0);
    136. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    137. score1.setScore(-1);
    138. score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Kit Picked"));
    139. score2.setScore(10);
    140. //this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    141. //this.score3.setScore(9);
    142. score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Blue Team:"));
    143. score4.setScore(0);
    144. score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    145. score5.setScore(0);
    146.  
    147. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
    148. public void run() {
    149. for (Player p : Bukkit.getOnlinePlayers()){
    150. Main.this.updateScoreboardv2(p);
    151. p.setScoreboard(s);
    152. }
    153. }
    154. }
    155.  
    156.  
    157. , 5L, 60L);
    158. }
    159.  
    160. public void updateScoreboardv2(Player p)
    161. {
    162. this.manager = Bukkit.getScoreboardManager();
    163. this.s = this.manager.getNewScoreboard();
    164. this.objective = this.s.registerNewObjective("kills", "dummy");
    165. this.objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    166. this.objective.setDisplayName(ChatColor.DARK_PURPLE + "§lEternal Ball");
    167. this.score = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.RED + "Red Team:"));
    168. this.score.setScore(this.redteam);
    169. Score score1 = this.objective.getScore(Bukkit.getOfflinePlayer(""));
    170. score1.setScore(0);
    171. Score score2 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.AQUA + "Kit Picked"));
    172. score2.setScore(-1);
    173. Score score4 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.BLUE + "Blue Team:"));
    174. score4.setScore(this.blueteam);
    175. Score score5 = this.objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Kills:"));
    176. if (this.ninja.contains(p.getName())) {
    177. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Ninja"));
    178. }
    179. else if (this.flash.contains(p.getName())) {
    180. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Flash"));
    181. }
    182. else if (this.shotty.contains(p.getName())) {
    183. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Shotty"));
    184. }
    185. else if (this.agent.contains(p.getName())) {
    186. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Agent"));
    187. }
    188. else if (this.sniper.contains(p.getName())) {
    189. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Sniper"));
    190. }
    191. else if (this.commando.contains(p.getName())) {
    192. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Commando"));
    193. }
    194. else if (this.magneto.contains(p.getName())) {
    195. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Magneto"));
    196. }
    197. else if (this.spider.contains(p.getName())) {
    198. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("Spider"));
    199. }
    200. else if(magician.contains(p.getName())){
    201. score3 = objective.getScore(Bukkit.getOfflinePlayer("Magician"));
    202. }
    203. else {
    204. this.score3 = this.objective.getScore(Bukkit.getOfflinePlayer("None"));
    205. }
    206. if (this.kills.containsKey(p.getName())) {
    207. score5.setScore(((Integer)this.kills.get(p.getName())).intValue());
    208. }
    209. else {
    210. score5.setScore(0);
    211. }
    212. this.score3.setScore(-2);
    213. int kills = getConfig().getInt(p.getName() + ".Kills");
    214. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    215. if(kills == 0 || deaths == 0){
    216. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    217. score8.setScore(1);
    218. }
    219. else{
    220. int kd = kills / deaths;
    221. Score score8 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    222. score8.setScore(kd);
    223. }
    224. }
    225.  
    226. public void updateScoreboard() {
    227. this.score.setScore(Bukkit.getOnlinePlayers().length);
    228. }
    229.  
    230.  
    231. public void addKill(Player p, int i) {
    232. getConfig().set(p.getName() + ".Kills",
    233. getConfig().getInt(p.getName() + ".Kills", 0) + i);
    234. saveConfig();
    235. }
    236.  
    237. public void addDeath(Player p, int i) {
    238. getConfig().set(p.getName() + ".Deaths",
    239. getConfig().getInt(p.getName() + ".Deaths", 0) + i);
    240. saveConfig();
    241. }
    242.  
    243. public void checkKD(Player p){
    244. int kills = getConfig().getInt(p.getName() + ".Kills");
    245. int deaths = getConfig().getInt(p.getName() + ".Deaths");
    246. if(kills == 0 || deaths == 0){
    247. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    248. score2.setScore(1);
    249. }
    250. else{
    251. int kd = kills / deaths;
    252. Score score2 = objectivev2.getScore(Bukkit.getOfflinePlayer(p.getName()));
    253. score2.setScore(kd);
    254. }
    255. }
    256. }
     
  9. Offline

    xXSniperzzXx_SD

    Niknea
     
  10. Offline

    Acer_Mortem

    xXSniperzzXx_SD

    Do you know of any way to make it so that the scoreboard on the right is different for players, while still maintaining different below-health scoreboards? Or is there no way around that?
     
Thread Status:
Not open for further replies.

Share This Page