11package net .javadiscord .javabot .listener ;
22
3- import net .dv8tion .jda .api .EmbedBuilder ;
3+ import club .minnced .discord .webhook .send .component .ActionRow ;
4+ import club .minnced .discord .webhook .send .component .Button ;
45import net .dv8tion .jda .api .JDA ;
5- import net .dv8tion .jda .api .entities .*;
6+ import net .dv8tion .jda .api .entities .Guild ;
7+ import net .dv8tion .jda .api .entities .GuildChannel ;
8+ import net .dv8tion .jda .api .entities .Message ;
9+ import net .dv8tion .jda .api .entities .MessageChannel ;
610import net .dv8tion .jda .api .events .message .MessageReceivedEvent ;
711import net .dv8tion .jda .api .hooks .ListenerAdapter ;
8- import net .dv8tion .jda .api .interactions .components .buttons .Button ;
912import net .dv8tion .jda .api .requests .RestAction ;
10- import net .javadiscord .javabot .util .InteractionUtils ;
11- import net .javadiscord .javabot .util .Responses ;
13+ import net .javadiscord .javabot .util .ExceptionLogger ;
14+ import net .javadiscord .javabot .util .WebhookUtil ;
1215import org .jetbrains .annotations .NotNull ;
1316
1417import java .util .Arrays ;
@@ -28,35 +31,23 @@ public void onMessageReceived(@NotNull MessageReceivedEvent event) {
2831 if (event .getAuthor ().isBot () || event .getAuthor ().isSystem ()) return ;
2932 Matcher matcher = MESSAGE_URL_PATTERN .matcher (event .getMessage ().getContentRaw ());
3033 if (matcher .find ()) {
31- Optional <RestAction <Message >> optional = this . parseMessageUrl (matcher .group (), event .getJDA ());
34+ Optional <RestAction <Message >> optional = parseMessageUrl (matcher .group (), event .getJDA ());
3235 optional .ifPresent (action -> action .queue (
33- m -> event .getMessage ().replyEmbeds (this .buildUrlEmbed (m ))
34- .setActionRow (Button .secondary (InteractionUtils .DELETE_ORIGINAL_TEMPLATE , "\uD83D \uDDD1 ️" ), Button .link (m .getJumpUrl (), "View Original" ))
35- .queue (),
36- e -> {}
36+ m -> WebhookUtil .ensureWebhookExists (event .getChannel ().asTextChannel (),
37+ wh -> WebhookUtil .mirrorMessageToWebhook (wh , m , m .getContentRaw (), 0 , ActionRow .of (Button .link (m .getJumpUrl (), "Jump to Message" )))
38+ ), ExceptionLogger ::capture
3739 ));
3840 }
3941 }
4042
41- private MessageEmbed buildUrlEmbed (Message m ) {
42- User author = m .getAuthor ();
43- return new EmbedBuilder ()
44- .setAuthor (author .getAsTag (), m .getJumpUrl (), author .getEffectiveAvatarUrl ())
45- .setColor (Responses .Type .DEFAULT .getColor ())
46- .setDescription (m .getContentRaw ())
47- .setTimestamp (m .getTimeCreated ())
48- .setFooter ("#" + m .getChannel ().getName ())
49- .build ();
50- }
51-
5243 /**
5344 * Tries to parse a Discord Message Link to the corresponding Message object.
5445 *
5546 * @param url The Message Link.
5647 * @param jda The {@link JDA} instance.
5748 * @return An {@link Optional} containing the {@link RestAction} which retrieves the corresponding Message.
5849 */
59- private Optional <RestAction <Message >> parseMessageUrl (String url , JDA jda ) {
50+ private Optional <RestAction <Message >> parseMessageUrl (@ NotNull String url , @ NotNull JDA jda ) {
6051 RestAction <Message > optional = null ;
6152 String [] arr = url .split ("/" );
6253 String [] segments = Arrays .copyOfRange (arr , 4 , arr .length );
0 commit comments