使用 discord node js 标记用户

tag a user using discord node js

我想创建一个命令,在名字被提及时标记用户。但是现在机器人只标记用户名而不是服务器中的昵称

client.on("message", message => {
  if(message.content === 'test'){
    message.channel.send("works")
    console.log("logged the message")
  }
})

client.on("message", message => {

const list = message.guild;
    list.members.cache.each(member => {
    pinging = member.user.id
  console.log(member.user.username)
         if(message.content.includes(member.user.username)){
          message.channel.send(`<@${pinging}>`)
         }
    })
  
})

有人能帮忙吗?

首先,您只想为 message 事件设置一个侦听器,因此请尝试以下代码:

client.on("message", message => {
    if (message.content === 'test'){
        message.channel.send("works")
        console.log("logged the message")
    }
// insert choices from below here
})

如果你想让它监听被标记的成员

const mentionedMember = message.mentions.members.first()

if (mentionedMember){
    message.channel.send(`${mentionedMember}`)
}

现在如果你想让它监听用户名而不是@username

const args = message.content.slice().trim().split(' ')
const guild = message.guild
args.forEach(arg => {
    const member = guild.members.cache.find(member => member.user.username.toLowerCase() === arg.toLowerCase())
    if (member) {
        message.channel.send(`${member}`)
    } else {
        return
    }
})

监听显示名称

const args = message.content.slice().trim().split(' ')
const guild = message.guild
args.forEach(arg => {
    const member = guild.members.cache.find(member => member.displayName.toLowerCase() === arg.toLowerCase())
    if (member) {
        message.channel.send(`${member}`)
    } else {
        return
    }
})