【问题标题】:DM Specific User ID on Discord.js BotDiscord.js Bot 上的 DM 特定用户 ID
【发布时间】:2021-10-26 00:45:01
【问题描述】:

我是编码机器人的新手,我需要有关如何添加命令以向某个人发送自定义消息的帮助。这就是我到目前为止所拥有的。我该怎么办?

const Discord = require('discord.js');

const config = require("./Data/config.json")

const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"] })

client.once('ready', () => {
    console.log('Ready!');
});

client.login('TOKEN');


client.on('message', async message => {
    if (message.author.bot) return;
    let prefix = '??'
    if (!message.content.startsWith(prefix)) return;

    let args = message.content.slice(prefix.length).trim().split("/ +/g");
    let msg = message.content.toLowerCase();
    let cmd = args.shift().toLowerCase();

    if (msg.startsWith(prefix + 'ping')) {
        message.channel.send('pong');
    }

    if (msg.startsWith(prefix + 'hello')) {
        message.channel.send('hewwo uwu');
    }
});

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    要通过 id 获取用户,可以使用bot.users.fetch()

    要直接向用户发送消息,您可以使用User.send()

    const user = await client.users.fetch(userId);
    user.send("This is a DM!");
    

    【讨论】:

    • 我如何为特定的用户 ID 制作它?
    • 我已更新我的答案以更正确地回答您的问题
    • 添加该代码后,如何提示它发送该 dm?我也猜它应该属于clients.on吧?
    • 是的,这应该用在你的一个命令中,在.on("message")监听器中
    • 如果用户禁用了 DM,这将引发错误。
    【解决方案2】:

    这个简单的函数可以轻松解析用户(你可以提供一个用户对象用户ID,非常有用)

    async function DMUser(resolvable, content, client) {
      const user = client.users.resolve(resolvable)
      return user.send(content)
    }
    //returns: message sent, or error
    //usage: DMUser(UserResolvable, "content", client)
    

    相关链接:

    UserManager.resolve User.send UserResolvable

    【讨论】:

    • 在哪里插入用户名和消息内容?
    • 执行时。在您想要的任何回调中,只需执行DMUser(userid, content, client)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 2020-09-02
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多