[英]Discord.js member.user returns the member's ID surrounded by <>
我正在嘗試為 discord 機器人創建一個命令,其中列出了輸入角色的所有成員,我目前正在將成員映射到一個變量,如下所示:
let roleMembs = message.guild.roles.cache.get(roleId).members.map(m=>m.user)
它在大多數情況下都有效,但一些成員輸出為 <@320600141855981588> 而不是他們的名字,我不確定這是為什么,我不確定是否可以解決,任何幫助將不勝感激,我會留下下面代碼的rest
const Discord = require('discord.js')
module.exports.run = async (client, message, args) => {
if (!message.member.roles.cache.find(r => r.name === "-------------- SERVER STAFF --------------")) return message.reply("You must be part of the moderation team to use this command!")
let roleReq = message.content.split(" ").slice(1)
let role = message.guild.roles.cache.find(r => r.name === roleReq.join(" "))
if(typeof role === "undefined") return message.channel.send("You have input an invalid role! Please try again!")
let roleId = role.id
let roleMembs = message.guild.roles.cache.get(roleId).members.map(m=>m.user)
let roleList = ""
if(roleMembs.length > 25) {
let embed = new Discord.MessageEmbed()
for(let i = 0; i < 25; i++){
roleList = roleList.concat(`${roleMembs[i]}\n`)
}
let roleList2 = ""
let roleList3 = ""
let x = 0
let y = 0
while(x < 25){
roleList2 = roleList2.concat(`${roleMembs[x+25]}\n`)
x++
if (typeof roleMembs[x+25] === "undefined"){
break;
}
}
if(roleMembs.length > 50){
while(y < 25){
roleList3 = roleList3.concat(`${roleMembs[y+50]}\n`)
y++
if (typeof roleMembs[y+50] === "undefined"){
break;
}
}
}
embed.setAuthor(client.user.username, client.user.displayAvatarURL())
embed.setTimestamp()
embed.setTitle(`${roleMembs.length} Members with the ${roleReq.join(" ")} role:`)
embed.setColor("#add8e6")
embed.addField(" ", roleList, true)
embed.addField(" ", roleList2, true)
if(roleList3.length > 0) {
embed.addField(" ", roleList3, true)
}
message.channel.send(embed)
} else {
roleMembs.forEach(member => {
roleList = roleList.concat(`${member}\n`)
})
let embed = new Discord.MessageEmbed()
embed.setAuthor(client.user.username, client.user.displayAvatarURL())
embed.setTimestamp()
embed.setTitle(`${roleMembs.length} Members with the ${roleReq.join(" ")} role:`)
embed.setColor("#add8e6")
embed.addField(" ", roleList)
message.channel.send(embed)
}
}
<@ID>
是代表用戶提及的 Discord markdown。 在常規消息中,它們會顯示為您在提及用戶時看到的可點擊藍色鏈接。 有時在嵌入中它們會破裂。
如果你想要他們的名字,那么通過映射到他們的名字來指定。 現在,您正在創建一個僅包含用戶對象的數組,並期望它吐出他們的名字。
let roleMembs = message.guild.roles.cache.get(roleId).members.map(m=>m.user.username)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.