diff --git a/Strings-and-tags-%28RU%29.md b/Strings-and-tags-%28RU%29.md new file mode 100644 index 0000000..f69ad07 --- /dev/null +++ b/Strings-and-tags-%28RU%29.md @@ -0,0 +1,399 @@ +# Обзор +Практически все строки, которые использует бот, хранятся в файле с форматом [TOML](https://toml.io) (обычно `strings.toml`). +Эти строки, в зависимости от контекста, могут содержать различные теги. +Теги используются для подстановки данных в строку во время работы программы. +Как правило, строки используются для ответа на команду. + +## Контекст и теги +В зависимости от выполняемой команды, форматировщик строк может обладать различным контекстом. +Передаваемый контекст предоставляет различные теги для использования в строках. + +### Глобальный контекст +Глобальный контекст может использоваться во всех строках и предоставляет следующие теги: +- `{n}`: Переход на новую строку (`\n`) +- `{v}`: Версия программы (напр. `0.10.0`) +- `{url}`: Строка `url` из файла строк (предполагается, что это ссылка на веб карту) +- `{pt}`: Строка `points` из файла строк. Название "валюты" для очков, автоматически подставляется в контексте награды или баланса + +### Контекст квеста +Предоставляет теги для доступа к полям квеста: +- `{q.id}`: Идентификатор квеста (напр. `#0`) +- `{q.difficulty}`: Сложность квеста, значение подставляется из таблицы `difficulty` в файле строк в зависимости от самой сложности +- `{q.reward}`: Награда за квест (напр. `50 {pt}`) +- `{q.name}`: Название квеста +- `{q.description}`: Описание квеста +- `{q.answer}`: Ожидаемый ответ на квест, следует использовать только в командах администратора + +### Контекст пользователя +Предоставляет теги для обращения к пользователю: +- `{u.mention}`: Пинг пользователя (напр. `@Second Beam`) +- `{u.name}`: Глобальное имя пользователя (напр. `Second Beam`) + +*примечание:* `{u.name}` *не учитывает имя пользователя в гильдии* + +### Контекст текущего баланса +Предоставляет тег текущего баланса пользователя, то есть без учёта разблокированных комнат: +- `{b.current}`: Текущий баланс пользователя (напр. `50 {pt}`) + +### Контекст полного баланса +Предоставляет теги баланса пользователя с учётом разблокированных комнат: +- `{b.current}`: Текущий баланс пользователя (напр. `50 {pt}`) +- `{b.rooms}`: Суммарная стоимость разблокированных пользователем комнат (напр. `50 {pt}`) +- `{b.full}`: Сумма текущего баланса пользователя и стоимости комнат (напр. `100 {pt}`) + +### Контекст сообщения +Предоставляет теги для получения доступа к сообщению: +- `{m.link}`: Ссылка на сообщение +- `{m.id}`: Идентификатор сообщения, используемый в социальных командах +- `{m.channel}`: Канал, в который было отправлено сообщение + +### Частный контекст +Иногда команды предоставляют теги `{value}` и/или `{text}`, которые могут содержать любое значение. Для работы с ними необходимо прочитать документацию строки, в которой используется тег. + +## Строки +Значения по умолчанию можно найти [здесь](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/strings.toml-%28EN%2C-default%29). +Также есть [пример](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/strings.toml-%28RU%29) со строками, переведёнными на русский язык. + +#### `url`: +Строка, передаваемая в тег `{url}` +Контекст: глобальный +Пример: `https://2ndbeam.ru/sq/map` + +#### `points`: +Строка, передаваемая в тег `{pt}` +Контекст: глобальный +Пример: `points` + +#### `info`: +Ответ на команду `/info` (`/инфо`) +Контекст: глобальный +Пример: `SquadQuest version {v}{n}Find the map here: {url}` + +#### `init_reply`: +Ответ на команду `/init` (`/инит`) +Контекст: глобальный +Пример: `Updated linked channels and guild.` + +#### `timer_reply`: +Ответ на команду `/timer` (`/таймер`) +Контекст: +- глобальный +- `{value}`: Время, на которое выставлен таймер (напр. `9:00:00`) + +Пример: `Set daily timer on {value}.` +___ +*примечание: строки ниже находятся во вложенных таблицах и обращение к ним в документации осуществляется как `таблица.строка`, напр. `account.reset`.* +### `[account]` + +#### `reset`: +Ответ на команду `/reset` (`/сброс`) +Контекст: +- глобальный +- пользователь, чей аккаунт был сброшен + +Пример: `Reset {u.name} account` + +#### `give_pt`: +Ответ на команду `/balance give` (`/баланс передать`) +Контекст: +- глобальный +- пользователь, которому были переданы очки +- текущий баланс текущего пользователя +- `{value}`: количество переданных очков + +Пример: `Given {value} {pt} to {u.name}{n}Your current balance: {b.current}` + +#### `set_pt`: +Ответ на команду /balance set (`/баланс установить`) +Контекст: +- глобальный +- пользователь, чей баланс был изменён +- текущий баланс пользователя + +Пример: `Set {u.name} balance to {b.current}` + +### `[answer]` + +#### `from`: +Шаблон ответа: кто прислал ответ (см. [команда `/answer`](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/Discord-Commands-%28RU%29#%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%BA%D0%B2%D0%B5%D1%81%D1%82)) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ + +Пример: `## From: {u.mention}{n}` + +#### `quest`: +Шаблон ответа: информация о квесте (см. [команда `/answer`](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/Discord-Commands-%28RU%29#%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%BA%D0%B2%D0%B5%D1%81%D1%82)) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ + +Пример: `### Quest {q.id}: {q.name}{n}` +#### `expected`: +Шаблон ответа: ожидаемый ответ (см. [команда `/answer`](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/Discord-Commands-%28RU%29#%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%BA%D0%B2%D0%B5%D1%81%D1%82)) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ + +Пример: `### Expected answer:{n}||{q.answer}||` +#### `text`: +Шаблон ответа: текст ответа (см. [команда `/answer`](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/Discord-Commands-%28RU%29#%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%BA%D0%B2%D0%B5%D1%81%D1%82)) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ +- `{text}`: текст ответа + +Пример: `{n}### Passed answer:{n}{text}` +#### `attachment_notice`: +Шаблон ответа: примечание о том, что ответ содержит вложение (см. [команда `/answer`](https://2ndbeam.ru/git/2ndbeam/squad-quest/wiki/Discord-Commands-%28RU%29#%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C-%D0%BD%D0%B0-%D0%BA%D0%B2%D0%B5%D1%81%D1%82)) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ + +Пример: `{n}Passed answer has attachments.` + +#### `accepted_by`: +Форматирует текст ответа с указанием администратора, подтвердившего ответ +Контекст: +- глобальный +- пользователь, подтвердивший ответ +- `{text}`: предыдущий текст сообщения с ответом + +Пример: `{text}{n}Accepted by: {u.mention}` + +#### `rejected_by`: +Форматирует текст ответа с указанием администратора, отклонившего ответ +Контекст: +- глобальный +- пользователь, отклонивший ответ +- `{text}`: предыдущий текст сообщения с ответом + +Пример: `~~{text}~~{n}Rejected by: {u.mention}` + +### `[answer.reply]` + +#### `initial`: +Ответ на команду `/answer` (`/ответить`) +Контекст: +- глобальный +- пользователь, отправивший ответ +- квест, на который отправлен ответ + +Пример: `Your answer has been posted.` + +#### `accepted`: +Сообщение, приходящее пользователю в ЛС, если его ответ на квест был принят +Контекст: +- глобальный +- выполненный квест +- пользователь, подтвердивший ответ +- текущий баланс пользователя + +Пример: `Your answer to the quest {q.id} has been approved.{n}You gained: {q.reward}{n}Your current balance is {b.current}` + +#### `rejected`: +Сообщение, приходящее пользователю в ЛС, если его ответ на квест был отклонён +Контекст: +- глобальный +- пользователь, отклонивший ответ +- квест, на который был отправлен ответ +- текущий баланс пользователя + +Пример: `Your answer to the quest {q.id} has been rejected.` + +#### `error`: +Сообщение, приходящее пользователю в ЛС, если его ответ приняли, но возникла ошибка. +Контекст: +- глобальный +- пользователь, подтвердивший ответ +- квест, на который был отправлен ответ +- текущий баланс пользователя + +Пример: `Your answer to the quest {q.id} has been approved, but some server error happened. Please contact administrator for details.` + +### `[difficulty]` + +#### `easy`: +Текст лёгкой сложности +Контекст: +- глобальный + +Пример: `Easy` + +#### `normal`: +Текст средней сложности +Контекст: +- глобальный + +Пример: `Normal` + +#### `hard`: +Текст тяжёлой сложности +Контекст: +- глобальный + +Пример: `Hard` + +#### `secret`: +Текст секретной сложности +Контекст: +- глобальный + +Пример: `Secret` + +### `[map]` + +#### `room_unlocked`: +Ответ на команду `/unlock` (`/открыть`) +Контекст: +- глобальный +- пользователь, открывший комнату +- полный баланс пользователя +- `{value}`: идентификатор открытой комнаты + +Пример: `Unlocked room #{value}. Your balance: {b.current}` + +#### `moved_to_room`: +Ответ на команду `/move` (`/пойти`) +Контекст: +- глобальный +- переместившийся пользователь +- `{value}`: идентификатор новой комнаты + +Пример: `Moved to room #{value}` + +### `[scoreboard]` + +#### `header`: +Заголовок таблицы лидеров +Контекст: +- глобальный + +Пример: `Current scoreboard:` + +#### `line_format`: +Строка таблицы лидеров +Контекст: +- глобальный +- пользователь +- полный баланс пользователя + +Пример: `{n}{u.name}: **{b.full}** (**{b.current}** on balance+ **{b.rooms}** unlocked rooms networth)` + +#### `you_format`: +Форматирование строки в таблице лидеров, если это строка пользователя, вызвавшего команду +Контекст: +- глобальный +- пользователь +- полный баланс пользователя +- `{text}`: текст строки `line_format` + +Пример: `__{text}__ << You` + +### `[social]` + +#### `sent_channel`: +Ответ на команду `/social msg channel` (`/сообщение отправить канал`) +Контекст: +- глобальный +- отправленное сообщение + +Пример: `Sent {m.link} ({m.id}) to {m.channel}` + +#### `sent_dm`: +Ответ на команду `/social msg user` (`/сообщение отправить пользователь`) +Контекст: +- глобальный +- отправленное сообщение +- пользователь, кому было отправлено сообщение + +Пример: `Sent {m.link} ({m.id}) to {u.mention}` + +#### `edited`: +Ответ на команду `/social edit` (`/сообщение редактировать`) +Контекст: +- глобальный +- изменённое сообщение + +Пример: `Edited message {m.id}` + +#### `deleted`: +Ответ на команду `/social undo` (`/сообщение удалить`) +Контекст: +- глобальный +- удалённое сообщение + +Пример: `Deleted message {m.id}` + +### `[quest]` + +#### `list`: +Заголовок ответа на `/quest list` (`/квест список`) +Контекст: +- глобальный +- `{value}`: количество квестов + +Пример: `Listing {value} quests:` + +#### `list_item`: +Строка квеста в ответе на `/quest list` (`/квест список`) +Контекст: +- глобальный +- квест + +Пример: `{n}{q.id}: {q.name}{n} Description: {q.description}` + +#### `create`: +Ответ на команду `/quest create` (`/квест создать`) +Контекст: +- глобальный +- созданный квест + +Пример: `Created quest {q.id}` + +#### `update`: +Ответ на команду `/quest update` (`/квест обновить`) +Контекст: +- глобальный +- обновлённый квест + +Пример: `Updated quest {q.id}` + +#### `publish`: +Ответ на команду `/quest publish` (`/квест опубликовать`) +Контекст: +- глобальный +- опубликованный квест + +Пример: `Published quest {q.id}: {text}` + +#### `delete`: +Ответ на команду `/quest delete` (`/квест удалить`) +Контекст: +- глобальный +- `{q.id}`: идентификатор удалённого квеста + +Пример: `Deleted quest {q.id}` + +*примечание: помимо* `{q.id}`, *другие теги контекста квеста недоступны в этой команде* + +#### `message_format`: +Формат сообщения квеста в канале квестов +Контекст: +- глобальный +- квест + +Пример: ```### `{q.id}` {q.name} (+{q.reward}){n}Difficulty: *{q.difficulty}*{n}{q.description}``` + +#### `message_not_found`: +Предупреждение в команде `/quest update` (`/квест обновить`), если он был опубликован и его сообщение не было найдено +Контекст: +- глобальный +- опубликованный квест без сообщения + +Пример: `Warning: quest {q.id} message not found` \ No newline at end of file