Skip to content

Commit 454f1aa

Browse files
authored
Auto create threads for suggestions (#469)
* Auto create threads for suggestions * added a condition to general checks * made a method for thread creation * added notnull annotation to message argument in createThread method * removed unnecessary checks * changed algorithm to generate thread titles * removed unnecessary variable
1 parent 9305cd0 commit 454f1aa

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

application/src/main/java/org/togetherjava/tjbot/commands/basic/SuggestionsUpDownVoter.java

+18
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
*/
2323
public final class SuggestionsUpDownVoter extends MessageReceiverAdapter {
2424
private static final Logger logger = LoggerFactory.getLogger(SuggestionsUpDownVoter.class);
25+
private static final int TITLE_MAX_LENGTH = 60;
2526
private static final String FALLBACK_UP_VOTE = "👍";
2627
private static final String FALLBACK_DOWN_VOTE = "👎";
2728

@@ -47,10 +48,27 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) {
4748
Guild guild = event.getGuild();
4849
Message message = event.getMessage();
4950

51+
createThread(message);
5052
reactWith(config.getUpVoteEmoteName(), FALLBACK_UP_VOTE, guild, message);
5153
reactWith(config.getDownVoteEmoteName(), FALLBACK_DOWN_VOTE, guild, message);
5254
}
5355

56+
private static void createThread(@NotNull Message message) {
57+
String title = message.getContentRaw();
58+
59+
if (title.length() >= TITLE_MAX_LENGTH) {
60+
int lastWordEnd = title.lastIndexOf(' ', TITLE_MAX_LENGTH);
61+
62+
if (lastWordEnd == -1) {
63+
lastWordEnd = TITLE_MAX_LENGTH;
64+
}
65+
66+
title = title.substring(0, lastWordEnd);
67+
}
68+
69+
message.createThreadChannel(title).queue();
70+
}
71+
5472
private static void reactWith(@NotNull String emoteName, @NotNull String fallbackUnicodeEmote,
5573
@NotNull Guild guild, @NotNull Message message) {
5674
getEmoteByName(emoteName, guild).map(message::addReaction).orElseGet(() -> {

0 commit comments

Comments
 (0)