gpt4 book ai didi

java - Discord JDA 保存消息中包含的文件附件

转载 作者:行者123 更新时间:2023-12-04 08:19:32 25 4
gpt4 key购买 nike

代码如下:

package volmbot.commands;

import lombok.SneakyThrows;
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
import net.dv8tion.jda.api.hooks.ListenerAdapter;

import java.io.FileOutputStream;
import java.io.ObjectOutputStream;


public class SandBox extends ListenerAdapter {
@SneakyThrows
public void onGuildMessageReceived(GuildMessageReceivedEvent e) {
String[] args = e.getMessage().getContentRaw().split(" ");
e.getMessage().getAttachments();
String authId = e.getMessage().getAuthor().getId();

//Grab file and save it as the user's ID
FileOutputStream saveFile = new FileOutputStream(authId + ".txt");
ObjectOutputStream save = new ObjectOutputStream(saveFile);
save.writeObject(e.getMessage().getAttachments());
save.close();


}
}

我的目标是做到以下几点:
  • 保存用户在邮件中发送的文件(如果邮件有附件)
  • 如果消息不包含消息,请忽略它
  • 保存到用户 ID 为 id.txt 的文件中

  • 我试过使用 Filestream,但我可能做错了什么。
    我将如何管理如此抓取消息附件,假设它有一个附件,然后保存文件?

    最佳答案

    您可以使用 downloadToFile(name) :

    List<Message.Attachment> attachments = event.getMessage().getAttachments();
    if (attachments.isEmpty()) return; // no attachments on the message!

    CompletableFuture<File> future = attachments.get(0).downloadToFile(authId + ".txt");
    future.exceptionally(error -> { // handle possible errors
    error.printStackTrace();
    return null;
    });

    关于java - Discord JDA 保存消息中包含的文件附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65555022/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com