Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/scoreboard/Scoreboard.htmlКак установить префикс над игроком пакетами?
Если тебе надо вытаскивать префиксы из плагина с пермишенами(PermissionsEx или LuckPerms) и ставить их над головами игроков (по типу как в NameTagEdit), то как-то такКак установить префикс над игроком пакетами?
public final ArrayList<String> sent = new ArrayList<>();
private void createScoreboard(Player p) {
Scoreboard scoreboard = new Scoreboard();
HashMap<String, HashMap<String, String>> pl = new HashMap<>();
for (Player pOnline : Bukkit.getOnlinePlayers()) {
String prefix = getChat().getPlayerPrefix(pOnline).replace("&", "§");
String suffix = getChat().getPlayerSuffix(pOnline).replace("&", "§");
if (prefix.length() > 16) {
prefix = prefix.substring(0, 16);
}
if (suffix.length() > 16) {
suffix = suffix.substring(0, 16);
}
if (suffix.length() == 0)
suffix = "";
else if (suffix.toCharArray()[suffix.length() - 1] != ' ') {
String nSuffix = suffix + suffix.substring(suffix.length()) + " ";
if (nSuffix.length() > 16)
nSuffix = nSuffix.substring(0, 16);
suffix = nSuffix;
}
HashMap<String, String> map = new HashMap<>();
map.put("prefix", prefix);
map.put("suffix", suffix);
pl.put(pOnline.getName(), map);
}
for (String s : pl.keySet()) {
String teamName = s + "_prefix";
ScoreboardTeam team = scoreboard.getTeam(teamName);
if (team == null) {
team = scoreboard.createTeam(teamName);
team.setPrefix(pl.get(s).get("prefix"));
team.setSuffix(pl.get(s).get("suffix"));
}
PacketPlayOutScoreboardTeam removeTeam = new PacketPlayOutScoreboardTeam(team, 1);
PacketPlayOutScoreboardTeam createTeam = new PacketPlayOutScoreboardTeam(team, 0);
PacketPlayOutScoreboardTeam addPlayer = new PacketPlayOutScoreboardTeam(team, Collections.singleton(s), 3);
PacketPlayOutScoreboardTeam updateTeam = new PacketPlayOutScoreboardTeam(team, 2);
if (!sent.contains(teamName)) {
sendPacket(p, createTeam);
sendPacket(p, addPlayer);
sendPacket(p, updateTeam);
sent.add(teamName);
}
sendPacket(p, removeTeam);
sendPacket(p, createTeam);
sendPacket(p, addPlayer);
sendPacket(p, updateTeam);
}
}
private void sendPacket(Player p, Packet<?> packet) {
((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet);
}
public Chat getChat() {
RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
return rsp != null ? rsp.getProvider() : null;
}