Skip to content

Commit 40e5aeb

Browse files
authored
Merge pull request #388 from danthe1st/ensure-qotw-review
ensure QOTW review
2 parents c5d94fc + 478ebd6 commit 40e5aeb

File tree

3 files changed

+56
-0
lines changed

3 files changed

+56
-0
lines changed

src/main/java/net/javadiscord/javabot/systems/qotw/jobs/QOTWCloseSubmissionsJob.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import net.dv8tion.jda.api.JDA;
66
import net.dv8tion.jda.api.Permission;
77
import net.dv8tion.jda.api.entities.Guild;
8+
import net.dv8tion.jda.api.entities.Member;
89
import net.dv8tion.jda.api.entities.Message;
910
import net.dv8tion.jda.api.entities.MessageEmbed;
1011
import net.dv8tion.jda.api.entities.MessageHistory;
@@ -87,6 +88,9 @@ public void execute() throws SQLException {
8788
.addActionRow(buildSubmissionSelectMenu(jda, submission.getIdLong()))
8889
.queue();
8990
});
91+
for (Member member : guild.getMembersWithRoles(qotwConfig.getQOTWReviewRole())) {
92+
thread.addThreadMember(member).queue();
93+
}
9094
}
9195
});
9296
if (qotwConfig.getSubmissionsForumChannel() == null) continue;
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package net.javadiscord.javabot.systems.qotw.jobs;
2+
3+
import lombok.RequiredArgsConstructor;
4+
import net.dv8tion.jda.api.JDA;
5+
import net.dv8tion.jda.api.entities.Guild;
6+
import net.dv8tion.jda.api.entities.Message;
7+
import net.javadiscord.javabot.data.config.BotConfig;
8+
import net.javadiscord.javabot.data.config.GuildConfig;
9+
import net.javadiscord.javabot.systems.notification.NotificationService;
10+
11+
import java.util.EnumSet;
12+
13+
import org.springframework.scheduling.annotation.Scheduled;
14+
import org.springframework.stereotype.Service;
15+
16+
/**
17+
* Job which reminds reviewers to review QOTW if this has not been done already.
18+
*/
19+
@Service
20+
@RequiredArgsConstructor
21+
public class QOTWReviewReminderJob {
22+
private final JDA jda;
23+
private final NotificationService notificationService;
24+
private final BotConfig botConfig;
25+
26+
/**
27+
* Reminds reviewers to review QOTW if this has not been done already.
28+
*/
29+
@Scheduled(cron = "0 0 7 * * 1") // Monday, 07:00 UTC
30+
public void execute() {
31+
for (Guild guild : jda.getGuilds()) {
32+
GuildConfig guildConfig = botConfig.get(guild);
33+
if (guildConfig.getModerationConfig().getLogChannel() == null || guildConfig.getQotwConfig().getSubmissionChannel()==null) {
34+
continue;
35+
}
36+
if (!guildConfig.getQotwConfig().getSubmissionChannel().getThreadChannels().isEmpty()) {
37+
notificationService
38+
.withGuild(guild)
39+
.sendToModerationLog(channel ->
40+
channel
41+
.sendMessageFormat("%s\n**Reminder**\nThe QOTW has not been reviewed yet.",
42+
guildConfig.getQotwConfig().getQOTWReviewRole().getAsMention())
43+
.setAllowedMentions(EnumSet.of(Message.MentionType.ROLE))
44+
);
45+
}
46+
}
47+
}
48+
}

src/main/java/net/javadiscord/javabot/systems/qotw/submissions/SubmissionManager.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ public void handleSelectReview(StringSelectInteractionEvent event, String thread
148148
}
149149
});
150150
});
151+
MessageChannelUnion reviewChannel = event.getChannel();
152+
if (reviewChannel.getType().isThread()) {
153+
reviewChannel.asThreadChannel().getManager().setArchived(true).queue();
154+
}
151155
}
152156
event.getHook().editOriginalComponents(ActionRow.of(Button.secondary("dummy", "%s by %s".formatted(status.getVerb(), event.getUser().getAsTag())).asDisabled())).queue();
153157
});

0 commit comments

Comments
 (0)