diff --git a/docs/en/readme.md b/docs/en/readme.md index ec5c470..c526d91 100644 --- a/docs/en/readme.md +++ b/docs/en/readme.md @@ -1,9 +1,9 @@ # Documentation for KuiToi Server -#### The documentation has not been perfected yet, but one day it will definitely happen +#### At the moment, the English documentation is out of date and its usage is not recommended. 1. Setup and Start server - [here](setup) 2. Plugins and Events system - [here](plugins) 3. MultiLanguage - [here](./multilanguage) -4. RESP API - [here](./web) -5. Something new +4. KuiToi WebAPI - [here](./web) +5. Something new... diff --git a/docs/ru/multilanguage/readme.md b/docs/ru/multilanguage/readme.md index e69de29..6c2fe52 100644 --- a/docs/ru/multilanguage/readme.md +++ b/docs/ru/multilanguage/readme.md @@ -0,0 +1,4 @@ +# MultiLanguage - Поддержка i18n + +В [example.json](./example.json) это копия [src/modules/i18n/files/ru.json](../../../src/modules/i18n/files/ru.json)\ +Если есть желание перевести на не переведённый ранее язык, или обновить уже существующий перевод буду рад вашим пул реквестам. diff --git a/docs/ru/plugins/async_example.py b/docs/ru/plugins/async_example.py new file mode 100644 index 0000000..1244eda --- /dev/null +++ b/docs/ru/plugins/async_example.py @@ -0,0 +1,37 @@ +import json + +try: + import KuiToi +except ImportError: + pass + +kt = KuiToi("Example") +log = kt.log +config = {"config_version": 0.1, "sql": {"enabled": False, "host": "127.0.0.1", "port": 3363, "database": "fucklua"}} +cfg_file = "config.json" + + +async def my_event_handler(event_data): + log.info(f"{event_data}") + + +async def load(): + # Инициализация плагина + with open(cfg_file, 'w') as f: + json.dump(config, f) + cgf = config + log.info(cgf) + ev.register_event("my_event", my_event_handler) + log.info("Плагин загружен успешно.") + + +async def start(): + # Запуск процессов плагина + await ev.call_async_event("my_event") + await ev.call_async_event("my_event", "Some data", data="some data too") + log.info("Плагин запустился успешно.") + + +async def unload(): + # Код завершающий все процессы + log.info("Плагин выгружен успешно.") diff --git a/docs/ru/plugins/example.py b/docs/ru/plugins/example.py index 7d82475..536a170 100644 --- a/docs/ru/plugins/example.py +++ b/docs/ru/plugins/example.py @@ -1,36 +1,37 @@ -import KuiToi # Import server object +import json -beam = KuiToi("TestPlugin") # Init plugin with name "TestPlugin" -log = beam.log # Use logger from server +try: + import KuiToi +except ImportError: + pass + +kt = KuiToi("Example") +log = kt.log +config = {"config_version": 0.1, "sql": {"enabled": False, "host": "127.0.0.1", "port": 3363, "database": "fucklua"}} +cfg_file = "config.json" -def on_load(): - # When plugin initialization Server uses plugin.load() to load plugin. - # def load(): is really needed - log.info(beam.name) +def my_event_handler(event_data): + log.info(f"{event_data}") -# Events handlers - -def on_started(): - # Simple event handler - log.info("Server starting...") +def load(): + # Инициализация плагина + with open(cfg_file, 'w') as f: + json.dump(config, f) + cgf = config + log.info(cgf) + ev.register_event("my_event", my_event_handler) + log.info("Плагин загружен успешно.") -# Simple event register -beam.register_event("on_started", on_started) +def start(): + # Запуск процессов плагина + ev.call_event("my_event") + ev.call_event("my_event", "Some data", data="some data too") + log.info("Плагин запустился успешно.") -def any_func(data=None): - # Custom event handler - log.info(f"Data from any_func: {data}") - - -# Create custom event -beam.register_event("my_event", any_func) - -# Call custom event -beam.call_event("my_event") -beam.call_event("my_event", "Some data") -# This will be an error since any_func accepts only one argument at the input -beam.call_event("my_event", "Some data", "Some data1") +def unload(): + # Код завершающий все процессы + log.info("Плагин выгружен успешно.") diff --git a/docs/ru/plugins/readme.md b/docs/ru/plugins/readme.md index 339aa98..ed80b1b 100644 --- a/docs/ru/plugins/readme.md +++ b/docs/ru/plugins/readme.md @@ -12,24 +12,81 @@ ## Пример ```python -import KuiToi +try: + import KuiToi +except ImportError: + pass -beam = KuiToi("TestPlugin") -logger = beam.log +kt = KuiToi("Example") +log = kt.log -def load(): # Plugins load from here - print(beam.name) +def my_event_handler(event_data): + log.info(f"{event_data}") -def on_started(): - logger.info("Server starting...") +def load(): + # Инициализация плагина + ev.register_event("my_event", my_event_handler) + log.info("Плагин загружен успешно.") -beam.register_event("on_started", on_started) + +def start(): + # Запуск процессов плагина + ev.call_event("my_event") + ev.call_event("my_event", "Some data", data="some data too") + log.info("Плагин запустился успешно.") + + +def unload(): + # Код завершающий все процессы + log.info("Плагин выгружен успешно.") ``` -Так же более обширный пример можно найти в [example.py](./example.py) +* Рекомендуется использовать `open()` после `load()`, иначе стоит использовать `kt.load()` - Создаёт файл в папке `plugin//` +* Создание своего ивента : `kt.register_event("my_event", my_event_function)` - +* Вызов ивента: `kt.call_event("my_event")` +* Вызов ивента с данными: `kt.call_event("my_event", data, data2=data2)` +* Базовые ивенты: _Позже напишу_ -* Базовые ивенты: ['on_started', 'on_auth, 'on_stop'] -* Создание своего ивента : `beam.register_event("my_event", my_event_function)` -* Вызов ивента: `beam.call_event("my_event")` -* Вызов ивента с данными: `beam.call_event("my_event", data, data2)` -* Вызовы с указанием переменой _**не поддерживаются**_: `beam.call_event("my_event", data=data)` +## Async функции + +Поддержка async есть + +```python +try: + import KuiToi +except ImportError: + pass + +kt = KuiToi("Example") +log = kt.log + + +async def my_event_handler(event_data): + log.info(f"{event_data}") + + +async def load(): + # Инициализация плагина + ev.register_event("my_event", my_event_handler) + log.info("Плагин загружен успешно.") + + +async def start(): + # Запуск процессов плагина + await ev.call_async_event("my_event") + await ev.call_async_event("my_event", "Some data", data="some data too") + log.info("Плагин запустился успешно.") + + +async def unload(): + # Код завершающий все процессы + log.info("Плагин выгружен успешно.") + +``` + +Так же более обширный пример можно найти в [async_example.py](./async_example.py) + +* Создание своего ивента: `kt.register_event("my_event", my_event_function)` (в register_event стоит проверка на функцию) +* Вызов async ивента: `kt.call_async_event("my_event")` +* Вызов async ивента: `kt.call_async_event("my_event", data, data2=data2)` +* Базовые async ивенты: _Позже напишу_ diff --git a/docs/ru/readme.md b/docs/ru/readme.md index a9e6867..9d8e158 100644 --- a/docs/ru/readme.md +++ b/docs/ru/readme.md @@ -5,5 +5,5 @@ 1. Настройка и Запуск сервера - [тута](./setup) 2. Плагины и Ивент система - [тута](./plugins) 3. Мультиязычность - [тута](./multilanguage) -4. RESP API - [тута](./web) +4. KuiToi WebAPI - [тута](./web) 5. Тут будет что-то ново.... diff --git a/docs/ru/setup/readme.md b/docs/ru/setup/readme.md index 45b1ed2..df02272 100644 --- a/docs/ru/setup/readme.md +++ b/docs/ru/setup/readme.md @@ -38,12 +38,39 @@ Game: players: 8 Server: debug: false - description: This server uses KuiToi! + description: Welcome to KuiToi Server! + language: en name: KuiToi-Server server_ip: 0.0.0.0 - server_port: 30814 + server_port: 30813 +WebAPI: + enabled: false + secret_key: + server_ip: 127.0.0.1 + server_port: 8433 + ``` +### Auth + * Если поставить `private: false` и не установить `key`, то сервер запросит BeamMP ключ, без него не запустится. * Введя BeamMP ключ сервер появится в списке лаунчера. * Взять ключ можно тут: [https://beammp.com/k/keys](https://beammp.com/k/keys) +### Game + +* `map` указывается только название карты, т.е. открываем мод с картой в `map.zip/levels` - вот тут будет название карты, его мы и вставляем +* `max_cars` - Максимальное количество машин на игрока +* `players` - Максимально количество игроков + +### Server + +* `debug` - Нужно ли выводить debug сообщения (только для опытных пользователей, немного теряется в производительности) +* `description` - Описания сервера для лаунчера BeamMP +* `language` - С каким языком запустится сервер (Доступные на данный момент: en, ru) +* `name` - Названия сервер для лаунчера BeamMP +* `server_ip` - Какой IP адрес занять серверу (только для опытных пользователей, по умолчанию 0.0.0.0) +* `server_port` - На каком порту будет работать сервер + +### WebAPI +##### _Доки не готовы_ + diff --git a/docs/ru/web/readme.md b/docs/ru/web/readme.md index 097a9b7..989a64b 100644 --- a/docs/ru/web/readme.md +++ b/docs/ru/web/readme.md @@ -1,3 +1,14 @@ -# Web RESP API для сервера +# WebAPI для сервера + +## Доступные endpoints + +* `/stop`: + * Необходимые парамеры: + * `secret_key` - Ключ, который указан в конфигурации сервера + + +* `/event.get` + * Точка не готова + * Необходимые парамеры: + * `secret_key` - Ключ, который указан в конфигурации сервера -В разработке \ No newline at end of file