#discord #discord.js
Вопрос:
Я пытаюсь выяснить, имеет ли пользователь для команды ( whotohelp
) определенные роли («Лабораторный демонстратор»), однако, похоже, я не понимаю, как я могу получить эту роль.
Для моего на » interactionCreate` В настоящее время у меня есть следующее:
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return;
(interaction.commandName);
//gets username
var username = (interaction.user.username);
//test code
if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
В Python я использовал @commands.has_any_role("Lab Demonstrator","lab demonstrator", "staff")
, как в:
@client.command(pass_context=True)
@commands.has_any_role("Lab Demonstrator","lab demonstrator", "staff","teaching-assistant","lecturers","admin", "Admin")
async def whoToHelp(mesage):
Какой была бы альтернатива Javascript?
Ответ №1:
Вы можете использовать Collection.some
для логического значения и Collection.find
для объекта роли.
Логический
const hasRole = interaction.member.roles.cache.some(r => r.name === "the_role_name")
//true if they have it, false if they don't
Объект Роли
const role = interaction.member.roles.cache.find(r => r.name === "the_role_name")
//the role object if they have it
Комментарии:
1. Спасибо — я потратил на это слишком много времени, а вы отвечаете за 4 минуты! овации
2. Если это помогло, пожалуйста, отметьте это как правильное, нажав на галочку
3. Конечно, сделано — извините за задержку, переполнение стека заставило меня подождать 15 минут, прежде чем я смогу отметить его как ответ
4. Я все еще не вижу галочки?
5. Я сделал это, и это появляется с моей стороны — вы просматриваете кэшированную версию или что-то в этом роде?