Можно ли сделать запрет для бота, писать только в отдельном канале? discord.py
Я делаю бота для дискорд с помощью discord.py, и хочу сделать ему запрет отвечать на команды во всех каналах кроме тех которые я укажу. У меня есть небольшой код, но его приходиться писать в каждой команде, а ето не удобно. Можно ли сделать такой запрет, или может можно сделать мой код сразу для всех команд? Вот мой код:
channell = ctx.message.channel channel1 = client.get_channel(929090952763703316) if channell != channel1: await ctx.send("Тут нельзя!") await ctx.channel.purge(limit = 1) else:
Отслеживать
задан 8 янв 2022 в 11:48
3 1 1 бронзовый знак
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Можно сделать как декоратор:
def predicate(ctx: commands.Context): channel = nextcord.utils.get(ctx.guild.text_channels, ) if ctx.channel != channel: return False else: return True has_channel = commands.check(predicate) @commands.command() @has_channel async def test(self, ctx): pass
Можете ещё добавить обработчик ошибок
Отслеживать
ответ дан 8 янв 2022 в 12:31
2,302 1 1 золотой знак 5 5 серебряных знаков 11 11 бронзовых знаков
- discord
- бот
- discord.py
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.17.3574
Как упомянуть пользователя через discord.js в embed?

Прошу помощи, нужно упомянуть человека в embed сообщении следующего вида, оно делает уведомление об изменении ника внутри сервера.

что получается:
- Вопрос задан более трёх лет назад
- 7153 просмотра
1 комментарий
Простой 1 комментарий

fgvnovoross @fgvnovoross
Вроде делать упоминания можно только в embed.descripton .
Решения вопроса 0
Ответы на вопрос 1

Вы так же можете построить уведомление вручную используя схему, если пользователь не имеет установленного «серверного» никнейма, или , если никнейм установлен (по сути, не имеет никакой разницы на практике)

Однако необходимо заметить: упоминания в теле embed’ов не работают:
Для того что бы упоминание создало уведомление, необходимо чтобы упоминание находилось в теле сообщения
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- JavaScript
- +1 ещё
Что делать, если отправляет «канал предложений не настроен», хотя он настроен?
- 1 подписчик
- 14 янв.
- 50 просмотров
Как убрать и полностью удалить роль Everyone в Дискорде – инструкция

Мессенджер Discord – это платформа для общения по играм и иным интересам. Для корректной работы создаваемых каналов и серверов используют дополнительные настройки функционала, которые в некоторых случаях нужно деактивировать. Администраторам полезно знать, как в Дискорде убрать присоединенные к команде Everyone опции. Представленные инструкции несложные, поэтому подходят даже новичкам.
Откройте настройки сервера

Каналы – это созданные участниками программы дополнительные платформы для общения, обмена данными, опытом, документами. Каждый блок настраивается админом самостоятельно. В разделе «Настройки» можно выполнить следующие действия:
- посмотреть информацию, статистику и характеристики по действующему разделу;
- создать или установить роли для участников сообщества;
- произвести интеграцию профилей других социальных сетей.
Доступны и другие функции. Зайти в нужный раздел можно через аккаунт мессенджера Дискорд.
Внимание! Отключение функции Everyone позволяет убрать шквал отметок пользователей группы – не только постоянных участников, но и случайных, «залетных» юзеров, которые порой отправляют бесполезные сообщения для всех.

Нажмите на «Роли»
В блоке настроек необходимо открыть нужный пункт:
- кликнуть по наименованию правой клавишей мышки, чтобы получить доступ к всплывающему меню;
- выбрать раздел «Изменить канал» (на английском «Mute general»);
- перейти к пункту «Разрешения» (или «Permissions»).
После этого в дополнительном окне откроется список действующих функциональных назначений, которые можно менять, удалять, корректировать.

Найдите @everyone
В списке, который будет отображен на мониторе, необходимо выбрать одноименную роль. Необходимый вариант будет отмечен символом «@». Чтобы начать работу с пунктом, его нужно выделить – нажать однократно левой кнопкой мышки. Справа раскроется список возможных действий.

Отключение «Упоминания роли» и сохранение изменений
Чтобы удалить функционал, требуется найти символ «Х» в открытом перечне возможных корректировок. Настройка располагается в четвертой строке, нужная строка обозначается пунктом «Упоминать всех». После этого на мониторе персонального устройства появится отдельное окно, где потребуется подтвердить операцию деактивации. Если все в порядке, нужно нажать «Сохранить».

Снять функцию отправки уведомлений в указанном режиме можно через настройки аккаунта Дискорда. Если потребуется вернуть команду, требуется выполнить те же действия, но на последнем этапе выбрать галочку зеленого цвета.
Упоминания
Упоминания — специальные слова, чтобы упомянуть участника. Упоминания также называют пингами, от английского слова «Ping». Чтобы упомянуть участника заполняйте упоминание так: @Никнейм#1234 , вместо «Никнейм» указываем никнейм, а вместо 1234 вписываем Дискрим пользователя. Также можно не заполнять, а выбрать в выпадающем меню, которое появляется когда вы пишите «@». В ответе на сообщение также есть упоминание пользователя, но можно выбрать включить или выключить упоминание в ответе, с помощью кнопки «@вкл» и «@выкл».
- 1 Виды упоминаний
- 1.1 Простой
- 1.2 @everyone
- 1.3 @here
- 1.4 @роль
- 1.5 Особые
- 1.5.1 Упоминания через ID
Виды упоминаний [ ]
Простой [ ]
Про то, как писать простой вид было указано выше. Этот вид просто упоминает участника, если участник находится в онлайне, в статусе «Не активен» и Невидимке, то прозвучит звук, а на том сервере где его упомянули появится значок с цифрой, а также на самой иконке приложения/сайта.
@everyone [ ]
Чтобы упомянуть всех, достаточно просто написать «@everyone», тогда у всего сервера появится уведомление, даже у тех, кто не в сети.
@here [ ]
Этот вид уведомлений работает только на тех, кто сейчас в онлайне. Поступает точно как и @everyone.
@роль [ ]
Упоминает всех людей у которых есть эта роль.
Особые [ ]
Добавьте команду @silent в начале сообщения и отправьте его, сообщение придёт без звука и уведомления, получатель всё равно увидит значок уведомления но не оповещение о нём.
Упоминания через ID [ ]
Вы также можете напрямую упомянуть пользователя или роль через идентификатор. Дискорд заменяет @роль или @имя#тег на или соответственно и наоборот.
Интересные факты [ ]
- Упоминания @everyone и @here не работают в личных сообщениях.
- Упоминания @everyone и @here работают в группах, но не отображаются в поле выбора упоминания.
- Право доступа «Упоминание @everyone, @here и всех ролей» позволяет отключить пользователям возможность упоминать, но пользователи с отключеным этим правом доступа всё равно могут упоминать пользователей.
- С правом доступа «Упоминание @everyone, @here и всех ролей» можно писать роли с помощью айди, но в таком случае они не будут отображать упоминания.