Better thread-safety on database backends.

This commit is contained in:
AppleDash 2016-06-14 08:05:12 -04:00
parent f3bd331273
commit eaca555fe4
4 changed files with 12 additions and 12 deletions

View File

@ -1,5 +1,5 @@
group 'org.appledash'
version '0.2.0-SNAPSHOT'
version '0.2.1-SNAPSHOT'
apply plugin: 'java'

View File

@ -63,12 +63,12 @@ public class EconomyStorageBackendFlatfile implements EconomyStorageBackend {
}
@Override
public boolean accountExists(Player player) {
public synchronized boolean accountExists(Player player) {
return playerBalances.containsKey(player.getUniqueId());
}
@Override
public double getBalance(Player player) {
public synchronized double getBalance(Player player) {
if (!playerBalances.containsKey(player.getUniqueId())) {
return 0.0D;
}
@ -77,13 +77,13 @@ public class EconomyStorageBackendFlatfile implements EconomyStorageBackend {
}
@Override
public void setBalance(Player player, double newBalance) {
public synchronized void setBalance(Player player, double newBalance) {
playerBalances.put(player.getUniqueId(), newBalance);
saveDatabase();
}
@Override
public double addBalance(Player player, double amount) {
public synchronized double addBalance(Player player, double amount) {
double newAmount = getBalance(player) + amount;
setBalance(player, newAmount);
@ -92,7 +92,7 @@ public class EconomyStorageBackendFlatfile implements EconomyStorageBackend {
}
@Override
public double subtractBalance(Player player, double amount) {
public synchronized double subtractBalance(Player player, double amount) {
double newAmount = getBalance(player) - amount;
setBalance(player, newAmount);

View File

@ -56,12 +56,12 @@ public class EconomyStorageBackendMySQL implements EconomyStorageBackend {
}
@Override
public boolean accountExists(Player player) {
public synchronized boolean accountExists(Player player) {
return accountExists(player, openConnection());
}
@Override
public double getBalance(Player player) {
public synchronized double getBalance(Player player) {
Connection conn = openConnection();
try {
PreparedStatement statement = conn.prepareStatement("SELECT balance FROM `player_balances` WHERE `player_uuid` = ?");
@ -84,7 +84,7 @@ public class EconomyStorageBackendMySQL implements EconomyStorageBackend {
}
@Override
public void setBalance(Player player, double newBalance) {
public synchronized void setBalance(Player player, double newBalance) {
Connection conn = openConnection();
ensureAccountExists(player, conn);
try {
@ -99,7 +99,7 @@ public class EconomyStorageBackendMySQL implements EconomyStorageBackend {
}
@Override
public double addBalance(Player player, double amount) {
public synchronized double addBalance(Player player, double amount) {
// TODO: Optimize?
double curBalance = getBalance(player);
double newBalance = curBalance + amount;
@ -110,7 +110,7 @@ public class EconomyStorageBackendMySQL implements EconomyStorageBackend {
}
@Override
public double subtractBalance(Player player, double amount) {
public synchronized double subtractBalance(Player player, double amount) {
// TODO: Optimize?
double curBalance = getBalance(player);
double newBalance = curBalance - amount;

View File

@ -1,6 +1,6 @@
name: SaneEconomy
main: org.appledash.saneeconomy.SaneEconomy
version: 0.2.0
version: 0.2.1
commands:
balance:
aliases: [bal]