Как сделать чтобы дискорд бот имел доступ только одному чату?
У меня есть дискорд-бот, но он имеет доступ ко всем чатам на сервере ,как можно его ограничить, чтобы он имел доступ только одному чату? Вот код бота:
import asyncio import discord from discord.ext import commands bot = commands.Bot(command_prefix='!') @bot.event async def on_message(message): if int(message.channel.id) != 818865123204005899: return @bot.event async def on_message(message): if message.author == bot.user: return content = message.content await send(content, message.channel.id) await message.delete() await bot.process_commands(message) async def send_msg(channel_id, msg): channel = bot.get_channel(channel_id) await channel.send(msg) async def send(what, where): asyncio.run_coroutine_threadsafe(send_msg(where, what), bot.loop) bot.run()
Отслеживать
задан 12 мар 2021 в 17:30
1 3 3 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Проверяйте ид канала куда было отправлено сообщение. Если оно не равняется нужному иду канала, то возвращайте пустоту
@bot.event async def on_message(message): if int(message.channel.id) != 818865123204005899: return
Отслеживать
2,396 11 11 серебряных знаков 31 31 бронзовый знак
Как сделать так что бы команда работала только в одном канале?
У меня есть команда, которая выдает или забирает роль если она есть, и работает она только в одном, начальном канале (общее). Как сделать так что бы она работала не в нём, а только в другом, отдельном чате?
@client.command() async def кухня(ctx, member: discord.Member): role = discord.utils.get(member.guild.roles, if role in ctx.author.roles: await ctx.author.remove_roles(role) else: await ctx.author.add_roles(role)
- Вопрос задан более года назад
- 312 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1

fenrir @fenrir1121 Куратор тега discord.py
Начни с документации
плохой путь: закрыть доступ боту к каналам, где он не должен реагировать
средний путь: пойти на фриланс и не потребуется буквально по каждой строчке кода задавать вопрос
хороший путь: начать уже читать документацию самостоятельно. В данном случае commands.check.
Там есть и описание и примеры как использовать
Как сделать так чтобы бот в дискорде отвечал только в одном канале
Чтобы бот работал, его следует пригласить, то есть предложить ему стать частью сервера. Затем нужно авторизовать его, добавив необходимые разрешения. Если пропустить один из шагов, бот не станет частью сервера и, соответственно, не будет работать.
Если бот добавлен на сервер, его имя отображается в списке участников на панели справа. Если это не так, значит у него нет доступа к серверу.
Если бот отображается в одном из каналов, но не в других, значит у него нет доступа к ним. Чтобы он присоединился к другому каналу, воспользуйтесь специальными командами.
У бота нет необходимых разрешений
Прежде чем авторизовать бота, ему нужно предоставить определенные разрешения. Самые важные из них — возможность видеть и отправлять сообщения в нужном вам канале.
Если бот не работает, удалите его с сервера и пригласите снова, добавив разрешения.
В сети Discord произошел сбой
Проблема может возникнуть из-за некорректной работы сервисов Discord. Узнать их статус можно здесь.
Помимо этого, проверьте состояние бота, вызывающего проблему. Он может быть не в сети и не отвечать, если проходит техническое обслуживание или столкнулся с неполадками. В таком случае придется подождать, пока проблема не будет решена.
Другие причины
Чтобы Discord работал должным образом, ему нужно стабильное подключение к интернету. Если бот не отвечает, причиной может быть плохое соединение.
Помимо этого, убедитесь, что используете правильный «префикс» для команд конкретного бота. Так, если для него нужны команды с «?», то при вводе «/» он вас проигнорирует. Проверьте также и названия самих команд — это можно сделать на сайте бота.
Кроме этого, можно изменить регион сервера, если в вашем не поддерживается определенный бот.
Обложка сгенерирована нейросетью Midjourney
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!
В Discord добавлен чат-бот на базе OpenAI. Включение и примеры использования

Вы уже наверняка много слышали о чат-боте под названием ChatGPT, который был создан компанией OpenAI. Так вот примерно такой же бот, даже с небольшими нововведениями, был добавлен в Discord и сейчас находится в режиме бета-тестирования. Он автоматически считается участником сервера и пока общение с ним бесплатно для всех. Далее я хочу показать, как включить данного бота, начать с ним общение, а также дам общее представление о том, что он может отвечать.
Включение Клайда
Чат-бот Дискорда называется Клайд (Clyde), и обращаться к нему нужно соответствующе, как и ко всем остальным участникам сервера. Перед началом общения убедитесь, что текстовый помощник включен и готов отвечать на ваши вопросы. Для этого выполните несколько простых действий:
- Откройте свой сервер, нажмите по его названию и из появившегося списка выберите пункт «Настройки сервера».

- На панели слева выберите раздел «Интеграция» и активируйте пункт «Включить Клайда», если по умолчанию он отключен.

Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Проверка работы чат-бота
Если бот уже активирован, вам будет достаточно просто убедиться в том, что он доступен для общения в выбранном канале и может быть использован любым участником сообщества. Для этого нужно в любом чате вызвать команду @ и найти в списке участников Клайда.
![]()
Его учетная запись всегда будет выше остальных ролей. При следующем общении с Клайдом не забывайте, что отвечать на ваши вопросы он будет только при упоминании. Даже если вы хотите продолжить уже существующую беседу, свое сообщение обязательно нужно начинать с @Clyde.
Примеры общения с Клайдом
Теперь давайте с вами попробуем пообщаться с чат-ботом и выясним, насколько быстро он отвечает за поставленные вопросы, будут ли ответы точными, а также какие данные из интернета он может предоставить. Например, тот же ChatGPT в своей бесплатной версии пока еще не может выдать ссылки или картинки (это было исправлено в новой версии, которая пока что платная).
- Вы всегда можете просто спросить у Клайда, что он умеет. Данное сообщение от него будет довольно большим по размеру, поэтому первые несколько секунд вы будете видеть уведомление «Clyde печатает».

- Далее появится абзац с общим описанием возможностей чат-бота. Из него уже можно узнать, какие функции он поддерживает и в каком направлении его использовать.

- Он предоставляет вполне точные и быстрые ответы на самые распространенные вопросы. Может выдать рецепт блюда по указанным ингредиентам, подобрать литературу по теме, решить математические примеры или даже сочинить небольшой рассказ. Корректность и полнота ответов зависит от тех условий, которые вы будете ставить боту, поэтому не забывайте в сообщении описывать все детали.

- Как вы уже знаете, Клайд работает со ссылками, поэтому его можно попросить найти музыкальный трек в интернете или любой официальный сайт. На следующем изображении как раз виден пример такой выдачи.

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

- Если результат вас не устраивает или вы хотите получить другие ответы, снова обратитесь к Клайду и опишите, что хотели бы увидеть. Так без проблем можно менять гифки, плейлисты или получать дополнительные варианты решения ваших вопросов.

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