A library for scoreboard sidebars using the new adventure components
Since the project consists of only a few classes and is considered done, the easiest way to use it is probably to just copy and paste the source files into your project. Otherwise, you could use a service like Jitpack to get a Maven dependency from this repo.
packagede.mcmdev.sidebar;
importde.mcmdev.sidebar.renderer.BukkitSidebarRenderer;
importnet.kyori.adventure.text.Component;
importorg.bukkit.Bukkit;
importorg.bukkit.event.EventHandler;
importorg.bukkit.event.Listener;
importorg.bukkit.event.player.PlayerJoinEvent;
importorg.bukkit.event.player.PlayerQuitEvent;
importorg.bukkit.plugin.java.JavaPlugin;
importjava.util.ArrayList;
importjava.util.List;
importjava.util.concurrent.ThreadLocalRandom;
publicclassTestPluginextendsJavaPluginimplementsListener {
privateSidebarsidebar;
@OverridepublicvoidonEnable() {
sidebar = newSidebar(newBukkitSidebarRenderer());
sidebar.title(player -> Component.text("Title"));
sidebar.lines(player -> {
List<Component> components = newArrayList<>();
for (inti = 0; i < ThreadLocalRandom.current().nextInt(5); i++) {
components.add(Component.text("Line " + i));
}
returncomponents;
});
getServer().getPluginManager().registerEvents(this, this);
getServer().getScheduler().runTaskTimerAsynchronously(this, () -> {
sidebar.render();
}, 20, 20);
}
@EventHandlerpublicvoidonJoin(PlayerJoinEventevent) {
event.getPlayer().setScoreboard(Bukkit.getScoreboardManager().getNewScoreboard());
sidebar.add(event.getPlayer());
}
@EventHandlerpublicvoidonQuit(PlayerQuitEventevent) {
sidebar.remove(event.getPlayer());
}
}