Discord.js通过ID

时间:2019-09-17 03:08:58

标签: javascript node.js discord discord.js

是否可以通过ID通过特定用户打开DM stream或类似内容。

  

我是什么意思?

当我向bot输入命令时,就像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来达到这样的效果?

就目前而言,我已经根据每条消息的请求中的前缀编写了该命令,该命令将DM消息发送给用户:

me: dm@user_id: Hello!
me: dm@user_id: How are you?

可能我应该将会话数据(user.id)存储在某个地方,以帮助bot理解我只想与特定用户通信?

1 个答案:

答案 0 :(得分:0)

我在Discord.js不和中收到此答案。因此,MessageCollector是可能的。我正在使用this guide来构建我的机器人with dynamic commands。所以这是我的代码:

module.exports = {
    name: 'direct',
    description: 'Ping!',
    args: true,
    execute(message, args, client) {
        const u = message.content.split(/(?<=^\S+)@/)[1];
        console.log(message.content);
        message.channel.send(`Connection established: ${message.author.id}`);
        const filter = m => m.content.includes('discord');
        const collector = message.channel.createMessageCollector(filter, {
            maxMatches: 10,
            time: 30000,
            errors: ['time']
        });

        collector.on('collect', m => {
            console.log(`${Date.now()} Collected ${m.content}`);
            client.fetchUser('user_id').then((user) => {
                return user.send(`${m.content}`);
            });
        });

        collector.on('end', collected => {
            message.channel.send(`Connection cancelled with ${message.author.id}. You send ${collected.size} messages`);
            console.log(`${Date.now()} Collected ${collected.size} items`);
            if (collected.size === 0) {
                console.log('here');
            }
        });
    }
};

在这种情况下,您只需输入命令名称(直接),然后输入将discord个DM发送到user_id 10次或30秒的每条消息。如果要更改它,可以使用参数。希望它能帮助任何人。

此外,我也非常感谢Discord.js社区的Monbrey#4502提供信息。