From 9441ed681787912e5a21a0b364f3206b54ac74b1 Mon Sep 17 00:00:00 2001 From: danthe1st Date: Sun, 25 May 2025 12:58:51 +0200 Subject: [PATCH 1/3] Add thread link if submission thread exists already --- .../qotw/submissions/SubmissionManager.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java index 71240c3fc..976288394 100644 --- a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java +++ b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java @@ -69,8 +69,9 @@ public class SubmissionManager { public WebhookMessageCreateAction handleSubmission(@NotNull ButtonInteractionEvent event, int questionNumber) { event.deferEdit().queue(); Member member = event.getMember(); - if (!canCreateSubmissions(member)) { - return Responses.warning(event.getHook(), "You're not eligible to create a new submission thread."); + CreateSubmissionResult createSubmissionCheckResult = canCreateSubmissions(member); + if (!createSubmissionCheckResult.canCreateSubmissions()) { + return Responses.warning(event.getHook(), "You're not eligible to create a new submission thread because " + createSubmissionCheckResult.errorMessage()); } config.getSubmissionChannel().createThreadChannel( String.format(THREAD_NAME, questionNumber, member.getId()), true).queue( @@ -174,13 +175,21 @@ public void handleThreadDeletion(@NotNull ButtonInteractionEvent event) { }); } - private boolean canCreateSubmissions(Member member) { - if (member == null) return false; - if (member.getUser().isBot() || member.getUser().isSystem()) return false; - if (member.isTimedOut() || member.isPending()) return false; - return config.getSubmissionChannel().getThreadChannels() - .stream().noneMatch(p -> p.getName().contains(member.getId())); + private CreateSubmissionResult canCreateSubmissions(Member member) { + if (member == null) return new CreateSubmissionResult(false, "your user cannot be found in this server - please try again later or contact staff members."); + if (member.getUser().isBot() || member.getUser().isSystem()) return new CreateSubmissionResult(false, "your account seems to be marked as a bot."); + if (member.isTimedOut() || member.isPending()) return new CreateSubmissionResult(false, "you are timed out or have not accepted the rules"); + + Optional existingSubmissionThread = config.getSubmissionChannel().getThreadChannels() + .stream().filter(p -> p.getName().contains(member.getId())).findAny(); + + return existingSubmissionThread + .map(thread -> new CreateSubmissionResult(false, + "you already have a submission thread: " + existingSubmissionThread.get().getJumpUrl())) + .orElse(new CreateSubmissionResult(true, "")); } + + record CreateSubmissionResult(boolean canCreateSubmissions, String errorMessage) {} /** * Accepts a submission. From bbbe72468e525ed12e48a3db2343c89602865f65 Mon Sep 17 00:00:00 2001 From: danthe1st Date: Sun, 25 May 2025 14:04:50 +0200 Subject: [PATCH 2/3] move nested record to bottom --- .../javabot/systems/qotw/submissions/SubmissionManager.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java index 976288394..003a52f91 100644 --- a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java +++ b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java @@ -189,7 +189,6 @@ private CreateSubmissionResult canCreateSubmissions(Member member) { .orElse(new CreateSubmissionResult(true, "")); } - record CreateSubmissionResult(boolean canCreateSubmissions, String errorMessage) {} /** * Accepts a submission. @@ -301,4 +300,6 @@ private CompletableFuture> getMessagesByUser(@NotNull ThreadChanne .setTimestamp(Instant.now()) .build(); } + + private record CreateSubmissionResult(boolean canCreateSubmissions, String errorMessage) {} } From f6490f840f07ade092ff501d7181b529c618ddce Mon Sep 17 00:00:00 2001 From: danthe1st Date: Sun, 25 May 2025 14:06:43 +0200 Subject: [PATCH 3/3] change wording --- .../javabot/systems/qotw/submissions/SubmissionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java index 003a52f91..6f6949888 100644 --- a/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java +++ b/src/main/java/net/discordjug/javabot/systems/qotw/submissions/SubmissionManager.java @@ -185,7 +185,7 @@ private CreateSubmissionResult canCreateSubmissions(Member member) { return existingSubmissionThread .map(thread -> new CreateSubmissionResult(false, - "you already have a submission thread: " + existingSubmissionThread.get().getJumpUrl())) + "you already have one: " + existingSubmissionThread.get().getJumpUrl())) .orElse(new CreateSubmissionResult(true, "")); }