我正在尝试获取机器人的权限以检查该命令是否能够 运行
I'm trying to fetch the bot's permissions to check if the command will be able to run
我正在尝试获取机器人的权限以检查该命令是否能够 运行。我有以下代码:
let botid = "idbot"
let bot = client.users.cache.get(botid)
if (!bot.permissions.has("ADMINISTRATOR"))
return message.channel.send("Para mim poder liberar a função de registro eu preciso da permissão **Administrador**, por favor peça para algum **Staff** do servidor configurar, Obrigado.")
我收到以下错误:
if (!bot.permissions.has("ADMINISTRATOR"))
^
TypeError: Cannot read properties of undefined (reading 'has')
因为 bot
正如您定义的那样,它只是一个 User
, meaning it just has informations like it's tag, username, servers it is in etc.. what you want is a GuildMember
, it's the same person but on a specific server, it has roles, a hoist color and permissions
,这正是您要搜索的内容:
let bot = message.guild.me; // The bot's GuildMember object
if (!bot.permissions.has("ADMINISTRATOR")) return message.reply('I am not an admin!')
bot
是一个 User
and User
s don't have permissions
, only GuildMember
s do. For this, you'll need to grab the Guild
(either by getting by its ID, or just using message.guild
). guild#me
将成为您的机器人作为该公会的 GuildMember
。
您也可以在 guild.members
上使用 fetch
方法。无论如何,您需要 guild
来检查您的机器人的权限。
let botid = 'idbot';
let guild = client.guilds.cache.get('GUILD_ID');
// OR get it from the message
let { guild } = message;
let bot = guild.me;
// OR fetch it from members
let bot = await guild.members.fetch(botid);
if (!bot.permissions.has('ADMINISTRATOR'))
return message.channel.send(
'Para mim poder liberar a função de registro eu preciso da permissão **Administrador**, por favor peça para algum **Staff** do servidor configurar, Obrigado.',
);
我正在尝试获取机器人的权限以检查该命令是否能够 运行。我有以下代码:
let botid = "idbot"
let bot = client.users.cache.get(botid)
if (!bot.permissions.has("ADMINISTRATOR"))
return message.channel.send("Para mim poder liberar a função de registro eu preciso da permissão **Administrador**, por favor peça para algum **Staff** do servidor configurar, Obrigado.")
我收到以下错误:
if (!bot.permissions.has("ADMINISTRATOR"))
^
TypeError: Cannot read properties of undefined (reading 'has')
因为 bot
正如您定义的那样,它只是一个 User
, meaning it just has informations like it's tag, username, servers it is in etc.. what you want is a GuildMember
, it's the same person but on a specific server, it has roles, a hoist color and permissions
,这正是您要搜索的内容:
let bot = message.guild.me; // The bot's GuildMember object
if (!bot.permissions.has("ADMINISTRATOR")) return message.reply('I am not an admin!')
bot
是一个 User
and User
s don't have permissions
, only GuildMember
s do. For this, you'll need to grab the Guild
(either by getting by its ID, or just using message.guild
). guild#me
将成为您的机器人作为该公会的 GuildMember
。
您也可以在 guild.members
上使用 fetch
方法。无论如何,您需要 guild
来检查您的机器人的权限。
let botid = 'idbot';
let guild = client.guilds.cache.get('GUILD_ID');
// OR get it from the message
let { guild } = message;
let bot = guild.me;
// OR fetch it from members
let bot = await guild.members.fetch(botid);
if (!bot.permissions.has('ADMINISTRATOR'))
return message.channel.send(
'Para mim poder liberar a função de registro eu preciso da permissão **Administrador**, por favor peça para algum **Staff** do servidor configurar, Obrigado.',
);