package com.lifeknight.relaymcbungeemain.utilities; import com.lifeknight.relaymcbungeemain.player.SmartPlayer; import com.lifeknight.relayutils.player.Group; import net.md_5.bungee.api.connection.ProxiedPlayer; import net.md_5.bungee.api.score.Team; import java.util.*; public class GroupUtils { public static List getGroupTeams(SmartPlayer smartPlayer) { Collection players = smartPlayer.getServerInfo().getPlayers(); Map groupToTeam = getGroupToTeam(); for (ProxiedPlayer player : players) { SmartPlayer smartPlayer1 = SmartPlayer.getSmartPlayer(player); if (smartPlayer1.isAndHasNick()) { groupToTeam.get(smartPlayer1.getNick().getGroup()).addPlayer(player.getName()); groupToTeam.get(smartPlayer1.getNick().getGroup()).addPlayer(player.getDisplayName()); } else { groupToTeam.get(smartPlayer1.getHighestGroup()).addPlayer(player.getName()); } } return new ArrayList<>(groupToTeam.values()); } public static Map getGroupToTeam() { Map groupToTeam = new HashMap<>(); for (Group value : Group.values()) { groupToTeam.put(value, getTeamForGroup(value)); } return groupToTeam; } public static Team getTeamForGroup(Group group) { Team team = new Team(group.getGroupName()); team.setColor(group.getColor().getColor().getRGB()); team.setPrefix(group.getPrefix()); team.setCollisionRule("NEVER"); return team; } public static int maxPlayersForPartyOwner(Group group, int tier) { if (group == null) { return 4; } return switch (group) { case DEFAULT -> 4; case TIERI -> 6; case TIERII -> 8; case TIERIII -> 10; case CHAMPION -> new int[]{4, 8, 16, 24, 32}[Math.min(tier, 4)]; case YOUTUBE, TWITCH -> 32; default -> Integer.MAX_VALUE; }; } }