javascript - 如何返回公会的所有者名称

标签 javascript discord discord.js

这是我遇到问题的代码片段:

const guild = client.guilds.get('500170876243935247');
message.channel.send(guild.owner);

我原以为它会返回所有者的姓名,但它在控制台中却说这是一条空消息。我用 console.log 运行了 guild.owner 显然它显示了公会的所有数据、表情符号、成员的 ID,最后是所有者的用户详细信息,如何我应该单独显示它们吗?

郑重声明,这是我认为需要重点关注的最后一部分:

user:
 User {
  id: '317669302549XXXXXX',
  username: 'Flicker',
  discriminator: 'XXXX',
  avatar: 'a_161cc6f5d0466f7afd9a73dc2eba159d',
  bot: false,
  lastMessageID: null,
  lastMessage: null },
 joinedTimestamp: 1539320429681,

最佳答案

当您将用户转换为字符串时,User.toString()自动调用方法:将 User 对象转换为提及项,如 @username。但是如果你执行 message.channel.send(User) 它不会调用 User.toString()因此 discord.js 将留下一个它无法发送的对象(有效对象的示例:message.channel.send( RichEmbed )),以及所以消息将是空的。

为避免这种情况,您可以尝试用类似 User.tag 的内容替换提及项: 有了这个,您还可以避免每次有人使用该命令时都收到通知。
如果您不介意收到通知,您可以尽可能使用第一个,否则使用第二个。这是一个例子:

const guild = client.guilds.get('500170876243935247');
message.channel.send(message.guild.member(guild.owner) ? guild.owner.toString() : guild.owner.user.tag);
// if the user is in that guild it will mention him, otherwise it will use .tag

关于javascript - 如何返回公会的所有者名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54089360/

相关文章:

javascript - 如何在 discord.js 中使用 message.channel.send 正确标记用户

javascript - DiscordJS Canvas 附件未完全发送?

javascript - 尝试清除消息时出现 DiscordAPIError 无效的表单正文

javascript - 将 Canvas 与 Div 一起保存

javascript - Angular 中的异步电子邮件验证

javascript - React 的 setState 是异步的还是什么?

python - 如何让 Discord 机器人异步等待对多条消息的 react ?

Discord Bot 读取 Google 表格并返回表中的值。我想在没有表格格式的消息中返回值 ar CSV

javascript - 在Jquery bx slider 插件中如何查找当前 slider 是图像还是视频

python - Discord.py 无法将消息发送到 cog/扩展文件中的特定 channel