Skip to content

Commit 96510b2

Browse files
Made post close faster when waiting for help thanks response
1 parent f176d3d commit 96510b2

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/main/java/net/javadiscord/javabot/data/config/guild/HelpConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ public class HelpConfig extends GuildConfigItem {
6464
* The number of minutes to wait before closing a channel waiting for a response
6565
* to a thanks question.
6666
*/
67-
private int removeThanksTimeoutMinutes = 15;
67+
private int removeThanksTimeoutMinutes = 10;
6868

6969
/**
7070
* The number of channels which can be reserved by a single user at any time.

src/main/java/net/javadiscord/javabot/systems/help/HelpForumUpdater.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import lombok.extern.slf4j.Slf4j;
55
import net.dv8tion.jda.api.JDA;
66
import net.dv8tion.jda.api.entities.Guild;
7+
import net.dv8tion.jda.api.entities.Message;
78
import net.dv8tion.jda.api.entities.channel.concrete.ForumChannel;
89
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
910
import net.javadiscord.javabot.data.config.BotConfig;
@@ -47,7 +48,7 @@ public void execute() {
4748
private void checkForumPost(@NotNull ThreadChannel post, HelpConfig config) {
4849
post.retrieveMessageById(post.getLatestMessageId()).queue(latest -> {
4950
long minutesAgo = (Instant.now().getEpochSecond() - latest.getTimeCreated().toEpochSecond()) / 60;
50-
if (minutesAgo > config.getInactivityTimeoutMinutes()) {
51+
if (minutesAgo > config.getInactivityTimeoutMinutes() || isThanksMessage(latest) && minutesAgo > config.getRemoveThanksTimeoutMinutes()) {
5152
post.sendMessage(config.getDormantChannelMessageTemplate().formatted(config.getInactivityTimeoutMinutes())).queue(s -> {
5253
post.getManager().setLocked(true).setArchived(true).queue();
5354
log.info("Archived & locked forum thread '{}' (by {}) for inactivity (last message sent {} minutes ago)",
@@ -56,4 +57,13 @@ private void checkForumPost(@NotNull ThreadChannel post, HelpConfig config) {
5657
}
5758
}, e -> log.error("Could not find message with id {}", post.getLatestMessageId()));
5859
}
60+
61+
private boolean isThanksMessage(@NotNull Message m) {
62+
if (m.getAuthor().isBot() && !m.getButtons().isEmpty() &&
63+
m.getButtons().stream().allMatch(b -> b.getId() != null && b.getId().contains(HelpManager.HELP_THANKS_IDENTIFIER))) {
64+
m.delete().queue();
65+
return true;
66+
}
67+
return false;
68+
}
5969
}

src/main/java/net/javadiscord/javabot/systems/help/HelpManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,13 @@
22

33
import lombok.Getter;
44
import lombok.RequiredArgsConstructor;
5+
import net.dv8tion.jda.api.EmbedBuilder;
56
import net.dv8tion.jda.api.entities.Guild;
67
import net.dv8tion.jda.api.entities.Member;
78
import net.dv8tion.jda.api.entities.Message;
9+
import net.dv8tion.jda.api.entities.MessageEmbed;
810
import net.dv8tion.jda.api.entities.User;
11+
import net.dv8tion.jda.api.entities.UserSnowflake;
912
import net.dv8tion.jda.api.entities.channel.concrete.ThreadChannel;
1013
import net.dv8tion.jda.api.entities.emoji.Emoji;
1114
import net.dv8tion.jda.api.events.interaction.component.ButtonInteractionEvent;

0 commit comments

Comments
 (0)