Слэш команды
Слэш команды — это один из типов взаимодействий, интегрированных с клиентом, которые может создать бот. В отличие от команд с префиксом, они не требуют намерения на контент сообщения.
В этом разделе подробно рассказано о создании, типах и обработке слэш командах с помощью disnake .
Бот должен быть добавлен с разрешением applications.commands , чтобы создавать слэш команды на сервере. Мы рекомендуем добавить это разрешение к приглашениям вашего бота.
Определение слэш команд
Для создания слэш команд используйте декоратор @bot.slash_command .
@bot.slash_command( name="ping", description="Возращает задержку бота", ) async def ping(inter: disnake.ApplicationCommandInteraction): ...
Dellyis used / ping
Disnake Bot Bot 05/16/2023
Если используется ког, используйте декоратор @commands.slash_command .
class Meta(commands.Cog): @commands.slash_command( name="ping", description="Возращает задержку бота", ) async def ping(self, inter: disnake.ApplicationCommandInteraction): ...
Параметры
В то время как некоторые команды могут существовать без аргументов, большинство команд должны принимать их, чтобы быть полезными. Чтобы определить параметр, это так же просто, как определить аргумент для обычной команды.
Вот пример команды с одним целочисленным параметром (без описания):
@bot.slash_command(description="Увеличивает число в 7 раз") async def multiply(inter, number: int): await inter.response.send_message(number * 7)
Чтобы сделать параметр опциональным, укажите стандартное значение аргументу.
@bot.slash_command(description="Увеличивает число в указанное количество раз") async def multiply(inter, number: int, multiplier: int = 7): await inter.response.send_message(number * multiplier)
Подкоманды
Регистрация команд
В отличие от команд с префиксом, слэш команды должны быть сначала зарегистрированы в Discord. В противном случае они не появятся, если вы нажмете «/». По умолчанию библиотека автоматически регистрирует и обновляет ваши слэш команды. Это происходит при запуске бота или при выгрузке или перезагрузке одного или нескольких когов.
Библиотека не делает ненужных запросов API во время этого процесса. Если зарегистрированные команды совпадают с командами в вашем коде, запросы API не выполняются. В противном случае выполняется только один запрос на массовую перезапись.
Если вы хотите отключить автоматическую регистрацию, установите параметр sync_commands в экземпляре commands.Bot на False . Если вы хотите увидеть, как именно изменяется список зарегистрированных команд, установите параметр sync_commands_debug на True .
bot = commands.Bot("!", sync_commands_debug=True)
Он выведет, какие команды были добавлены, отредактированы, удалены или нетронуты. Это также зависит от вашего уровня ведения логирования.
Глобальные команды
Глобальные слэш команды видны везде, включая личные сообщения с ботом. Если вы не укажете параметр test_guilds в commands.Bot , все ваши слэш команды по умолчанию являются глобальными.
Глобальные команды сразу видны и доступны для использования на большинстве устройств.
Серверные команды
Если вы укажете параметр test_guilds в commands.Bot , все слэш команды в вашем коде больше не будут являться глобальными. Следующий код зарегистрирует все слэш команды только на двух серверах:
bot = commands.Bot("!", test_guilds=[123456789, 987654321]) # ID серверов
Если вы хотите сохранить некоторые из ваших команд с косой чертой глобальными, а некоторые сделать локальными, укажите параметр guild_ids в декораторе @bot.slash_command() :
bot = commands.Bot("!") @bot.slash_command() async def global_command(inter): """Эта команда видна везде""" ... @bot.slash_command(guild_ids=[123456789]) async def local_command(inter): """Эта команда видна только на одном сервере""" ...
Ответ на команды
Отправка ответа
Атрибут response ссылается на экземпляр InteractionResponse , который имеет 4 способа ответа на ApplicationCommandInteraction . Ответ может быть выполнен только один раз. Если вы хотите отправлять повторные сообщения, рассмотрите возможность использования followup вместо вебхука.
Ответ может быть использован только один раз. После получения ответа больше никаких ответов быть не может. Смотрите объект followup для отправки сообщений после ответа.
- send_message — Отправляет ответное сообщение
- edit_message — Редактирует оригинальное сообщение, вы не можете использовать это в командах приложения, потому что во время ответа нет сообщений.
- defer — Откладывает взаимодействие
- send_modal — отправляет Modal (модальное окно).
Кроме того, существует один метод, который не дает ответа:
- is_done — Указывает, был ли выполнен ответ на взаимодействие.
Если вы собираетесь запускать длительные процессы (более 3 секунд) во время ответа, вы должны сначала отложить взаимодействие. Затем, когда ваш ответ будет готов, вы можете отредактировать сообщение, используя edit_original_message .
@bot.slash_command() async def ping(inter: ApplicationCommandInteraction): await inter.response.send_message("Понг!") @bot.slash_command() async def defer(inter: ApplicationCommandInteraction): await inter.response.defer() await asyncio.sleep(10) await inter.edit_original_message(content="Ожидание закончилось, мои товарищи!")
Последующие действия
Последующие действия — это способ отправить сообщение после ответа. Существует два важных ограничения в отношении того, когда можно использовать последующее наблюдение:
- на взаимодействие должен быть дан ответ в течение первых 3 секунд (см. Отправка ответа).
- срок действия взаимодействия не должен быть истек. Проверка того, истек ли срок действия взаимодействия, может быть выполнена с помощью ApplicationCommandInteraction.is_expired .
По своей сути, последующие действия — это просто экземпляр Webhook . В этом нет ничего особенного, за исключением того, что параметр wait обрабатывается так, как если бы он всегда имел значение True .
Одним из возможных способов последующего использования может быть отправка инструкций, которые будут видны, если модальное сообщение не отправлено.
@bot.slash_command() async def confirm(inter: ApplicationCommandInteraction): await inter.response.send_modal( title="Подтверждение", custom_id="confirm-or-deny", components=[disnake.ui.TextInput(label="подтвердить?", custom_id="confirm")], ) await inter.followup.send(content="Пожалуйста, не закрывайте модальное окно!", ephemeral=True)
Создаем Discord-бота с помощью Node.js
Discord — это чат-приложение, которое позволяет миллионам пользователей по всему миру обмениваться сообщениями и общаться голосом вживую в сообществах, называемых гильдиями (guilds) или серверами. Discord также предоставляет обширный API, который разработчики могут использовать для создания весьма функциональных Discord-ботов. Боты могут выполнять различные действия, такие как отправка сообщений на серверы и личных сообщений пользователям, модерация серверов и воспроизведение звука в голосовых чатах. Это позволяет разработчикам создавать продвинутых ботов, которые реализуют сложные функции, такие как инструменты модерации или даже игры. Например, служебный бот Dyno обслуживает миллионы гильдий и содержит такие полезные функции, как защита от спама, музыкальный проигрыватель и много других вспомогательных служб. Знание того, как создавать Discord-ботов, позволит вам реализовать возможности, с которыми смогут взаимодействовать каждый день тысячи людей.
В этом туториале мы с вами создадим Discord-бота с нуля, используя Node.js и библиотеку Discord.js, которая позволяет пользователям напрямую взаимодействовать с Discord API. Мы настроим профиль для Discord-бота, получим для него токены аутентификации и реализуем в боте возможность обработки команд с аргументами от пользователей.
Что вам для этого понадобится
Прежде чем вы начнете, вам понадобится следующее:
- Node.js, установленный на вашем компьютере. Чтобы установить его на macOS или Ubuntu 20.04, выполните действия, перечисленные в ”Как установить Node.js и создать локальную среду разработки в macOS” или в разделе “Установка Node.js посрдством Apt с помощью NodeSource PPA” руководства ”Как установить Node.js в Ubuntu 20.04”.
- Любой текстовый редактор на ваш вкус, например Visual Studio Code, Atom, Sublime или nano.
- Бесплатный Discord-аккаунт, подтвержденный по электронной почте, и бесплатный Discord-сервер, который мы будем использовать для тестирования нашего Discord-бота.
Шаг 1 — Настройка Discord-бота
На этом этапе мы будем использовать GUI Discord для разработчиков, чтобы настроить Discord-бота и получить для него токен, который вы будете использовать в своей программе.
Чтобы зарегистрировать бота на платформе Discord, используйте Discord application dashboard (панель управления приложением). В ней разработчики могут создавать Discord-приложения, в частности — Discord-ботов.
Чтобы начать, кликните New Application. Discord попросит вас ввести имя для вашего нового приложения. Далее кликните Create, чтобы создать приложение.
Примечание: Имя вашего бота не зависит от имени приложения, т.е. имя бота не обязательно должно совпадать с именем приложения.
Теперь откройте панель управления вашего приложения. Чтобы добавить бота в приложение, перейдите на вкладку Bot на навигационной панели слева.
Чтобы добавить бота в приложение, нажмите кнопку Add Bot. Кликните Yes, do it!, когда появится диалог подтверждения. После этого вы попадете в панель управления, содержащую сведения об имени вашего бота, токен аутентификации и изображение профиля.
Вы можете изменить имя или изображение профиля своего бота здесь, в этой панели управления. Вам также необходимо получить токен аутентификации бота, кликнув Click to Reveal Token и скопировав появившийся токен.
Предупреждение: никогда ни с кем не делитесь и никуда не публикуйте токен вашего бота, так как он позволяет любому, кто им обладает, получить доступ к вашему боту.
Теперь вам нужно создать инвайт для добавления бота в Discord-гильдию, где вы сможете его тестировать. Сначала перейдите на страницу URL Generator во вкладке OAuth2 панели управления приложением. Чтобы создать инвайт, проскрольте вниз и выберите bot в scopes. Вам также следует установить разрешения (permissions), чтобы контролировать, какие действия ваш бот может выполнять в гильдиях. В рамках этого руководства мы выберем Administrator, что даст вашему боту права на выполнение почти всех возможных действий в гильдиях. Скопируйте ссылку с помощью, нажав на кнопку Copy.
Затем добавьте бота на сервер. Перейдите по только что созданной ссылке-инвайту. В раскрывающемся меню вы можете добавить бота на любой сервер, которым вы владеете или на котором имеете права администратора.
Теперь нажмите Continue. Убедитесь, что у вас установлен флажок рядом с Administrator — это предоставит боту права администратора. Затем нажмите Authorize. До того, как бот присоединится к серверу, Discord попросит вас заполнить капчу. После этого бот должен появиться в offline в списке участников на сервере, на который вы его добавили.
Вы успешно создали Discord-бота и добавили его на сервер. Далее мы напишем программу для логина в бот.
Шаг 2 — Создание вашего проекта
На этом шаге мы настроим базовую среду разработки, в которой вы напишете код своего бота и залогинитесь в него программным способом.
Во-первых, вам нужно создать папку проекта и необходимые файлы для бота.
Создайте папку своего проекта:
mkdir discord-bot
Перейдите в папку проекта, которую вы только что создали:
cd discord-bot
Затем с помощью текстового редактора создайте файл с именем config.json , где будет храниться токен аутентификации вашего бота:
nano config.json
Добавьте следующий код в полученный файл конфигурации, заменив выделенный текст на токен аутентификации вашего бота:
Сохраните и закройте файл.
Затем вам нужно создать файл package.json , в котором будут храниться сведения о вашем проекте и зависимостях, которые вы будете для него использовать. Создайте файл package.json , выполнив следующую npm-команду:
npm init
npm запросит у вас различные сведения о вашем проекте. Если вам нужна помощь в заполнении этих сведений, вы можете почитать об этом в разделе “Как использовать модули Node.js с npm и package.json”.
Теперь вам нужно установить пакет discord.js , который вы будете использовать для взаимодействия с Discord API. Вы можете установить discord.js через npm с помощью следующей команды:
npm install discord.js
Когда вы настроили файл конфигурации и установили необходимую зависимость, вы готовы приступить к созданию своего бота. В реальном приложении, если бот большой, то он будет разделен на множество файлов, но в этом руководстве весь код вашего бота будет написан в одном файле.
Сначала создайте файл с именем index.js в папке discord-bot:
nano index.js
Начнем код бота с требования зависимости discord.js и файл конфигурации с токеном:
const Discord = require("discord.js"); const config = require("./config.json");
После этого добавьте следующие две строки кода:
. const client = new Discord.Client(
Сохраните и закройте файл.
Первая строка кода создает новый Discord.Client и присваивает его константе client. Этот клиент - это то, как вы будете взаимодействовать с Discord API и как Discord будет уведомлять вас о таких событиях, как новые сообщения. Клиент, по сути, представляет Discord-бота. Объект, переданный в конструктор Client , определяет намерения (gateway intents) вашего бота. Таким образом определяется, какие WebSocket-события будет слушать ваш бот. Здесь мы указали GUILDS и GUILD_MESSAGES , чтобы бот получал события сообщений в гильдиях.
Вторая строка кода использует метод login для входа в созданный вами Discord-бот, используя токен из файла config.json в качестве пароля. Токен позволяет Discord API узнать, для какого бота предназначена программа, и что вы прошли аутентификацию для использования этого бота.
Теперь запустите файл index.js с помощью Node:
node index.js
Статус вашего бота на Discord-сервере, на который вы его добавили, изменится на online.
Вы успешно настроили среду разработки и написали базовый код для логина в Discord-бот. На следующем шаге мы будем обрабатывать пользовательские команды и научим ваш бот выполнять действия, такие как отправка сообщений.
Шаг 3 - Обработка вашей первой пользовательской команды
На этом шаге вы создадите бота, который может обрабатывать пользовательские команды. Вы реализуете свою первую команду ping , которая будет отвечать "pong" и временем, которое потребовалось для ответа на команду.
Во-первых, чтобы вы могли обрабатывать команды, вам нужно обнаруживать и получать сообщения, которые отправляют пользователи. Используя метод Discord-клиента on , вы будете получать от Discord уведомление о новых событиях. Метод on принимает два аргумента: имя ожидаемого события и функцию, запускаемую каждый раз, когда это событие происходит. С помощью этого метода вы можете прослушивать событие message , которое генерируется каждый раз, когда сообщение отправляется в гильдию, в которой бот имеет разрешение на просмотр сообщений. Таким образом мы создадим функцию, которая запускается каждый раз, когда отправляется сообщение.
Сначала откройте свой файл:
nano index.js
Добавьте в файл следующий код:
. const client = new Discord.Client(); client.on("messageCreate", function(message) < >); client.login(config.BOT_TOKEN);
Эта функция, которая запускается в ответ на событие messageCreate, принимает message в качестве параметра. message имеет значение инстанса сообщения Discord.js, которое содержит информацию об отправленном сообщении и методах, которые помогут боту ответить.
Добавьте следующую строку кода в свою функцию обработки команд:
. client.on("messageCreate", function(message) < if (message.author.bot) return; >); .
Эта строка проверяет, является ли автор сообщения ботом, и, если да, то прекращает обработку команды. Это важно, поскольку обычно вы не хотите обрабатывать сообщения ботов или отвечать на них. Ботам обычно не нужно использовать информацию от других ботов, поэтому игнорирование их сообщений помогает предотвратить нежелательные ответы и экономит вычислительную мощность.
Теперь мы напишем обработчик команд. Для этого нужно понимать формат команды Discord. Обычно команда Discord состоит из трех частей в следующем порядке: префикс, имя команды и (иногда) аргументы команды.
- Префикс: префиксом может быть что угодно, но зачастую это пунктуационный символ или абстрактная фраза, которая обычно не встречается в начале сообщения. Это означает, что когда вы начинаете сообщение с префикса, бот поймет, что предназначение этой команды заключается в том, чтобы бот обработал ее.
- Имя команды: имя команды, которую хочет использовать пользователь. Это означает, что бот может поддерживать несколько команд с разной функциональностью и позволяет пользователям выбирать между ними, указывая соответствующее имя команды.
- Аргументы: иногда, если команда использует или даже требует дополнительную информацию от пользователя, пользователь может указать аргументы после имени команды, где этом каждый аргумент отделяется пробелом.
Примечание: Нет унифицированной жесткой структуры команд, и боты могут обрабатывать команды так, как вам хочется, но представленная здесь структура является эффективной, и ее использует подавляющее большинство ботов.
Начнем создание парсера команд, обрабатывающего этот формат, добавив следующие строки кода в функцию обработки сообщений:
. const prefix = "!"; client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; >); .
В первой строке кода мы присваиваем константе prefix значение "!" , которое будет использоваться в качестве префикса команды.
Во второй строке кода, которую вы добавляете, мы проверяем, начинается ли содержимое сообщения, полученного ботом, с установленного вами префикса, и, если нет, то останавливаем обработку сообщения.
Теперь нам нужно преобразовать остальную часть сообщения в имя команды и аргументы, которые могут присутствовать в сообщении. Добавьте следующие выделенные строки:
. client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; const commandBody = message.content.slice(prefix.length); const args = commandBody.split(' '); const command = args.shift().toLowerCase(); >); .
В первой строке мы удаляем префикс из сообщения и присваиваем результат константе commandBody . Это необходимо, поскольку нам не нужно включать префикс в имя команды, которую мы парсим.
Вторая строка принимает сообщение уже без префикса и применяет к нему метод split с пробелом в качестве разделителя. Это разобьет его на массив подстрок, делая разделение везде, где стоит пробел. В результате получается массив, содержащий имя команды, а затем, если они включены в сообщение, все аргументы. Мы присваиваем этот массив константе args .
Третья строка удаляет первый элемент из массива args (он станет именем полученной команды), преобразует его в нижний регистр и затем назначает его константе command . Это позволяет вам изолировать имя команды и оставить в массиве только аргументы. Вы также следует использовать метод toLowerCase , поскольку команды в Discord-ботах обычно нечувствительны к регистру.
Вы завершили создание парсера команд, реализовали требуемый префикс и получили имя команды и все аргументы из сообщения. Теперь вам нужно написать код для конкретных команд.
Добавьте следующий код для команды ping :
. const args = commandBody.split(' '); const command = args.shift().toLowerCase(); if (command === "ping") < >>); .
Этот if-оператор проверяет, совпадает ли имя команды, которое вы распарсили (присвоенное константе command ), с "ping" . Если совпадает, то это означает, что пользователь хочет использовать команду "ping" . В подобной примитивной реализации код для конкретной команд вы можете просто обернуть в блок if-оператора. Делайте тоже самое и для других команд, которые хотите реализовать.
Теперь вы можете написать код для команды "ping" :
. if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Pong! This message had a latency of $ms.`); > .
Сохраните и закройте файл.
Мы добавили блок команды "ping" , который вычисляет разницу между текущим временем, полученным с помощью метода now объекта Date, и таймстемпом, когда сообщение было создано, в миллисекундах. Таким образом мы узнаем, сколько времени потребовалось для обработки сообщения, т.е. "ping" бота.
Вторая строка отвечает на команду пользователя, используя метод reply константы message . Метод reply пингует (уведомляет и выделяет сообщение для указанного пользователя) пользователя, который отправил команду, с содержимым, предоставляемым в качестве первого аргумента метода. Вы предоставляете литерал шаблона, содержащий сообщение и вычисленный пинг, в качестве ответа, который использует метод reply .
На этом реализация команды "ping" закончена.
Запустите своего бота с помощью следующей команды (в той же папке, что и index.js ):
node index.js
Теперь вы можете использовать команду "!ping" в любом канале, который бот может просматривать и отправлять туда сообщения, и получите ответ.
Вы успешно создали бота, который может обрабатывать пользовательские команды, и реализовали свою первую команду. На следующем шаге мы научим бота выполнив команду sum.
Шаг 4 - Реализация команды Sum
Теперь мы расширим программу командой "!sum" . Команда примет любое количество аргументов, сложит их, а потом вернет пользователю сумму всех аргументов.
Если Discord бот все еще работает, вы можете остановить его процесс с CTRL + C .
Снова откройте файл index.js :
nano index.js
Для реализации команды "!sum" мы будем использовать блок else-if . После проверки имени команды на равенство ping он проверит, совпадает ли оно с "sum". Мы используем блок else-if , поскольку одновременно будет обрабатываться только одна команда, т.е., если программа получит команду "ping" , ей не нужно проверять, что это была команда "sum" . Добавьте в файл следующие выделенные строки:
. if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Ping! This message had a latency of $ms.`); > else if (command === "sum") < >>); .
Приступим к написанию кода команды "sum" . Код для команды "sum" будет расположен в только что созданном вами блоке else-if . Добавьте следующий код:
. else if (command === "sum") < const numArgs = args.map(x =>parseFloat(x)); const sum = numArgs.reduce((counter, x) => counter += x); message.reply(`The sum of all the arguments you provided is $!`); > .
Мы используем метод map на списке аргументов, чтобы создать новый список, используя функцию parseFloat для каждого элемента в массиве args . Это создаст новый массив (присвоенный константе numArgs ), в котором все элементы являются числами, а не строками. Это означает, что позже вы сможете успешно найти сумму этих чисел, сложив их вместе.
Вторая строка использует метод reduce на константе numArgs , которая суммирует все элементы в списке. Мы присваиваем сумму всех элементов в numArgs константе sum .
Затем мы используем метод reply , чтобы ответить по аналогии с предыдущей командой.
На этом реализация команды "sum" завершена. Теперь запустим бота, используя следующую команду (в той же папке, что и index.js ):
node index.js
Вы можете использовать команду "!sum" в любом канале, который бот может просматривать и отправлять туда сообщения.
Ниже представлена полная версия index.js бота:
const Discord = require("discord.js"); const config = require("./config.json"); const client = new Discord.Client(); const prefix = "!"; client.on("messageCreate", function(message) < if (message.author.bot) return; if (!message.content.startsWith(prefix)) return; const commandBody = message.content.slice(prefix.length); const args = commandBody.split(' '); const command = args.shift().toLowerCase(); if (command === "ping") < const timeTaken = Date.now() - message.createdTimestamp; message.reply(`Pong! This message had a latency of $ms.`); > else if (command === "sum") < const numArgs = args.map(x =>parseFloat(x)); const sum = numArgs.reduce((counter, x) => counter += x); message.reply(`The sum of all the arguments you provided is $!`); > >); client.login(config.BOT_TOKEN);
Заключение
Вы успешно создали Discord-бота, который может обрабатывать несколько разных пользовательских команд с аргументами. Если вы хотите расширить возможности своего бота, вы могли бы реализовать больше команд или опробовать другие части Discord API. Рекомендую вам почитать документацию Discord.js и Discord API, чтобы углубить свои знания о Discord API. В частности, вы можете преобразовать свои команды своего бота в слэш-команды, что является лучшей практикой для Discord.js v13.
Создавая Discord-ботов, вы всегда должны помнить об условиях обслуживания Discord API, в которых описывается, как разработчики должны использовать Discord API. Если вы хотите узнать больше о Node.js, ознакомьтесь с нашей серией статей How To Code in Node.js.
Перевод статьи подготовлен в преддверии старта специализации Fullstack developer, а также курса Node.js Developer.
- Узнать подробнее о специализации Fullstack developer
- Узнать о курсе Node.js Developer
Как работает TTS в Discord?
Что такое TTS в Discord и как работает эта опция? Этот обзор незаменим для начинающих, неопытных пользователей. Рассказываем о новых возможностях мессенджера, которые делают жизнь и общение проще и веселее!
Также читай, как изменить статус в Дискорд по ссылке
Особенности функции
TTS в Дискорде – это опция «Text-to-Speech» или, иными словами, преобразование текста в речь! Это забавная функция, позволяющая озвучивать текстовые сообщения, которые вы отправляете на канал.
Да, вы не ослышались – вы просто печатаете текст, который за вас озвучивает робот! Это сообщение услышат все участники канала. Очень интересная возможность разнообразить общение. К тому же, кто из нас не мечтал, чтобы рутинные обязанности за него исполнял искусственный интеллект…
TTS в Дискорде использует системные настройки по умолчанию. Что это значит? Вы можете пользоваться опцией как в десктопном приложении на Windows и Mac, так и в любом современном браузере. Во всех источниках есть свой встроенный робот, преобразующий текст в речь – поэтому варианты озвучки могут отличаться в зависимости от используемой версии мессенджера. Не пугайтесь, если услышите незнакомый голос!
Как же работает озвучка сообщений в Дискорде, куда нажать, как активировать опцию, чтобы, наконец, удивить друзей? Рассказываем!
Как пользоваться?
Преобразование текста в речь происходит с помощью простой встроенной команды – достаточно ввести небольшую комбинацию, потом добавить сообщение, которое вы хотите передать участникам канала… И все! Нажимайте на кнопку отправки, все ваши друзья услышат написанное.
Команда в Дискорде для озвучки сообщений очень проста – вводите символ слэша и три буквы. Просто напишите /tts!
Простой пример: /tts Эта опция невероятно крутая!
Догадываетесь, что услышат ваши собеседники? Когда вы начнёте вводить команду, мессенджер сам предложит релевантные варианты. Также можно переключиться на вкладку «Встроенные» чтобы быстрее её найти.
Как озвучить текст в Дискорде – понятно, а можно ли отключить функцию или она включается по умолчанию, автоматически? Отдельный вопрос, который требует детального изучения!
Как управлять опцией?
Давайте попробуем разобраться, как отключить озвучку сообщений в Дискорде. Отличная новость, вы можете заглушить воспроизведение любых фрагментов текста, если не хотите слушать голоса других участников сервера!
- Откройте мессенджер и нажмите на иконку «Настройки пользователя» на нижней панели слева.
- Перейдите к вкладке «Уведомления» и найдите внутри раздел «Уведомления Text-to-speech».
- Выберите один из трёх вариантов действий, внесённые изменения сохраняются автоматически.
Какие варианты озвучки текста в Дискорде вам доступны?
- Для всех каналов. Этот параметр включает озвучку на всех каналах сервера – будьте осторожны, вы можете услышать слишком многое!
- Для текущего канала. Вы сможете слушать озвученные тексты только в рамках одного конкретного канала.
- Не использовать. Опция полностью отключается, вы не услышите чужих сообщений, переведённых в голос!
Есть кое-что ещё. Вы настроили управление чужими сообщениями и больше не будете слушать робота (или наоборот, будете). Теперь попробуем включить/отключить опцию лично для себя!
Потеряли местоположение Дискорда на компьютере или телефона? Тогда, срочно читайте эту статью
Если вы отключите параметр TTS, вопрос, как озвучить сообщение в Дискорде, отпадёт сам собой. Команда просто не будет срабатывать.
- В настройках пользователя перейдите на вкладку «Специальные возможности» .
- Найдите параметр «Text-to-speech» и отключите тумблер напротив.
Обратите внимание, что управление прослушиванием озвучки и активация команды отделены – эти настройки автономны и не влияют друг на друга.
Команды чата
Хотя некоторые из команд Discord «/» довольно очевидны для доступа, в окне сообщений можно выполнить некоторые действия, которые несколько не документированы (или трудно найти информацию). Чтобы не копаться в журналах изменений и статьях поддержки, вот что вы можете сделать в окне сообщения:
- Реакция на предыдущее сообщение (Desktop и iOS): чтобы добавить реакцию на предыдущее сообщение в чате, просто напишите +:(название эмодзи): в окне сообщения и отправьте его. Например, реагирование +:smile: добавляет реакцию улыбки. Это даже работает с пользовательскими смайликами, если вы на правильном сервере или если у вас есть нитро!
- Отредактируйте свое предыдущее сообщение со стрелкой вверх (только на приложении): вместо щелчка правой кнопкой мыши по сообщению, функции «Редактировать сообщение», вы можете просто нажать стрелку вверх на клавиатуре, чтобы отредактировать последнее сообщение в этом канале!
- Исправьте быструю опечатку с помощью s/text/replace (Desktop и iOS): вы набрали «теоефон» вместо «телефон» и хотите быстро это исправить? Используйте s/теоефон/телефон. Используя любой вариант s/слово/другое слово вы сможете редактировать ваше предыдущее сообщение. Он изменяет только один экземпляр (первый), но исправить быструю опечатку - это здорово!
- Получить идентификатор упомянутого элемента : все, что можно упомянуть в чате (смайлики, пользователь, канал, роль и т. д.), Можно использовать для получения идентификатора этого элемента. Например, введите, \@user чтобы получить идентификатор пользователя. \@role чтобы получить идентификатор роли, \#channel чтобы получить идентификатор канала.
- Обычные смайлики Юникода дадут вам настоящий символ Юникода (вместо изображения), который затем можно будет использовать в вашем имени пользователя, так что, \:poop: к вашему сердцу!
Получите смайлик в юникоде : если вы избежите смайлика, \вы получите его юникодную форму. Таким образом, \:smiley: не возвращает версию с дискордными эмодзи, но возвращает версию с юникодом (). Примечание: это работает только со стандартными смайликами, а не с обычными Эти команды "/" доступны только в приложениях для ПК и iOS. К сожалению, пользователи Android не имеют такой удачи.
- /tableflip:Добавляет к сообщению (╯°□°)╯︵ ┻━┻
- /unflip:Добавляет к сообщению ┬─┬ ノ( ゜-゜ノ)
- /shrug: Добавляет к сообщению ¯\_(ツ)_/¯
- /me: Выводит сообщения курсивом
- /nick: Изменяет никнейм на сервере
- /tenor и /giphy : искать анимированные картинки в интернете
- /spoiler: помечает ваше сообщение как спойлер (хотя можно ||спойлер||)
- /tts: используйте чтобы ваше сообщение было озвучено всем участникам находящимся в канале
- /msg user:участник message:сообщение участнику