简体   繁体   English

discord.js中直接留言

[英]Direct message in discord.js

I am learning to make a bot that of roles.我正在学习制作一个角色机器人。 Currently the bot works but I would like that when granting a role to the user it sends a welcome md but I am having problems with that.目前该机器人可以工作,但我希望在向用户授予角色时,它会发送一个欢迎 md,但我遇到了问题。 I tried to use我试着用

client.on("ready", () => {
   client.users.fetch(targetUsers.id).then(user => {
            user.send('hola mundo')}
)});

But it does not work但它不起作用

The idea would be that after executing member.roles.add(role) a message is sent to the same welcome user这个想法是在执行 member.roles.add(role) 之后,会向同一个欢迎用户发送一条消息

module.exports = {
    commands: 'giverole',
    expectedArgs: "<Target user's @> <The role name>",
    minArgs: 2,
    permissions: 'ADMINISTRATOR',
    callback: (message, arguments) => {

        const targetUsers = message.mentions.users.first()

        if (!targetUsers) {
            message.reply('Please specify someone to give a role to.')
            return
        }

        arguments.shift()
        const roleName = arguments.join(' ')
        const { guild } = message

        const role = guild.roles.cache.find((role) => {

            return role.name === roleName

        })
        if (!role) {
            message.reply(`No existe un rol con el nombre"${roleName}"`)
            return
        }

        const member = guild.members.cache.get(targetUsers.id)
        member.roles.add(role)
        message.reply(`Ese usuario ahora tiene el rol de ${roleName}`)
        console.log(`${targetUsers.id}`)


    }
}

Discord.js makes this pretty easy: Discord.js 使这很容易:

const member = guild.members.cache.get(targetUsers.id)
member.roles.add(role)
member.send("Message here")

Altough be warned some users may have disabled direct messages from non friends on discord!尽管如此,有些用户可能已经在不和谐中禁用了来自非朋友的直接消息!

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM