mirror of
https://github.com/CarmJos/PlayerPrefix.git
synced 2026-06-04 09:59:31 +08:00
1.0.0 项目完成
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user