GuildMember 缺少 .permissions 导致奇怪的错误 Discord.js
.permissions missing from GuildMember causing weird error Discord.js
我正在使用 Discord.js 和 TypeScript,当我尝试访问成员的权限时 运行 遇到了一些奇怪的错误。
export const Ban: Command = {
name: "ban",
description: "Ban a user from the server.",
options: [
{ type: 6, name: "target", description: "The user to be banned." },
{ type: 3, name: "reason", description: "Reason for the ban." },
],
type: "CHAT_INPUT",
run: async (_client: Client, interaction: CommandInteraction) => {
const guild = interaction.guild;
if (!guild) {
interaction.reply("This command must be used in a guild!");
return;
}
const userMember = await guild.members.fetch(interaction.user);
console.log(userMember);
}
}
变量 userMember
显然具有类型 GuildMember
但是,在记录时,它缺少 .permissions
值。
如果我将最后一行更改为 console.log(userMember.permissions)
,TypeScript 不会报错,但我会在控制台中收到一个奇怪的错误:
TypeError: Cannot read properties of undefined (reading 'id')
at GuildMemberRoleManager.get cache [as cache] (/<mypath>/node_modules/discord.js/src/managers/GuildMemberRoleManager.js:36:101)
at GuildMember.get permissions [as permissions] (/<mypath>/node_modules/discord.js/src/structures/GuildMember.js:262:39)
at Object.run (/<mypath>/src/commands/mod/ban.ts:33:28)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
错误似乎来自 Discord.js 本身。关于在这里做什么的任何想法?
const userMember = await guild.members.fetch(interaction.user);
fetch 选项是 snowflake 或 null,不是用户。
您可以阅读有关获取公会成员的信息 here
或者您只是通过交互访问使用斜杠命令的成员:
const userMember = interaction.member;
我正在使用 Discord.js 和 TypeScript,当我尝试访问成员的权限时 运行 遇到了一些奇怪的错误。
export const Ban: Command = {
name: "ban",
description: "Ban a user from the server.",
options: [
{ type: 6, name: "target", description: "The user to be banned." },
{ type: 3, name: "reason", description: "Reason for the ban." },
],
type: "CHAT_INPUT",
run: async (_client: Client, interaction: CommandInteraction) => {
const guild = interaction.guild;
if (!guild) {
interaction.reply("This command must be used in a guild!");
return;
}
const userMember = await guild.members.fetch(interaction.user);
console.log(userMember);
}
}
变量 userMember
显然具有类型 GuildMember
但是,在记录时,它缺少 .permissions
值。
如果我将最后一行更改为 console.log(userMember.permissions)
,TypeScript 不会报错,但我会在控制台中收到一个奇怪的错误:
TypeError: Cannot read properties of undefined (reading 'id')
at GuildMemberRoleManager.get cache [as cache] (/<mypath>/node_modules/discord.js/src/managers/GuildMemberRoleManager.js:36:101)
at GuildMember.get permissions [as permissions] (/<mypath>/node_modules/discord.js/src/structures/GuildMember.js:262:39)
at Object.run (/<mypath>/src/commands/mod/ban.ts:33:28)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
错误似乎来自 Discord.js 本身。关于在这里做什么的任何想法?
const userMember = await guild.members.fetch(interaction.user);
fetch 选项是 snowflake 或 null,不是用户。 您可以阅读有关获取公会成员的信息 here 或者您只是通过交互访问使用斜杠命令的成员:
const userMember = interaction.member;