From 14f2486b372e88f7619dd733191084f074167fad Mon Sep 17 00:00:00 2001 From: ryanhamshire Date: Mon, 19 Jan 2015 11:36:52 -0800 Subject: [PATCH] Fixed creative mode claims expiring too fast. --- .../CleanupUnusedClaimsTask.java | 26 ++++++++++++------- .../GriefPrevention/GriefPrevention.java | 1 - 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/me/ryanhamshire/GriefPrevention/CleanupUnusedClaimsTask.java b/src/me/ryanhamshire/GriefPrevention/CleanupUnusedClaimsTask.java index 1b321ca..b9383d8 100644 --- a/src/me/ryanhamshire/GriefPrevention/CleanupUnusedClaimsTask.java +++ b/src/me/ryanhamshire/GriefPrevention/CleanupUnusedClaimsTask.java @@ -93,7 +93,7 @@ class CleanupUnusedClaimsTask implements Runnable cleanupChunks = true; //if configured to do so, restore the land to natural - if((GriefPrevention.instance.creativeRulesApply(claim.getLesserBoundaryCorner()) && GriefPrevention.instance.config_claims_creativeAutoNatureRestoration) || GriefPrevention.instance.config_claims_survivalAutoNatureRestoration) + if(GriefPrevention.instance.creativeRulesApply(claim.getLesserBoundaryCorner()) || GriefPrevention.instance.config_claims_survivalAutoNatureRestoration) { GriefPrevention.instance.restoreClaim(claim, 0); } @@ -125,7 +125,7 @@ class CleanupUnusedClaimsTask implements Runnable for(int i = 0; i < claims.size(); i++) { //if configured to do so, restore the land to natural - if((GriefPrevention.instance.creativeRulesApply(claims.get(i).getLesserBoundaryCorner()) && GriefPrevention.instance.config_claims_creativeAutoNatureRestoration) || GriefPrevention.instance.config_claims_survivalAutoNatureRestoration) + if(GriefPrevention.instance.creativeRulesApply(claims.get(i).getLesserBoundaryCorner()) || GriefPrevention.instance.config_claims_survivalAutoNatureRestoration) { GriefPrevention.instance.restoreClaim(claims.get(i), 0); cleanupChunks = true; @@ -147,14 +147,20 @@ class CleanupUnusedClaimsTask implements Runnable if(investmentScore < minInvestment) { - GriefPrevention.instance.dataStore.deleteClaim(claim, true); - GriefPrevention.AddLogEntry("Removed " + claim.getOwnerName() + "'s unused claim @ " + GriefPrevention.getfriendlyLocationString(claim.getLesserBoundaryCorner())); - - //if configured to do so, restore the claim area to natural state - if((GriefPrevention.instance.creativeRulesApply(claim.getLesserBoundaryCorner()) && GriefPrevention.instance.config_claims_creativeAutoNatureRestoration) || GriefPrevention.instance.config_claims_survivalAutoNatureRestoration) - { - GriefPrevention.instance.restoreClaim(claim, 0); - } + playerData = GriefPrevention.instance.dataStore.getPlayerData(claim.ownerID); + + //if the owner has been gone at least a week, and if he has ONLY the new player claim, it will be removed + Calendar sevenDaysAgo = Calendar.getInstance(); + sevenDaysAgo.add(Calendar.DATE, -GriefPrevention.instance.config_claims_unusedClaimExpirationDays); + boolean claimExpired = sevenDaysAgo.getTime().after(playerData.getLastLogin()); + if(claimExpired) + { + GriefPrevention.instance.dataStore.deleteClaim(claim, true); + GriefPrevention.AddLogEntry("Removed " + claim.getOwnerName() + "'s unused claim @ " + GriefPrevention.getfriendlyLocationString(claim.getLesserBoundaryCorner())); + + //restore the claim area to natural state + GriefPrevention.instance.restoreClaim(claim, 0); + } } } diff --git a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java index 051b829..3447b72 100644 --- a/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java +++ b/src/me/ryanhamshire/GriefPrevention/GriefPrevention.java @@ -98,7 +98,6 @@ public class GriefPrevention extends JavaPlugin public int config_claims_chestClaimExpirationDays; //number of days of inactivity before an automatic chest claim will be deleted public int config_claims_unusedClaimExpirationDays; //number of days of inactivity before an unused (nothing build) claim will be deleted public boolean config_claims_survivalAutoNatureRestoration; //whether survival claims will be automatically restored to nature when auto-deleted - public boolean config_claims_creativeAutoNatureRestoration; //whether creative claims will be automatically restored to nature when auto-deleted public Material config_claims_investigationTool; //which material will be used to investigate claims with a right click public Material config_claims_modificationTool; //which material will be used to create/resize claims with a right click