From 1e7b66b9837df23559aab8338e17fcbb9fa76722 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Sat, 18 Jan 2020 14:46:00 +0000 Subject: [PATCH] Add /rpgregions save --- .../islandearth/rpgregions/RPGRegions.java | 3 +- .../commands/RPGRegionsCommand.java | 33 ++++++++++++++++++- 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/islandearth/rpgregions/RPGRegions.java b/src/main/java/net/islandearth/rpgregions/RPGRegions.java index 6053b42..96ffa6b 100644 --- a/src/main/java/net/islandearth/rpgregions/RPGRegions.java +++ b/src/main/java/net/islandearth/rpgregions/RPGRegions.java @@ -53,7 +53,8 @@ public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, Langu public void onDisable() { // Save all player data (quit event not called for shutdown) Bukkit.getOnlinePlayers().forEach(player -> { - if (plugin.getManagers().getStorageManager().getCachedAccounts().containsKey(player.getUniqueId())) this.getManagers().getStorageManager().removeCachedAccount(player.getUniqueId()); + if (managers.getStorageManager().getCachedAccounts().containsKey(player.getUniqueId())) + this.getManagers().getStorageManager().removeCachedAccount(player.getUniqueId()); }); // Save all region configs diff --git a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java index 41a0abc..0c0fd2d 100644 --- a/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java +++ b/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsCommand.java @@ -15,6 +15,7 @@ import net.islandearth.rpgregions.rewards.ItemReward; import net.islandearth.rpgregions.translation.Translations; import net.islandearth.rpgregions.utils.ItemStackBuilder; import net.islandearth.rpgregions.utils.StringUtils; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.CommandSender; @@ -23,6 +24,7 @@ import org.bukkit.inventory.ItemFlag; import java.io.File; import java.io.FileReader; +import java.io.IOException; import java.io.Reader; import java.util.ArrayList; import java.util.List; @@ -193,6 +195,9 @@ public class RPGRegionsCommand extends BaseCommand { String region = args[0]; ConfiguredRegion configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion(region); if (configuredRegion != null) { + System.out.println(player.getInventory().getItemInMainHand().getData()); + System.out.println(player.getInventory().getItemInMainHand().getItemMeta()); + System.out.println(plugin.getGson().toJson(player.getInventory().getItemInMainHand())); configuredRegion.getRewards().add(new ItemReward(player.getInventory().getItemInMainHand())); player.sendMessage(ChatColor.GREEN + "Item added to configuration!"); } else { @@ -215,7 +220,7 @@ public class RPGRegionsCommand extends BaseCommand { try { Reader reader = new FileReader(file); ConfiguredRegion region = plugin.getGson().fromJson(reader, ConfiguredRegion.class); - plugin.getManagers().getRegionsCache().addConfiguredRegion(region); + if (!region.getId().equals("exampleconfig")) plugin.getManagers().getRegionsCache().addConfiguredRegion(region); reader.close(); } catch (Exception e) { plugin.getLogger().severe("Error loading region config " + file.getName() + ":"); @@ -228,4 +233,30 @@ public class RPGRegionsCommand extends BaseCommand { long totalTime = endTime - startTime; sender.sendMessage(ChatColor.GREEN + "Done! (" + totalTime + "ms)"); } + + @Subcommand("save") + @CommandPermission("rpgregions.save") + public void onSave(CommandSender sender, String[] args) { + sender.sendMessage(ChatColor.GREEN + "Saving data..."); + long startTime = System.currentTimeMillis(); + + // Save all player data (quit event not called for shutdown) + Bukkit.getOnlinePlayers().forEach(player -> { + if (plugin.getManagers().getStorageManager().getCachedAccounts().containsKey(player.getUniqueId())) + plugin.getManagers().getStorageManager().removeCachedAccount(player.getUniqueId()); + }); + + // Save all region configs + plugin.getManagers().getRegionsCache().getConfiguredRegions().forEach((id, region) -> { + try { + region.save(plugin); + } catch (IOException e) { + e.printStackTrace(); + } + }); + + long endTime = System.currentTimeMillis(); + long totalTime = endTime - startTime; + sender.sendMessage(ChatColor.GREEN + "Done! (" + totalTime + "ms)"); + } }