通过Java Discord Api发送直接消息

时间:2020-02-28 15:57:59

标签: java discord discord-jda

我希望机器人发送直接消息,但出于对上帝的爱,我无法找到确切的方法/功能。只可以将消息发送到同一服务器的频道

   event.getChannel().sendMessage("hello").queue();

我希望消息直接发送给用户,或者希望某个特定的用户获取消息。 请帮忙!

1 个答案:

答案 0 :(得分:2)

您永远不必猜测如何使用库-这就是文档的用途。任何物有所值的图书馆都有文档列出您需要担心的每个类,方法和属性。

在Google上快速搜索“ discord-jda docs”会将我们带到Javadoc:https://ci.dv8tion.net/job/JDA/javadoc/index.html

您想向用户发送消息,对不对?因此,让我们使用搜索栏找到User。类型下的第一个结果是net.dv8tion.jda.api.entities.User。我们现在在https://ci.dv8tion.net/job/JDA/javadoc/net/dv8tion/jda/api/entities/User.html

如果您想知道如何与用户做某事,我们将介绍每个用户拥有的方法。两个立即引起了我的注意:User.hasPrivateChannel()User.openPrivateChannel()。因为第二个看起来很相关,所以我们将其单击。

瞧,文档中有示例用法!我在下面引用它:

// Send message without response handling
public void sendMessage(User user, String content) {
    user.openPrivateChannel()
        .flatMap(channel -> channel.sendMessage(content))
        .queue();
}

这似乎很简单。因此,您要寻找的基本用法(假设eventMessageReceivedEvent)是这样的:

event.getAuthor().openPrivateChannel().flatMap(channel -> channel.sendMessage("hello")).queue();