Added per-defender /siege cooldown.

15 minutes to rebuild, log out, relocate, etc.
This commit is contained in:
ryanhamshire 2015-04-27 18:29:09 -07:00
parent e353afb1a7
commit ae9d57e6ed
2 changed files with 15 additions and 0 deletions

View File

@ -849,6 +849,7 @@ public abstract class DataStore
PlayerData defenderData = this.getPlayerData(siegeData.defender.getUniqueId());
defenderData.siegeData = null;
defenderData.lastSiegeEndTimeStamp = System.currentTimeMillis();
//start a cooldown for this attacker/defender pair
Long now = Calendar.getInstance().getTimeInMillis();
@ -946,6 +947,17 @@ public abstract class DataStore
this.siegeCooldownRemaining.remove(attacker.getName() + "_" + defender.getName());
}
//look for genderal defender cooldown
PlayerData defenderData = this.getPlayerData(defender.getUniqueId());
if(defenderData.lastSiegeEndTimeStamp > 0)
{
long now = System.currentTimeMillis();
if(now - defenderData.lastSiegeEndTimeStamp > 1000 * 60 * 15) //15 minutes in milliseconds
{
return true;
}
}
//look for an attacker/claim cooldown
if(cooldownEnd == null && this.siegeCooldownRemaining.get(attacker.getName() + "_" + defenderClaim.getOwnerName()) != null)
{

View File

@ -79,6 +79,9 @@ public class PlayerData
//timestamp of last death, for use in preventing death message spam
long lastDeathTimeStamp = 0;
//timestamp when last siege ended (where this player was the defender)
long lastSiegeEndTimeStamp = 0;
//whether the player was kicked (set and used during logout)
boolean wasKicked = false;