From f463c99eec3ac4ab46e99abee9e5b4103e408dc8 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Mon, 21 Nov 2022 17:28:08 +0100 Subject: [PATCH] Add some basic punishment stuff --- .../bungeecore/commands/TeamCommand.java | 26 +++++++++++++++---- .../steamwar/bungeecore/sql/Punishment.java | 1 + 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/de/steamwar/bungeecore/commands/TeamCommand.java b/src/de/steamwar/bungeecore/commands/TeamCommand.java index 9ae37990..cfa51a08 100644 --- a/src/de/steamwar/bungeecore/commands/TeamCommand.java +++ b/src/de/steamwar/bungeecore/commands/TeamCommand.java @@ -41,10 +41,7 @@ import net.md_5.bungee.api.event.ServerConnectEvent; import java.net.*; import java.time.Instant; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; import static de.steamwar.bungeecore.Storage.teamInvitations; @@ -242,7 +239,15 @@ public class TeamCommand extends BasicCommand { user.setTeam(t); teamInvitations.remove(user.getId()); - Message.send("TEAM_JOIN_JOINED", player, Team.get(t).getTeamName()); + Team team = Team.get(t); + Message.send("TEAM_JOIN_JOINED", player, team.getTeamName()); + if (Punishment.getPunishmentOfPlayer(user.getId(), Punishment.PunishmentType.NoEvent) != null) { + Event.getComing().forEach(event -> { + if (TeamTeilnahme.nimmtTeil(team.getTeamId(), event.getEventID())) { + TeamTeilnahme.notTeilnehmen(team.getTeamId(), event.getEventID()); + } + }); + } } private void stepBack(ProxiedPlayer player, SteamwarUser user, Team team) { @@ -299,6 +304,10 @@ public class TeamCommand extends BasicCommand { return; } + if (Punishment.getPunishmentOfPlayer(target.getId(), Punishment.PunishmentType.NoEvent) != null) { + // TODO: Add warning message + } + if(!teamInvitations.containsKey(target.getId())) teamInvitations.put(target.getId(), new LinkedList<>()); @@ -553,6 +562,13 @@ public class TeamCommand extends BasicCommand { return; } + boolean hasPunishedPlayer = team.getMembers().stream() + .map(id -> Punishment.getPunishmentOfPlayer(id, Punishment.PunishmentType.NoEvent)) + .anyMatch(Objects::nonNull); + if (hasPunishedPlayer) { + // TODO: Add message + } + if(TeamTeilnahme.nimmtTeil(team.getTeamId(), event.getEventID())){ TeamTeilnahme.notTeilnehmen(team.getTeamId(), event.getEventID()); Message.send("TEAM_EVENT_LEFT", player); diff --git a/src/de/steamwar/bungeecore/sql/Punishment.java b/src/de/steamwar/bungeecore/sql/Punishment.java index a2a10853..b4d7c3ec 100644 --- a/src/de/steamwar/bungeecore/sql/Punishment.java +++ b/src/de/steamwar/bungeecore/sql/Punishment.java @@ -144,6 +144,7 @@ public class Punishment { NoSchemSubmitting(true, "NOSCHEMSUBMITTING_TEAM", "NOSCHEMSUBMITTING_PERMA", "NOSCHEMSUBMITTING_UNTIL", "UNNOSCHEMSUBMITTING_ERROR", "UNNOSCHEMSUBMITTING"), NoDevServer(true, "NODEVSERVER_TEAM", "NODEVSERVER_PERMA", "NODEVSERVER_UNTIL", "UNNODEVSERVER_ERROR", "UNNODEVSERVER"), NoFightServer(false, "NOFIGHTSERVER_TEAM", "NOFIGHTSERVER_PERMA", "NOFIGHTSERVER_UNTIL", "UNNOFIGHTSERVER_ERROR", "UNNOFIGHTSERVER"), + NoEvent(true, "", "", "", "", ""), NoTeamServer(true, "NOTEAMSERVER_TEAM", "NOTEAMSERVER_PERMA", "NOTEAMSERVER_UNTIL", "UNNOTEAMSERVER_ERROR", "UNNOTEAMSERVER"), Note(false, "NOTE_TEAM", null, null, null, null, true), ;