主线程调度
BDS 游戏主线程不是线程安全的。WS 线程、子插件事件回调中如需调用游戏 API,必须通过 run_on_main 调度:
python
def on_load(lumen):
def on_group_message(pack, reply):
user_id = pack.get("user_id")
# 在主线程执行游戏命令
def kick_player():
result = lumen.mc.runcmdEx("list")
# ...处理...
lumen.run_on_main(kick_player)
lumen.on("message.group.normal", on_group_message)
lumen.mc.runcmd/lumen.mc.broadcast已内置主线程调度,可直接调用。lumen.mc.runcmdEx内部也会调度到主线程,但会阻塞调用线程等待结果。
