Players buy and sell BONUS claim blocks, not accrued.

This means they can only sell what they've purchased, and they can't get
more for free for use in future sales to generate money over time.
This commit is contained in:
ryanhamshire 2015-03-16 19:40:26 -07:00
parent 62d6326503
commit 92d51670e4

View File

@ -1286,16 +1286,7 @@ public class GriefPrevention extends JavaPlugin
else else
{ {
//determine max purchasable blocks
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId()); PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
int maxPurchasable = GriefPrevention.instance.config_claims_maxAccruedBlocks - playerData.getAccruedClaimBlocks();
//if the player is at his max, tell him so
if(maxPurchasable <= 0)
{
GriefPrevention.sendMessage(player, TextMode.Err, Messages.ClaimBlockLimit);
return true;
}
//try to parse number of blocks //try to parse number of blocks
int blockCount; int blockCount;
@ -1313,12 +1304,6 @@ public class GriefPrevention extends JavaPlugin
return false; return false;
} }
//correct block count to max allowed
if(blockCount > maxPurchasable)
{
blockCount = maxPurchasable;
}
//if the player can't afford his purchase, send error message //if the player can't afford his purchase, send error message
double balance = economy.getBalance(player); double balance = economy.getBalance(player);
double totalCost = blockCount * GriefPrevention.instance.config_economy_claimBlocksPurchaseCost; double totalCost = blockCount * GriefPrevention.instance.config_economy_claimBlocksPurchaseCost;
@ -1334,7 +1319,7 @@ public class GriefPrevention extends JavaPlugin
economy.withdrawPlayer(player, totalCost); economy.withdrawPlayer(player, totalCost);
//add blocks //add blocks
playerData.setAccruedClaimBlocks(playerData.getAccruedClaimBlocks() + blockCount); playerData.setBonusClaimBlocks(playerData.getBonusClaimBlocks() + blockCount);
this.dataStore.savePlayerData(player.getUniqueId(), playerData); this.dataStore.savePlayerData(player.getUniqueId(), playerData);
//inform player //inform player
@ -1370,12 +1355,12 @@ public class GriefPrevention extends JavaPlugin
//load player data //load player data
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId()); PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
int availableBlocks = playerData.getRemainingClaimBlocks(); int availableBlocks = playerData.getBonusClaimBlocks();
//if no amount provided, just tell player value per block sold, and how many he can sell //if no amount provided, just tell player value per block sold, and how many he can sell
if(args.length != 1) if(args.length != 1)
{ {
GriefPrevention.sendMessage(player, TextMode.Info, Messages.BlockSaleValue, String.valueOf(GriefPrevention.instance.config_economy_claimBlocksSellValue), String.valueOf(Math.max(0, availableBlocks - GriefPrevention.instance.config_claims_initialBlocks))); GriefPrevention.sendMessage(player, TextMode.Info, Messages.BlockSaleValue, String.valueOf(GriefPrevention.instance.config_economy_claimBlocksSellValue), String.valueOf(availableBlocks));
return false; return false;
} }
@ -1396,7 +1381,7 @@ public class GriefPrevention extends JavaPlugin
} }
//if he doesn't have enough blocks, tell him so //if he doesn't have enough blocks, tell him so
if(blockCount > availableBlocks - GriefPrevention.instance.config_claims_initialBlocks) if(blockCount > availableBlocks)
{ {
GriefPrevention.sendMessage(player, TextMode.Err, Messages.NotEnoughBlocksForSale); GriefPrevention.sendMessage(player, TextMode.Err, Messages.NotEnoughBlocksForSale);
} }
@ -1409,7 +1394,7 @@ public class GriefPrevention extends JavaPlugin
economy.depositPlayer(player, totalValue); economy.depositPlayer(player, totalValue);
//subtract blocks //subtract blocks
playerData.setAccruedClaimBlocks(playerData.getAccruedClaimBlocks() - blockCount); playerData.setBonusClaimBlocks(playerData.getBonusClaimBlocks() - blockCount);
this.dataStore.savePlayerData(player.getUniqueId(), playerData); this.dataStore.savePlayerData(player.getUniqueId(), playerData);
//inform player //inform player