Как запретить другим писать в канале Discord
Discord является очень популярным мессенджером. Его активно используют геймеры для того, чтобы общаться друг с другом. Среди множества функций Дискорд есть возможность создавать различные каналы, распределяя участников по интересам. При большом количестве игроков нередко возникают ситуации троллинга и хейта. В этой статье описан вариант устранения данной проблемы. Здесь вы найдете описание того, как в Дискорде запретить писать в канале. Эта опция ограждает людей от негативного общения.

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

Блокировка участника
Это действенный способ отстранения конкретного участника от чата. Что нужно сделать:
- Нажмите на аватар собеседника;
- Нажмите на три вертикальные точки справа;
- Выберите пункт «Заблокировать».
Можно не блокировать участника полностью, а отправить его в бан. Необходимо выполнить все указанные выше действия, но вместо кнопки «Заблокировать» выбрать пункт «Забанить». Пи этом есть возможность выбора времени бана.

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

Запрет на отправку голосовых сообщений в Discord
Участники сервера могут общаться не только в текстовом чате, но и отправлять друг другу голосовые послания. Здесь также могут возникать конфликтные ситуации и происходить нежелательные действия. Для запрета участникам говорить в таком чате, необходимо сделать следующее:
- Выберите нужный канал;
- Нажмите на пункт «Настройки»;
- Выберите пункт «Подключаться»;
- Сделайте его неактивным.

Это вариант отключения голосовых сообщений для всех участников канала. Сделать подобное ограничение можно для конкретного человека, нажав на его никнейм и отключив его от общего чата.
Дискорд разрабатывался как эффективное средство для общения между геймерами, повышения интереса к игре и обмена опытом. Как и в любом обществе, здесь возможно возникновение спорных ситуаций. Если пользователь злоупотребляет вниманием других или ведет себя аморально, то его можно заблокировать буквально в несколько кликов.
Частые вопросы:
- Как в Discord запретить другим людям писать в чат
- Как в Discord использовать телефон в качестве микрофона
- Что такое Дискорд Онлайн, и как им пользоваться
- Как сделать бота, выдающего роли в Discord
Можно ли сделать запрет для бота, писать только в отдельном канале? 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
Как запретить отвечать боту в личных сообщениях?
Хочу сделать так, чтобы только бот мог писать участнику сервера, а сам участник сервер — нет. Т.е. бот не реагировал на команды в личных сообщениях, только на сервере. Как это можно сделать?
- Вопрос задан более двух лет назад
- 994 просмотра
Комментировать
Решения вопроса 1

Добавьте проверку на выполнение команды в ЛС.
@bot.check async def global_guild_only(ctx): if not ctx.guild: raise commands.NoPrivateMessage # replicating guild_only check: https://github.com/Rapptz/discord.py/blob/42a538edda79f92a26afe0ac902b45c1ea20154d/discord/ext/commands/core.py#L1832-L1846 return True
@bot.command() @commands.guild_only() async def cmd(ctx, . ): """Here we go. """ .
Ответ написан более двух лет назад
Нравится 2 2 комментария
Dream @dreameddd Автор вопроса
А можно сделать исключения на необходимые мне команды? Используя global_guild_only (задался этим вопросом только сейчас)

Dream, проверяйте на наличие название команды в списке:
if ctx.command.name in ["cmd", "cmdtoo", . ]: raise commands.NoPrivateMessage
Как запретить боту некоторые команды в группах?
Есть бот, он в группе, если написать команду в этой группе, то бот выполнит её, а я хочу так, чтобы некоторые команды не были доступны в чате, а только если напишешь боту.
- Вопрос задан более двух лет назад
- 806 просмотров
Комментировать
Решения вопроса 1
В объекте Message есть поле chat которое хранит объект Chat и уже в нём есть тип чата(type): «group», «supergroup», «channel», «private». Используя эти данные можешь написать фильтрацию команд собственноручно.
Если ты пишешь используя какую-нибудь из популярных библиотек, то в нём уже должен быть фильтр для групп.
Ответ написан более двух лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 1
Смотреть на тип чата, и если это не личный чат, то отмена. На сколько мне известно, для групп id чата отрицательное, т.е if (id < 0)