Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pl.kopara.guild.NameTag.modes;
- import org.bukkit.Bukkit;
- import org.bukkit.OfflinePlayer;
- import org.bukkit.entity.Player;
- import org.bukkit.scoreboard.Scoreboard;
- import org.bukkit.scoreboard.Team;
- import pl.kopara.guild.NameTag.NameTag;
- import pl.kopara.guild.NameTag.NameTagMode;
- import pl.kopara.guild.data.base.guild.Guild;
- import pl.kopara.guild.managers.GuildManager;
- import pl.kopara.guild.utils.ChatUtil;
- import pl.sunnytm.api.Config;
- public class ScoreBoardNameTag implements NameTag
- {
- private static String parse(final String color, final Guild g) {
- if (g == null) {
- return ChatUtil.fixColor(color);
- }
- String msg = Config.TAG_FORMAT;
- msg = msg.replace("{TAG}", g.getTag());
- msg = msg.replace("{COLOR}", color);
- return ChatUtil.fixColor(msg);
- }
- public void initPlayer(final Player p) {
- final Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
- final Guild g = GuildManager.getGuild(p);
- for (final Guild o : GuildManager.getGuilds().values()) {
- Team t = sb.getTeam(o.getTag());
- if (t == null) {
- t = sb.registerNewTeam(o.getTag());
- }
- if (g == null) {
- t.setPrefix(parse(Config.TAG_COLOR_ENEMY, o));
- }
- else if (g.getTag().equalsIgnoreCase(o.getTag())) {
- t.setPrefix(parse(Config.TAG_COLOR_FRIEND, o));
- }
- else if (o.getAlly().contains(g.getTag())) {
- t.setPrefix(parse(Config.TAG_COLOR_ALLIANCE, o));
- }
- else {
- t.setPrefix(parse(Config.TAG_COLOR_ENEMY, o));
- }
- }
- Team noguild = sb.getTeam("noguild");
- if (noguild == null) {
- noguild = sb.registerNewTeam("noguild");
- noguild.setAllowFriendlyFire(true);
- noguild.setCanSeeFriendlyInvisibles(false);
- noguild.setPrefix(parse(Config.TAG_COLOR_NOGUILD, null));
- }
- p.setScoreboard(sb);
- for (final Player online : Bukkit.getOnlinePlayers()) {
- online.getScoreboard().getTeam((g != null) ? g.getTag() : "noguild").addPlayer((OfflinePlayer)p);
- final Guild onlineguild = GuildManager.getGuild(online);
- p.getScoreboard().getTeam((onlineguild != null) ? onlineguild.getTag() : "noguild").addPlayer((OfflinePlayer)online);
- }
- }
- public void createGuild(final Guild g, final Player p) {
- for (final Player o : Bukkit.getOnlinePlayers()) {
- final Scoreboard sb = o.getScoreboard();
- final Team t = sb.registerNewTeam(g.getTag());
- if (o == p) {
- t.setPrefix(parse(Config.TAG_COLOR_FRIEND, g));
- }
- else {
- t.setPrefix(parse(Config.TAG_COLOR_ENEMY, g));
- }
- t.addPlayer((OfflinePlayer)p);
- }
- }
- public void removeGuild(final Guild g) {
- for (final Player p : Bukkit.getOnlinePlayers()) {
- final Scoreboard sb = p.getScoreboard();
- sb.getTeam(g.getTag()).unregister();
- final Team noguild = sb.getTeam("noguild");
- for (final Player guildplayer : g.getOnlineMembers()) {
- noguild.addPlayer((OfflinePlayer)guildplayer);
- }
- }
- }
- public void joinToGuild(final Guild g, final Player p) {
- for (final Player o : Bukkit.getOnlinePlayers()) {
- o.getScoreboard().getTeam(g.getTag()).addPlayer((OfflinePlayer)p);
- }
- p.getScoreboard().getTeam(g.getTag()).setPrefix(parse(Config.TAG_COLOR_FRIEND, g));
- }
- public void leaveFromGuild(final Guild g, final OfflinePlayer p) {
- for (final Player o : Bukkit.getOnlinePlayers()) {
- o.getScoreboard().getTeam("noguild").addPlayer(p);
- }
- if (p.isOnline()) {
- p.getPlayer().getScoreboard().getTeam(g.getTag()).setPrefix(parse(Config.TAG_COLOR_ENEMY, g));
- }
- }
- public void createAlliance(final Guild g, final Guild o) {
- for (final Player p : g.getOnlineMembers()) {
- final Team t = p.getScoreboard().getTeam(o.getTag());
- if (t != null) {
- t.setPrefix(parse(Config.TAG_COLOR_ALLIANCE, o));
- }
- }
- for (final Player p : o.getOnlineMembers()) {
- final Team t = p.getScoreboard().getTeam(g.getTag());
- if (t != null) {
- t.setPrefix(parse(Config.TAG_COLOR_ALLIANCE, g));
- }
- }
- }
- public void removeAlliance(final Guild g, final Guild o) {
- for (final Player p : g.getOnlineMembers()) {
- final Team t = p.getScoreboard().getTeam(o.getTag());
- if (t != null) {
- t.setPrefix(parse(Config.TAG_COLOR_ENEMY, o));
- }
- }
- for (final Player p : o.getOnlineMembers()) {
- final Team t = p.getScoreboard().getTeam(g.getTag());
- if (t != null) {
- t.setPrefix(parse(Config.TAG_COLOR_ENEMY, g));
- }
- }
- }
- public NameTagMode getNameTagMode() {
- return NameTagMode.SCOREBOARD;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement