diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java index d1f47b080..15ad88944 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/RegisterCommand.java @@ -16,6 +16,7 @@ */ package com.djrapitops.plan.command.commands; +import com.djrapitops.plan.api.exceptions.database.DBOpException; import com.djrapitops.plan.data.WebUser; import com.djrapitops.plan.db.Database; import com.djrapitops.plan.db.access.queries.objects.WebUserQueries; @@ -41,6 +42,7 @@ import com.djrapitops.plugin.utilities.Verify; import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; +import java.util.concurrent.ExecutionException; /** * Command for registering web users. @@ -164,12 +166,15 @@ public class RegisterCommand extends CommandNode { sender.sendMessage(locale.getString(CommandLang.FAIL_WEB_USER_EXISTS)); return; } - database.executeTransaction(new RegisterWebUserTransaction(webUser)); + database.executeTransaction(new RegisterWebUserTransaction(webUser)) + .get(); // Wait for completion sender.sendMessage(locale.getString(CommandLang.WEB_USER_REGISTER_SUCCESS, userName)); sendLink(sender); logger.info(locale.getString(CommandLang.WEB_USER_REGISTER_NOTIFY, userName, webUser.getPermLevel())); - } catch (Exception e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { errorHandler.log(L.WARN, this.getClass(), e); } }); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java index f1896086b..9c7ff8663 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageClearCommand.java @@ -39,6 +39,7 @@ import com.djrapitops.plugin.utilities.Verify; import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; +import java.util.concurrent.ExecutionException; /** * This manage SubCommand is used to clear a database of all data. @@ -101,11 +102,12 @@ public class ManageClearCommand extends CommandNode { processing.submitCritical(() -> { try { sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); - - database.executeTransaction(new RemoveEverythingTransaction()); - + database.executeTransaction(new RemoveEverythingTransaction()) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); - } catch (DBOpException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); errorHandler.log(L.ERROR, this.getClass(), e); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java index 6401e49ee..48c5e820d 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/manage/ManageRemoveCommand.java @@ -41,6 +41,7 @@ import javax.inject.Inject; import javax.inject.Singleton; import java.util.Arrays; import java.util.UUID; +import java.util.concurrent.ExecutionException; /** * This manage subcommand is used to remove a single player's data from the @@ -119,11 +120,12 @@ public class ManageRemoveCommand extends CommandNode { } sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); - - db.executeTransaction(new RemovePlayerTransaction(playerUUID)); - + db.executeTransaction(new RemovePlayerTransaction(playerUUID)) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); - } catch (DBOpException e) { + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + } catch (DBOpException | ExecutionException e) { errorHandler.log(L.ERROR, this.getClass(), e); sender.sendMessage(locale.getString(ManageLang.PROGRESS_FAIL, e.getMessage())); } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java index bd3bba1e0..119ad4c8b 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/command/commands/webuser/WebDeleteCommand.java @@ -91,7 +91,9 @@ public class WebDeleteCommand extends CommandNode { sender.sendMessage("§c[Plan] User Doesn't exist."); return; } - db.executeTransaction(new RemoveWebUserTransaction(user)); + sender.sendMessage(locale.getString(ManageLang.PROGRESS_START)); + db.executeTransaction(new RemoveWebUserTransaction(user)) + .get(); // Wait for completion sender.sendMessage(locale.getString(ManageLang.PROGRESS_SUCCESS)); } catch (Exception e) { errorHandler.log(L.ERROR, this.getClass(), e);