diff --git a/src/me/ryanhamshire/GriefPrevention/DataStore.java b/src/me/ryanhamshire/GriefPrevention/DataStore.java index 664416a..dcd186e 100644 --- a/src/me/ryanhamshire/GriefPrevention/DataStore.java +++ b/src/me/ryanhamshire/GriefPrevention/DataStore.java @@ -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) { diff --git a/src/me/ryanhamshire/GriefPrevention/PlayerData.java b/src/me/ryanhamshire/GriefPrevention/PlayerData.java index aa99a6c..e067df3 100644 --- a/src/me/ryanhamshire/GriefPrevention/PlayerData.java +++ b/src/me/ryanhamshire/GriefPrevention/PlayerData.java @@ -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;