50 lines
1.3 KiB
Java
50 lines
1.3 KiB
Java
|
|
package com.alttd.hunger_games.services;
|
||
|
|
|
||
|
|
import com.alttd.hunger_games.data_objects.PLAYER_STATE;
|
||
|
|
import com.alttd.hunger_games.data_objects.ROUND_STATE;
|
||
|
|
import lombok.Getter;
|
||
|
|
import org.bukkit.entity.Player;
|
||
|
|
|
||
|
|
import java.util.HashMap;
|
||
|
|
import java.util.Map;
|
||
|
|
import java.util.Set;
|
||
|
|
import java.util.UUID;
|
||
|
|
import java.util.stream.Collectors;
|
||
|
|
|
||
|
|
public class RoundService implements RoundListener {
|
||
|
|
|
||
|
|
@Getter
|
||
|
|
private ROUND_STATE roundState;
|
||
|
|
private final HashMap<UUID, PLAYER_STATE> players = new HashMap<>();
|
||
|
|
|
||
|
|
public RoundService(Round round) {
|
||
|
|
this.roundState = round.register(this);
|
||
|
|
}
|
||
|
|
|
||
|
|
public Set<UUID> getPlayers(PLAYER_STATE playerState) {
|
||
|
|
return players.entrySet().stream()
|
||
|
|
.filter(entry -> entry.getValue().equals(playerState))
|
||
|
|
.map(Map.Entry::getKey)
|
||
|
|
.collect(Collectors.toSet());
|
||
|
|
}
|
||
|
|
|
||
|
|
protected void setPlayerState(UUID uuid, PLAYER_STATE playerState) {
|
||
|
|
players.put(uuid, playerState);
|
||
|
|
}
|
||
|
|
|
||
|
|
public PLAYER_STATE getPlayerState(UUID uuid) {
|
||
|
|
return players.get(uuid);
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public void stateChange(ROUND_STATE roundState) {
|
||
|
|
this.roundState = roundState;
|
||
|
|
}
|
||
|
|
|
||
|
|
@Override
|
||
|
|
public void roundReset() {
|
||
|
|
players.clear();
|
||
|
|
roundState = null;
|
||
|
|
}
|
||
|
|
}
|