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.commands.SubCommand;
|
||||||
import com.alttd.playerutils.config.Messages;
|
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.NamedTextColor;
|
||||||
import net.kyori.adventure.text.format.TextColor;
|
import net.kyori.adventure.text.format.TextColor;
|
||||||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||||
|
|
@ -18,6 +19,13 @@ import java.util.Optional;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class Glow extends SubCommand {
|
public class Glow extends SubCommand {
|
||||||
|
|
||||||
|
private final Logger logger;
|
||||||
|
|
||||||
|
public Glow(Logger logger) {
|
||||||
|
this.logger = logger;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender commandSender, String[] args) {
|
public boolean onCommand(CommandSender commandSender, String[] args) {
|
||||||
if (!(commandSender instanceof Player player)) {
|
if (!(commandSender instanceof Player player)) {
|
||||||
|
|
@ -29,6 +37,12 @@ public class Glow extends SubCommand {
|
||||||
return false;
|
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")) {
|
if (args[1].equalsIgnoreCase("off")) {
|
||||||
commandSender.sendMiniMessage(Messages.GLOW.GLOW_OFF, null);
|
commandSender.sendMiniMessage(Messages.GLOW.GLOW_OFF, null);
|
||||||
player.setGlowing(false);
|
player.setGlowing(false);
|
||||||
|
|
@ -42,20 +56,27 @@ public class Glow extends SubCommand {
|
||||||
}
|
}
|
||||||
|
|
||||||
DyeColor dyeColor = any.get();
|
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) {
|
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())) {
|
if (team.getScoreboard() == null) {
|
||||||
team.addEntry(player.getName());
|
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()));
|
// if (!team.hasEntry(player.getName())) {
|
||||||
team.color(namedTextColor);
|
// team.addEntry(player.getName());
|
||||||
|
// }
|
||||||
|
if (!team.hasPlayer(player))
|
||||||
|
team.addPlayer(player);
|
||||||
|
player.setScoreboard(team.getScoreboard());
|
||||||
|
|
||||||
player.setGlowing(true);
|
player.setGlowing(true);
|
||||||
commandSender.sendMiniMessage(Messages.GLOW.GLOW_ON, Placeholder.parsed("color", dyeColor.name()));
|
commandSender.sendMiniMessage(Messages.GLOW.GLOW_ON, Placeholder.parsed("color", dyeColor.name()));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user