diff --git a/src/de/steamwar/bungeecore/commands/TeamCommand.java b/src/de/steamwar/bungeecore/commands/TeamCommand.java index 026e13f7..c89e44d6 100644 --- a/src/de/steamwar/bungeecore/commands/TeamCommand.java +++ b/src/de/steamwar/bungeecore/commands/TeamCommand.java @@ -23,15 +23,11 @@ import de.steamwar.bungeecore.Message; import de.steamwar.bungeecore.Storage; import de.steamwar.bungeecore.inventory.SWItem; import de.steamwar.bungeecore.inventory.SWListInv; -import de.steamwar.sql.Punishment; -import de.steamwar.sql.SteamwarUser; -import de.steamwar.sql.Team; -import de.steamwar.sql.TeamTeilnahme; import de.steamwar.command.PreviousArguments; import de.steamwar.command.SWCommand; import de.steamwar.command.TypeMapper; import de.steamwar.messages.ChatSender; -import de.steamwar.sql.Event; +import de.steamwar.sql.*; import net.md_5.bungee.BungeeCord; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; @@ -181,6 +177,7 @@ public class TeamCommand extends SWCommand { } user.setTeam(t); + if (user.isPunished(Punishment.PunishmentType.NoTeamEventParticipation)) removeTeamTeilnahme(t); teamInvitations.remove(user.getId()); Message.send("TEAM_JOIN_JOINED", player, Team.get(t).getTeamName()); } @@ -251,6 +248,10 @@ public class TeamCommand extends SWCommand { return; } + if (target.isPunished(Punishment.PunishmentType.NoTeamEventParticipation)) { + Message.send("UNNOTEAMEVENTPARTICIPATION_NOTICE", player); + } + teamInvitations.get(target.getId()).add(team.getTeamId()); Message.send("TEAM_INVITE_INVITED", player, toInvite); @@ -383,12 +384,12 @@ public class TeamCommand extends SWCommand { List users = team.getMembers().stream().map(SteamwarUser::get).collect(Collectors.toList()); - Message.sendPrefixless("TEAM_INFO_LEADER", player, getMemberList(users, true)); + Message.sendPrefixless("TEAM_INFO_LEADER", player, users.stream().filter(SteamwarUser::isLeader).count(), getMemberList(users, true)); String members = getMemberList(users, false); if(members.length() > 0) { - Message.sendPrefixless("TEAM_INFO_MEMBER", player, members); + Message.sendPrefixless("TEAM_INFO_MEMBER", player, users.stream().filter(u -> !u.isLeader()).count(), members); } Set events = TeamTeilnahme.getEvents(team.getTeamId()); @@ -486,6 +487,10 @@ public class TeamCommand extends SWCommand { TeamTeilnahme.notTeilnehmen(team.getTeamId(), event.getEventID()); Message.send("TEAM_EVENT_LEFT", player); }else{ + if (checkNoEventPunished(team.getTeamId())) { + Message.send("UNNOTEAMEVENTPARTICIPATION_MESSAGE", player); + return; + } TeamTeilnahme.teilnehmen(team.getTeamId(), event.getEventID()); Message.send("TEAM_EVENT_JOINED", player, event.getEventName()); Message.sendPrefixless("TEAM_EVENT_HOW_TO_LEAVE", player); @@ -690,4 +695,16 @@ public class TeamCommand extends SWCommand { } return false; } + + public static void removeTeamTeilnahme(int team) { + Event.getComing() + .stream() + .filter(event -> TeamTeilnahme.nimmtTeil(team, event.getEventID())) + .forEach(event -> TeamTeilnahme.notTeilnehmen(team, event.getEventID())); + } + + public static boolean checkNoEventPunished(int team) { + return SteamwarUser.getTeam(team).stream() + .anyMatch(steamwarUser -> steamwarUser.isPunished(Punishment.PunishmentType.NoTeamEventParticipation)); + } } diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index 9a3b8ae7..24331c8d 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -466,8 +466,8 @@ TEAM_LEADER_PROMOTED=§7You made §e{0} §7a leader! #Team Info TEAM_INFO_USAGE=§8/§7team info §8[§eTeamname§8] TEAM_INFO_TEAM=§7Team §e{0} §8[§{1}{2}§8] -TEAM_INFO_LEADER=§7Leader§8: {0} -TEAM_INFO_MEMBER=§7Member§8: {0} +TEAM_INFO_LEADER=§7Leader ({0})§8: {1} +TEAM_INFO_MEMBER=§7Member ({0})§8: {1} TEAM_INFO_EVENTS=§7Events§8: §e{0} #Team List diff --git a/src/de/steamwar/messages/BungeeCore_de.properties b/src/de/steamwar/messages/BungeeCore_de.properties index 5f92f3a8..dda1d11a 100644 --- a/src/de/steamwar/messages/BungeeCore_de.properties +++ b/src/de/steamwar/messages/BungeeCore_de.properties @@ -444,8 +444,8 @@ TEAM_LEADER_PROMOTED=§7Du hast den Spieler §e{0} §7zum Leader gemacht! #Team Info TEAM_INFO_USAGE=§8/§7team info §8[§eTeamname§8] TEAM_INFO_TEAM=§7Team §e{0} §8[§{1}{2}§8] -TEAM_INFO_LEADER=§7Leader§8: {0} -TEAM_INFO_MEMBER=§7Member§8: {0} +TEAM_INFO_LEADER=§7Leader ({0})§8: {1} +TEAM_INFO_MEMBER=§7Member ({0})§8: {1} TEAM_INFO_EVENTS=§7Events§8: §e{0} #Team List