2023-07-22 23:28:41 +03:00

7.9 KiB
Raw Blame History

Передаваемые классы

Стоит ознакомится

  1. Что такое *args и **kwargs? -> Пост на habr

KuiToi

kt = KuiToi("PluginName"")

kt.log

Константа
Вернёт преднастроенный логгер

kt.name

Константа
Вернёт имя плагина

kt.dir

Константа
Вернёт папку плагина

kt.open()

Параметры как у open()
Открывает файл в kt.dir

kt.register_event(event_name: str, event_func: function)

event_name: str -> Имя ивента, по которому будет вызвана event_func.
event_func: function -> Функция, которая будет вызвана.

В event_func можно передавать как обычную функцию, так и async - await не нужно делать заранее.
Ивенты можно создавать так же свои, со своим именем.
Зарегистрировать можно не ограниченное кол-во ивентов.

kt.call_event(event_name: str, *args, **kwargs) -> list:

event_name: str -> Имя ивента, который будет вызван.
*args, **kwargs -> Аргументы, передаваемые во функции.

async kt.call_async_event(event_name: str, *args, **kwargs) -> list:

event_name: str -> Имя ивента, который будет вызван.
*args, **kwargs -> Аргументы, передаваемые во функции.
Необходимо вызывать с await

Советую ознакомиться с *args, **kwargs, ссылка есть в начале

Данные во все ивенты приходят по типу: {"event_name": event_name, "args": args, "kwargs": kwargs}
args: list -> Представляет из себя массив данных, которые переданы в ивент
kwargs: dict -> Представляет из себя словарь данных, которые переданы в ивент Данные вернутся от всех удачных волнений в массиве.

kt.call_lua_event(event_name: str, *args) -> list:

event_name: str -> Имя ивента, который будет вызван.
*args -> Аргументы, передаваемые во функции.

Добавлено для поддержки обратной совместимости.
lua функция вызывается с прямой передачей аргументов lua_func(*args)

kt.get_player([pid: int], [nick: str]) -> Player | None:

pid: int -> Player ID - Идентификатор игрока.
nick: str -> Player Nick - Ник игрока.

Метод возвращает объект игрока по его pid или nick.
Если не удалось найти игрока вернётся None.

kt.get_players() -> List[Player] | list:

Метод возвращает массив со всеми игроками.
Массив будет пустой, если игроков нет.

kt.players_counter() -> int:

Метод возвращает количество игроков, которые сейчас онлайн.

kt.is_player_connected([pid: int], [nick: str]) -> bool:

pid: int -> Player ID - Идентификатор игрока.
nick: str -> Player Nick - Ник игрока.

Метод возвращает объект игрока по его pid, nick.

Player (или Client)

pl = kt.get_player()
pl = event_data['kwargs']['player']

pl.log -> Logger

Константа
Вернёт преднастроенный логгер

pl.addr -> str

Константа
Вернёт IP адрес игрока

pl.pid -> int

pl.cid -> int

Константа
Вернёт id клиента (pid: PlayerId = cid: ClientId)

pl.key -> str

Константа
Вернёт ключ, переданный при авторизации

pl.nick -> str

Переменная
Ник, переданные при авторизации от сервера BeamMP, можно изменить, последствия не проверенны

pl.roles -> str

Переменная
Роль, переданная при авторизации от сервера BeamMP, можно изменить (Если установить не верную роль, могут происходить неожиданности.)

pl.guest -> bool

Константа
Вернёт является ли игрок гостем, передаётся при авторизации от сервера BeamMP

pl.identifiers -> dict

Константа
Идентификаторы, передаются при авторизации от сервера BeamMP.

pl.ready -> bool

Константа, меняется ядром
Вернёт bool значение, если True -> игрок скачал все ресурсы, прогрузился на карте

pl.cars -> dict

Константа, меняется ядром
Возвращает словарь автомобилей по типу:

{
    1: {
        "packet": car_packet,
        "json": car_json,
        "json_ok": bool(car_json),
        "snowman": snowman,
        "over_spawn": (snowman and allow_snowman) or over_spawn,
        "pos": {
            "pos":[0,0,0],
            "rvel":[0,0,0],
            "rot":[0,0,0],
            "vel":[0,0,0],
            "tim":0,
            "ping":0
        }
    },
    2: ...
}

Где 1 - car_id
Где pkt - Необработанный пакет который пришел от клиента (Для очень опытных пользователй)
Где json - Обработанный пакет, хранящийся в виде dict
Где json_ok - Смогло ли ядро обработать пакет
Где snowman - Снеговик ли машина
Где over_spawn - Заспавнена ли машина сверх лимита (Разрешается через плагины)
Где pos - Позиция машины (Передаётся через udp)

pl.last_position -> dict

Константа, меняется ядром Возвращает последнюю позицию игрока

async pl.kick([reason: str = "Kicked!"]) -> None

reason: str -> Причина кика. Параметр не обязателен, по дефолту: Kicked! Кикает игрока с сервера

async pl.send_message(message: str, [to_all: bool = True]) -> None

message: str -> Текст сообщения, отправляется без "Server:" to_all: bool -> Нужно ли отправить это сообщение всем? Параметр не обязателен, по дефолту: True Отправляет сообщение игроку или всем сразу

async pl.send_event(event_name: str, event_data: Any, [to_all: bool = True]) -> None

event_name: str -> Имя ивента, который будет вызван event_data: Any -> Отправляемые данные в ивент. to_all: bool -> Нужно ли отправить это сообщение всем? Параметр не обязателен, по дефолту: True Отправляет ивент на клиент.
Если event_data будет tuple, list, dict, то перед отправкой ядро конвертирует в json через json.dumps(event_data) Иначе данные будут строкой, без регуляции;

async pl.delete_car(self, car_id: int) -> None

car_id: int -> Идентификатор машины Удалят машину у игрока