9
0
mirror of https://gitlab.com/SamB440/rpgregions-2.git synced 2025-12-28 03:09:14 +00:00

Add /rpgregions delete <user>

This commit is contained in:
Sam
2020-01-30 16:40:59 +00:00
parent 52bd3f2e07
commit 7ee0f4e522
4 changed files with 30 additions and 0 deletions

View File

@@ -220,4 +220,19 @@ public class RPGRegionsCommand extends BaseCommand {
break;
}
}
@Subcommand("delete")
@CommandPermission("rpgregions.delete")
public void onDelete(CommandSender sender, String[] args) {
if (args.length > 0) {
Player player = Bukkit.getPlayer(args[0]);
if (player != null) {
plugin.getManagers().getStorageManager().deleteAccount(player.getUniqueId());
} else {
sender.sendMessage(ChatColor.RED + "That player cannot be found.");
}
} else {
sender.sendMessage(ChatColor.RED + "Usage: /rpgregions delete <player>");
}
}
}

View File

@@ -36,6 +36,7 @@ public interface StorageManager {
*/
void clearDiscovery(UUID uuid, String regionId);
void deleteAccount(UUID uuid);
/**
* Removes an account from the storage cache and saves its data.
* @param uuid player's UUID

View File

@@ -92,6 +92,12 @@ public class SqlStorage implements StorageManager {
DB.executeUpdateAsync(DELETE_DISCOVERY, getDatabaseUuid(uuid), regionId);
}
@Override
public void deleteAccount(UUID uuid) {
this.clearDiscoveries(uuid);
cachedAccounts.remove(uuid);
}
@Override
public void removeCachedAccount(UUID uuid) {
RPGRegionsAccount account = cachedAccounts.get(uuid);

View File

@@ -110,6 +110,14 @@ public class YamlStorage implements StorageManager {
}
}
@Override
public void deleteAccount(UUID uuid) {
this.clearDiscoveries(uuid);
File file = new File(plugin.getDataFolder() + "/accounts/" + uuid.toString() + ".yml");
file.delete();
cachedAccounts.remove(uuid);
}
@Override
public void removeCachedAccount(UUID uuid) {
RPGRegionsAccount account = cachedAccounts.get(uuid);