Add in-game command to reload the database and fix /ecoadmin permission.

This commit is contained in:
AppleDash 2016-06-14 08:31:52 -04:00
parent 1f980b9fc8
commit 841d6e937d
9 changed files with 68 additions and 9 deletions

View File

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

View File

@ -4,6 +4,7 @@ import org.appledash.saneeconomy.command.SaneEconomyCommand;
import org.appledash.saneeconomy.command.type.BalanceCommand;
import org.appledash.saneeconomy.command.type.EconomyAdminCommand;
import org.appledash.saneeconomy.command.type.PayCommand;
import org.appledash.saneeconomy.command.type.SaneEcoCommand;
import org.appledash.saneeconomy.economy.Currency;
import org.appledash.saneeconomy.economy.EconomyManager;
import org.appledash.saneeconomy.economy.backend.EconomyStorageBackend;
@ -29,6 +30,7 @@ public class SaneEconomy extends JavaPlugin {
put("balance", new BalanceCommand());
put("ecoadmin", new EconomyAdminCommand());
put("pay", new PayCommand());
put("saneeconomy", new SaneEcoCommand());
}};
public SaneEconomy() {
@ -99,14 +101,15 @@ public class SaneEconomy extends JavaPlugin {
}
getLogger().info("Connection successful!");
getLogger().info("Performing initial data load...");
mySQLBackend.reloadData();
getLogger().info("Data loaded!");
} else {
getLogger().severe("Unknown storage backend " + backendType + "!");
return false;
}
getLogger().info("Performing initial data load...");
backend.reloadDatabase();
getLogger().info("Data loaded!");
economyManager = new EconomyManager(currency, backend);
return true;

View File

@ -20,7 +20,7 @@ import org.bukkit.entity.Player;
public class EconomyAdminCommand extends SaneEconomyCommand {
@Override
public String getPermission() {
return "saneeconomy.admin";
return "saneeconomy.ecoadmin";
}
@Override

View File

@ -0,0 +1,41 @@
package org.appledash.saneeconomy.command.type;
import org.appledash.saneeconomy.SaneEconomy;
import org.appledash.saneeconomy.command.SaneEconomyCommand;
import org.appledash.saneeconomy.command.exception.CommandException;
import org.appledash.saneeconomy.command.exception.type.usage.InvalidUsageException;
import org.appledash.saneeconomy.utils.MessageUtils;
import org.bukkit.command.CommandSender;
/**
* Created by AppleDash on 6/14/2016.
* Blackjack is still best pony.
*/
public class SaneEcoCommand extends SaneEconomyCommand {
@Override
public String getPermission() {
return "saneeconomy.admin";
}
@Override
public String[] getUsage() {
return new String[] {
"/<command> reload-database"
};
}
@Override
protected void onCommand(CommandSender sender, String[] args) throws CommandException {
if (args.length != 1) {
throw new InvalidUsageException();
}
String subCommand = args[0];
if (subCommand.equalsIgnoreCase("reload-database")) {
MessageUtils.sendMessage(sender, "Reloading database...");
SaneEconomy.getInstance().getEconomyManager().getBackend().reloadDatabase();
MessageUtils.sendMessage(sender, "Database reloaded.");
}
}
}

View File

@ -137,4 +137,8 @@ public class EconomyManager {
return true;
}
public EconomyStorageBackend getBackend() {
return backend;
}
}

View File

@ -45,4 +45,9 @@ public interface EconomyStorageBackend {
* @return Player's new balance
*/
double subtractBalance(Player player, double amount);
/**
* Reload this backend's database from disk.
*/
void reloadDatabase();
}

View File

@ -21,10 +21,10 @@ public class EconomyStorageBackendFlatfile implements EconomyStorageBackend {
public EconomyStorageBackendFlatfile(File file) {
this.file = file;
loadDatabase();
}
private void loadDatabase() {
@Override
public void reloadDatabase() {
if (!file.exists()) {
return;
}

View File

@ -61,7 +61,8 @@ public class EconomyStorageBackendMySQL implements EconomyStorageBackend {
}
}
public void reloadData() {
@Override
public void reloadDatabase() {
Connection conn = openConnection();
try {
PreparedStatement ps = conn.prepareStatement("SELECT * FROM `player_balances`");

View File

@ -1,6 +1,6 @@
name: SaneEconomy
main: org.appledash.saneeconomy.SaneEconomy
version: 0.3.0
version: 0.3.1
commands:
balance:
aliases: [bal]
@ -17,3 +17,8 @@ commands:
description: Give some of your money to another player.
usage: /<command> <player> <amount>
permission: saneeconomy.pay
saneeconomy:
aliases: [saneeco]
description: Various admin commands for SaneEconomy.
usage: /command reload-database
pernission: saneeconomy.admin