Implement /ready and basic objective mechanics
This commit is contained in:
@@ -11,6 +11,7 @@ import java.util.Collection;
|
||||
|
||||
public class PlayerManager {
|
||||
HashMap<Player, State> m_playerStates = new HashMap<>();
|
||||
HashMap<Player, Boolean> m_playerReadyStates = new HashMap<>();
|
||||
|
||||
public enum State {
|
||||
Idle,
|
||||
@@ -70,6 +71,34 @@ public class PlayerManager {
|
||||
public void addPlayer(Player player) {
|
||||
//m_log.info("Adding player " + player);
|
||||
m_playerStates.put(player, State.Idle);
|
||||
m_playerReadyStates.put(player, false);
|
||||
}
|
||||
|
||||
public boolean isReady(Player player) {
|
||||
return m_playerReadyStates.get(player);
|
||||
}
|
||||
|
||||
public void setReady(Player player, boolean ready) {
|
||||
m_playerReadyStates.put(player, ready);
|
||||
}
|
||||
|
||||
public double readyProgress() {
|
||||
int readyNum = 0;
|
||||
for(boolean b : m_playerReadyStates.values()) {
|
||||
if (b) {
|
||||
readyNum += 1;
|
||||
}
|
||||
}
|
||||
return (double)readyNum / (double)m_playerReadyStates.size();
|
||||
}
|
||||
|
||||
public boolean isEveryoneReady() {
|
||||
for(boolean b : m_playerReadyStates.values()) {
|
||||
if (!b) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean removePlayer(Player player) {
|
||||
|
||||
Reference in New Issue
Block a user