mirror of
https://github.com/AppleDash/SaneEconomy.git
synced 2024-09-29 23:17:30 +02:00
Clean up code a bunch and fix the MySQL bug.
This commit is contained in:
parent
25c925dcb3
commit
2db1ac617b
@ -6,10 +6,10 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>org.appledash</groupId>
|
<groupId>org.appledash</groupId>
|
||||||
<artifactId>SaneEconomy</artifactId>
|
<artifactId>SaneEconomy</artifactId>
|
||||||
<version>0.6.7-SNAPSHOT</version>
|
<version>0.7.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
<artifactId>SaneEconomyCore</artifactId>
|
<artifactId>SaneEconomyCore</artifactId>
|
||||||
<version>0.6.7-SNAPSHOT</version>
|
<version>0.7.0-SNAPSHOT</version>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -176,6 +176,6 @@ public class SaneEconomy extends JavaPlugin {
|
|||||||
* @return Plugin logger.
|
* @return Plugin logger.
|
||||||
*/
|
*/
|
||||||
public static Logger logger(){
|
public static Logger logger(){
|
||||||
return getInstance().getLogger();
|
return instance.getLogger();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,6 @@ public class CommandException extends Exception {
|
|||||||
* @return The right exception
|
* @return The right exception
|
||||||
*/
|
*/
|
||||||
public static CommandException makeArgumentException(int expectedCount, int actualCount) {
|
public static CommandException makeArgumentException(int expectedCount, int actualCount) {
|
||||||
return actualCount > expectedCount ? new TooManyArgumentsException() : new TooFewArgumentsException();
|
return (actualCount > expectedCount) ? new TooManyArgumentsException() : new TooFewArgumentsException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ public class EconomyAdminCommand extends SaneEconomyCommand {
|
|||||||
double amount = NumberUtils.parseAndFilter(ecoMan.getCurrency(), sAmount);
|
double amount = NumberUtils.parseAndFilter(ecoMan.getCurrency(), sAmount);
|
||||||
|
|
||||||
if (amount <= 0) {
|
if (amount <= 0) {
|
||||||
MessageUtils.sendMessage(sender, _("%s is not a positive number."), (amount == -1 ? sAmount : amount + ""));
|
MessageUtils.sendMessage(sender, _("%s is not a positive number."), ((amount == -1) ? sAmount : String.valueOf(amount)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +82,9 @@ public class EconomyAdminCommand extends SaneEconomyCommand {
|
|||||||
ecoMan.getCurrency().formatAmount(newAmount)
|
ecoMan.getCurrency().formatAmount(newAmount)
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
} else if (subCommand.equalsIgnoreCase("take")) {
|
}
|
||||||
|
|
||||||
|
if (subCommand.equalsIgnoreCase("take")) {
|
||||||
double newAmount = ecoMan.subtractBalance(economable, amount);
|
double newAmount = ecoMan.subtractBalance(economable, amount);
|
||||||
|
|
||||||
MessageUtils.sendMessage(sender, _("Took %s from %s. Their balance is now %s."),
|
MessageUtils.sendMessage(sender, _("Took %s from %s. Their balance is now %s."),
|
||||||
@ -91,7 +93,9 @@ public class EconomyAdminCommand extends SaneEconomyCommand {
|
|||||||
ecoMan.getCurrency().formatAmount(newAmount)
|
ecoMan.getCurrency().formatAmount(newAmount)
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
} else if (subCommand.equalsIgnoreCase("set")) {
|
}
|
||||||
|
|
||||||
|
if (subCommand.equalsIgnoreCase("set")) {
|
||||||
ecoMan.setBalance(economable, amount);
|
ecoMan.setBalance(economable, amount);
|
||||||
MessageUtils.sendMessage(sender, _("Balance for %s set to %s."), sTargetPlayer, ecoMan.getCurrency().formatAmount(amount));
|
MessageUtils.sendMessage(sender, _("Balance for %s set to %s."), sTargetPlayer, ecoMan.getCurrency().formatAmount(amount));
|
||||||
return;
|
return;
|
||||||
|
@ -62,7 +62,7 @@ public class PayCommand extends SaneEconomyCommand {
|
|||||||
double amount = NumberUtils.parseAndFilter(ecoMan.getCurrency(), sAmount);
|
double amount = NumberUtils.parseAndFilter(ecoMan.getCurrency(), sAmount);
|
||||||
|
|
||||||
if (amount <= 0) {
|
if (amount <= 0) {
|
||||||
MessageUtils.sendMessage(sender, "%s is not a positive number.", (amount == -1 ? sAmount : amount + ""));
|
MessageUtils.sendMessage(sender, "%s is not a positive number.", ((amount == -1) ? sAmount : String.valueOf(amount)));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ import java.util.UUID;
|
|||||||
*/
|
*/
|
||||||
public abstract class EconomyStorageBackendCaching implements EconomyStorageBackend {
|
public abstract class EconomyStorageBackendCaching implements EconomyStorageBackend {
|
||||||
protected HashMap<String, Double> balances = new HashMap<>();
|
protected HashMap<String, Double> balances = new HashMap<>();
|
||||||
protected Map<UUID, Double> topPlayerBalances = new LinkedHashMap<>();
|
private Map<UUID, Double> topPlayerBalances = new LinkedHashMap<>();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean accountExists(Economable economable) {
|
public boolean accountExists(Economable economable) {
|
||||||
|
@ -7,6 +7,7 @@ import org.bukkit.Bukkit;
|
|||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by AppleDash on 6/14/2016.
|
* Created by AppleDash on 6/14/2016.
|
||||||
@ -38,8 +39,7 @@ public class EconomyStorageBackendMySQL extends EconomyStorageBackendCaching {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean testConnection() {
|
public boolean testConnection() {
|
||||||
try {
|
try (Connection conn = openConnection()) {
|
||||||
openConnection().close();
|
|
||||||
createTables();
|
createTables();
|
||||||
return true;
|
return true;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -96,7 +96,7 @@ public class EconomyStorageBackendMySQL extends EconomyStorageBackendCaching {
|
|||||||
oldBalances.put(rs.getString("player_uuid"), rs.getDouble("balance"));
|
oldBalances.put(rs.getString("player_uuid"), rs.getDouble("balance"));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (Map.Entry<String, Double> e : oldBalances.entrySet()) {
|
for (Entry<String, Double> e : oldBalances.entrySet()) {
|
||||||
ps = conn.prepareStatement("INSERT INTO `saneeconomy_balances` (unique_identifier, balance) VALUES (?, ?)");
|
ps = conn.prepareStatement("INSERT INTO `saneeconomy_balances` (unique_identifier, balance) VALUES (?, ?)");
|
||||||
ps.setString(1, "player:" + e.getKey());
|
ps.setString(1, "player:" + e.getKey());
|
||||||
ps.setDouble(2, e.getValue());
|
ps.setDouble(2, e.getValue());
|
||||||
@ -148,6 +148,7 @@ public class EconomyStorageBackendMySQL extends EconomyStorageBackendCaching {
|
|||||||
statement.setDouble(1, newBalance);
|
statement.setDouble(1, newBalance);
|
||||||
statement.setString(2, economable.getUniqueIdentifier());
|
statement.setString(2, economable.getUniqueIdentifier());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
|
SaneEconomy.logger().info("Updated.");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
/* Roll it back */
|
/* Roll it back */
|
||||||
balances.put(economable.getUniqueIdentifier(), oldBalance);
|
balances.put(economable.getUniqueIdentifier(), oldBalance);
|
||||||
@ -157,7 +158,9 @@ public class EconomyStorageBackendMySQL extends EconomyStorageBackendCaching {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void ensureAccountExists(Economable economable, Connection conn) throws SQLException {
|
private synchronized void ensureAccountExists(Economable economable, Connection conn) throws SQLException {
|
||||||
|
SaneEconomy.logger().info("Ensuring account exists.");
|
||||||
if (!accountExists(economable, conn)) {
|
if (!accountExists(economable, conn)) {
|
||||||
|
SaneEconomy.logger().info("It didn't, creating it.");
|
||||||
PreparedStatement statement = conn.prepareStatement("INSERT INTO `saneeconomy_balances` (unique_identifier, balance) VALUES (?, 0.0)");
|
PreparedStatement statement = conn.prepareStatement("INSERT INTO `saneeconomy_balances` (unique_identifier, balance) VALUES (?, 0.0)");
|
||||||
statement.setString(1, economable.getUniqueIdentifier());
|
statement.setString(1, economable.getUniqueIdentifier());
|
||||||
statement.executeUpdate();
|
statement.executeUpdate();
|
||||||
@ -165,7 +168,7 @@ public class EconomyStorageBackendMySQL extends EconomyStorageBackendCaching {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private synchronized boolean accountExists(Economable economable, Connection conn) throws SQLException {
|
private synchronized boolean accountExists(Economable economable, Connection conn) throws SQLException {
|
||||||
PreparedStatement statement = conn.prepareStatement("SELECT COUNT(*) FROM `saneeconomy_balances` WHERE `unique_identifier` = ?");
|
PreparedStatement statement = conn.prepareStatement("SELECT 1 FROM `saneeconomy_balances` WHERE `unique_identifier` = ?");
|
||||||
statement.setString(1, economable.getUniqueIdentifier());
|
statement.setString(1, economable.getUniqueIdentifier());
|
||||||
|
|
||||||
ResultSet rs = statement.executeQuery();
|
ResultSet rs = statement.executeQuery();
|
||||||
|
@ -5,7 +5,7 @@ package org.appledash.saneeconomy.economy.economable;
|
|||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class EconomableFaction implements Economable {
|
public class EconomableFaction implements Economable {
|
||||||
private String factionUuid;
|
private final String factionUuid;
|
||||||
|
|
||||||
public EconomableFaction(String factionUuid) {
|
public EconomableFaction(String factionUuid) {
|
||||||
this.factionUuid = factionUuid;
|
this.factionUuid = factionUuid;
|
||||||
|
@ -5,7 +5,7 @@ package org.appledash.saneeconomy.economy.economable;
|
|||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class EconomableGeneric implements Economable {
|
public class EconomableGeneric implements Economable {
|
||||||
private String uniqueIdentifier;
|
private final String uniqueIdentifier;
|
||||||
|
|
||||||
public EconomableGeneric(String uniqueIdentifier) {
|
public EconomableGeneric(String uniqueIdentifier) {
|
||||||
this.uniqueIdentifier = uniqueIdentifier;
|
this.uniqueIdentifier = uniqueIdentifier;
|
||||||
|
@ -7,7 +7,7 @@ import org.bukkit.OfflinePlayer;
|
|||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class EconomablePlayer implements Economable {
|
public class EconomablePlayer implements Economable {
|
||||||
private OfflinePlayer handle;
|
private final OfflinePlayer handle;
|
||||||
|
|
||||||
public EconomablePlayer(OfflinePlayer handle) {
|
public EconomablePlayer(OfflinePlayer handle) {
|
||||||
this.handle = handle;
|
this.handle = handle;
|
||||||
@ -15,6 +15,6 @@ public class EconomablePlayer implements Economable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getUniqueIdentifier() {
|
public String getUniqueIdentifier() {
|
||||||
return "player:" + handle.getUniqueId().toString();
|
return "player:" + handle.getUniqueId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,14 +27,14 @@ public class JoinQuitListener implements Listener {
|
|||||||
double startBalance = plugin.getConfig().getDouble("economy.start-balance", 0.0D);
|
double startBalance = plugin.getConfig().getDouble("economy.start-balance", 0.0D);
|
||||||
|
|
||||||
/* A starting balance is configured AND they haven't been given it yet. */
|
/* A starting balance is configured AND they haven't been given it yet. */
|
||||||
if (startBalance > 0 && !plugin.getEconomyManager().accountExists(economable)) {
|
if ((startBalance > 0) && !plugin.getEconomyManager().accountExists(economable)) {
|
||||||
plugin.getEconomyManager().setBalance(economable, startBalance);
|
plugin.getEconomyManager().setBalance(economable, startBalance);
|
||||||
MessageUtils.sendMessage(player, "You've been issued a starting balance of %s!", plugin.getEconomyManager().getCurrency().formatAmount(startBalance));
|
MessageUtils.sendMessage(player, "You've been issued a starting balance of %s!", plugin.getEconomyManager().getCurrency().formatAmount(startBalance));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update notification */
|
/* Update notification */
|
||||||
if (player.hasPermission("saneeconomy.update-notify") && GithubVersionChecker.isUpdateAvailable()) {
|
if (player.hasPermission("saneeconomy.update-notify") && GithubVersionChecker.isUpdateAvailable()) {
|
||||||
MessageUtils.sendMessage(player, "An update is available! The current version is %s, but the newest available is %s. Please go to %s to update!", plugin.getDescription().getVersion(), GithubVersionChecker.getNewestVersion(), GithubVersionChecker.DOWNLOAD_URL);
|
MessageUtils.sendMessage(player, "An update is available! The currently-installed version is %s, but the newest available is %s. Please go to %s to update!", plugin.getDescription().getVersion(), GithubVersionChecker.getNewestVersion(), GithubVersionChecker.DOWNLOAD_URL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,8 @@ import org.appledash.saneeconomy.utils.WebUtils;
|
|||||||
public class GithubVersionChecker {
|
public class GithubVersionChecker {
|
||||||
public static final String DOWNLOAD_URL = "https://github.com/AppleDash/SaneEconomy/releases";
|
public static final String DOWNLOAD_URL = "https://github.com/AppleDash/SaneEconomy/releases";
|
||||||
private static final String RELEASES_URL = "https://api.github.com/repos/AppleDash/SaneEconomy/releases";
|
private static final String RELEASES_URL = "https://api.github.com/repos/AppleDash/SaneEconomy/releases";
|
||||||
private static boolean updateChecked = false;
|
private static boolean updateChecked;
|
||||||
private static boolean updateAvailable = false;
|
private static boolean updateAvailable;
|
||||||
private static String newestVersion;
|
private static String newestVersion;
|
||||||
|
|
||||||
public static void checkUpdateAvailable() {
|
public static void checkUpdateAvailable() {
|
||||||
@ -30,6 +30,12 @@ public class GithubVersionChecker {
|
|||||||
for (JsonElement elem : array) {
|
for (JsonElement elem : array) {
|
||||||
if (elem instanceof JsonObject) {
|
if (elem instanceof JsonObject) {
|
||||||
JsonObject releaseObj = (JsonObject)elem;
|
JsonObject releaseObj = (JsonObject)elem;
|
||||||
|
boolean isPrerelease = releaseObj.get("prerelease").getAsBoolean();
|
||||||
|
|
||||||
|
if (isPrerelease) { // Don't tell them to update to prereleases, which I might release for individual users to test.
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
String versionStr = releaseObj.get("tag_name").getAsString();
|
String versionStr = releaseObj.get("tag_name").getAsString();
|
||||||
int version = releaseToInt(versionStr);
|
int version = releaseToInt(versionStr);
|
||||||
|
|
||||||
|
@ -17,18 +17,14 @@ import java.util.Map;
|
|||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class I18n {
|
public class I18n {
|
||||||
private static I18n INSTANCE = new I18n(SaneEconomy.getInstance());
|
private static final I18n INSTANCE = new I18n(SaneEconomy.getInstance());
|
||||||
private SaneEconomy plugin;
|
private final SaneEconomy plugin;
|
||||||
private Map<String, String> translations = new HashMap<>();
|
private final Map<String, String> translations = new HashMap<>();
|
||||||
|
|
||||||
public I18n(SaneEconomy plugin) {
|
private I18n(SaneEconomy plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String translate(String input) {
|
|
||||||
return translations.containsKey(input) ? translations.get(input) : input;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void loadTranslations() {
|
public void loadTranslations() {
|
||||||
File configFile = new File(plugin.getDataFolder(), "messages.yml");
|
File configFile = new File(plugin.getDataFolder(), "messages.yml");
|
||||||
YamlConfiguration configJar = YamlConfiguration.loadConfiguration(new InputStreamReader(this.getClass().getResourceAsStream("/messages.yml")));
|
YamlConfiguration configJar = YamlConfiguration.loadConfiguration(new InputStreamReader(this.getClass().getResourceAsStream("/messages.yml")));
|
||||||
@ -72,6 +68,10 @@ public class I18n {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String translate(String input) {
|
||||||
|
return translations.containsKey(input) ? translations.get(input) : input;
|
||||||
|
}
|
||||||
|
|
||||||
public static String _(String s) {
|
public static String _(String s) {
|
||||||
return INSTANCE.translate(s);
|
return INSTANCE.translate(s);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ public class PlayerUtils {
|
|||||||
player = Bukkit.getServer().getOfflinePlayer(playerName);
|
player = Bukkit.getServer().getOfflinePlayer(playerName);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player != null && !player.hasPlayedBefore()) {
|
if ((player != null) && !player.hasPlayedBefore()) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@ import org.bukkit.plugin.ServicePriority;
|
|||||||
* Blackjack is still best pony.
|
* Blackjack is still best pony.
|
||||||
*/
|
*/
|
||||||
public class VaultHook {
|
public class VaultHook {
|
||||||
private SaneEconomy plugin;
|
private final SaneEconomy plugin;
|
||||||
private EconomySaneEconomy provider = new EconomySaneEconomy();
|
private final Economy provider = new EconomySaneEconomy();
|
||||||
|
|
||||||
public VaultHook(SaneEconomy plugin) {
|
public VaultHook(SaneEconomy plugin) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
name: SaneEconomy
|
name: SaneEconomy
|
||||||
author: AppleDash
|
author: AppleDash
|
||||||
main: org.appledash.saneeconomy.SaneEconomy
|
main: org.appledash.saneeconomy.SaneEconomy
|
||||||
version: 0.6.7
|
version: 0.7.0
|
||||||
softdepend: [Vault]
|
softdepend: [Vault]
|
||||||
commands:
|
commands:
|
||||||
balance:
|
balance:
|
||||||
|
Loading…
Reference in New Issue
Block a user