Javascript Discord.js member.user返回成员';s ID被<&燃气轮机;
我正在尝试为discord bot创建一个命令,该命令列出输入角色的所有成员,我当前正在将成员映射到一个变量,如下所示:Javascript Discord.js member.user返回成员';s ID被<&燃气轮机;,javascript,discord.js,Javascript,Discord.js,我正在尝试为discord bot创建一个命令,该命令列出输入角色的所有成员,我当前正在将成员映射到一个变量,如下所示: 让roleMembs=message.guild.roles.cache.get(roleId.members.map)(m=>m.user) 它在大多数情况下都有效,但是一些成员被输出为,而不是他们的名字,我不确定这是为什么,我也不确定是否有解决办法,任何帮助都将不胜感激,我将在下面留下其余的代码 const Discord = require('discord.js')
让roleMembs=message.guild.roles.cache.get(roleId.members.map)(m=>m.user)
它在大多数情况下都有效,但是一些成员被输出为,而不是他们的名字,我不确定这是为什么,我也不确定是否有解决办法,任何帮助都将不胜感激,我将在下面留下其余的代码
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)
}
}
const Discord=require('Discord.js')
module.exports.run=async(客户端、消息、参数)=>{
如果(!message.member.roles.cache.find(r=>r.name==“--------------服务器工作人员----------------------”)返回message.reply(“您必须是审核团队的一员才能使用此命令!”)
let roleReq=message.content.split(“”).slice(1)
让role=message.guild.roles.cache.find(r=>r.name===roleReq.join(“”)
if(typeof role==“undefined”)返回message.channel.send(“您输入的角色无效!请重试!”)
让roleId=role.id
让roleMembs=message.guild.roles.cache.get(roleId.members.map)(m=>m.user)
让roleList=“”
如果(roleMembs.length>25){
let embed=new Discord.MessageEmbed()
for(设i=0;i<25;i++){
roleList=roleList.concat(`${roleMembs[i]}\n`)
}
让roleList2=“”
让roleList3=“”
设x=0
设y=0
而(x<25){
roleList2=roleList2.concat(`${roleMembs[x+25]}\n`)
x++
if(角色的类型[x+25]=“未定义”){
打破
}
}
如果(roleMembs.length>50){
而(y<25){
roleList3=roleList3.concat(`${roleMembs[y+50]}\n`)
y++
if(角色名称类型[y+50]=“未定义”){
打破
}
}
}
embed.setAuthor(client.user.username,client.user.displayAvatarURL())
embed.setTimestamp()
embed.setTitle(${roleReq.join(“”)}角色为:`的${roleMembs.length}成员)
嵌入.setColor(“添加8e6”)
嵌入.addField(“ ", 角色扮演者(真实)
嵌入.addField(“ “,角色扮演者2,对)
如果(角色列表3.length>0){
嵌入.addField(“ “,角色扮演者3,对)
}
message.channel.send(嵌入)
}否则{
roleMembs.forEach(成员=>{
roleList=roleList.concat(`${member}\n`)
})
let embed=new Discord.MessageEmbed()
embed.setAuthor(client.user.username,client.user.displayAvatarURL())
embed.setTimestamp()
embed.setTitle(${roleReq.join(“”)}角色为:`的${roleMembs.length}成员)
嵌入.setColor(“添加8e6”)
embed.addField(“,roleList)
message.channel.send(嵌入)
}
}
是表示用户提及的不一致标记。在常规消息中,当您提及用户时,它们会显示为可单击的蓝色链接。有时在嵌入中,它们会断开
如果你想要他们的名字,那么通过映射到他们的名字来指定。现在你正在创建一个只包含用户对象的数组,并希望它能吐出他们的名字
let roleMembs = message.guild.roles.cache.get(roleId).members.map(m=>m.user.username)
是表示用户提及的不一致标记。在常规消息中,当您提及用户时,它们会显示为可单击的蓝色链接。有时在嵌入中它们会断开
如果你想要他们的名字,那么通过映射到他们的名字来指定。现在你正在创建一个只包含用户对象的数组,并希望它能吐出他们的名字
let roleMembs = message.guild.roles.cache.get(roleId).members.map(m=>m.user.username)
谢谢你的回复,这是一个遗憾,这种情况下,我假设没有什么工作,我认为是一个错误,而不是交换到只映射他们的用户名,这可能是最新的case@ADragonDood,也许我误解了。什么bug?你想让它在嵌入中显示为提及,但不是吗?我想让它们显示为提到,但正如您所说,它有时会打断嵌入并将其显示为无用,因为它不允许用户单击名称并将其显示给用户profile@ADragonDoodbot开发人员无法绕过Discord客户端的这一限制。有两种情况可能会发生:1.您试图在无效位置(标题、页脚、某些其他位置、字段值应始终有效)或2。查看提及内容的客户端没有缓存该用户,因此它显示为蓝色,但与ID而不是用户名一样。您可能会发现2。可以接受,但移动客户端和桌面客户端的显示方式不同,有时可能只是“@无效用户“。如属1。没有什么可以做的。谢谢你的回复,这是一个遗憾,这种情况下,我假设没有什么工作,我认为这是一个错误,除了交换到只映射他们的用户名,这可能是case@ADragonDood,也许我误解了。什么虫子?你是否希望它在嵌入中显示为提及,但事实并非如此?我希望它们以提及的形式显示,但正如你所说,它有时会在嵌入中中断并显示它们,这是没有用的,因为它不允许用户单击名称并将其带到联系人处profile@ADragonDood机器人开发人员无法解决这个问题Discord客户端的限制。有两种可能发生的事情:1。您试图在无效位置(标题、页脚、其他一些位置、字段值应始终有效)或2中使用提及。查看提及的客户端没有缓存该用户,因此它显示为蓝色,但也显示为ID而不是用户名。你可以找到2个。可以接受,但移动和桌面客户端的显示方式不同,有时可能只是“@invalid user”。在1的情况下。没什么可做的。