diff options
Diffstat (limited to 'src/main/java/com/pinapelz/Retriever.java')
| -rw-r--r-- | src/main/java/com/pinapelz/Retriever.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/main/java/com/pinapelz/Retriever.java b/src/main/java/com/pinapelz/Retriever.java new file mode 100644 index 0000000..1d78785 --- /dev/null +++ b/src/main/java/com/pinapelz/Retriever.java @@ -0,0 +1,34 @@ +package com.pinapelz; + +import net.dv8tion.jda.api.JDA; +import net.dv8tion.jda.api.entities.Message; +import net.dv8tion.jda.api.entities.channel.concrete.TextChannel; + +import java.util.concurrent.CompletableFuture; + +public class Retriever { + + private final JDA jda; + + public Retriever(JDA jda) { + this.jda = jda; + } + + public String getFileUrl(String channelId, String messageId, String fileName) { + TextChannel channel = jda.getTextChannelById(channelId); + if (channel == null) { + throw new RuntimeException("Channel not found or deleted"); + } + System.out.println(channelId + " " + messageId + fileName); + + Message message = channel.retrieveMessageById(messageId).complete(); + + for (Message.Attachment file : message.getAttachments()) { + if (file.getFileName().equals(fileName)) { + return file.getUrl(); + } + } + + throw new RuntimeException("Matching attachment not found"); + } +}
\ No newline at end of file |
