如何使用JDA将带有消息的文件发送到Discord?

时间:2017-05-28 08:20:30

标签: java discord discord-jda

我正在使用JDA lib来创建我的discord bot而我遇到了一个问题:为了发送带有文件的消息,我应该使用现有消息:

RestAction<Message> sendFile(File file, Message message)
RestAction<Message> sendFile(File file, String fileName, Message message)
RestAction<Message> sendFile(InputStream data, String fileName, Message message)

没有实现使用简单的字符串消息发送文件。因此,当我尝试发送文件并向其发送消息时,我发现了重复的消息。

所以问题是:如何使用附件创建Message而不重复邮件?

3 个答案:

答案 0 :(得分:4)

您可以一次性发送带有附件的邮件:

import "package:flutter/material.dart";

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home: MyHomePage(),
      );
    }
}

class MyHomePage extends StatelessWidget {
  @override
    Widget build(BuildContext context) {
      return Scaffold(
        body: GestureDetector(
          onVerticalDragUpdate: (DragUpdateDetails details) {
            print("dragged");
          },
          onTap: () {
            print("tapped");
          },
          child: ListView.builder(
            itemBuilder: (context, index) {
              return Container(
                padding: EdgeInsets.all(20.0),
                child: Text(
                  "The GestureDetector above me does not react to drag events. Maybe my parent is at fault?"
                )
              );
            },
          )
        )
      );
    }
}

答案 1 :(得分:2)

正确的方法是使用MessageBuilder格式化并构建Message

Message message = new MessageBuilder().append("My message").build();
textChannel.sendFile(new File("my-file.txt"), message).queue();

在JDA中,尚未发送Message个对象。

答案 2 :(得分:0)

我能够在发布文件后通过邮件编辑来解决这个问题。

// Import the object GlobalContext
import GlobalContext.injector

// ...
val yourClassInstance = injector.instanceOf[YourClass]
相关问题