Advertisement
Guest User

Untitled

a guest
Apr 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.70 KB | None | 0 0
  1. package unique.network.utilties.managers;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.ChatColor;
  5. import org.bukkit.OfflinePlayer;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.Listener;
  8.  
  9. import unique.network.UHC;
  10. import unique.network.teams.Team;
  11. import unique.network.utilties.chat.Color;
  12.  
  13. import java.util.*;
  14.  
  15. @SuppressWarnings("all")
  16. public class TeamManager implements Listener {
  17.  
  18. private static TeamManager instance = new TeamManager();
  19. private boolean teamsEnabled = false;
  20. private boolean damageTeamMembers = true;
  21. public static final Map<UUID, Team> teams = new HashMap<>();
  22. private int maxSize = 2;
  23. private int currentTeams = 0;
  24. private final String prefix = ChatColor.translateAlternateColorCodes('&', UHC.getInstance().getConfig().getString("settings.teams-prefix"));
  25.  
  26.  
  27. public static TeamManager getInstance() {
  28. return instance;
  29. }
  30.  
  31. public boolean canDamageTeamMembers() {
  32. return damageTeamMembers;
  33. }
  34.  
  35. public void setCanDamageTeamMembers(boolean damageTeamMembers) {
  36. this.damageTeamMembers = damageTeamMembers;
  37. }
  38.  
  39. public boolean isTeamsEnabled() {
  40. return teamsEnabled;
  41. }
  42.  
  43. public void setTeamsEnabled(boolean teamsEnabled) {
  44. this.teamsEnabled = teamsEnabled;
  45. }
  46.  
  47. public void clearTeams() {
  48. teams.clear();
  49. for (UUID uuid : teams.keySet()) {
  50. unregisterTeam(uuid);
  51. }
  52.  
  53. currentTeams = 0;
  54. }
  55.  
  56. public void unregisterTeam(UUID uuid) {
  57. teams.get(uuid).removePlayer(Bukkit.getOfflinePlayer(uuid));
  58. teams.remove(uuid);
  59. }
  60.  
  61. public Map<UUID, Team> getTeams() {
  62. return teams;
  63. }
  64.  
  65. public void autoPlace() {
  66. for (Player players : Bukkit.getServer().getOnlinePlayers()) {
  67. Team team = teams.get(players.getUniqueId());
  68. if (team == null) {
  69. createTeam(players);
  70. }
  71. }
  72. }
  73.  
  74. public void createTeam(Player owner) {
  75. currentTeams++;
  76. Team currentTeam = teams.get(owner.getUniqueId());
  77. if (currentTeam != null) {
  78. currentTeam.removePlayer(owner);
  79. }
  80. registerTeam(owner, new Team(owner, currentTeams));
  81. }
  82.  
  83. public void registerTeam(Player player, Team team) {
  84. if (team.getSize() == getMaxSize()) {
  85. player.sendMessage(Color.translate("&4&lWARNING: &fTeam Size is currently set to &a" + maxSize));
  86. return;
  87. }
  88. team.addPlayer(player);
  89. teams.put(player.getUniqueId(), team);
  90. }
  91.  
  92. public void disbandTeam(Team team) {
  93. for (UUID uuid : team.getPlayers()) {
  94. unregisterTeam(uuid);
  95. }
  96. }
  97.  
  98. public int getMaxSize() {
  99. return this.maxSize;
  100. }
  101.  
  102. public void setMaxSize(int maxSize) {
  103. this.maxSize = maxSize;
  104. }
  105.  
  106. public Set<Team> getTeamSet() {
  107. Set<Team> teams = new HashSet<>();
  108. teams.addAll(TeamManager.teams.values());
  109. return teams;
  110. }
  111.  
  112. public int getTeamsAlive() {
  113. int i = 0;
  114. for (Team team : getTeamSet()) {
  115. if (team.isAlive()) {
  116. i++;
  117. }
  118. }
  119. return i;
  120. }
  121.  
  122. public String getTeamsPrefix() {
  123. return prefix;
  124. }
  125.  
  126. public Team getLastTeam() {
  127. if (getTeamsAlive() == 1) {
  128. for (Team teams : getTeamSet()) {
  129. if (teams.isAlive()) {
  130. return teams;
  131. }
  132. }
  133. }
  134. return null;
  135. }
  136.  
  137. public Team getTeam(OfflinePlayer player) {
  138. return TeamManager.getInstance().getTeams().get(player.getUniqueId());
  139. }
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement