ScoreboardLib 1.0.1

A flicker-free scoreboard library with support of text up to 48 characters.

  1. TigerHix
    Contributors:
    TigerHix
    icon_512.png
    ScoreboardLib
    A flicker-free scoreboard library with support of text up to 48 characters.


    What is ScoreboardLib?

    ScoreboardLib is a flexible library for adding pretty, animated scoreboards to your plugin without requiring you to figure out how to get rid of random flickers or limitations. This library is introduced to dealt with following problems in the original API and similar libraries:
    • Scoreboards cannot display text of more than 16 characters. Solved.
    • Scoreboards cannot display the same text more than once. Solved.
    • The scoreboard is flickering all the time. Solved.
    • Random disappearance of lines. Solved.

    Any screenshots?

    [​IMG]
    Feel the awesomeness.


    Other reasons to use ScoreboardLib?

    • Simple to use. You just have to decide the user interface, ScoreboardLib already got the backend handled.
    • Displays up to 48 characters instead of 16.
    • Easy to implement animated text with help of ScrollableString and HighlightedString.
    • Designed to be scalable and flexible.
    • Performant. ScoreboardLib doesn't create a scoreboard every time the content is updated.
    • Can be used as a standalone plugin, or be shaded into your project.


    How do I add it to my project?

    Simply add the following to your pom.xml.

    Code (Text):
    <repository>
        <id>tiger-repo</id>
        <url>http://repo.tigerhix.me/content/repositories/snapshots/</url>
    </repository>

    <dependency>
        <groupId>me.tigerhix.lib</groupId>
        <artifactId>scoreboard</artifactId>
        <version>1.0.1-SNAPSHOT</version>
    </dependency>
    Now you are able to create your own pretty scoreboards.

    How do I use it?

    First, you have to decide whether you use ScoreboardLib as a standalone plugin, or you just go shade it into your own plugin. For the latter case, you have to add following code to your onEnable():
    Code (Text):
    ScoreboardLib.setPluginInstance(this);
    To let ScoreboardLib holds a reference to your plugin and hence able to schedule tasks, register events, etc.

    For the scoreboard itself, here is an usage example:
    Code (Text):
    for (Player player: getServer().getOnlinePlayers()) {
        Scoreboard scoreboard = ScoreboardLib.createScoreboard(player)
            .setHandler(new ScoreboardHandler() {

                private final ScrollableString scroll = new ScrollableString(Strings.format("&aThis string is scrollable!"), 40, 0);
                private final HighlightedString highlighted = new HighlightedString("This string is highlighted!", "&6", "&e");

                @Override
                public String getTitle(Player player) {
                    return null;
                }

                @Override
                public List<Entry> getEntries(Player player) {
                    return new EntryBuilder()
                        .next("    " + scroll.next())
                        .next("    " + highlighted.next())
                        .blank()
                        .next("    &b&lCURRENT TIME MILLIS")
                        .next("    " + System.currentTimeMillis())
                        .blank()
                        .next("    &c&lCURRENT NANO TIME")
                        .next("    " + System.nanoTime())
                        .blank()
                        .next("    &7This line is equivalent to another line")
                        .next("    &7This line is equivalent to another line")
                        .blank()
                        .build();
                }

           })
           .setUpdateInterval(2l);
        scoreboard.activate();
    }
    Which would display a scoreboard as shown in the above gif to all online players.

    To remove the scoreboard, use:
    Code (Text):
    scoreboard.deactivate();
    That's really much of it. If you want to extend the functionalities somehow, simply create a new class that extends SimpleScoreboard, and start overriding methods, creating constructors, etc.


    More...

    Source code released under GNU LGPL License. Star it if you like it.
    https://github.com/TigerHix/ScoreboardLib

    My other resources:
    If you have any questions, ask them in the thread - after all, posting an error log in the review section wouldn't help anyone :(
    If ScoreboardLib helps you, consider leaving a like. A review would be also appreciated!

Recent Reviews

  1. TheViperShow
    TheViperShow
    5/5,
    Version: 1.0.1
    This library worked great! It's very simple to use and saved me a lot of time during dev.
  2. LoryTheRock
    LoryTheRock
    5/5,
    Version: 1.0.1
    Wow! This library met one of my most important needs! It is also great for creating scoreboards, as it is very simple to use.
  3. Elikill58
    Elikill58
    4/5,
    Version: 1.0.1
    Easy to use and to update scoreboard. The problem is that the scoreboard is flickering
  4. 2DevsStudio
    2DevsStudio
    5/5,
    Version: 1.0.1
  5. TheJorgeMC
    TheJorgeMC
    5/5,
    Version: 1.0.1
    It works really good, love it, super easy to use <3
    ----------------------------
  6. cella
    cella
    5/5,
    Version: 1.0.1
    Please add update method, the rest is super good, it worked for me, only that is missing, if you put it would be perfect!

    Sorry, bad english xd
  7. Wowserman
    Wowserman
    5/5,
    Version: 1.0.1
    What a Lifesaver!

    Implemented this into some of my plugins, I've always had problems with flickering scoreboards but not any more!

    Thanks 10/10 and will recommend.
  8. MisterMel
    MisterMel
    5/5,
    Version: 1.0.1
    Very easy to use and it just works!
    Its litteraly SO simple. The EntryBuilder is really handy and not complicated AT ALL. For anyone looking for a good scoreboard lib, this is your way to go!
    10/10
  9. JESUSTROLLYOU
    JESUSTROLLYOU
    3/5,
    Version: 1.0.1
    Hello, nice API, but in 1.7.10 the scoreboard refresh with a bug

    Make an update please guys !!!!!!!
  10. Paolo565
    Paolo565
    2/5,
    Version: 1.0.1
    Nice API. But the maven repository doesn't work and, at least in 1.11.2, the scoreboard flickers sometimes