7.9 KiB
Передаваемые классы
Стоит ознакомится
- Что такое
*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
-> Идентификатор машины
Удалят машину у игрока