[Tutorial] Scoreboards/Teams with the Bukkit API

Discussion in 'Resources' started by chasechocolate, Apr 5, 2013.

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


    Sir, i love you :D
  2. Offline


    How do I remove an player off the scoreboard?
  3. Offline


    You can make it so it only sends the scoreboard to players in a specific world:
    1. for(Player inWorld : world.getPlayers()){
    2. inWorld.setScoreboard(board);
    3. }

    Thanks for the feedback <3 :p

    1. Scoreboard blankBoard = manager.getNewScoreboard();
    2. player.setScoreboard(blankBoard);

    I'll add it to the OP tomorrow.

    Yeah... ;(

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Oct 30, 2015
  4. Offline


    I have the line:
  5. Offline


    How I disable the Scoreboard?
  6. Offline


    If I wanted my scoreboard only display objectives via their display name, is this this possible to do without setting a score? If not, how do you set a score such that much scoreboard could display (on the sidebar) something like:

    (with blue color) Objective 1
    (with red color) Objective 2
    (with gray color) Objective 3

    without integer involvement, etc.

    Thanks for the hard work!
  7. Offline


    How can I delete scoreboard from server's data? I'm creating a lot of scoreboards in my plugin and I don't want to save them on server.
  8. Offline


    my dose not work why? plz tell where to put it i have tryed made on PlayerJoinEvent

        public void onEnable() {
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard board = manager.getNewScoreboard();
            Objective objective = board.registerNewObjective("test", "dummy");
            objective.setDisplayName("Display Name");
            OfflinePlayer p = Bukkit.getPlayer("EzLeR_iGODz");
            Score score = objective.getScore(p);
            ((Player) p).setScoreboard(board);
  9. Offline


    Why are you using offline players?
  10. Offline


    cant use anything else
  11. Offline


    Well duh, you're setting it in onEnable when no players are on the server...
  12. chasechocolate
    Actually setting that to true will allow friendly fire, which means teammates can hurt themselves.
  13. Offline


    Stupidest question ever:
    How can I store the scoreboard. Should I get the main scoreboard each time I want to edit something (make a team etc)
    Or should I make a newscoreboard in the onEnable and then do getMainScoreboard.

    I know how to work with scoreboards its just saving them thats my issue :p

    Should I save them to a hashmap? so they can be accessed?

    EDIT: I worked it out before I edited this :p
  14. If you have only one scoreboard object you can just create a field for that object and store it...

    Just add "private Scoreboard board" outside of any method (as a field...) and remove "Scoreboard" from your 'board' variable in onEnable so you'll use the field instead of making a local variable.

    Then you can use board in that class.

    Or you could make it protected/public to use it in other classes by using 'plugin.board', assuming plugin is the pointer to your main class...
  15. Offline


    Hey, Can I get an example of making the scoreboard.
    like where to put the code?
    Because when I tried it in my self I always had an error in the ScoreBoardManager...
  16. Javaer
    You expect people to give you detailed information but you don't even post the error you get.
  17. Offline


    Srry, My error is in this line:
    ScoreboardManager manager = Bukkit.getScoreboardManager();
    Always get error in the console..
  18. Javaer
    I still don't see you posting the actual error.

    But I have to assume you're not using a new enough Bukkit API build that has the scoreboard API implemented, the beta version does not have it, download the latest dev version.
  19. Offline


    getPlayerTeam doesnt seem to be working for me.
  20. Offline


    I have made a scoreboard show up under a players name for their health but im getting a error for the
    ("showhealth", "health");
    ("/ 20");
    I'm using the new CB it lets me import it but still comes up red with Syntax error on token "setDisplaySlot" identifier expected after this token.
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    import org.bukkit.scoreboard.ScoreboardManager;

    this is my code

        ScoreboardManager manager = Bukkit.getScoreboardManager();
        Scoreboard board = manager.getNewScoreboard();
        board.registerNewObjective("showhealth", "health");
        Objective objective = board.getObjective("showhealth");
        objective.setDisplayName("/ 20");
        for(Player online : Bukkit.getOnlinePlayers()){
  21. Offline


    Yeah, I just got what it said from the JavaDocs... I'll fix that.

    PHILLIPS_71 probably got changed with a new release. I'll update the OP when I get a chance to experiment with the new builds.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: Oct 30, 2015
  22. Offline


    "player" gives me an error, i don't know how to solve it other than doing what eclipse thinks is good which is to add
    OfflinePlayer player; which does not help at all >.<
  23. Offline


    1.5.1 Beta Build broke this.
  24. Offline


  25. Offline


    Thats not 1.5.1 Beta Build and the methods were deleted.
  26. Offline


    Scoreboard API wasn't added till after the current beta build so builds 2738 onward should be used with these examples.
  27. Offline


  28. Offline


    Is there a way to display 2 Scoreboards to a player? (I want to have something in the right box and under the players name)
  29. Offline


    Hey I saw your tutrial and I am using the latest Dev build for Bukkit and I got this error:
    2013-04-10 14:34:04 [INFO] This server is running CraftBukkit version git-Bukkit-1.5.1-R0.1-7-ge80e64d-b2744jnks (MC: 1.5.1) (Implementing API version 1.5.1-R0.2-SNAPSHOT)
    2013-04-10 14:34:04 [SEVERE] Could not load 'plugins\Ctf.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:182)
        at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:305)
        at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:230)
        at org.bukkit.craftbukkit.v1_5_R2.CraftServer.loadPlugins(CraftServer.java:239)
        at org.bukkit.craftbukkit.v1_5_R2.CraftServer.<init>(CraftServer.java:217)
        at net.minecraft.server.v1_5_R2.PlayerList.<init>(PlayerList.java:55)
        at net.minecraft.server.v1_5_R2.DedicatedPlayerList.<init>(SourceFile:11)
        at net.minecraft.server.v1_5_R2.DedicatedServer.init(DedicatedServer.java:105)
        at net.minecraft.server.v1_5_R2.MinecraftServer.run(MinecraftServer.java:381)
        at net.minecraft.server.v1_5_R2.ThreadServerApplication.run(SourceFile:573)
    Caused by: java.lang.NullPointerException
        at me.Kenig.Ctf.CtfMain.<init>(CtfMain.java:61)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:178)
        ... 9 more
    Line 61:
    Scoreboard board = manager.getNewScoreboard();
  30. iWareWolf
    Beta doesn't even have the Scoreboard API, dev builds newer than beta have it.

    Is your "manager" variable asigned ? :)
Thread Status:
Not open for further replies.

Share This Page