diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-05-06 20:13:32 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2022-05-06 20:13:32 +0100 |
| commit | 887589d57b658da26c37e108c544d16b9a40dbb7 (patch) | |
| tree | 10ab2de944bd8c3284c5dbc7e82fd2f84174a661 /bukkit | |
| parent | 231be0a781038711ff98b6cc281902892e0a7591 (diff) | |
Fix migrationInProgress boolean not resetting after error
Diffstat (limited to 'bukkit')
| -rw-r--r-- | bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminMigrateCommandHandler.java | 55 |
1 files changed, 29 insertions, 26 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminMigrateCommandHandler.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminMigrateCommandHandler.java index b972202f..88e39d32 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminMigrateCommandHandler.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/AdminMigrateCommandHandler.java @@ -82,19 +82,8 @@ public class AdminMigrateCommandHandler implements CommandHandler { sender.sendMessage(ChatColor.GRAY + "Performing migration..."); migrationInProgress.set(true); plugin.getScheduler().doAsync(() -> { - try { - sender.sendMessage(ChatColor.GRAY + "Initialising storage provider '" + fromProvider.getName() + "'..."); - fromProvider.init(); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "An error occurred while initializing '" + fromProvider.getName() + "' storage provider."); - return; - } - - try { - sender.sendMessage(ChatColor.GRAY + "Initialising storage provider '" + toProvider.getName() + "'..."); - toProvider.init(); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "An error occurred while initializing '" + toProvider.getName() + "' storage provider."); + if (!initProvider(sender, fromProvider) || !initProvider(sender, toProvider)) { + sender.sendMessage(ChatColor.DARK_RED + "Migration aborted."); return; } @@ -110,19 +99,8 @@ public class AdminMigrateCommandHandler implements CommandHandler { toProvider.saveAllProgressFiles(files); sender.sendMessage(ChatColor.GRAY + "Done."); - try { - sender.sendMessage(ChatColor.GRAY + "Shutting down storage provider '" + fromProvider.getName() + "'..."); - fromProvider.shutdown(); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "An error occurred while shutting down '" + fromProvider.getName() + "' storage provider."); - } - - try { - sender.sendMessage(ChatColor.GRAY + "Shutting down storage provider '" + toProvider.getName() + "'..."); - toProvider.shutdown(); - } catch (Exception e) { - sender.sendMessage(ChatColor.RED + "An error occurred while shutting down '" + toProvider.getName() + "' storage provider."); - } + shutdownProvider(sender, fromProvider); + shutdownProvider(sender, toProvider); long endTime = System.currentTimeMillis(); sender.sendMessage(ChatColor.GREEN + "Migration complete. Took " + String.format("%.3f", (endTime - startTime) / 1000f) + "s."); @@ -143,6 +121,31 @@ public class AdminMigrateCommandHandler implements CommandHandler { sender.sendMessage(ChatColor.GRAY + "Please see this file, or the wiki, for further instructions."); } + private void shutdownProvider(CommandSender sender, StorageProvider provider) { + try { + sender.sendMessage(ChatColor.GRAY + "Shutting down storage provider '" + provider.getName() + "'..."); + provider.shutdown(); + } catch (Exception e) { + sender.sendMessage(ChatColor.RED + "An error occurred while shutting down '" + provider.getName() + "' storage provider. " + + "See server console for more details."); + e.printStackTrace(); + } + } + + private boolean initProvider(CommandSender sender, StorageProvider provider) { + try { + sender.sendMessage(ChatColor.GRAY + "Initialising storage provider '" + provider.getName() + "'..."); + provider.init(); + return true; + } catch (Exception e) { + migrationInProgress.set(false); + sender.sendMessage(ChatColor.RED + "An error occurred while initializing '" + provider.getName() + "' storage provider. " + + "See server console for more details."); + e.printStackTrace(); + return false; + } + } + private StorageProvider getStorageProvider(ConfigurationSection configurationSection) { String configuredProvider = configurationSection.getString("provider", "yaml"); StorageProvider storageProvider; |
