From c978875b149e68c7d7f14dc45e84d51d31c1dc85 Mon Sep 17 00:00:00 2001 From: SamB440 Date: Tue, 15 Nov 2022 16:05:42 +0000 Subject: [PATCH] Add /rpgri migrate --- .../rpgregions/RPGRegionsIntegration.java | 6 +++++- .../commands/RPGRegionsIntegrationCommand.java | 17 +++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java index ad876ef..c8240e5 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/api/integrations/rpgregions/RPGRegionsIntegration.java @@ -24,6 +24,7 @@ import java.io.IOException; import java.io.Reader; import java.io.Writer; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -59,6 +60,10 @@ public class RPGRegionsIntegration implements IntegrationManager { * API METHODS */ + public Collection getRegions() { + return regions.values(); + } + public Set getRegions(final Location location) { List foundRegions = new ArrayList<>(); for (RPGRegionsRegion region : regions.values()) { @@ -82,7 +87,6 @@ public class RPGRegionsIntegration implements IntegrationManager { public void removeRegion(final String name) { regions.remove(name); } - /* * OVERRIDES */ diff --git a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsIntegrationCommand.java b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsIntegrationCommand.java index 2e51ccb..e828f10 100644 --- a/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsIntegrationCommand.java +++ b/rpgregions/src/main/java/net/islandearth/rpgregions/commands/RPGRegionsIntegrationCommand.java @@ -131,4 +131,21 @@ public class RPGRegionsIntegrationCommand extends BaseCommand { region.setWorld(world.getUID()); sender.sendMessage(ChatColor.GREEN + "Set region '" + region.getName() + "' world to '" + world.getName() + "'."); } + + @Subcommand("migrate") + @CommandCompletion("@worlds") + public void onMigrate(final CommandSender sender, final String worldName) { + final World world = Bukkit.getWorld(worldName); + if (world == null) { + sender.sendMessage(ChatColor.RED + "That world could not be found."); + return; + } + + RPGRegionsIntegration integration = (RPGRegionsIntegration) plugin.getManagers().getIntegrationManager(); + for (RPGRegionsRegion region : integration.getRegions()) { + region.setWorld(world.getUID()); + } + + sender.sendMessage(ChatColor.GREEN + "Set all regions to world '" + worldName + "'."); + } }