Обработчик события в меню выбора дискорд бота, как получить фидбэк?

Ссылка скопирована
1 ответ

у меня есть команда для дискорд бота, при вызове бот выдает меню выбора, как мне сделать что-бы после выбора пункта в меню, был какой-то фидбэк, тоесть или веб-хук или что то ещё, по сути мне нужно сделать описание оружия "желательно с картинкой в описании" как это можно сделать? Заранее спасибо

const {   ActionRowBuilder,   StringSelectMenuBuilder,   StringSelectMenuOptionBuilder,   SlashCommandBuilder, } = require("discord.js");  module.exports = {   data: new SlashCommandBuilder()     .setName("weapon")     .setDescription("Menu konceptia"),   async execute(interaction) {     try {       const select = new StringSelectMenuBuilder()         .setCustomId("weapon")         .setPlaceholder("нажмите что бы выбрать!")         .addOptions(           new StringSelectMenuOptionBuilder()             .setLabel("Demon's King Longsword")             // .setDescription('The dual-type Grass/Poison Seed Pokémon.')             .setValue("bulbasaur")             .setEmoji('1225192234262200472'),            new StringSelectMenuOptionBuilder()             .setLabel("Demonic Plum Flower Sword")             // .setDescription('The Fire-type Lizard Pokémon.')             .setValue("charmander")             .setEmoji('1225151348191002816'),            new StringSelectMenuOptionBuilder()             .setLabel("Shadow Scythe")             // .setDescription('The Water-type Tiny Turtle Pokémon.')             .setValue("squirtle")             .setEmoji('1225192387014561853'),         );        const row = new ActionRowBuilder().addComponents(select);       await interaction.reply({         content: "**Выберите оружие!**",         components: [row],       });       await interaction.channel.send({ components: [weapon], content: 'Меню сервера:' });     } catch (error) {       console.error(error.message);     }   }, };

const { ActionRowBuilder, StringSelectMenuBuilder, StringSelectMenuOptionBuilder, SlashCommandBuilder, } = require("discord.js"); module.exports = { data: new SlashCommandBuilder() .setName("weapon") .setDescription("Menu konceptia"), async execute(interaction) { try { const select = new StringSelectMenuBuilder() .setCustomId("weapon") .setPlaceholder("нажмите что бы выбрать!") .addOptions( new StringSelectMenuOptionBuilder() .setLabel("Demon's King Longsword") // .setDescription('The dual-type Grass/Poison Seed Pokémon.') .setValue("bulbasaur") .setEmoji('1225192234262200472'), new StringSelectMenuOptionBuilder() .setLabel("Demonic Plum Flower Sword") // .setDescription('The Fire-type Lizard Pokémon.') .setValue("charmander") .setEmoji('1225151348191002816'), new StringSelectMenuOptionBuilder() .setLabel("Shadow Scythe") // .setDescription('The Water-type Tiny Turtle Pokémon.') .setValue("squirtle") .setEmoji('1225192387014561853'), ); const row = new ActionRowBuilder().addComponents(select); await interaction.reply({ content: "**Выберите оружие!**", components: [row], }); await interaction.channel.send({ components: [weapon], content: 'Меню сервера:' }); } catch (error) { console.error(error.message); } }, };

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Юрий Linux Ответ

Для обработки событий в меню выбора дискорд бота и получения обратной связи можно использовать различные подходы. Один из способов - использование команд или слушателей (listeners) в вашем боте.

Вот пример того, как можно обработать событие выбора в меню и получить обратную связь в PHP:

// Импортируем необходимые классы
use Discord\Discord;
use Discord\WebSockets\Event;
use Discord\WebSockets\WebSocket;
use Discord\Parts\Channel\Message;
use Discord\Parts\Guild\Guild;
use Discord\WebSockets\Event;
 
// Создаем новый экземпляр бота
$discord = new Discord([
    'token' => 'YOUR_DISCORD_BOT_TOKEN',
]);
 
// Добавляем обработчик события MESSAGE_CREATE
$discord->on(Event::MESSAGE_CREATE, function (Message $message, Discord $discord) {
    // Проверяем, что сообщение отправлено в меню выбора
    if ($message->content === 'Выбор из меню') {
        // Отправляем обратную связь в канал, откуда было получено сообщение
        $message->reply('Спасибо за ваш выбор!');
 
        // Можно также отправить сообщение в другой канал или сделать другие действия
    }
});
 
// Запускаем бота
$discord->run();

// Импортируем необходимые классы use Discord\Discord; use Discord\WebSockets\Event; use Discord\WebSockets\WebSocket; use Discord\Parts\Channel\Message; use Discord\Parts\Guild\Guild; use Discord\WebSockets\Event; // Создаем новый экземпляр бота $discord = new Discord([ 'token' => 'YOUR_DISCORD_BOT_TOKEN', ]); // Добавляем обработчик события MESSAGE_CREATE $discord->on(Event::MESSAGE_CREATE, function (Message $message, Discord $discord) { // Проверяем, что сообщение отправлено в меню выбора if ($message->content === 'Выбор из меню') { // Отправляем обратную связь в канал, откуда было получено сообщение $message->reply('Спасибо за ваш выбор!'); // Можно также отправить сообщение в другой канал или сделать другие действия } }); // Запускаем бота $discord->run();

В этом примере мы создаем новый бот, добавляем обработчик события MESSAGE_CREATE, который проверяет содержание сообщения и отправляет обратную связь в канал, откуда было получено сообщение.

Вы также можете настроить бота для обработки других событий или использовать библиотеки и фреймворки, которые предоставляют более продвинутые возможности для обработки событий в Discord.

Надеюсь, этот ответ поможет вам решить вашу проблему с обработкой событий в меню выбора дискорд бота и получением обратной связи. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать!

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно