Как отправить сообщение, которое видит только 1 пользователь? Бот Дискорда
Я слышал, что для этого используют respond , не вышло.
Код, который я пробовал.
async def info(ctx): await ctx.respond(im)
Отслеживать
5,874 8 8 золотых знаков 26 26 серебряных знаков 39 39 бронзовых знаков
задан 16 авг 2021 в 20:38
Реинкарнация Реинкарнация
37 1 1 серебряный знак 7 7 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Метода respond нет в discord.py, но есть, например, в библиотеке discord-components Я думаю это то, что вам нужно
from discord_components import DiscordComponents, Button DiscordComponents(bot) await ctx.send( "Hello, World!", components = [ Button(label = "WOW button!", custom_id = "button1") ] ) interaction = await bot.wait_for("button_click", check = lambda i: i.custom_id == "button1") await interaction.respond(content="Button clicked!")
Отслеживать
ответ дан 16 авг 2021 в 21:23
2,287 1 1 золотой знак 4 4 серебряных знака 10 10 бронзовых знаков
Да, это оно, но я не понимаю, как именно это использовать? Как это подставить в код?Вот код: ` from discord.ext import commands from discord_components import DiscordComponents PREFIX = ‘/’ client = commands.Bot(command_prefix = PREFIX) im = ‘important information’ @client.command() async def info(ctx): async respond(im) #это сообщение должен увидеть только отправитель token = open(‘token.txt’, ‘r’).readline() client.run(token)`
16 авг 2021 в 22:59
Там есть документация Исправил ответ, дописав код.
Как отправить сообщение видимое одному человеку? discord.py
Я ранее уже задавал этот вопрос но так и не получил на него нормального ответа, скорее всего меня не поняли. Как отправить такое сообщение в discord.py?: UPD: В данном случае мне надо отправить это сообщение в on_raw_reaction_add:
@bot.event async def on_raw_reaction_add(payload): global not_active global post_id print('---Зафиксирована реакция---') if payload.message_id == post_id: channel = bot.get_channel(payload.channel_id) message = await channel.fetch_message(payload.message_id) user = discord.utils.get(message.guild.members, print(f'----- отметился-----') not_active.remove(user.mention) config['DEFAULT']['not_active'] = f'' with open('settings.ini', 'w') as configfile: config.write(configfile)
Отслеживать
задан 2 янв в 7:56
116 2 2 серебряных знака 16 16 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
В функции send() включите параметр ephemeral=True . Это пришлёт именно такое сообщение. Пример:
await ctx.send('Привет!', ephemeral=True)
Через некоторое тестирование выяснилось, что discord не позволяет отвечать ‘невидимыми’ сообщениями на обычные комманды. Для slash-комманд и кнопок все работает прекрасно.
import asyncio import discord from discord.ext import commands class Handlers(commands.Cog): def __init__(self, bot: commands.Bot): self.bot = bot @commands.hybrid_command('test') async def test(self, ctx: commands.Context): await ctx.send('test', ephemeral=True) client = commands.Bot( command_prefix='!', intents=discord.Intents.all(), case_insensitive=True, ) @client.event async def on_ready(): await client.tree.sync() asyncio.run(client.add_cog(Handlers(client))) client.run('token')
(Код грустный, тут только для демонстрации примера)
Обратите внимание на версию discord.py! Для этого примера discord == 2.1.0 .
Делаем невидимый ник в Discord
Вы не сможете поменять ник на сервере, если создателями либо администрацией были внесены ограничения для вашей роли. Учитывайте это и по необходимости обращайтесь к привилегированным лицам, чтобы они самостоятельно сделали ваш ник невидимым или же предоставили соответствующие права.
Читайте также: Создание и распределение ролей в Discord
Вариант 1: Программа для ПК
Пользователи десктопной версии Discord имеют больше путей в плане создания невидимого ника, поскольку обладают всеми необходимыми возможностями, чтобы задействовать специальный символ или особенности предыдущих версий программы. Мы разберем каждый способ отдельно, а вам останется только подобрать оптимальный.
Способ 1: Добавление пробела (для старых версий Discord)
Если вы используете версию Дискорда хотя бы годичной давности и не собираетесь обновляться, у вас есть возможность редактирования ника путем добавления пробела вместо других символов. Следовательно, такое имя сохранится, поскольку поле не является пустым, но отображаться ничего не будет. Соответствующие коррективы вносятся следующим образом:
- Перейдите на сервер, где хотите поменять ник, или откройте настройки профиля для изменения имени учетной записи. Найдите себя в списке участников и кликните правой кнопкой мыши для появления контекстного меню.

- В нем вас интересует пункт «Изменить никнейм», по которому и кликните.

- Активируйте поле для ввода нового имени и поставьте там пробел.

- На следующем скриншоте видно, что при выделении с зажатой левой кнопкой мыши этот пробел отображается — значит, поле не пустое.

- Сохраните изменения и перейдите к проверке данного метода. Если сохранение не удалось, в используемой версии эту «фишку» пофиксили и придется прибегнуть к одому из следующих способов.

Способ 2: Использование специального символа
Есть специальный символ, который не отображается после сохранения ника из-за особенностей кодировки. Его можно использовать даже в последней версии Дискорда и, скорее всего, можно будет делать это и в будущем. От вас потребуется выполнить всего пару простых шагов:
- Снова откройте меню для изменения ника, где активируйте поле ввода.

- Скопируйте символ ٴٴٴٴٴ и следом вставьте его в поле, после чего сохраните изменения.

- Вернитесь к списку участников сервера, чтобы проверить действенность выполненной операции.

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

- Дополнительно уточним, что просто так очистить поле с ником от этого символа не получится, поэтому используйте кнопку «Сбросить Никнейм».

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

- В нем кликните «Настройки сервера».

- Перейдите к разделу «Роли», щелкнув по этой строке на панели слева.

- Выберите роль, которую хотите редактировать, или же создайте новую.

- Придется использовать пользовательский цвет, чтобы подобрать идеальный.

- После отображения палитры вставьте код #2f3136 , который соответствует фону списка участников на сервере.

- Примените изменения и перейдите в раздел «Участники».

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

- Найдите ее в появившемся списке, учитывая, что название роли уже сливается с фоном.

- Вернитесь к списку участников и убедитесь в том, что ник действительно не отображается.

- Если говорить о колонке отправки сообщений, данный оттенок не совсем подходит, поэтому вам следует выбрать — где вы хотите сделать ник невидимым. Если же интересует скрытие имени именно в чате, придется заменить код на #36393f , и тогда ник будет виден в списке участников, но не отобразится в чате.

- При использовании светлой темы все эти настройки теряют актуальность, поэтому необходимо внести другие изменения. Задайте цвет роли полностью белый ( #ffffff ), если хотите, чтобы его не было видно в чате при отправке сообщений.

- Сохраните изменения, вернитесь к серверу и проверьте результат выполненных действий.
- Для скрытия ника из списка участников понадобится использовать код цвета #f2f3f5 . Он немного отличается от белого, поэтому в чате ник все же можно разглядеть.

Рассмотренные выше настройки влияют на отображение ника в чате и в списке участников для всех юзеров, кто установил темную или светлую тему, применив для этого стандартные настройки мессенджера. Параметры будут неактуальны при установке сторонних тем вами или другими пользователями Дискорда, что нужно учитывать во время их редактирования.
Вариант 2: Мобильное приложение
У обладателей мобильных устройств, к сожалению, нет разных методов по созданию невидимого ника в Дискорде, поэтому придется воспользоваться только тем, который подразумевает изменение цвета роли. У вас должны быть права на управление или же вы сами должны являться создателем сервера.
- В мобильном приложении через панель слева перейдите к серверу и сделайте тап по его названию.

- Появится небольшая панель, на которой выберите пункт «Настройки».

- Из списка с разделами настроек найдите «Роли».

- Выберите роль для редактирования или создайте новую.

- После перехода в «Настройки роли» откройте «Цвет роли».

- Используйте пользовательскую палитру.

- Напишите код #2f3136 для невидимого ника в списке участников или #36393f — для чата. Об изменениях для светлой темы речь шла в предыдущем разделе статьи, поэтому вы можете вернуться к нему и узнать коды для подходящих цветов, чтобы ник не было видно на панели участников или при отправке сообщений.

- Перед выходом обязательно нажмите «Выбрать» иначе палитра будет сброшена.

- Через главное меню настроек перейдите в «Участники».

- Тапните по юзеру, для которого желаете сделать невидимый ник.

- Присвойте ему созданную только что роль.

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

Как сделать невидимый ник и пустую или прозрачную аватарку в Дискорде

В сказках герои часто стремились обрести столь необычный навык, как невидимость. Конечно, интроверты по достоинству оценят такую возможность. Со временем у людей возникла идея создавать невидимые ники. С помощью них кто-то хочет выделиться или озадачить других участников чата. В любом случае, в известном сервисе Discord доступна такая возможность. Расскажем, как сделать невидимым собственный ник в Дискорде.
Зачем это может понадобиться?
Пользователь с ником, состоящим из невидимых символов, будет занимать отдельную строчку в списке участников. То есть строчка есть, а текста нет. Это, как минимум, озадачит неопытных пользователей и улыбнет ветеранов Дискорда.
Вторая причина, по которой такие ники популярны, это затрудненное взаимодействие со стороны других участников. То есть до тех пор, пока вы не напишите ничего в чат, людям трудно будет обратиться к вам либо упомянуть в сообщении. Впрочем, это относительно и зависит от того, какой способ скрытия вы используете. И третья – это отсутствие креативности при создании ника. Бывают случаи, когда все крутые слова закончились, а писать имя не хочется. В таком случае ник-«невидимка» не только скроет творческий кризис автора, но и добавит некую таинственность. Впрочем, неотображаемые символы в имени – это не специально задуманная разработчиками функция, а некая «фича», проявляемая во всех текстовых полях современных ОС. Потому, как распоряжаться ею – решать только пользователю. 
Как сделать невидимый ник в Дискорде
Выше мы упомянули, что это фича, а потому для ее реализации нет точно продуманного алгоритма, утвержденного какими-то стандартами. Мы предложим только самые известные и практичные способы, работающие как в новых, так и в старых версиях сервиса.
Использование старой версии программы
- Откройте Discord. Делать это нужно только с компа, так как будет взаимодействие с механической клавиатурой.
- Раскройте раздел «Настройки». Для этого нажмите на значок «шестеренки» в левом нижнем углу окна.

- Перейдите в раздел «Моя учетная запись». По умолчанию он должен открываться уже при запуске.

- Нажмите по кнопке «Изменить» напротив текущего ника пользователя.

- Зажмите клавишу «Alt», а после поочередно введите число 255 на цифровой клавиатуре. Numlock должен быть включен. После отпустите клавишу «Alt».
- Нажмите сохранить. Если версия достаточно стара, то все пройдет успешно, и никнейм исчезнет.

Для более любознательных объясним: существуют alt-коды, под которыми закодированы символы юникода. Под кодом 255 «спрятан» символ неразрывного пробела. В практике почти бесполезен, а для таких забавных вещей – самое то.
С помощью специального символа
По сути, выше мы использовали только один из множества специальных символов, не предусмотренных логикой текстового поля программы. На деле их намного больше. Вы можете подробно ознакомиться с каждым из них по этой ссылке. Некоторые из них постепенно добавляются в проверку, а потому уже не работают. На сегодняшний день программа не поддерживает символ: [ ٴٴٴٴٴ ] . Копируйте его прямо со скобками, а после удаляйте их внутри текстового поля, иначе ничего не скопируется. При передвижении курсора могут возникнуть трудности, так как знак считается комплексным, а не целым. Также можно использовать и неразрывный пробел.

Изменение цвета текста
Назовем следующий способ «методом хамелеона». По крайней мере, это название звучит. Смысл заключается в том, что мы пишем любой никнейм, а после подкрашиваем его под цвет фона. Скажем сразу, что метод бесполезен в последних версиях, где поддерживается темный и светлый режимы отображения. Следственно, нельзя угадать, будет ли участник, смотрящий на ваш ник, использовать белые или черные тона.
В любом случае, объясним, как «обесцветить» текст под белый фон. Алгоритм действий:
- Откройте сервер, где нужно спрятать свое имя. Вы должны быть админом с правом добавления или редактирования ролей.

- Нажмите правой кнопкой на значок сервера. В раскрывшемся меню откройте подраздел «Настройки сервера», а после кликните по пункту «Роли».

- Создайте новую роль. В разделе выбора цвета укажите код #2f3136.
- Сохраните роль и присвойте ее себе.

Готово. Теперь все будет сливаться на фоне, а потому не отображаться. Опять же, для пользователей темной темы ничего не изменится, так как там по умолчанию используется схожий цвет шрифта.
Особенности на телефоне
Будьте осмотрительны с подбором символов. Некоторые из них, хоть и скрыты на ПК, но могут отобразиться в приложении для Android или iOS. Были времена, когда такие «шутливые» знаки рушили приложение у всех пользователей чата.
А еще на телефоне режим отображения меняется вместе с темой телефона. То есть если пользователь решит переключить интерфейс оболочки на темный, то белый ник мгновенно проявится. В остальном, телефоны так же легко обмануть вышеописанными способами.
Как поставить пустую аватарку
Забавно, когда неожиданно пропадает имя пользователя. Еще интригующе, когда пропадает и картинка. Убрать аву можно следующим образом:
- Создайте квадратную картинку с разрешением 1024×1024 px (чтоб наверняка) либо используйте уже готовое фото.
- Откройте его в графическом редакторе, подойдет даже Paint.

- Закрасьте изображение цветом с цветовым кодом: #2f3136.

- Откройте настройки, раздел «Учетная запись».

- Нажмите на кнопку «Редактировать профиль пользователя».
- Кликните по текущей аватарке. Откроется проводник, где нужно выбрать тот закрашенный рисунок.

- Сохраните изменения.
Готово. Теперь вы станете загадкой для пользователей светлой темы Дискорда.
Невидимая роль
Выше мы подробно описывали этот метод, но уточнили, что у него один недостаток – проявление прозрачного текста в темной теме. Конечно, исправить это нельзя, зато можно поиграться с таким недостатком. Создайте две роли: одна с черным цветом (код: #33363d) и белым (#2f3136). Раздайте их в произвольном порядке. Теперь пользователи с разными темами будут видеть разных пользователей. До поры, до времени это забавно.
Благодарим за прочтение.
