Fix sidebars, implement vault api, coin pickups, and player respawning
This commit is contained in:
		@@ -16,6 +16,8 @@ import java.util.Collection;
 | 
			
		||||
public class PlayerManager {
 | 
			
		||||
  HashMap<Player, State> m_playerStates = new HashMap<>();
 | 
			
		||||
  HashMap<Player, Boolean> m_playerReadyStates = new HashMap<>();
 | 
			
		||||
  HashMap<Player, Integer> m_playerExpenses = new HashMap<>();
 | 
			
		||||
  HashMap<Player, Integer> m_respawnCounters = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
  public enum State {
 | 
			
		||||
    Idle,
 | 
			
		||||
@@ -68,22 +70,22 @@ public class PlayerManager {
 | 
			
		||||
 | 
			
		||||
  // Respawn player
 | 
			
		||||
  public boolean enterPlaying(Player player) {
 | 
			
		||||
    //m_log.fine("Respawning player " + player);
 | 
			
		||||
    player.setGameMode(Bukkit.getDefaultGameMode());
 | 
			
		||||
    healPlayer(player);
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean enterDead(Player player) {
 | 
			
		||||
    //m_log.info("Player has died in game" + player);
 | 
			
		||||
    player.setGameMode(GameMode.SPECTATOR);
 | 
			
		||||
    m_respawnCounters.put(player, 15);
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public void addPlayer(Player player) {
 | 
			
		||||
    //m_log.info("Adding player " + player); 
 | 
			
		||||
    m_playerStates.put(player, State.Idle);
 | 
			
		||||
    m_playerReadyStates.put(player, false);
 | 
			
		||||
    m_playerExpenses.put(player, 0);
 | 
			
		||||
    m_respawnCounters.put(player, 0);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean isReady(Player player) {
 | 
			
		||||
@@ -111,14 +113,53 @@ public class PlayerManager {
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public Progress getRespawnProgress(Player player) {
 | 
			
		||||
    return new StaticProgress(m_respawnCounters.get(player), 15);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public int getRespawnCounter(Player player) {
 | 
			
		||||
    if (m_respawnCounters.containsKey(player)) {
 | 
			
		||||
      return m_respawnCounters.get(player);
 | 
			
		||||
    } else {
 | 
			
		||||
      return 0;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public void tickRespawnCounters() {
 | 
			
		||||
    for(Player p : m_respawnCounters.keySet()) {
 | 
			
		||||
      if (m_respawnCounters.get(p) > 0) {
 | 
			
		||||
        m_respawnCounters.put(p, m_respawnCounters.get(p) - 1);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean readyToRespawn(Player player) {
 | 
			
		||||
    return m_respawnCounters.get(player) == 0 && m_playerStates.get(player) == State.Dead;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public void addPlayerExpenses(Player player, int amount) {
 | 
			
		||||
    if (m_playerExpenses.containsKey(player)) {
 | 
			
		||||
      m_playerExpenses.put(player, m_playerExpenses.get(player) + amount);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public int getPlayerExpenses(Player player) {
 | 
			
		||||
    if (m_playerExpenses.containsKey(player)) {
 | 
			
		||||
      return m_playerExpenses.get(player);
 | 
			
		||||
    }
 | 
			
		||||
    return 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  public boolean removePlayer(Player player) {
 | 
			
		||||
    //m_log.info("Removing player " + player); 
 | 
			
		||||
    healPlayer(player);
 | 
			
		||||
    requestTransition(player, State.Idle);
 | 
			
		||||
    m_playerStates.remove(player);
 | 
			
		||||
    m_playerReadyStates.remove(player);
 | 
			
		||||
    m_playerExpenses.remove(player);
 | 
			
		||||
    m_respawnCounters.remove(player);
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user