Original version of the plugin: https://www.spigotmc.org/resources/xoreboardutil.43817/
Note that 1.8.8 version is not fully supported, and it could cause errors
THIS IS API \ Library FOR DEVELOPERS AND THEIR PROJECTS
Code
@NotNull XoreBoard xoreBoard = XoreBoardUtil.getNextXoreBoard();
xoreBoard.addPlayer((org.bukkit.entity.Player) player);
@NotNull SharedSidebar sidebar = xoreBoard.getSharedSidebar();
sidebar.setDisplayName("SharedSidebar");
HashMap<String, Integer> lines = new HashMap<String, Integer>();
lines.put("&eNick: &fhaelexuis", 3);
lines.put("&eRank: &fMember", 2);
lines.put("&eBalance: &a$100.00", 1);
sidebar.rewriteLines(lines);
sidebar.showSidebar();FEATURES
- Easy sidebar manipulation.
- Ability to use 1 scoreboard and set different sidebars to each player, or shared (global) sidebar.
- Player collisions disabled by default.
BUGS
- Always visible team prefixes and below names for everyone, no matter in which XoreBoard player is.
- You can set Below Names, such as "&c❤", and set health value to specific player.
- All server players are in 1 real Bukkit Scoreboard, where you can create a teams (ranks, etc.)
- Ability to hide/show sidebar for each player in XoreBoard
- Player can be in multiple Scoreboards (XoreBoard) at the same time, depends which one are you updating
- Whole code can be used in async threads
- Color codes, such as &b, supported by default
- Based on packets, and util can be used by multiple plugins at the same time
- Prevent client kicking/crashing (if you set some text really long
- When you disable global collisions, mob collisions will be disabled as well, so if you have Survival/SkyBlock server, it can cause problem with mob pushing, so I recommend use XoreBoardUtil.setGlobalCollisions(Team.OptionStatus.FOR_OWN_TEAM) instead of XoreBoardUtil.setGlobalCollisions(Team.OptionStatus.NEVER) after server start, if you need mob pushing. Then collisions will be only between Teams (of main server scoreboard)
Documentation
BASICS
How to create new XoreBoard:
@NotNull XoreBoard xoreBoard = XoreBoardUtil.getNextXoreBoard();How to remove XoreBoard: (You have two options, removing by name, or an object)
XoreBoardUtil.removeXoreBoard((String) xoreBoardName);
XoreBoardUtil.removeXoreBoard((XoreBoard) xoreBoard);Adding player to xoreBoard:
xoreBoard.addPlayer((org.bukkit.entity.Player) player);Getting XorePlayer from XoreBoard
@NotNull XorePlayer xorePlayer = xoreBoard.getPlayer((org.bukkit.entity.Player) player);Removing player from xoreBoard:
xoreBoard.removePlayer((org.bukkit.entity.Player) player);XOREBOARD MANIPULATION
Getting shared sidebar of XoreBoard
@NotNull SharedSidebar sidebar = xoreBoard.getSharedSidebar();Getting private sidebar of Player
@NotNull PrivateSidebar sidebar = xoreBoard.getPlayer((org.bukkit.entity.Player) player).getPrivateSidebar();Changing a displayName of sidebar
sidebar.setDisplayName("&d&lPretty Display");Hiding and showing sidebar (shared sidebar is showed by default)
sidebar.hideSidebar();
sidebar.hideSidebar((XorePlayer) xorePlayer); // Redundant if sidebar is PrivateSidebar
sidebar.showSidebar();
sidebar.showSidebar((XorePlayer) xorePlayer); // Redundant if sidebar is PrivateSidebarXOREBOARD LINES MANIPULATION
Rewriting all lines at once, unchanged lines won't be updated (this method prevents flashing)
HashMap<String, Integer> lines = new HashMap<String, Integer>();
lines.put("&eNick: &fhaelexuis", 3);
lines.put("&eRank: &fMember", 2);
lines.put("&eBalance: &a$100.00", 1);
sidebar.rewriteLines(lines);Adding more lines
sidebar.putLines(@NotNull HashMap<String, Integer> lines);Clearing specific line
sidebar.clearLine("&eNick: &fhaelexuis");Clear all lines
sidebar.clearLines()Getting all lines from sidebar
sidebar.getLines();WORKING WITH TEAMS AND BELLOW NAME
Teams work exactly same as in Bukkit scoreboard, with one difference, they are global, no matter which sidebar player has
Creating a team
@NotNull org.bukkit.scoreboard.Team team = XoreBoardUtil.getTeam("Member");
team.setAllowFriendlyFire(true);
team.setCanSeeFriendlyInvisibles(false);
team.setPrefix("Member | ");Adding player to the team
XoreBoardUtil.getTeam("Member").addEntry((String) playerName);Seting up the BelowName character
XoreBoardUtil.setUpBelowNames("&c❤");Updating player Below value
XoreBoardUtil.updateBelowName((org.bukkit.entity.Player) player, int value);Events
- XoreBoardCreateEvent
- (XoreBoard) getXoreBoard()
- XoreBoardPlayerCreateEvent
- (XoreBoard) getXoreBoard()
- (XorePlayer) getXorePlayer()
- XoreBoardPlayerRemoveEvent
- (XoreBoard) getXoreBoard()
- (XorePlayer) getXorePlayer()
- XoreBoardRemoveEvent
- (String) getName()
- XoreBoardSendPacketEvent
- (XoreBoard) getXoreBoard()
- (org.bukkit.entity.Player)getPlayer()
- (Object) getPacket()
- (XoreBoardSendPacketEvent) setPacketObject(@Nullable Object packetObject)
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta