5.2 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
常量,由核心更改
返回布尔值,如果为 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.dumps(event_data) 将其转换为 json,然后再发送。
否则,数据将是字符串,不受限制;
async pl.delete_car(self, car_id: int) -> None
car_id: int
-> 要删除的车辆的 ID
删除玩家的车辆