Мне нужно что бы бот автоматически использовал слэш команды других ботов каждых 2 часа к примеру. Я не могу понять как именно нужно обращаться к другим ботам, так как бот просто пишет (пример: /bump) в чат, без обращения к другому боту.
Вот код который работает, но мне нужно понять как обращаться к другим ботам при помощи своего бота
- Вопрос задан более года назад
- 872 просмотра
Комментировать
Решения вопроса 1
Во-первых, слеш-команды — это НЕ сообщения, начинающиеся на /, а отдельные сущности со своей инфраструктурой и своим способом взаимодействия. На это вполне намекает, что у разных ботов могут быть команды с одинаковыми именами, а ответ бота может быть виден только отправившему команду пользователю. Отправка ботами команд для других ботов не предусмотрена вообще.
Во-вторых, даже с классическими командами, которые были текстовыми с префиксом, в большинстве правильно написанных ботов на них делали проверку, что отправлял команду не бот. Это связано с тем, что при любых ошибках легко начинался ботофлуд, при котором боты очень быстро и активно начинали общаться друг с другом. Поэтому с ними подобный фокус тоже часто не прокатывал.
Урок #3. Слэш-команды и взаимодействия [ Python / Disnake] от magelanoff
Посылать команды может разве что юзербот, но их использование запрещено правилами Discord.
Источник: qna.habr.com
Настройка команд Slash для бота Discord
Уже начав работу с этим ботом, мы должны установить некоторые зависимости, если нет, то вот они:
Они будут использоваться при создании Slash Commands для использования в Discord.
Этот блог предполагает, что вы уже ознакомились с тем, что было создано ранее в этом посте здесь
Вам также потребуется сгенерировать новый URL, включающий «bot» и «applications.commands», чтобы создать команды для сервера Discord, которые будут использоваться для бота.
deploy-commands.js
Вход в полноэкранный режим Выйти из полноэкранного режима
clientId берется с портала разработчиков бота, а guildId — это гильдия, для которой вы хотите создать эти команды.
Существует способ создания команд, которые будут опускать идентификатор гильдии, чтобы передавать его для всех серверов, к которым присоединяется бот.
index.js
Следующий файл должен быть добавлен после вызова клиента при инициализации.
clinet.on(‘interactionCreate’, async interaction => if (!interaction.
isCommand()) return const commandName > = interaction if (commandName === ‘ping’) await interaction.reply(‘Pong!’) > else if (commandName === ‘server’) await interaction.
reply(` Server name: $interaction.guild.name>n Total members: $interaction.guild.memberCout>n Server created on: $interaction.guild.
createdAt> `) > else if (commandName === ‘user’) await interaction.reply(` Your tag: $interaction.user.tag>n Your id: $interaction.user.id> `) > >)
Слеш команды в Bot Designer For Discord На Русском
Вход в полноэкранный режим Выйти из полноэкранного режима
Теперь необходимо запустить node deploy-commands.js . Его нужно будет запустить только один раз, если вы не измените способ создания команды или сервер, на который вы хотите развернуть команды.
Запустив бота на сервере с используемым идентификатором гильдии, в текстовом поле поставьте «/» , теперь у вас будут команды, которые вы создали для использования вашим ботом. Использование слеша в командах покажет название команды и description в том виде, в котором вы его написали.
Рефакторизируйте!
Если вы похожи на меня и склонны добавлять тонну команд, чтобы помочь общей модерации сервера, то вы немного устанете от такого написания команд. Не говоря уже о том, что в итоге все станет беспорядочным.
Discord.py | Слэш команды
Моя проблема заключается в том что когда я хочу использовать слэш команду то ответ на неё появляется не сразу. Только после 2-х, 3-х раз использовании данной команды. Сперва появляется ошибка, а дальше все работает нормально. Я бы хотел узнать с чем связанна данная проблема, и можно её как-либо решить. Чтоб сразу появлялся ожидаемый ответ от команды, а не ошибка.
Отслеживать
задан 23 июл 2021 в 16:24
88 1 1 серебряный знак 10 10 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
После обновления кода надо подождать какое-то время, так как срабатывает рейт лимит, а для тестов обычно есть параметр guild_ids . Нужна ещё синхронизация.
Отслеживать
ответ дан 23 июл 2021 в 19:48
2,287 1 1 золотой знак 4 4 серебряных знака 10 10 бронзовых знаков
- python
- discord
- discord.py
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Источник: ru.stackoverflow.com