【问题标题】:How to make a discord js bot send direct/private message not to author?如何使不和谐的 js 机器人不向作者发送直接/私人消息?
【发布时间】:2018-01-13 11:02:27
【问题描述】:

我正在使用 node.js 进行不和谐。

在我发出命令后,我希望我的机器人向特定的人发送直接/私人消息,而不是发出命令的作者(我)。

现在我有这个人的(我认为这称为ID),它是字符串格式的。

例如,此代码 client.sendMessage(message.author, "Hello!"); 向作者发送消息 Hello。但我想要一个像 client.sendMessage(message.user(""), "Hello!");

这样的功能存在吗?

关于背景信息,我正在制作一个狼人游戏机器人,其中玩家被随机分配一个角色,在我命令 w!play 之后,我希望玩家在 DM 中接收他们的角色。

【问题讨论】:

    标签: javascript bots private discord dm


    【解决方案1】:

    是的,只需获取user 对象并发送到该对象即可。您将需要他们的 id,因此解析出字符串“”的 id 部分。此外,sendMessage 已被弃用。使用channel.send()。如果是用户:

    let str = "<@123456789>"; //Just assuming some random tag.
    
    //removing any sign of < @ ! >... 
    //the exclamation symbol comes if the user has a nickname on the server.
    let id = str.replace(/[<@!>]/g, '');
    
    client.fetchUser(id)
        .then(user => {user.send("Hello I dmed you!")})
    

    【讨论】:

      【解决方案2】:

      除非您有明确的理由,否则我不会那样写。

      我已经使用带有 git 的 webhook 进行不和谐,使用主题标签在私人频道上进行通信,(并创建 dm 频道)因此我可以添加删除/排除规则(对于管理员或其他)

      (如果您需要 Facebook 集成,这将不适用于 Facebook)

      【讨论】:

      • (你不需要 python 或 php 的工作知识,在这种情况下你可以用 node 编写 webhook),因此我会用 ID 和字符串编写用户,你不 需要一个布尔值,但显然这取决于你,这种方法以后对你的大脑来说更容易,因为你可以指定它是机器人还是人,然后找到任何标签(频道)、机器人或用户。
      • 所以我需要使用 webhook 吗?我可以提供主题标签的示例代码吗?
      • 这篇文章最好地描述了这种方法,并为您提供了它的使用方法。对我来说,它比不和谐字符串格式更易于使用,我认为它在弃用和升级时会派上用场。我知道它的唯一原因是因为我想整合 slack,这就是我的做法。 support.discordapp.com/hc/en-us/articles/… **请注意,您可以在不使用 git 的情况下将 webhook 集成到不和谐中,尽管本教程希望您这样做。我不会说任何一种方式是更好或更坏,当然两者都有优点和缺点。 :)
      猜你喜欢
      • 2018-11-19
      • 1970-01-01
      • 2020-05-31
      • 2021-04-03
      • 2020-07-28
      • 1970-01-01
      • 2021-08-14
      • 2020-11-12
      • 1970-01-01
      相关资源
      最近更新 更多