@AlexeyMahov

Как сделать так, чтобы на кнопку могли нажимать только два участника: interaction.user и участник, выбранный через options.getUser?

я писал коды для бота в Discord, и несколько раз у меня было желание написать команды, в которых нужно было ожидать согласие у второго участника, но подобные команды у меня не выходили, поскольку я не мог сделать так,чтобы доступ был только у двух участников.
  • Вопрос задан
  • 83 просмотра
Решения вопроса 1
Syjalo
@Syjalo
Представьте себе бота
Очень простая проверка. Можно сказать вопрос не относится к discord.js.
Можно в фильтре коллектора указать.
const selectedUser = interaction.options.getUser('user', true);

const filter = async (i) => {
  const result = [interaction.user.id, selectedUser.id].includes(i.user.id);
  if (result) return true;

  await i.reply({ content: 'You cannot use this button!', ephemeral: true });
  return false;
}

const collector = response.createMessageComponentCollector({ componentType: 'BUTTON', filter, time: 60000 });

Можно внутри collect
collector.on('collect', async (i) => {
  if (![interaction.user.id, selectedUser.id].includes(i.user.id)) {
    await interaction.reply({ content: 'You cannot use this button!', ephemeral: true });
    return;
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы