Как сделать так что бы команда работала только в одном канале?
У меня есть команда, которая выдает или забирает роль если она есть, и работает она только в одном, начальном канале (общее). Как сделать так что бы она работала не в нём, а только в другом, отдельном чате?
@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)
- Вопрос задан более года назад
- 317 просмотров
Комментировать
Решения вопроса 0
Ответы на вопрос 1
fenrir @fenrir1121 Куратор тега discord.py
Начни с документации
плохой путь: закрыть доступ боту к каналам, где он не должен реагировать
средний путь: пойти на фриланс и не потребуется буквально по каждой строчке кода задавать вопрос
хороший путь: начать уже читать документацию самостоятельно. В данном случае commands.check.
Там есть и описание и примеры как использовать
Часто задаваемые вопросы#
Заикается/отключается музыка или радио. Что делать?#
У данной проблемы может быть несколько причин:
- Высокая нагруженность музыкального сервера: Степень нагрузки отображается в панели воспроизведения в самом дискорде и на странице Статистики. Если нагрузка менее 80%, проблема не в этом.
- Проблемы с соединением до голосового шлюза Discord или его высокая нагруженность: Между Вами и ботом есть узел, называемый голосовым шлюзом. У Discord их несколько и каждый привязан к выбранному в настройках голосового канала Региону. Проблемы могут быть как между шлюзом и ботом, так и между Вами и этим шлюзом. Пробуйте менять регион голосового канала и смотреть будут ли улучшения на каком-нибудь из них (полностью перезапуская при этом воспроизведение музыки).
- Проблемы с соединением бота до источника музыки: По независимым от нас причинам имеют место быть проблемы с соединением до источника музыки (YouTube, Яндекс.Музыка, радиостанции) когда сам источник музыки тормозит или нестабильное соединение до него. Проблема может нести как временный, так и постоянный характер и преимущественно для радиостанций. К сожалению, мы не компания с огромным бюджетом и не можем иметь по музыкальному серверу в каждой точке мира, чтобы обеспечивать стабильное соединение ко всему что только возможно. Если это происходит, пробуйте менять радиостанцию, воспользоваться YouTube вместо Яндекс.Музыки или наоборот.
Какие разрешения необходимы для доступа к панели управления ботом?#
Доступ к панели управления ботом могут получить только владелец сервера и администраторы (пользователи, у которых есть роль с правом «Администратор»).
Будьте внимательны, так как участник с этими правами способен изменить любой параметр в панели управления. Он сможет даже получить роли выше собственных при желании.
Что за печеньки в рангах, профиле участника, странице рейтинга?#
Просто счетчик, карма, система репутации. Чтобы повысить этот счетчик, можно:
- Написать сообщение с обращением к участнику и эмоцией печеньки , например: @JuniperBot :cookie:
- Добавить реакцию к сообщению этого участника.
Один участник другому может дать только раз в 10 минут.
Что такое кластер и звено?#
Звено — часть JuniperBot, которая отвечает за обработку определённого набора серверов;
Кластер — физический сервер, который отвечает за обработку определённых звеньев.
Можно ли воспроизвести сохраненный ранее плейлист бота и как это сделать?#
Для поддержавших есть такая возможность, можно просто передать ссылку на плейлист командой !плей :
!плей https://juniper.bot/playlist/99eb328f-d970-4265-ae6f-07c1d7ac8682
Ссылки на плейлист всегда отображаются в сообщениях о воспроизведении после нажатия кнопки сохранения плейлиста.
Будет ли функционал экономики?#
Не будет. Совсем. Никак. Никогда. Используйте наш шаблонный движок, и сделайте нужный вам функционал сами.
Будет ли поддержка плейлистов и музыки ВКонтакте?#
Нет. Скажите спасибо жадным копирастам, из-за которых ВКонтакте закрыл публичный доступ к инструментарию музыки.
Как рассчитать количество опыта на тот или иной уровень?#
Как настроить экспорт постов из группы ВКонтакте, уведомления о новых видео от YouTube каналов или оповещение о начале трансляции на Twitch?#
В панели управления вашим сервером в разделе «Публикации и подписки» нажмите на плюсик в правом нижнем углу, выберите интересующую Вас платформу и следуйте дальнейшим инструкциям.
Как ограничить использование команды по роли или в каналах?#
Изучите статью Пользовательские команды. Настройки прав доступа применимы и для встроенных команд.
Бот не выдаёт начальную роль и/или не отправляет приветственное сообщение.#
У данной проблемы может быть несколько причин:
- Вы проверяете это на боте. Джунипер не выдаёт начальную роль и не пишет приветственное сообщение ботам;
- У бота нет прав на изменение ролей участников;
- Начальная роль выше роли бота из-за чего бот не может её выдать по иерархии;
- На сервере включен «Отбор участников» (Membership Screening) и участник не согласился с правилами Вашего сервера.
Бот не выдаёт/снимает роли.#
У данной проблемы может быть несколько причин:
- Баг клиента дискорда. На деле бот снял роль и в аудите дискорда это можно проверить. Чтобы роли участника обновились нужно перезапустить его (Ctrl + R).
- У бота нет прав на изменение ролей участников;
- Начальная роль выше роли бота из-за чего бот не может её выдать по иерархии.
Информационные сообщения о мьюте/бане/кике/преде участника удаляются через некоторое время. Как это отключить?#
В панели управления в разделе «Общие» в настройках сообщений есть опция «Удалять сообщения об успешных операциях». Введите туда 0 если хотите, чтобы эти сообщения не удалялись.
На каком языке программирования написан бот?#
Бот написан на Kotlin и Java.
У меня есть идея. Где я могу её предложить?#
Вы можете предложить свою идею на нашем фидбэке.
Как сделать так чтобы бот в дискорде отвечал только в одном канале
Чтобы бот работал, его следует пригласить, то есть предложить ему стать частью сервера. Затем нужно авторизовать его, добавив необходимые разрешения. Если пропустить один из шагов, бот не станет частью сервера и, соответственно, не будет работать.
Если бот добавлен на сервер, его имя отображается в списке участников на панели справа. Если это не так, значит у него нет доступа к серверу.
Если бот отображается в одном из каналов, но не в других, значит у него нет доступа к ним. Чтобы он присоединился к другому каналу, воспользуйтесь специальными командами.
У бота нет необходимых разрешений
Прежде чем авторизовать бота, ему нужно предоставить определенные разрешения. Самые важные из них — возможность видеть и отправлять сообщения в нужном вам канале.
Если бот не работает, удалите его с сервера и пригласите снова, добавив разрешения.
В сети Discord произошел сбой
Проблема может возникнуть из-за некорректной работы сервисов Discord. Узнать их статус можно здесь.
Помимо этого, проверьте состояние бота, вызывающего проблему. Он может быть не в сети и не отвечать, если проходит техническое обслуживание или столкнулся с неполадками. В таком случае придется подождать, пока проблема не будет решена.
Другие причины
Чтобы Discord работал должным образом, ему нужно стабильное подключение к интернету. Если бот не отвечает, причиной может быть плохое соединение.
Помимо этого, убедитесь, что используете правильный «префикс» для команд конкретного бота. Так, если для него нужны команды с «?», то при вводе «/» он вас проигнорирует. Проверьте также и названия самих команд — это можно сделать на сайте бота.
Кроме этого, можно изменить регион сервера, если в вашем не поддерживается определенный бот.
Обложка сгенерирована нейросетью Midjourney
Подписывайтесь на наш Telegram-канал, чтобы быть в курсе последних новостей и событий!
Как сделать чтобы бот отвечал только на определенного человека?
client.on(«message», msg => if(!msg.guild) return;
if(!msg.content.startsWith(«^»)) return;
const args = msg.content.slice(prefix.length).trim().split(/ +/g);
const command = args.shift().toLowerCase();
if(command === «print») let text = args.join(» «);
msg.delete().catch(err => console.log(err));
msg.channel.send(text);
>
>);
Вставлял
if(!msg.author.id === «мой_айди») return;
Вместо
if(!msg.guild) return;
Но бот плевал на то, что я ему ставлю ограничение и принтит от всех подряд
Может кто помочь, как реализовать это правильно?
P.S. К такому жизнь меня еще не готовила, но возможно как-то сделать, чтобы я писал это сообщение ему в лс, а он на сервер в определенный канал?
- Вопрос задан более трёх лет назад
- 815 просмотров
