7.9 KiB
Передаваемые классы
Стоит ознакомится
- Что такое
*argsи**kwargs? -> Пост на habr
KuiToi
kt = KuiToi("PluginName"")
kt.log
Константа
Вернёт преднастроенный логгер
kt.name
Константа
Вернёт имя плагина
kt.dir
Константа
Вернёт папку плагина
kt.open()
Параметры как у open()
Открывает файл в kt.dir
kt.register(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 -> Идентификатор машины
Удалят машину у игрока