|  | 
| 1 | 1 | --- | 
| 2 |  | -title: Как использовать | 
| 3 |  | -description: Практические примеры того, как читать, записывать и управлять файлами конфигурации из разных плагинов. | 
| 4 |  | -icon: lucide:book-open | 
|  | 2 | +title: Установка | 
|  | 3 | +description: Подробное руководство по установке плагина, включая системные требования и зависимости. | 
|  | 4 | +icon: lucide:download | 
| 5 | 5 | --- | 
| 6 | 6 | 
 | 
| 7 |  | -**Плагин Configs** предоставляет простой API для управления файлами конфигурации в экосистеме Plugify. Основные функции включают `ReadConfig`, `WriteConfig` и `MergeConfig`. Это руководство проведет вас через использование этих функций с практическими примерами. | 
| 8 |  | - | 
| 9 |  | -## **Начало работы** | 
| 10 |  | - | 
| 11 |  | -Чтобы использовать плагин Configs, сначала убедитесь, что он загружен. После загрузки вы можете получить доступ к его функциям через API Plugify. Имя плагина — `configs`. | 
| 12 |  | - | 
| 13 |  | -## **Чтение конфигурации** | 
| 14 |  | - | 
| 15 |  | -Функция `ReadConfig` используется для чтения файла конфигурации из каталога другого плагина. Она автоматически определяет формат файла и возвращает данные в виде строки. | 
| 16 |  | - | 
| 17 |  | -### **Пример: Чтение файла JSON** | 
| 18 |  | - | 
| 19 |  | -Предположим, у вас есть плагин с именем `my_plugin`, который имеет файл конфигурации `config.json`, и пользователь создал свой собственный файл `user.json` в папке `res/configs`. | 
| 20 |  | - | 
| 21 |  | -**Код C++** | 
| 22 |  | -```cpp | 
| 23 |  | -#include <iostream> | 
| 24 |  | -#include "configs.hpp" // Сгенерированный заголовочный файл | 
| 25 |  | - | 
| 26 |  | -void ReadMyPluginConfig() { | 
| 27 |  | -    // Чтение файла конфигурации из 'my_plugin' | 
| 28 |  | -    const char* result = configs::ReadConfig("my_plugin", "config.json"); | 
| 29 |  | -    if (result) { | 
| 30 |  | -        std::cout << result << std::endl; | 
| 31 |  | -        delete[] result; // Освободить память, выделенную плагином | 
| 32 |  | -    } | 
| 33 |  | -} | 
| 34 |  | -``` | 
| 35 |  | - | 
| 36 |  | -**Файл конфигурации (`my_plugin/config.json`)** | 
| 37 |  | -```json | 
| 38 |  | -{ | 
| 39 |  | -  "setting1": "default_value", | 
| 40 |  | -  "setting2": 123 | 
| 41 |  | -} | 
| 42 |  | -``` | 
| 43 |  | - | 
| 44 |  | -**Пользовательский файл конфигурации (`res/configs/my_plugin/user.json`)** | 
| 45 |  | -```json | 
| 46 |  | -{ | 
| 47 |  | -  "setting1": "user_value" | 
| 48 |  | -} | 
| 49 |  | -``` | 
| 50 |  | - | 
| 51 |  | -**Ожидаемый вывод** | 
| 52 |  | -Функция `ReadConfig` автоматически объединит пользовательскую конфигурацию с конфигурацией по умолчанию. | 
| 53 |  | -```json | 
| 54 |  | -{ | 
| 55 |  | -  "setting1": "user_value", | 
| 56 |  | -  "setting2": 123 | 
| 57 |  | -} | 
| 58 |  | -``` | 
| 59 |  | - | 
| 60 |  | -### **Важное примечание** | 
| 61 |  | -Плагин Configs выделяет память для возвращаемой строки, которую необходимо освободить вручную с помощью `delete[] result;` после использования, чтобы избежать утечек памяти. | 
| 62 |  | - | 
| 63 |  | -## **Запись конфигурации** | 
| 64 |  | - | 
| 65 |  | -Функция `WriteConfig` используется для записи строки в файл конфигурации в папке `res/configs`. | 
| 66 |  | - | 
| 67 |  | -### **Пример: Запись в файл конфигурации** | 
| 68 |  | -Этот пример показывает, как записать новую конфигурацию в файл `user.json` для `my_plugin`. | 
| 69 |  | - | 
| 70 |  | -**Код C++** | 
| 71 |  | -```cpp | 
| 72 |  | -#include "configs.hpp" | 
| 73 |  | - | 
| 74 |  | -void WriteMyPluginConfig() { | 
| 75 |  | -    const char* newData = R"({ "setting1": "new_user_value", "setting3": true })"; | 
| 76 |  | -    // Запись новой конфигурации в 'user.json' для 'my_plugin' | 
| 77 |  | -    configs::WriteConfig("my_plugin", "user.json", newData); | 
| 78 |  | -} | 
| 79 |  | -``` | 
| 80 |  | - | 
| 81 |  | -**Итоговый `user.json`** | 
| 82 |  | -```json | 
| 83 |  | -{ | 
| 84 |  | -  "setting1": "new_user_value", | 
| 85 |  | -  "setting3": true | 
| 86 |  | -} | 
| 87 |  | -``` | 
| 88 |  | - | 
| 89 |  | -## **Объединение конфигураций** | 
| 90 |  | - | 
| 91 |  | -Функция `MergeConfig` объединяет два файла конфигурации. Это полезно, когда вам нужно объединить конфигурацию по умолчанию с пользовательской конфигурацией вручную. | 
| 92 |  | - | 
| 93 |  | -### **Пример: Объединение конфигурации по умолчанию с пользовательской конфигурацией** | 
| 94 |  | -Этот пример показывает, как объединить `default.json` с `user.json`. | 
| 95 |  | - | 
| 96 |  | -**Код C++** | 
| 97 |  | -```cpp | 
| 98 |  | -#include <iostream> | 
| 99 |  | -#include "configs.hpp" | 
| 100 |  | - | 
| 101 |  | -void MergeMyConfigs() { | 
| 102 |  | -    const char* defaultConfig = R"({ "setting1": "default", "setting2": 10 })"; | 
| 103 |  | -    const char* userConfig = R"({ "setting1": "user" })"; | 
| 104 |  | -     | 
| 105 |  | -    const char* mergedResult = configs::MergeConfig(defaultConfig, userConfig, "json"); | 
| 106 |  | -    if (mergedResult) { | 
| 107 |  | -        std::cout << mergedResult << std::endl; | 
| 108 |  | -        delete[] mergedResult; | 
| 109 |  | -    } | 
| 110 |  | -} | 
| 111 |  | -``` | 
| 112 |  | - | 
| 113 |  | -**Ожидаемый вывод** | 
| 114 |  | -```json | 
| 115 |  | -{ | 
| 116 |  | -  "setting1": "user", | 
| 117 |  | -  "setting2": 10 | 
| 118 |  | -} | 
| 119 |  | -``` | 
| 120 |  | - | 
| 121 |  | -## **Рекомендации** | 
| 122 |  | -- **Всегда освобождайте память**: Не забывайте освобождать память, возвращаемую `ReadConfig` и `MergeConfig`, с помощью `delete[]`. | 
| 123 |  | -- **Используйте правильные имена файлов**: Убедитесь, что вы используете правильные имена файлов конфигурации при чтении или записи. | 
| 124 |  | -- **Обрабатывайте ошибки**: Проверяйте наличие нулевых указателей при чтении конфигураций, чтобы корректно обрабатывать ошибки. | 
| 125 |  | - | 
| 126 |  | -## **Заключение** | 
| 127 |  | - | 
| 128 |  | -Плагин Configs предоставляет простой, но мощный способ управления файлами конфигурации в Plugify. Следуя примерам и рекомендациям, изложенным в этом руководстве, вы можете эффективно читать, записывать и объединять конфигурации, обеспечивая при этом сохранение пользовательских настроек. | 
|  | 7 | +**Configs Plugin** можно установить двумя способами: вручную загрузив релиз или с помощью менеджера пакетов Plugify. Это руководство описывает оба метода и предоставляет пошаговые инструкции. | 
|  | 8 | + | 
|  | 9 | +## **Метод 1: Ручная установка** | 
|  | 10 | + | 
|  | 11 | +::steps | 
|  | 12 | +### **Скачайте релиз** | 
|  | 13 | +1. Перейдите в [репозиторий Configs Plugin](https://github.com/untrustedmodders/plugify-configs). | 
|  | 14 | +2. Перейдите в раздел **Releases**. | 
|  | 15 | +3. Скачайте последний релиз (например, `configs.zip`). | 
|  | 16 | + | 
|  | 17 | +### **Распакуйте архив** | 
|  | 18 | +1. Распакуйте загруженный архив во временную папку. | 
|  | 19 | + | 
|  | 20 | +### **Поместите плагин в папку plugins** | 
|  | 21 | +1. Найдите папку `plugins` в каталоге установки Plugify. | 
|  | 22 | +2. Скопируйте распакованные файлы плагина в папку `plugins`. | 
|  | 23 | + | 
|  | 24 | +### **Проверьте установку** | 
|  | 25 | +1. Запустите Plugify. | 
|  | 26 | +2. Плагин Configs должен быть доступен для использования. | 
|  | 27 | +:: | 
|  | 28 | + | 
|  | 29 | +## **Метод 2: Установка через менеджер пакетов** | 
|  | 30 | + | 
|  | 31 | +::steps | 
|  | 32 | +### **Добавьте репозиторий (если требуется)** | 
|  | 33 | +Если Configs Plugin не найден в стандартном репозитории, его нужно добавить вручную. | 
|  | 34 | + | 
|  | 35 | +#### **Вариант A: Добавление через команду** | 
|  | 36 | +1. Выполните следующую команду в терминале: | 
|  | 37 | +   ```bash | 
|  | 38 | +   plg repo https://untrustedmodders.github.io/plugify-configs/configs.json | 
|  | 39 | +   ``` | 
|  | 40 | + | 
|  | 41 | +#### **Вариант B: Добавление через `plugify.pconfig`** | 
|  | 42 | +1. Откройте файл `plugify.pconfig` в каталоге установки Plugify. | 
|  | 43 | +2. Добавьте следующую строку в раздел `repositories`: | 
|  | 44 | +   ```json | 
|  | 45 | +   { | 
|  | 46 | +     "repositories": [ | 
|  | 47 | +       "https://untrustedmodders.github.io/plugify-configs/configs.json" | 
|  | 48 | +     ] | 
|  | 49 | +   } | 
|  | 50 | +   ``` | 
|  | 51 | + | 
|  | 52 | +### **Установите плагин** | 
|  | 53 | +1. Выполните следующую команду в терминале: | 
|  | 54 | +   ```bash | 
|  | 55 | +   plg install configs | 
|  | 56 | +   ``` | 
|  | 57 | + | 
|  | 58 | +### **Проверьте установку** | 
|  | 59 | +1. Запустите Plugify. | 
|  | 60 | +2. Плагин Configs должен быть установлен и готов к использованию. | 
|  | 61 | +:: | 
|  | 62 | + | 
|  | 63 | +## **Структура папок** | 
|  | 64 | + | 
|  | 65 | +После установки плагин Configs должен иметь следующую структуру папок: | 
|  | 66 | + | 
|  | 67 | +::file-tree | 
|  | 68 | +--- | 
|  | 69 | +tree: | 
|  | 70 | +- res/plugins: | 
|  | 71 | +    - configs: | 
|  | 72 | +        - bin: | 
|  | 73 | +            - configs.dll | 
|  | 74 | +            - libconfigs.so | 
|  | 75 | +        - ^configs.pplugin^ | 
|  | 76 | +--- | 
|  | 77 | +:: | 
|  | 78 | + | 
|  | 79 | +### **Пояснение** | 
|  | 80 | +- **`res/plugins/configs`**: Корневая папка для плагина Configs. | 
|  | 81 | +- **`bin`**: Содержит скомпилированные бинарные файлы плагина (`.dll` для Windows, `.so` для Linux/macOS). | 
|  | 82 | +- **`configs.pplugin`**: Манифест плагина, описывающий его и экспортируемые функции. | 
|  | 83 | + | 
|  | 84 | +## **Устранение неполадок** | 
|  | 85 | + | 
|  | 86 | +### **Плагин не найден** | 
|  | 87 | +- Убедитесь, что URL репозитория указан правильно и доступен. | 
|  | 88 | +- Проверьте, что репозиторий был добавлен в `plugify.pconfig` или через команду `plg repo <url>`. | 
|  | 89 | + | 
|  | 90 | +### **Не удалось установить** | 
|  | 91 | +- Проверьте интернет-соединение. | 
|  | 92 | +- Убедитесь, что у вас установлена последняя версия Plugify. | 
0 commit comments