1
0
This commit is contained in:
Lee
2024-03-26 09:10:03 +00:00
parent 8a435ad132
commit 73b052a81d
2 changed files with 23 additions and 22 deletions

View File

@ -5,13 +5,11 @@ import cc.fascinated.account.Profile;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team; import org.bukkit.scoreboard.Team;
@Getter @Setter @Getter @Setter
@ -42,7 +40,7 @@ public class PlayerColor extends Profile {
public void setColor(NamedTextColor color) { public void setColor(NamedTextColor color) {
this.color = color; this.color = color;
Team team = getScoreboardTeam(this.color); Team team = PlayerColorManager.getScoreboardTeam(this.color);
team.addEntry(getAccount().getName()); team.addEntry(getAccount().getName());
} }
@ -55,7 +53,7 @@ public class PlayerColor extends Profile {
public void onLogin(PlayerLoginEvent event) { public void onLogin(PlayerLoginEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
Team team = getScoreboardTeam(this.color); Team team = PlayerColorManager.getScoreboardTeam(this.color);
team.addEntry(player.getName()); team.addEntry(player.getName());
} }
@ -63,24 +61,7 @@ public class PlayerColor extends Profile {
public void onQuit(PlayerQuitEvent event) { public void onQuit(PlayerQuitEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
Team team = getScoreboardTeam(this.color); Team team = PlayerColorManager.getScoreboardTeam(this.color);
team.removeEntry(player.getName()); team.removeEntry(player.getName());
} }
/**
* Gets the scoreboard team for this color.
*
* @param color the color to get the team for
* @return the team
*/
private Team getScoreboardTeam(NamedTextColor color) {
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
Team team = scoreboard.getTeam(color.toString().toLowerCase());
if (team == null) {
team = scoreboard.registerNewTeam(color.toString().toLowerCase());
team.color(color);
}
return team;
}
} }

View File

@ -8,8 +8,11 @@ import io.papermc.paper.event.player.AsyncChatEvent;
import lombok.Getter; import lombok.Getter;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.scoreboard.Scoreboard;
import org.bukkit.scoreboard.Team;
import java.util.List; import java.util.List;
@ -60,6 +63,23 @@ public class PlayerColorManager extends Manager {
return null; return null;
} }
/**
* Gets the scoreboard team for this color.
*
* @param color the color to get the team for
* @return the team
*/
public static Team getScoreboardTeam(NamedTextColor color) {
Scoreboard scoreboard = Bukkit.getScoreboardManager().getMainScoreboard();
Team team = scoreboard.getTeam(color.toString().toLowerCase());
if (team == null) {
team = scoreboard.registerNewTeam(color.toString().toLowerCase());
team.color(color);
}
return team;
}
@EventHandler @EventHandler
public void onChat(AsyncChatEvent event) { public void onChat(AsyncChatEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();