discord.js v13如何正确获取Guild(服务器)的所有者信息
discord.js v13 获取Guild所有者信息的正确方案
discord.js 自v13版本起移除了Guild实例上的同步owner属性,原message.guild.owner/interaction.guild.owner的写法不再生效,可通过以下两种方式获取服务器所有者信息:
- 异步拉取最新数据(推荐)
调用fetchOwner()异步方法直接从Discord API拉取最新的所有者成员信息,无需依赖本地缓存:// 需要在异步函数/async作用域内执行 const guildOwner = await interaction.guild.fetchOwner(); // 可直接访问成员属性,例如 guildOwner.user.tag 、guildOwner.nickname 等 - 从本地缓存读取(性能更高)
直接通过Guild实例自带的ownerId属性拿到所有者的用户ID,再从成员缓存中匹配对应的成员实例:const guildOwner = interaction.guild.members.cache.get(interaction.guild.ownerId);
注意:第二种方法依赖本地成员缓存的完整性,若缓存中不存在所有者数据会返回undefined,使用前需要确保机器人已开启GUILD_MEMBERS权限意图
内容的提问来源于stack exchange,提问作者nightlxight
相关产品推荐
相关产品推荐

