Добавить Discord Commands (RU)

Alexey 2025-12-18 14:30:27 +00:00
commit f9fcbe3f4c

@ -0,0 +1,107 @@
## Основные команды
### Информация (общая)
`/info`
`/инфо`
Отправляет сообщение, содержащее строку `info`
### Ответить на квест (общая)
`/answer quest_id: integer text: text? file1: <attachment?> file2: <attachment?> file3: <attachment?>`
`/ответить ид_квеста: целое_число текст: текст? файл1: <вложение?> файл2: <вложение?> файл3: <вложение?>`
Отправить ответ на выбранный квест на проверку.
Ответ отправляется в канал для ответов по следующему шаблону:
`answer.from` +
`answer.quest` +
`answer.expected` +
`answer.text` (если есть текст ответа) +
`answer.attachment_notice` (если присутствуют вложения)
При нажатии кнопки "Accept" ответ заменяется строкой `answer.accepted_by` и пользователю в ЛС отправляется строка `answer.accepted` или `answer.error` (в случае возникновения ошибок)
При нажатии кнопки "Reject" ответ заменяется строкой `answer.rejected_by` и пользователю в ЛС отправляется строка `answer.rejected`
*примечание: тип? в примере использования означает необязательный параметр*
### Инициализация (админ)
`/init quests_channel: #channel answers_channel: #channel`
`/инит канал_квестов: #канал канал_ответов: #канал`
Устанавливает каналы для квестов и ответов на них, а также текущую гильдию
Отвечает на команду строкой `init_reply`
### Запуск таймера (админ)
`/timer time: 9:00:00`
`/таймер время: 9:00:00`
Запускает таймер автопубликации квестов на заданное время.
Время указывается по часовому поясу UTC (МСК -3) в формате ЧЧ:ММ:СС.
Выдаёт ошибку, если таймер уже запущен
Отвечает на команду строкой `timer_reply`
*примечание: 9:00:00 по UTC это 12:00:00 по МСК*
## Социальные команды (/social, /сообщение)
### Отправка сообщения (админ)
**В канал**
`/social msg channel: #channel content: text? file: <attachment?>`
`/сообщение отправить канал: #канал содержание: текст? файл: <вложение?>`
Отвечает на команду строкой `social.sent_channel`
**В ЛС**
`/social msg user: @user content: text? file: <attachment?>`
`/сообщение отправить пользователь: @пользователь содержание: текст? файл: <вложение?>`
Отвечает на команду строкой `social.sent_dm`
Отправляет сообщение в канал/пользователю с указанным текстом и/или вложениями
*примечание: тип? в примере использования означает необязательный параметр*
### Редактирование сообщения (админ)
**В канале**
`/social edit message: message_id channel: #channel content: text? file: <attachment?>`
`/сообщение редактировать сообщение: ид_сообщения канал: #канал содержание: текст? файл: <вложение?>`
**В ЛС**
`/social edit message: message_id user: @user content: text? file: <attachment?>`
`/сообщение редактировать сообщение: ид_сообщения пользователь: @пользователь содержание: текст? файл: <вложение?>`
Редактирует указанное сообщение, заменяя все указанные параметры
Отвечает на команду строкой `social.edited`
*примечание: тип? в примере использования означает необязательный параметр*
### Удаление сообщения (админ)
**В канале**
`/social undo message: message_id channel: #channel`
`/сообщение удалить сообщение: ид_сообщения канал: #канал`
**В ЛС**
`/social undo message: message_id user: @user`
`/сообщение удалить сообщение: ид_сообщения пользователь: @пользователь`
Удаляет указанное сообщение
Отвечает на команду строкой `social.deleted`
## Управление квестами (/quest, /квест)
### Список квестов (админ)
`/quest list`
`/квест список`
Выводит список квестов по шаблону:
Заголовок: строка `quest.list`
Каждый квест: строка `quest.list_item`
### Создание квеста (админ)
`/quest create difficulty: difficulty reward: integer name: text description: text answer: text available: date?`
`/квест создать сложность: Сложность награда: целое_число название: текст описание: текст доступен: дата?`
Создаёт новый квест и назначает ему идентификатор.
Сложность: строка из выпадающего списка (Easy, Normal, Hard, Secret)
Может быть выставлен на автопубликацию, если указан параметр `доступен`
Отвечает на команду строкой `quest.create`
*примечание: дата указывается в формате ГГГГ-ММ-ДД, напр. 2025-12-24*
*примечание: тип? в примере использования означает необязательный параметр*
### Редактирование квеста (админ)
`/quest update id: integer difficulty: difficulty? reward: integer? name: text? description: text? answer: text? available: date? reset: flag`
`/квест обновить идентификатор: целое_число сложность: сложность? награда: целое_число? название: текст? описание: текст? ответ: текст? доступен: дата? сброс: флаг`
Обновляет все указанные в команде значения квеста
Сложность: строка из выпадающего списка (Easy, Normal, Hard, Secret)
Также обновляет сообщение квеста, если тот опубликован
Если квест опубликован, но его сообщение не найдено, отвечает строкой `quest.message_not_found`
Если установлен флаг сброса, отменяет автопубликацию квеста
Отвечает на команду строкой `quest.update`
*примечание: дата указывается в формате ГГГГ-ММ-ДД, напр. 2025-12-24*
*примечание: тип? в примере использования означает необязательный параметр*
### Публикация квеста (админ)
`/quest publish id: integer`
`/квест опубликовать идентификатор: целое_число`
Отмечает квест как публичный и отправляет сообщение квеста в канал для квестов
Отвечает на команду строкой `quest.publish`
### Удаление квеста (админ)
`/quest delete id: integer`
`/квест удалить идентификатор: целое_число`
Удаляет указанный квест, а также его сообщение, если тот был опубликован
Отвечает на команду строкой `quest.delete`