Attempting to improve teams for glow
This commit is contained in:
parent
0324458efb
commit
8fa21120be
|
|
@ -2,6 +2,7 @@ package com.alttd.playerutils.commands.playerutils_subcommands;
|
|||
|
||||
import com.alttd.playerutils.commands.SubCommand;
|
||||
import com.alttd.playerutils.config.Messages;
|
||||
import com.alttd.playerutils.util.Logger;
|
||||
import net.kyori.adventure.text.format.NamedTextColor;
|
||||
import net.kyori.adventure.text.format.TextColor;
|
||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
|
|
@ -18,6 +19,13 @@ import java.util.Optional;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
public class Glow extends SubCommand {
|
||||
|
||||
private final Logger logger;
|
||||
|
||||
public Glow(Logger logger) {
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender commandSender, String[] args) {
|
||||
if (!(commandSender instanceof Player player)) {
|
||||
|
|
@ -29,6 +37,12 @@ public class Glow extends SubCommand {
|
|||
return false;
|
||||
}
|
||||
|
||||
Scoreboard board = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||
board.getTeams().stream()
|
||||
.filter(team -> team.getName().startsWith("Glow"))
|
||||
.filter(team -> team.hasPlayer(player))
|
||||
.forEach(team -> team.removePlayer(player));
|
||||
|
||||
if (args[1].equalsIgnoreCase("off")) {
|
||||
commandSender.sendMiniMessage(Messages.GLOW.GLOW_OFF, null);
|
||||
player.setGlowing(false);
|
||||
|
|
@ -42,20 +56,27 @@ public class Glow extends SubCommand {
|
|||
}
|
||||
|
||||
DyeColor dyeColor = any.get();
|
||||
Scoreboard board = Bukkit.getScoreboardManager().getMainScoreboard();
|
||||
|
||||
Team team = board.getTeam("Glow " + dyeColor.name());
|
||||
Team team = board.getTeam("Glow-" + dyeColor.name());
|
||||
|
||||
if (team == null) {
|
||||
team = board.registerNewTeam("Glow " + dyeColor.name());
|
||||
team = board.registerNewTeam("Glow-" + dyeColor.name());
|
||||
NamedTextColor namedTextColor = NamedTextColor.nearestTo(TextColor.color(dyeColor.getColor().asRGB()));
|
||||
team.color(namedTextColor);
|
||||
}
|
||||
|
||||
if (!team.hasEntry(player.getName())) {
|
||||
team.addEntry(player.getName());
|
||||
if (team.getScoreboard() == null) {
|
||||
commandSender.sendMiniMessage(Messages.GLOW.UNABLE_TO_GET_SCOREBOARD, null);
|
||||
logger.warning("Unable to get scoreboard for team");
|
||||
return true;
|
||||
}
|
||||
|
||||
NamedTextColor namedTextColor = NamedTextColor.nearestTo(TextColor.color(dyeColor.getColor().asRGB()));
|
||||
team.color(namedTextColor);
|
||||
// if (!team.hasEntry(player.getName())) {
|
||||
// team.addEntry(player.getName());
|
||||
// }
|
||||
if (!team.hasPlayer(player))
|
||||
team.addPlayer(player);
|
||||
player.setScoreboard(team.getScoreboard());
|
||||
|
||||
player.setGlowing(true);
|
||||
commandSender.sendMiniMessage(Messages.GLOW.GLOW_ON, Placeholder.parsed("color", dyeColor.name()));
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user