【发布时间】:2020-04-23 18:07:41
【问题描述】:
是否有任何选项可以通过 ID 为特定用户打开 DM stream 或类似的东西。
什么意思?
这就像 ssh 终端功能,当我输入命令给机器人时:
me: DM@{user.id}
bot: {connection established message}
/**--------------------------------------------
@ and for now, every message from me, bot will deliver to {user.id} until I
@ don't send `{message_stop}` command, for example:
----------------------------------------------*/
me: "Hi, how are you?" -> client.fetchUser('user_id')
me: "Are you ok?"
me: -stop command
不每次在每条消息的开头都使用-prefix?
或者可能像这样实现这个功能:
在服务器(公会)上创建一个频道,我在那里写的每条消息都会发送给某个用户?
实际的问题是,如果可能的话,我应该如何操纵with client.on('trigger') state 来达到这样的结果?
就目前而言,我已经编写了命令,该命令根据每条消息的请求中的前缀向用户发送消息,例如:
me: dm@user_id: Hello!
me: dm@user_id: How are you?
也许我应该将会话数据 (user.id) 存储在某处,以帮助 bot 了解我只想与特定用户通信?
【问题讨论】:
-
正如@Steamgamer 所说,您不能像创建 Opus 音频流一样创建 DM 流。为了与其他用户创建 DM 频道,您需要针对用户对象运行函数
createDM()。您可以通过客户端发出的message事件获取用户对象,也可以通过您在其中标记用户的命令手动调用它。正如here 所记录的那样,在guildMemberAdd事件上,您将返回一个GuildMember类型,其中你可以做member.createDM()。请记住,这是一个承诺。 -
@Steamgamer,@Brxxn,看来你明白这是错误的人。我在询问文本直接消息流。没有语音音频。
MessageCollector在这里是一个完美的解决方案。 -
我们理解正确,我们不是在评论音频流,而是从直接消息中获得的文本。
MessageCollectors 非常适合如果消息是短期的且具有预期的持续时间,但这不是message事件的限制。 -
好吧,但是您可以
limit以时间或消息数量计算如此巨大的价值,您将收到源源不断的信息流。也可以随时停止它,只需向机器人发送任何命令即可。
标签: javascript node.js discord discord.js