mirror of
https://github.com/kuitoi/kuitoi-Server.git
synced 2026-06-18 14:41:21 +00:00
Update docs
This commit is contained in:
+3
-3
@@ -1,9 +1,9 @@
|
|||||||
# Documentation for KuiToi Server
|
# 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)
|
1. Setup and Start server - [here](setup)
|
||||||
2. Plugins and Events system - [here](plugins)
|
2. Plugins and Events system - [here](plugins)
|
||||||
3. MultiLanguage - [here](./multilanguage)
|
3. MultiLanguage - [here](./multilanguage)
|
||||||
4. RESP API - [here](./web)
|
4. KuiToi WebAPI - [here](./web)
|
||||||
5. Something new
|
5. Something new...
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# MultiLanguage - Поддержка i18n
|
||||||
|
|
||||||
|
В [example.json](./example.json) это копия [src/modules/i18n/files/ru.json](../../../src/modules/i18n/files/ru.json)\
|
||||||
|
Если есть желание перевести на не переведённый ранее язык, или обновить уже существующий перевод буду рад вашим пул реквестам.
|
||||||
|
|||||||
@@ -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("Плагин выгружен успешно.")
|
||||||
+28
-27
@@ -1,36 +1,37 @@
|
|||||||
import KuiToi # Import server object
|
import json
|
||||||
|
|
||||||
beam = KuiToi("TestPlugin") # Init plugin with name "TestPlugin"
|
try:
|
||||||
log = beam.log # Use logger from server
|
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():
|
def my_event_handler(event_data):
|
||||||
# When plugin initialization Server uses plugin.load() to load plugin.
|
log.info(f"{event_data}")
|
||||||
# def load(): is really needed
|
|
||||||
log.info(beam.name)
|
|
||||||
|
|
||||||
|
|
||||||
# Events handlers
|
def load():
|
||||||
|
# Инициализация плагина
|
||||||
def on_started():
|
with open(cfg_file, 'w') as f:
|
||||||
# Simple event handler
|
json.dump(config, f)
|
||||||
log.info("Server starting...")
|
cgf = config
|
||||||
|
log.info(cgf)
|
||||||
|
ev.register_event("my_event", my_event_handler)
|
||||||
|
log.info("Плагин загружен успешно.")
|
||||||
|
|
||||||
|
|
||||||
# Simple event register
|
def start():
|
||||||
beam.register_event("on_started", on_started)
|
# Запуск процессов плагина
|
||||||
|
ev.call_event("my_event")
|
||||||
|
ev.call_event("my_event", "Some data", data="some data too")
|
||||||
|
log.info("Плагин запустился успешно.")
|
||||||
|
|
||||||
|
|
||||||
def any_func(data=None):
|
def unload():
|
||||||
# Custom event handler
|
# Код завершающий все процессы
|
||||||
log.info(f"Data from any_func: {data}")
|
log.info("Плагин выгружен успешно.")
|
||||||
|
|
||||||
|
|
||||||
# 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")
|
|
||||||
|
|||||||
+71
-14
@@ -12,24 +12,81 @@
|
|||||||
## Пример
|
## Пример
|
||||||
|
|
||||||
```python
|
```python
|
||||||
import KuiToi
|
try:
|
||||||
|
import KuiToi
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
beam = KuiToi("TestPlugin")
|
kt = KuiToi("Example")
|
||||||
logger = beam.log
|
log = kt.log
|
||||||
|
|
||||||
def load(): # Plugins load from here
|
def my_event_handler(event_data):
|
||||||
print(beam.name)
|
log.info(f"{event_data}")
|
||||||
|
|
||||||
def on_started():
|
def load():
|
||||||
logger.info("Server starting...")
|
# Инициализация плагина
|
||||||
|
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/<plugin_name>/<filename>`
|
||||||
|
* Создание своего ивента : `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']
|
## Async функции
|
||||||
* Создание своего ивента : `beam.register_event("my_event", my_event_function)`
|
|
||||||
* Вызов ивента: `beam.call_event("my_event")`
|
Поддержка async есть
|
||||||
* Вызов ивента с данными: `beam.call_event("my_event", data, data2)`
|
|
||||||
* Вызовы с указанием переменой _**не поддерживаются**_: `beam.call_event("my_event", data=data)`
|
```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 ивенты: _Позже напишу_
|
||||||
|
|||||||
+1
-1
@@ -5,5 +5,5 @@
|
|||||||
1. Настройка и Запуск сервера - [тута](./setup)
|
1. Настройка и Запуск сервера - [тута](./setup)
|
||||||
2. Плагины и Ивент система - [тута](./plugins)
|
2. Плагины и Ивент система - [тута](./plugins)
|
||||||
3. Мультиязычность - [тута](./multilanguage)
|
3. Мультиязычность - [тута](./multilanguage)
|
||||||
4. RESP API - [тута](./web)
|
4. KuiToi WebAPI - [тута](./web)
|
||||||
5. Тут будет что-то ново....
|
5. Тут будет что-то ново....
|
||||||
|
|||||||
+29
-2
@@ -38,12 +38,39 @@ Game:
|
|||||||
players: 8
|
players: 8
|
||||||
Server:
|
Server:
|
||||||
debug: false
|
debug: false
|
||||||
description: This server uses KuiToi!
|
description: Welcome to KuiToi Server!
|
||||||
|
language: en
|
||||||
name: KuiToi-Server
|
name: KuiToi-Server
|
||||||
server_ip: 0.0.0.0
|
server_ip: 0.0.0.0
|
||||||
server_port: 30814
|
server_port: 30813
|
||||||
|
WebAPI:
|
||||||
|
enabled: false
|
||||||
|
secret_key: <random_key>
|
||||||
|
server_ip: 127.0.0.1
|
||||||
|
server_port: 8433
|
||||||
|
|
||||||
```
|
```
|
||||||
|
### Auth
|
||||||
|
|
||||||
* Если поставить `private: false` и не установить `key`, то сервер запросит BeamMP ключ, без него не запустится.
|
* Если поставить `private: false` и не установить `key`, то сервер запросит BeamMP ключ, без него не запустится.
|
||||||
* Введя BeamMP ключ сервер появится в списке лаунчера.
|
* Введя BeamMP ключ сервер появится в списке лаунчера.
|
||||||
* Взять ключ можно тут: [https://beammp.com/k/keys](https://beammp.com/k/keys)
|
* Взять ключ можно тут: [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
|
||||||
|
##### _Доки не готовы_
|
||||||
|
|
||||||
|
|||||||
+13
-2
@@ -1,3 +1,14 @@
|
|||||||
# Web RESP API для сервера
|
# WebAPI для сервера
|
||||||
|
|
||||||
|
## Доступные endpoints
|
||||||
|
|
||||||
|
* `/stop`:
|
||||||
|
* Необходимые парамеры:
|
||||||
|
* `secret_key` - Ключ, который указан в конфигурации сервера
|
||||||
|
|
||||||
|
|
||||||
|
* `/event.get`
|
||||||
|
* Точка не готова
|
||||||
|
* Необходимые парамеры:
|
||||||
|
* `secret_key` - Ключ, который указан в конфигурации сервера
|
||||||
|
|
||||||
В разработке
|
|
||||||
Reference in New Issue
Block a user