Discord JS - 获取 dm 是机器人的用户的昵称
Discord JS - Getting the nickname of a user who dm's the bot
当用户 dm 是 bot 时,我想获取与 bot 在同一服务器中的用户的服务器昵称。
我试过:message.author.guild.members.get(message.author.id).displayName 和 message.author.displayName,第一个使机器人崩溃,第二个 returns 昵称 "undefined".现在我将它设置为 message.author.username,但这给了我用户名,我需要昵称。
if(message.channel.type === "dm" && message.content === 'specific message') {
let bicon = bot.user.displayAvatarURL;
let botembed = new Discord.RichEmbed()
.setTitle("**Log**")
.setDescription("**" + message.author.username + "** messaged me!")
.setColor("#F54603")
.setTimestamp()
return bot.channels.get("584424339986710540").send(botembed);
我认为需要做的是,机器人从 DM 是机器人的用户那里检索用户 ID,然后在服务器中搜索该用户 ID,然后获取显示名称。但是,我不知道该怎么做。
您必须指定机器人从哪个公会检索用户的昵称。以下代码实现了这一点:
let guild = client.guilds.get('serverID');
let member = guild.member(message.author);
let nickname = member ? member.displayName : null;
消息里的信息你都有,这是我用的辅助函数:
const getAuthorDisplayName = async (msg) => {
const member = await msg.guild.member(msg.author);
return member ? member.nickname : msg.author.username;
}
当用户 dm 是 bot 时,我想获取与 bot 在同一服务器中的用户的服务器昵称。
我试过:message.author.guild.members.get(message.author.id).displayName 和 message.author.displayName,第一个使机器人崩溃,第二个 returns 昵称 "undefined".现在我将它设置为 message.author.username,但这给了我用户名,我需要昵称。
if(message.channel.type === "dm" && message.content === 'specific message') {
let bicon = bot.user.displayAvatarURL;
let botembed = new Discord.RichEmbed()
.setTitle("**Log**")
.setDescription("**" + message.author.username + "** messaged me!")
.setColor("#F54603")
.setTimestamp()
return bot.channels.get("584424339986710540").send(botembed);
我认为需要做的是,机器人从 DM 是机器人的用户那里检索用户 ID,然后在服务器中搜索该用户 ID,然后获取显示名称。但是,我不知道该怎么做。
您必须指定机器人从哪个公会检索用户的昵称。以下代码实现了这一点:
let guild = client.guilds.get('serverID');
let member = guild.member(message.author);
let nickname = member ? member.displayName : null;
消息里的信息你都有,这是我用的辅助函数:
const getAuthorDisplayName = async (msg) => {
const member = await msg.guild.member(msg.author);
return member ? member.nickname : msg.author.username;
}