fixed playtimer

This commit is contained in:
2025-06-24 21:23:05 +02:00
parent 035864631d
commit 44dae51e1c
2 changed files with 15 additions and 4 deletions

View File

@ -16,7 +16,8 @@ public class TeamTasks extends Appliance {
/** /**
* Task for kicking Team after the desired Playtime * Task for kicking Team after the desired Playtime
*/ */
TIME_KICK TIME_KICK,
JOIN_PAIR
} }
private final Map<VaroTeam, Map<Type, Task>> tasks = new HashMap<>(); private final Map<VaroTeam, Map<Type, Task>> tasks = new HashMap<>();

View File

@ -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.Appliance;
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.core.config.Configuration; 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.Teams;
import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam; import eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams.VaroTeam;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@ -86,11 +88,19 @@ public class PlayTimer extends Appliance {
public boolean tryConsumeTicket(VaroTeam team) { public boolean tryConsumeTicket(VaroTeam team) {
String teamName = team.name; 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(); this.save();
return true; return true;
} }