Skip to content

主线程调度

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 内部也会调度到主线程,但会阻塞调用线程等待结果。


基于 MIT 许可协议发布