@Override
    public PacketScoreboardObjective createObjective(String id, String title, DisplaySlot displaySlot, boolean autoSubscribe) {
        Preconditions.checkArgument(id.length() <= 16, "id cannot be longer than 16 characters");
        Preconditions.checkState(!this.objectives.containsKey(id), "id already exists");

        PacketScoreboardObjective objective = new PacketScoreboardObjective(id, title, displaySlot, autoSubscribe);
        if (autoSubscribe) {
            for (Player player : Players.all()) {
                objective.subscribe(player);
            }
        }

        this.objectives.put(id, objective);
        return objective;
    }
Implements {@link Scoreboard} using ProtocolLib.

<p>This class as well as all returned instances are thread safe.</p>
helper/src/main/java/me/lucko/helper/scoreboard/PacketScoreboard.java