9
0
mirror of https://gitlab.com/SamB440/rpgregions-2.git synced 2025-12-29 03:39:08 +00:00

Add /rpgregions save

This commit is contained in:
SamB440
2020-01-18 14:46:00 +00:00
parent abc2556ea3
commit 1e7b66b983
2 changed files with 34 additions and 2 deletions

View File

@@ -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

View File

@@ -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)");
}
}