1
mirror of https://github.com/CarmJos/PlayerPrefix.git synced 2026-06-04 09:59:31 +08:00
Files
PlayerPrefix/src/main/java/cc/carm/plugin/playerprefix/utils/NamePrefix.java
T
2021-10-21 20:59:27 +08:00

61 lines
2.0 KiB
Java

package cc.carm.plugin.playerprefix.utils;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.NameTagVisibility;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
public class NamePrefix {
public static void set(Player viewer, Player target, String str) {
set(viewer, target, str, PSType.PREFIX);
}
public static void set(Player viewer, Player target, String str, PSType type) {
Scoreboard sb = viewer.getScoreboard();
if (Bukkit.getScoreboardManager().getMainScoreboard() == sb || sb == null) {
sb = Bukkit.getScoreboardManager().getNewScoreboard();
viewer.setScoreboard(sb);
}
Team t = sb.getTeam("NP_" + target.getName().substring(0, Math.min(13, target.getName().length())));
if (t == null) {
t = sb.registerNewTeam("NP_" + target.getName().substring(0, Math.min(13, target.getName().length())));
t.setNameTagVisibility(NameTagVisibility.ALWAYS);
}
if (str.length() > 16) {
str = str.substring(0, 16);
}
switch (type) {
case PREFIX:
t.setPrefix(str);
break;
case SUFFIX:
t.setSuffix(str);
break;
default:
throw new AssertionError(type.name());
}
if (!t.hasEntry(target.getName())) t.addEntry(target.getName());
}
public static void reset(Player viewer, Player target) {
Scoreboard sb = viewer.getScoreboard();
if (Bukkit.getScoreboardManager().getMainScoreboard() == sb || sb == null) {
sb = Bukkit.getScoreboardManager().getNewScoreboard();
viewer.setScoreboard(sb);
return;
}
Team t = sb.getTeam("NP_" + target.getName().substring(0, Math.min(13, target.getName().length())));
if (t != null) {
t.unregister();
}
}
public enum PSType {
PREFIX,
SUFFIX;
}
}