fixed playtimer
This commit is contained in:
@ -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<VaroTeam, Map<Type, Task>> tasks = new HashMap<>();
|
||||
|
@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user