Development Assistance Can't build with Simple Scoreboard (Designed for Bukkit)

Discussion in 'Plugin Help/Development/Requests' started by LFPlugins, Dec 6, 2014.

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

    LFPlugins

    Hey guys.
    I'm using the Bukkit Dev Util "Simple Scoreboards" with a Spigot server, but i can't build the scoreboard. The scoreboard is to display online staff. Could you maybe give me a hint if i could change anything?

    Code that affects the scoreboard:
    Code:java
    1. @EventHandler
    2. public void onLogin(PlayerJoinEvent event) {
    3. Player player = event.getPlayer();
    4. SimpleScoreboard scoreboard = new SimpleScoreboard("§a§lStaff inne just nu:");
    5.  
    6.  
    7. for (int a = 0; a <= online().size(); a++){
    8. if(online().size() > 0)
    9. scoreboard.add("&c" + online().get(a));
    10. else
    11. scoreboard.add("&c&lIngen staff inne just nu!");
    12.  
    13. }
    14. scoreboard.build();
    15. for(Player p : Bukkit.getOnlinePlayers()) {
    16. scoreboard.send(p);
    17. }
    18. }
    19.  
    20. public List<String> online() {
    21. List<String> output = new ArrayList<String>();
    22. for (Player player : Bukkit.getOnlinePlayers()) {
    23. if (player.hasPermission("essentials.kick")) {
    24. output.add(player.getName());
    25. }
    26. }
    27. return output;
    28.  
    29. }



    SimpleScoreboard code:

    Code:java
    1. public class SimpleScoreboard {
    2.  
    3. private Scoreboard scoreboard;
    4.  
    5. private String title;
    6. private Map<String, Integer> scores;
    7. private List<Team> teams;
    8.  
    9. public SimpleScoreboard(String title) {
    10. this.scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
    11. this.title = title;
    12. this.scores = Maps.newLinkedHashMap();
    13. this.teams = Lists.newArrayList();
    14. }
    15.  
    16.  
    17.  
    18. public void blankLine() {
    19. add(" ");
    20. }
    21.  
    22. public void add(String text) {
    23. add(text, null);
    24. }
    25.  
    26. public void add(String text, Integer score) {
    27. Preconditions.checkArgument(text.length() < 48, "text cannot be over 48 characters in length");
    28. text = fixDuplicates(text);
    29. scores.put(text, score);
    30. }
    31.  
    32. private String fixDuplicates(String text) {
    33. while (scores.containsKey(text))
    34. text += "§r";
    35. if (text.length() > 48)
    36. text = text.substring(0, 47);
    37. return text;
    38. }
    39.  
    40. private Map.Entry<Team, String> createTeam(String text) {
    41. String result = "";
    42. if (text.length() <= 16)
    43. return new AbstractMap.SimpleEntry<>(null, text);
    44. Team team = scoreboard.registerNewTeam("text-" + scoreboard.getTeams().size());
    45. Iterator<String> iterator = Splitter.fixedLength(16).split(text).iterator();
    46. team.setPrefix(iterator.next());
    47. result = iterator.next();
    48. if (text.length() > 32)
    49. team.setSuffix(iterator.next());
    50. teams.add(team);
    51. return new AbstractMap.SimpleEntry<>(team, result);
    52. }
    53.  
    54. public void build() {
    55. Objective obj = scoreboard.registerNewObjective((title.length() > 16 ? title.substring(0, 15) : title), "dummy");
    56. obj.setDisplayName(title);
    57. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    58.  
    59. int index = scores.size();
    60.  
    61. for (Map.Entry<String, Integer> text : scores.entrySet()) {
    62. Map.Entry<Team, String> team = createTeam(text.getKey());
    63. Integer score = text.getValue() != null ? text.getValue() : index;
    64. OfflinePlayer player = Bukkit.getOfflinePlayer(team.getValue());
    65. if (team.getKey() != null)
    66. team.getKey().addPlayer(player);
    67. obj.getScore(player).setScore(score);
    68. index -= 1;
    69. }
    70. }
    71.  
    72. public void reset() {
    73. title = null;
    74. scores.clear();
    75. for (Team t : teams)
    76. t.unregister();
    77. teams.clear();
    78. }
    79.  
    80. public Scoreboard getScoreboard() {
    81. return scoreboard;
    82. }
    83.  
    84. public void send(Player... players) {
    85. for (Player p : players)
    86. p.setScoreboard(scoreboard);
    87. }
    88.  
    89. }


    Error:
    Code:
    [19:56:27 ERROR]: Could not pass event PlayerJoinEvent to StaffSB v1
    org.bukkit.event.EventException
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:305) ~[spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62) ~[spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
    ava:502) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:487) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.PlayerList.onPlayerJoin(PlayerList.java:
    262) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.PlayerList.a(PlayerList.java:147) [spigo
    t.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.LoginListener.b(LoginListener.java:109)
    [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.LoginListener.c(LoginListener.java:41) [
    spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.NetworkManager.a(NetworkManager.java:159
    ) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.ServerConnection.c(ServerConnection.java
    :82) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:7
    85) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:3
    16) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:6
    23) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java
    :526) [spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_25]
    Caused by: java.lang.IllegalArgumentException: Name cannot be blank
            at com.google.common.base.Preconditions.checkArgument(Preconditions.java
    :125) ~[spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at org.bukkit.craftbukkit.v1_8_R1.CraftServer.getOfflinePlayer(CraftServ
    er.java:1275) ~[spigot.jar:git-Spigot-9a88a38-bab0e8b]
            at org.bukkit.Bukkit.getOfflinePlayer(Bukkit.java:741) ~[spigot.jar:git-
    Spigot-9a88a38-bab0e8b]
            at se.Fillefixsweden.StaffSB.SimpleScoreboard.build(SimpleScoreboard.jav
    a:86) ~[?:?]
            at se.Fillefixsweden.StaffSB.Main.onLogin(Main.java:50) ~[?:?]
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0
    _25]
            at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0
    _25]
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
    .8.0_25]
            at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
            at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:301) ~[spigot.jar:git-Spigot-9a88a38-bab0e8b]
            ... 14 more
    Thank you in advance!
     
Thread Status:
Not open for further replies.

Share This Page