Skip to content

Commit

Permalink
use Denizen playername tracker in Economy, add error checks
Browse files Browse the repository at this point in the history
  • Loading branch information
mcmonkey4eva committed Oct 23, 2019
1 parent 183c447 commit 9be66a7
Showing 1 changed file with 31 additions and 4 deletions.
Expand Up @@ -4,6 +4,7 @@
import com.denizenscript.denizen.BukkitScriptEntryData;
import com.denizenscript.denizen.objects.PlayerTag;
import com.denizenscript.denizen.tags.BukkitTagContext;
import com.denizenscript.denizen.utilities.debugging.Debug;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ArgumentHelper;
import com.denizenscript.denizencore.objects.core.ScriptTag;
Expand All @@ -22,6 +23,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.UUID;

public class EconomyScriptContainer extends ScriptContainer {

Expand Down Expand Up @@ -148,25 +150,41 @@ public String currencyNameSingular() {

@Override
public double getBalance(OfflinePlayer player) {
if (player == null) {
Debug.echoError("Economy attempted BALANCE-CHECK to NULL player.");
return 0;
}
return ArgumentHelper.getDoubleFrom(autoTag(backingScript.getString("balance"), player));
}

@Override
public EconomyResponse withdrawPlayer(OfflinePlayer player, double amount) {
if (player == null) {
Debug.echoError("Economy attempted WITHDRAW to NULL player for " + amount);
return null;
}
String determination = runSubScript("withdraw", player, amount);
return new EconomyResponse(amount, getBalance(player), determination == null ?
EconomyResponse.ResponseType.SUCCESS : EconomyResponse.ResponseType.FAILURE, determination);
}

@Override
public EconomyResponse depositPlayer(OfflinePlayer player, double amount) {
if (player == null) {
Debug.echoError("Economy attempted DEPOSIT to NULL player for " + amount);
return null;
}
String determination = runSubScript("deposit", player, amount);
return new EconomyResponse(amount, getBalance(player), determination == null ?
EconomyResponse.ResponseType.SUCCESS : EconomyResponse.ResponseType.FAILURE, determination);
}

@Override
public boolean has(OfflinePlayer player, double amount) {
if (player == null) {
Debug.echoError("Economy attempted HAS-CHECK to NULL player for " + amount);
return false;
}
return ArgumentHelper.getBooleanFrom(autoTagAmount(backingScript.getString("has"), player, amount));
}

Expand All @@ -180,9 +198,18 @@ public boolean hasAccount(String playerName, String worldName) {
return true;
}

public OfflinePlayer playerForName(String name) {
UUID id = PlayerTag.getAllPlayers().get(name);
if (id == null) {
Debug.echoError("Economy attempted access to unknown player '" + name + "'");
return null;
}
return Bukkit.getOfflinePlayer(id);
}

@Override
public double getBalance(String playerName) {
return getBalance(Bukkit.getPlayerExact(playerName));
return getBalance(playerForName(playerName));
}

@Override
Expand All @@ -197,7 +224,7 @@ public double getBalance(OfflinePlayer player, String worldName) {

@Override
public boolean has(String playerName, double amount) {
return has(Bukkit.getPlayerExact(playerName), amount);
return has(playerForName(playerName), amount);
}

@Override
Expand All @@ -212,7 +239,7 @@ public boolean has(OfflinePlayer player, String worldName, double amount) {

@Override
public EconomyResponse withdrawPlayer(String playerName, double amount) {
return withdrawPlayer(Bukkit.getPlayerExact(playerName), amount);
return withdrawPlayer(playerForName(playerName), amount);
}

@Override
Expand All @@ -227,7 +254,7 @@ public EconomyResponse withdrawPlayer(OfflinePlayer player, String worldName, do

@Override
public EconomyResponse depositPlayer(String playerName, double amount) {
return depositPlayer(Bukkit.getPlayerExact(playerName), amount);
return depositPlayer(playerForName(playerName), amount);
}

@Override
Expand Down

0 comments on commit 9be66a7

Please sign in to comment.