From 44dae51e1c315f8ee8f71e9f6051f26f3996f69b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Tue, 24 Jun 2025 21:23:05 +0200 Subject: [PATCH] fixed playtimer --- .../appliances/internal/teamTasks/TeamTasks.java | 3 ++- .../metaGameplay/playTimer/PlayTimer.java | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java index c817b99..4a1bf7e 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/internal/teamTasks/TeamTasks.java @@ -16,7 +16,8 @@ public class TeamTasks extends Appliance { /** * Task for kicking Team after the desired Playtime */ - TIME_KICK + TIME_KICK, + JOIN_PAIR } private final Map> tasks = new HashMap<>(); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java index 24707c8..c88325b 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/playTimer/PlayTimer.java @@ -7,6 +7,8 @@ import eu.mhsl.craftattack.spawn.core.api.server.HttpServer; import eu.mhsl.craftattack.spawn.core.appliance.Appliance; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.config.Configuration; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.TeamTasks; +import eu.mhsl.craftattack.spawn.varo.appliances.internal.teamTasks.tasks.CountdownTeamTask; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.Teams; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; import org.jetbrains.annotations.NotNull; @@ -86,11 +88,19 @@ public class PlayTimer extends Appliance { public boolean tryConsumeTicket(VaroTeam team) { String teamName = team.name; - int current = this.joinTickets.getOrDefault(teamName, 1); - if (current <= 0) return false; + var teamTasks = Main.instance().getAppliance(TeamTasks.class); + boolean isSecond = teamTasks.getRunningTeamTasks(team).containsKey(TeamTasks.Type.JOIN_PAIR); + if(!isSecond) { + int current = this.joinTickets.getOrDefault(teamName, 1); + if (current <= 0) return false; + this.joinTickets.put(teamName, current - 1); + + var task = new CountdownTeamTask(10, announcementData -> null, component -> {}, () -> {}); + task.start(); + teamTasks.addTask(team, TeamTasks.Type.JOIN_PAIR, task); + } - this.joinTickets.put(teamName, current - 1); this.save(); return true; }