44import net .dv8tion .jda .api .EmbedBuilder ;
55import net .dv8tion .jda .api .entities .Guild ;
66import net .dv8tion .jda .api .entities .MessageEmbed ;
7+ import net .dv8tion .jda .api .events .interaction .component .ButtonInteractionEvent ;
78import net .dv8tion .jda .api .events .message .MessageReceivedEvent ;
9+ import net .dv8tion .jda .api .interactions .components .buttons .Button ;
810import net .javadiscord .javabot .data .config .BotConfig ;
911import net .javadiscord .javabot .systems .moderation .AutoMod ;
1012import net .javadiscord .javabot .systems .user_preferences .UserPreferenceService ;
1113import net .javadiscord .javabot .systems .user_preferences .model .Preference ;
1214import net .javadiscord .javabot .util .ExceptionLogger ;
15+ import net .javadiscord .javabot .util .InteractionUtils ;
1316import net .javadiscord .javabot .util .WebhookUtil ;
1417import org .jetbrains .annotations .NotNull ;
1518import org .jetbrains .annotations .Nullable ;
2528@ RequiredArgsConstructor
2629@ Component
2730public class AutoCodeFormatter {
31+ /**
32+ * The identifier used for all AutoCodeFormatter related buttons.
33+ */
34+ static final String FORMAT_HINT_IDENTIFIER = "forum-formatter-removeHint" ;
2835 private final AutoMod autoMod ;
2936 private final BotConfig botConfig ;
3037 private final UserPreferenceService preferenceService ;
@@ -118,6 +125,9 @@ void handleMessageEvent(@Nonnull MessageReceivedEvent event, boolean isFirstMess
118125 private void sendFormatHint (MessageReceivedEvent event ) {
119126 event .getMessage ()
120127 .replyEmbeds (formatHintEmbed (event .getGuild ()))
128+ .addActionRow (
129+ Button .secondary (InteractionUtils .DELETE_ORIGINAL_TEMPLATE , "\uD83D \uDDD1 ️" )
130+ )
121131 .queue ();
122132 }
123133
@@ -142,10 +152,8 @@ private void replaceUnformattedCode(String msg, int codeStartIndex, int codeEndI
142152 wh ,
143153 event .getMessage (),
144154 messageContent ,
145- event .getChannel ()
146- .getIdLong (),
147- autoformatInfo .build (),
148- formatHintEmbed (event .getGuild ())
155+ event .getChannel ().getIdLong (),
156+ autoformatInfo .build ()
149157 ),
150158 e -> ExceptionLogger .capture (
151159 e ,
@@ -160,5 +168,9 @@ private MessageEmbed formatHintEmbed(Guild guild) {
160168 .getFormatHintMessage ()).build ();
161169 }
162170
171+ private void handleDeleteHint (ButtonInteractionEvent event ) {
172+ event .getMessage ().delete ().queue ();
173+ }
174+
163175 private record CodeBlock (int startIndex , int endIndex ) {}
164176}
0 commit comments