RedstoneWincondition #274
@ -70,6 +70,10 @@ public abstract class PercentWincondition extends Wincondition implements Printa
|
||||
private final Consumer<TeamPercent> explodeConsumer;
|
||||
|
||||
public TeamPercent(PercentWincondition percentWincondition, FightTeam fightTeam, Winconditions wincondition, Predicate<Material> testType, Consumer<TeamPercent> explodeConsumer) {
|
||||
this(percentWincondition, fightTeam, wincondition, testType, explodeConsumer, () -> {});
|
||||
}
|
||||
|
||||
public TeamPercent(PercentWincondition percentWincondition, FightTeam fightTeam, Winconditions wincondition, Predicate<Material> testType, Consumer<TeamPercent> explodeConsumer, Runnable afterEnable) {
|
||||
this.fightTeam = fightTeam;
|
||||
this.testType = testType;
|
||||
this.explodeConsumer = explodeConsumer;
|
||||
@ -81,6 +85,7 @@ public abstract class PercentWincondition extends Wincondition implements Printa
|
||||
}
|
||||
});
|
||||
currentBlocks = totalBlocks;
|
||||
afterEnable.run();
|
||||
});
|
||||
|
||||
new StateDependentListener(wincondition, FightState.Running, this).register();
|
||||
|
@ -25,11 +25,9 @@ import de.steamwar.fightsystem.countdown.TimeOverCountdown;
|
||||
import de.steamwar.fightsystem.fight.Fight;
|
||||
import de.steamwar.fightsystem.fight.FightTeam;
|
||||
import de.steamwar.fightsystem.states.FightState;
|
||||
import de.steamwar.fightsystem.states.OneShotStateDependent;
|
||||
import de.steamwar.fightsystem.states.StateDependentCountdown;
|
||||
import de.steamwar.fightsystem.states.StateDependentListener;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
@ -41,8 +39,6 @@ import java.util.Map;
|
||||
|
||||
public class WinconditionPoints extends Wincondition implements PrintableWincondition, Listener {
|
||||
|
||||
private static final World world = Bukkit.getWorlds().get(0);
|
||||
|
||||
private final Map<FightTeam, TeamPoints> teamMap = new HashMap<>();
|
||||
|
||||
public WinconditionPoints(){
|
||||
@ -52,9 +48,6 @@ public class WinconditionPoints extends Wincondition implements PrintableWincond
|
||||
teamMap.put(Fight.getRedTeam(), new TeamPoints(Fight.getRedTeam()));
|
||||
|
||||
new StateDependentListener(Winconditions.POINTS, FightState.Ingame, this);
|
||||
new OneShotStateDependent(Winconditions.POINTS, FightState.Ingame, () -> {
|
||||
teamMap.values().forEach(TeamPoints::enable);
|
||||
}).register();
|
||||
if(Config.ActiveWinconditions.contains(Winconditions.POINTS)){
|
||||
timeOverCountdown = new StateDependentCountdown(Winconditions.POINTS, FightState.Running, new TimeOverCountdown(this::timeOver));
|
||||
printableWinconditions.add(this);
|
||||
@ -109,6 +102,7 @@ public class WinconditionPoints extends Wincondition implements PrintableWincond
|
||||
return team.getPrefix() + "Punkte: " + teamMap.get(team).getPoints();
|
||||
}
|
||||
|
||||
private static boolean run = false;
|
||||
private class TeamPoints {
|
||||
private static final int MAX_POINTS = 2000;
|
||||
|
||||
@ -120,7 +114,10 @@ public class WinconditionPoints extends Wincondition implements PrintableWincond
|
||||
|
||||
TeamPoints(FightTeam team){
|
||||
this.team = team;
|
||||
this.percent = new PercentWincondition.TeamPercent(null, team, Winconditions.POINTS, material -> true, teamPercent -> {});
|
||||
this.percent = new PercentWincondition.TeamPercent(null, team, Winconditions.POINTS, material -> true, teamPercent -> {}, () -> {
|
||||
if (run) teamMap.values().forEach(TeamPoints::enable);
|
||||
run = !run;
|
||||
});
|
||||
}
|
||||
|
||||
public void enable() {
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren