【问题标题】:How to send a DM (Direct Message) to someone on Discord via JDA如何通过 JDA 在 Discord 上向某人发送 DM(直接消息)
【发布时间】:2020-06-12 18:23:23
【问题描述】:

我希望机器人向某人发送直接消息,但我不知道该怎么做。

event.getChannel().sendMessage("Hello World").queue();

我想知道是否可以将频道更改为 DM 或以任何其他方式发送 DM,我希望它直接发送给用户或者只有他可以看到它。

【问题讨论】:

    标签: java discord discord-jda


    【解决方案1】:

    您永远不必猜测如何使用库 - 这就是文档的用途。任何值得一提的库都有文档列出您需要担心的每个类、方法和属性。

    在 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();
    

    【讨论】:

      猜你喜欢
      • 2020-06-13
      • 2021-11-28
      • 2021-07-06
      • 2021-02-20
      • 2021-08-22
      • 2022-08-11
      • 2021-03-03
      • 2021-01-29
      • 1970-01-01
      相关资源
      最近更新 更多