/TransferClaim updates.

1. Requires new transferclaim permission.
2. Does not adjust anyone's bonus blocks.
3. No argument means "make it an admin claim".
This commit is contained in:
ryanhamshire
2015-02-11 15:39:30 -08:00
parent c8d7c3a08a
commit 27089048ea
3 changed files with 21 additions and 19 deletions
@@ -334,13 +334,9 @@ public abstract class DataStore
if(ownerData != null)
{
ownerData.getClaims().remove(claim);
ownerData.setBonusClaimBlocks(ownerData.getBonusClaimBlocks() - claim.getArea());
this.savePlayerData(claim.ownerID, ownerData);
}
newOwnerData.getClaims().add(claim);
newOwnerData.setBonusClaimBlocks(newOwnerData.getBonusClaimBlocks() + claim.getArea());
this.savePlayerData(newOwnerID, newOwnerData);
}
//adds a claim to the datastore, making it an effective claim
@@ -961,16 +961,6 @@ public class GriefPrevention extends JavaPlugin
//transferclaim <player>
else if(cmd.getName().equalsIgnoreCase("transferclaim") && player != null)
{
//requires exactly one parameter, the other player's name
if(args.length != 1) return false;
//check additional permission
if(!player.hasPermission("griefprevention.adminclaims"))
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.TransferClaimPermission);
return true;
}
//which claim is the user in?
Claim claim = this.dataStore.getClaimAt(player.getLocation(), true, null);
if(claim == null)
@@ -979,11 +969,23 @@ public class GriefPrevention extends JavaPlugin
return true;
}
OfflinePlayer targetPlayer = this.resolvePlayerByName(args[0]);
if(targetPlayer == null)
//check additional permission for admin claims
if(claim.isAdminClaim() && !player.hasPermission("griefprevention.adminclaims"))
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.TransferClaimPermission);
return true;
}
OfflinePlayer targetPlayer = null; //no argument = make an admin claim
if(args.length > 0)
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.PlayerNotFound2);
return true;
targetPlayer = this.resolvePlayerByName(args[0]);
if(targetPlayer == null)
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.PlayerNotFound2);
return true;
}
}
//change ownerhsip