Scoreboard code (Unfinished)

Discussion in 'Plugin Development' started by Sw_aG, Aug 7, 2014.

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

    Sw_aG

    Dear plugin developers, i need help creating a PvP-Scoreboard for my server.
    I've created the scoreboard already and i dont know how to make it refresh after every player die and Make it so they'll be only 3 players on the scoreboard.
    If you can edit my plugin or send me a code it'll be great, Here's the code:


    Code:java
    1. package Top3Killers;
    2.  
    3. import java.util.HashMap;
    4. import java.util.Map;
    5. import java.util.logging.Logger;
    6. import org.bukkit.Bukkit;
    7. import org.bukkit.ChatColor;
    8. import org.bukkit.Server;
    9. import org.bukkit.entity.LivingEntity;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.entity.EntityDeathEvent;
    14. import org.bukkit.event.player.PlayerJoinEvent;
    15. import org.bukkit.plugin.PluginManager;
    16. import org.bukkit.plugin.java.JavaPlugin;
    17. import org.bukkit.scoreboard.DisplaySlot;
    18. import org.bukkit.scoreboard.Objective;
    19. import org.bukkit.scoreboard.Score;
    20. import org.bukkit.scoreboard.Scoreboard;
    21. import org.bukkit.scoreboard.ScoreboardManager;
    22.  
    23. public class Top3Killers
    24. extends JavaPlugin
    25. implements Listener
    26. {
    27. private Scoreboard board;
    28. private Map<String, Integer> playersKilled = new HashMap();
    29.  
    30. public void onEnable()
    31. {
    32. Bukkit.getServer().getLogger().info("[Scoreboard] Enabled");
    33. getServer().getPluginManager().registerEvents(this, this);
    34. setupScoreboard();
    35. }
    36.  
    37. public void onDisable()
    38. {
    39. Bukkit.getServer().getLogger().info("[Scoreboard] Disabled");
    40. }
    41.  
    42. public void setupScoreboard()
    43. {
    44. this.board = Bukkit.getScoreboardManager().getNewScoreboard();
    45.  
    46. Objective kills = this.board.registerNewObjective("Kills", "dummy");
    47. kills.setDisplaySlot(DisplaySlot.SIDEBAR);
    48. kills.setDisplayName(ChatColor.RED + "Top 3 Killers");
    49. }
    50.  
    51. public Scoreboard getScoreboard()
    52. {
    53. return this.board;
    54. }
    55.  
    56. @EventHandler
    57. public void onEntityDeath(EntityDeathEvent e)
    58. {
    59. if ((e.getEntity().getKiller() instanceof Player))
    60. {
    61. Player player = e.getEntity().getKiller();
    62. int kills = 0;
    63. if (this.playersKilled.containsKey(player.getName())) {
    64. kills = ((Integer)this.playersKilled.get(player)).intValue();
    65. }
    66. kills++;
    67. this.playersKilled.put(player.getName(), Integer.valueOf(kills));
    68. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(player).setScore(kills);
    69. }
    70. }
    71.  
    72. @EventHandler
    73. public void onPlayerJoin(PlayerJoinEvent e)
    74. {
    75. Player player = e.getPlayer();
    76. player.setScoreboard(getScoreboard());
    77. }
    78. }
    79.  


    Thanks in advance:p
     
  2. Offline

    javacoolme

    Please post your code in code form, thank you!
     
  3. Offline

    PatoTheBest

    .resetScore ?
     
  4. Offline

    Sw_aG

    PatoTheBest I'm a begginer coder so... I'll be glad if you'll explain a bit

    I dont know how...

    Edit: Nvm, I've changed the main message

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

    fireblast709

    Sw_aG
    Code:java
    1. [syntax=java][/syntax]
    or
    Code:
    [code][/ code]
     
  6. Offline

    Sw_aG

  7. Offline

    PatoTheBest

    Code:java
    1. board.resetScores(param);

    This will delete the input param from the scorebaord. As simple as it gets. You can use it for example
    Code:java
    1. board.resetScores("Sw_aG"); //This will remove you from the scorebaoard
    2. //Note: If you use a ChatColor, you will need to specify which color
    3. //Ex. board.resetScores(ChatColor.RED + "Sw_aG");
     
  8. Offline

    Sw_aG

    PatoTheBest I'm sorry for asking but can you please show me where eo put it in the plugin? (I'm learning java since yesterday)
    Btw is that what's refresh the scoreborad after every tick?
     
  9. Offline

    PatoTheBest

    Untested, may have bugs


    Code:java
    1. package Top3Killers;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.Collections;
    5. import java.util.Comparator;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. import java.util.Map.Entry;
    9.  
    10. import org.bukkit.Bukkit;
    11. import org.bukkit.ChatColor;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.event.EventHandler;
    14. import org.bukkit.event.Listener;
    15. import org.bukkit.event.entity.EntityDeathEvent;
    16. import org.bukkit.event.player.PlayerJoinEvent;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18. import org.bukkit.scoreboard.DisplaySlot;
    19. import org.bukkit.scoreboard.Objective;
    20. import org.bukkit.scoreboard.Scoreboard;
    21.  
    22. public class Top3Killers extends JavaPlugin implements Listener {
    23. private Scoreboard board;
    24. private Map<String, Integer> playersKilled = new HashMap<String, Integer>();
    25. private Map<Integer, String> topScores = new HashMap<Integer, String>();
    26. private int showScoresNumber = 3;
    27.  
    28. public void onEnable() {
    29. Bukkit.getServer().getLogger().info("[Scoreboard] Enabled");
    30. getServer().getPluginManager().registerEvents(this, this);
    31. setupScoreboard();
    32. }
    33.  
    34. public void onDisable() {
    35. Bukkit.getServer().getLogger().info("[Scoreboard] Disabled");
    36. }
    37.  
    38. public void setupScoreboard() {
    39. this.board = Bukkit.getScoreboardManager().getNewScoreboard();
    40.  
    41. Objective kills = this.board.registerNewObjective("Kills", "dummy");
    42. kills.setDisplaySlot(DisplaySlot.SIDEBAR);
    43. kills.setDisplayName(ChatColor.RED + "Top 3 Killers");
    44. }
    45.  
    46. public Scoreboard getScoreboard() {
    47. return this.board;
    48. }
    49.  
    50. @EventHandler
    51. public void onEntityDeath(EntityDeathEvent e) {
    52. if ((e.getEntity().getKiller() instanceof Player)) {
    53. Player player = e.getEntity().getKiller();
    54. int kills = playersKilled.get(player.getName()) + 1;
    55. playersKilled.remove(player.getName());
    56. playersKilled.put(player.getName(), kills);
    57. for(int i = 0; i < topScores.size(); i++) {
    58. getScoreboard().resetScores(Bukkit.getOfflinePlayer(topScores.get(i)));
    59. topScores.remove(topScores.get(i));
    60. }
    61.  
    62. ArrayList<String> data = new ArrayList<String>();
    63.  
    64. for(Entry<String, Integer> entry: playersKilled.entrySet()){
    65. data.add(entry.getValue() + " " + entry.getKey());
    66. }
    67.  
    68. Collections.sort(data, new Comparator<String>() {
    69. public int compare(String a, String b) {
    70. int aVal = Integer.parseInt(a.split(" ")[0]);
    71. int bVal = Integer.parseInt(b.split(" ")[0]);
    72.  
    73. return Integer.compare(aVal, bVal);
    74. }
    75. });
    76.  
    77. for (int i = (data.size() > showScoresNumber ? showScoresNumber : data.size()) - 1; i >= 0; i--) {
    78. String line = data.get(i);
    79. String topPlayer = line.split(" ")[1], topKills = line.split(" ")[0];
    80. topScores.put(Integer.parseInt(topKills), topPlayer);
    81. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(topPlayer)).setScore(Integer.parseInt(topKills));;
    82. }
    83. }
    84. }
    85.  
    86. @EventHandler
    87. public void onPlayerJoin(PlayerJoinEvent e) {
    88. Player player = e.getPlayer();
    89. player.setScoreboard(getScoreboard());
    90. if(!playersKilled.containsValue(player.getName())){
    91. playersKilled.put(player.getName(), 0);
    92. }
    93. }
    94. }


    I may have gone over board
     
    Sw_aG likes this.
  10. Offline

    Sw_aG

    Works great! Thanks a lot mate, i'm very apperciate your help :p
     
  11. Offline

    PatoTheBest

    No problem, its dynamic so you can change the variable showscoresnumber to the number of players you want to show.
     
    Sw_aG likes this.
  12. Offline

    Sw_aG

    How can i change the showscorenumber for the players i want to be shown and why is it display killing for mobs instead of Players..., can you please change it so it'll be the PlayerKillCount so it'll add player kills instead of mob kills?
    And just a little question, do i need to add a PlayerDeathEvent/PlayerKillEvent?
    If you can then just edit the code, thanks a lot :D
    I need the scoreboard to be shown to every1 on the server so every player will know who are The top 3 killers...
    Code:java
    1. package TopKillers;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.Collections;
    5. import java.util.Comparator;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. import java.util.Map.Entry;
    9. import java.util.logging.Logger;
    10. import org.bukkit.Bukkit;
    11. import org.bukkit.ChatColor;
    12. import org.bukkit.Server;
    13. import org.bukkit.entity.LivingEntity;
    14. import org.bukkit.entity.Player;
    15. import org.bukkit.event.EventHandler;
    16. import org.bukkit.event.Listener;
    17. import org.bukkit.event.entity.EntityDeathEvent;
    18. import org.bukkit.event.player.PlayerJoinEvent;
    19. import org.bukkit.plugin.PluginManager;
    20. import org.bukkit.plugin.java.JavaPlugin;
    21. import org.bukkit.scoreboard.DisplaySlot;
    22. import org.bukkit.scoreboard.Objective;
    23. import org.bukkit.scoreboard.Score;
    24. import org.bukkit.scoreboard.Scoreboard;
    25. import org.bukkit.scoreboard.ScoreboardManager;
    26.  
    27. public class TopKillers extends JavaPlugin
    28. implements Listener
    29. {
    30. private Scoreboard board;
    31. private Map<String, Integer> playersKilled = new HashMap();
    32. private Map<Integer, String> topScores = new HashMap();
    33. private int showScoresNumber = 3;
    34.  
    35. public void onEnable() {
    36. Bukkit.getServer().getLogger().info("[Scoreboard] Enabled");
    37. getServer().getPluginManager().registerEvents(this, this);
    38. setupScoreboard();
    39. }
    40.  
    41. public void onDisable() {
    42. Bukkit.getServer().getLogger().info("[Scoreboard] Disabled");
    43. }
    44.  
    45. public void setupScoreboard() {
    46. this.board = Bukkit.getScoreboardManager().getNewScoreboard();
    47.  
    48. Objective kills = this.board.registerNewObjective("Kills", "dummy");
    49. kills.setDisplaySlot(DisplaySlot.SIDEBAR);
    50. kills.setDisplayName(ChatColor.RED + "Top 3 Killers");
    51. }
    52. public Scoreboard getScoreboard() {
    53. return this.board;
    54. }
    55.  
    56. @EventHandler
    57. public void onEntityDeath(EntityDeathEvent e) {
    58. if ((e.getEntity().getKiller() instanceof Player)) {
    59. Player player = e.getEntity().getKiller();
    60. int kills = ((Integer)this.playersKilled.get(player.getName())).intValue() + 1;
    61. this.playersKilled.remove(player.getName());
    62. this.playersKilled.put(player.getName(), Integer.valueOf(kills));
    63. for (int i = 0; i < this.topScores.size(); i++) {
    64. getScoreboard().resetScores(Bukkit.getOfflinePlayer((String)this.topScores.get(Integer.valueOf(i))));
    65. this.topScores.remove(this.topScores.get(Integer.valueOf(i)));
    66. }
    67.  
    68. ArrayList data = new ArrayList();
    69.  
    70. for (Map.Entry entry : this.playersKilled.entrySet()) {
    71. data.add(entry.getValue() + " " + (String)entry.getKey());
    72. }
    73.  
    74. Collections.sort(data, new Comparator() {
    75. public int compare(String a, String b) {
    76. int aVal = Integer.parseInt(a.split(" ")[0]);
    77. int bVal = Integer.parseInt(b.split(" ")[0]);
    78.  
    79. return Integer.compare(aVal, bVal);
    80. }
    81. });
    82. for (int i = (data.size() > this.showScoresNumber ? this.showScoresNumber : data.size()) - 1; i >= 0; i--) {
    83. String line = (String)data.get(i);
    84. String topPlayer = line.split(" ")[1]; String topKills = line.split(" ")[0];
    85. this.topScores.put(Integer.valueOf(Integer.parseInt(topKills)), topPlayer);
    86. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(topPlayer)).setScore(Integer.parseInt(topKills));
    87. }
    88. }
    89. }
    90.  
    91. @EventHandler
    92. public void onPlayerJoin(PlayerJoinEvent e) {
    93. Player player = e.getPlayer();
    94. player.setScoreboard(getScoreboard());
    95. if (!this.playersKilled.containsValue(player.getName()))
    96. this.playersKilled.put(player.getName(), Integer.valueOf(0));
    97. }
    98. }


    Thanks in advance:p
     
  13. Offline

    PatoTheBest

    The first question I did not understand. For the second one change the EntytyDeathEvent with PlayerDeathEvent(only change that)
     
  14. Offline

    Sw_aG

    Hi, i dont know why but its not working with the PlayerDeathEvent, here's the log:
    If you need the code itself...
    Code:java
    1. package TopBaccas;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.Collections;
    5. import java.util.Comparator;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. import java.util.Map.Entry;
    9.  
    10. import org.bukkit.Bukkit;
    11. import org.bukkit.ChatColor;
    12. import org.bukkit.entity.Player;
    13. import org.bukkit.event.EventHandler;
    14. import org.bukkit.event.Listener;
    15. import org.bukkit.event.entity.PlayerDeathEvent;
    16. import org.bukkit.event.player.PlayerJoinEvent;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18. import org.bukkit.scoreboard.DisplaySlot;
    19. import org.bukkit.scoreboard.Objective;
    20. import org.bukkit.scoreboard.Scoreboard;
    21.  
    22. public class TopBaccas extends JavaPlugin implements Listener {
    23. private Scoreboard board;
    24. private Map<String, Integer> playersKilled = new HashMap<String, Integer>();
    25. private Map<Integer, String> topScores = new HashMap<Integer, String>();
    26. private int showScoresNumber = 3;
    27.  
    28. public void onEnable() {
    29. Bukkit.getServer().getLogger().info("[Scoreboard] Enabled");
    30. getServer().getPluginManager().registerEvents(this, this);
    31. setupScoreboard();
    32. }
    33.  
    34. public void onDisable() {
    35. Bukkit.getServer().getLogger().info("[Scoreboard] Disabled");
    36. }
    37.  
    38. public void setupScoreboard() {
    39. this.board = Bukkit.getScoreboardManager().getNewScoreboard();
    40.  
    41. Objective kills = this.board.registerNewObjective("Kills", "dummy");
    42. kills.setDisplaySlot(DisplaySlot.SIDEBAR);
    43. kills.setDisplayName(ChatColor.RED + "Top 3 Baccas");
    44. }
    45. public Scoreboard getScoreboard() {
    46. return this.board;
    47. }
    48.  
    49. @EventHandler
    50. public void onEntityDeath(PlayerDeathEvent e) {
    51. if ((e.getEntity().getKiller() instanceof Player)) {
    52. Player player = e.getEntity().getKiller();
    53. int kills = playersKilled.get(player.getName()) + 1;
    54. playersKilled.remove(player.getName());
    55. playersKilled.put(player.getName(), kills);
    56. for(int i = 0; i < topScores.size(); i++) {
    57. getScoreboard().resetScores(Bukkit.getOfflinePlayer(topScores.get(i)));
    58. topScores.remove(topScores.get(i));
    59. }
    60.  
    61. ArrayList<String> data = new ArrayList<String>();
    62.  
    63. for(Entry<String, Integer> entry: playersKilled.entrySet()){
    64. data.add(entry.getValue() + " " + entry.getKey());
    65. }
    66.  
    67. Collections.sort(data, new Comparator<String>() {
    68. public int compare(String a, String b) {
    69. int aVal = Integer.parseInt(a.split(" ")[0]);
    70. int bVal = Integer.parseInt(b.split(" ")[0]);
    71.  
    72. return Integer.compare(aVal, bVal);
    73. }
    74. });
    75.  
    76. for (int i = (data.size() > showScoresNumber ? showScoresNumber : data.size()) - 1; i >= 0; i--) {
    77. String line = data.get(i);
    78. String topPlayer = line.split(" ")[1], topKills = line.split(" ")[0];
    79. topScores.put(Integer.parseInt(topKills), topPlayer);
    80. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(topPlayer)).setScore(Integer.parseInt(topKills));;
    81. }
    82. }
    83. }
    84.  
    85. @EventHandler
    86. public void onPlayerJoin(PlayerJoinEvent e) {
    87. Player player = e.getPlayer();
    88. player.setScoreboard(getScoreboard());
    89. if(!playersKilled.containsValue(player.getName())){
    90. playersKilled.put(player.getName(), 0);
    91. }
    92. }
    93. }
     
  15. Offline

    PatoTheBest

    Im on my phone but I'll try to help. Do you know how to read stacktrace?
    Code:
    at TopBaccas.TopBaccas.onEntityDeath(TopBaccas.java:57) ~[?:?]
    That means that on your mainclass at line 57 which is
    Code:java
    1. getScoreboard().resetScores(Bukkit.getOfflinePlayer(topScores.get(i)));

    And the error cause is
    Code:
    Caused by: java.lang.IllegalArgumentException: Name cannot be null
    The way to fix it is by a simple null check
    Code:java
    1. if(topScores.get(i) != null) {
    2. getScoreboard().resetScores(Bukkit.getOfflinePlayer(topScores.get(i)));
    3. }

    Everything else should stay the same. As I said, this was done in my phone so it is not 100% accurate.
     
    Sw_aG likes this.
  16. Offline

    Sw_aG

    PatoTheBest Hi, can you please change it so it'll display the player with the mostkillsand if someone is getting more kills then someone who already one the scoreboard it'll swap them?
    Thanks in advance ;)
     
  17. Offline

    Sw_aG

    PatoTheBest Hi, I wanna ask how can i make it so the TopKillers scoreboard will be visble instead of the current on?
    (I Cannot do that from the other scoreboard plugin, cause i need them both and i need them to be switched when someone Has already draw first blood...)
     
  18. Offline

    XgXXSnipz

    Sw_aG Stop trying to learn java, spoonfeeding isnt good
     
  19. Offline

    Sw_aG

    I'm trying to learn java so i'll be able to help in bukkit some-day... Instead of asking help from developers
    XgXXSnipz Try to be positive about it
     
  20. Offline

    XgXXSnipz

    Sw_aG Well, You need to learn regular java first, second of all you wont help the bukkit community, you will really have to stick out
     
  21. Offline

    Sw_aG

    PatoTheBest Can you please help me?

    PatoTheBest Hi, can you please help me?

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

    PatoTheBest

    You should create another thread, I believe you are just copy pasting and have no odea what anything does.
     
  23. Offline

    Sw_aG

    PatoTheBest Well, i'm still learning... That's why i asked for code help instead of a-regular plugin request
     
  24. Offline

    Sw_aG

    Do you think you can edit the code?
    Thanks in advance;)
     
  25. Offline

    PatoTheBest


    Code:java
    1. package org.pato.topkills;
    2.  
    3. import java.util.ArrayList;
    4. import java.util.Collections;
    5. import java.util.Comparator;
    6. import java.util.HashMap;
    7. import java.util.Map;
    8. import java.util.Map.Entry;
    9.  
    10.  
    11. import org.bukkit.Bukkit;
    12. import org.bukkit.ChatColor;
    13. import org.bukkit.entity.Player;
    14. import org.bukkit.event.EventHandler;
    15. import org.bukkit.event.Listener;
    16. import org.bukkit.event.entity.PlayerDeathEvent;
    17. import org.bukkit.event.player.PlayerJoinEvent;
    18. import org.bukkit.plugin.java.JavaPlugin;
    19. import org.bukkit.scoreboard.DisplaySlot;
    20. import org.bukkit.scoreboard.Objective;
    21. import org.bukkit.scoreboard.Scoreboard;
    22.  
    23. public class TopKills extends JavaPlugin implements Listener {
    24. private Scoreboard board;
    25. private Map<String, Integer> playersKilled = new HashMap<String, Integer>();
    26. private ArrayList<String> topScores = new ArrayList<String>();
    27. private int showScoresNumber = 3;
    28.  
    29. public void onEnable() {
    30. getServer().getPluginManager().registerEvents(this, this);
    31. setupScoreboard();
    32. Bukkit.getServer().getLogger().info("[Scoreboard] Enabled");
    33. }
    34.  
    35. public void onDisable() {
    36. Bukkit.getServer().getLogger().info("[Scoreboard] Disabled");
    37. }
    38.  
    39. public void setupScoreboard() {
    40. this.board = Bukkit.getScoreboardManager().getNewScoreboard();
    41.  
    42. Objective kills = this.board.registerNewObjective("Kills", "dummy");
    43. kills.setDisplaySlot(DisplaySlot.SIDEBAR);
    44. kills.setDisplayName(ChatColor.RED + "Top 3 Baccas");
    45. }
    46. public Scoreboard getScoreboard() {
    47. return this.board;
    48. }
    49.  
    50. @SuppressWarnings("deprecation")
    51. @EventHandler
    52. public void onEntityDeath(PlayerDeathEvent e) {
    53. if ((e.getEntity().getKiller() instanceof Player)) {
    54. Player player = e.getEntity().getKiller();
    55. int kills = playersKilled.get(player.getName()) + 1;
    56. playersKilled.remove(player.getName());
    57. playersKilled.put(player.getName(), kills);
    58. Scoreboard board = getScoreboard();
    59. for(int i = 0; i < topScores.size(); i++) {
    60. board.resetScores(Bukkit.getOfflinePlayer(getPlayer(topScores.get(i))));
    61. topScores.remove(topScores.get(i));
    62. }
    63.  
    64. ArrayList<String> data = new ArrayList<String>();
    65.  
    66. for(Entry<String, Integer> entry: playersKilled.entrySet()){
    67. data.add(entry.getValue() + " " + entry.getKey());
    68. }
    69.  
    70. Collections.sort(data, new Comparator<String>() {
    71. public int compare(String a, String b) {
    72. int aVal = Integer.parseInt(a.split(" ")[0]);
    73. int bVal = Integer.parseInt(b.split(" ")[0]);
    74.  
    75. return Integer.compare(aVal, bVal);
    76. }
    77. });
    78.  
    79. for (int i = (data.size() > showScoresNumber ? showScoresNumber : data.size()) - 1; i >= 0; i--) {
    80. String line = data.get(i);
    81. String topPlayer = line.split(" ")[1], topKills = line.split(" ")[0];
    82. topScores.add(topPlayer + " " + topKills);
    83. getScoreboard().getObjective(DisplaySlot.SIDEBAR).getScore(Bukkit.getOfflinePlayer(topPlayer)).setScore(Integer.parseInt(topKills));;
    84. }
    85. }
    86. }
    87.  
    88. @EventHandler
    89. public void onPlayerJoin(PlayerJoinEvent e) {
    90. Player player = e.getPlayer();
    91. player.setScoreboard(getScoreboard());
    92. if(!playersKilled.containsValue(player.getName())){
    93. playersKilled.put(player.getName(), 0);
    94. }
    95. }
    96.  
    97. private String getPlayer(String string) {
    98. return string.split(" ")[0];
    99. }
    100. }

    I do not test my code. I saw my mistake, some string formatting was wrong when tried to reset the score but I don't know if it is fixed.
     
    Sw_aG likes this.
  26. Offline

    Sw_aG

    I'll test it right now, thanks ;)

    That's works great except the last thing i've posted, can you please make it so it will display the scoreboard EVEN if There's another scoreboard already? (I realy need this feature so if you know how to do it, please help me)
    Thanks In Advance;)

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

    Sw_aG

  28. Offline

    PatoTheBest

    Schedule a task every tick or second or 3 ticks, whatever you like and set the scoreboard.
     
    Sw_aG likes this.
  29. Offline

    Sw_aG

    I'm sorry but, i'm a begginer-coder so i dont want to be rude but, can you please right the code/plugin for me?
    Thanks in advance mate :)
     
  30. Offline

    Cerberus XII

Thread Status:
Not open for further replies.

Share This Page