随包 Python 运行时
CPython 3.12.2 运行时(python312.dll + python312/)随包提供,解压即用 —— 用户不需要自己装 Python,也不怕系统里的 Python 版本冲突。
OPEN_NTVECTOR 是一个网易我的世界基岩版(MCBE)协议客户端,用 C++17 实现网络、登录与数据包, 内嵌 CPython 3.12.2 执行 Python 插件。
它面向的是写插件的开发者:C++ 侧负责协议、连接和状态维护,你只需要写 Python。
# scripts/my_plugin/my_plugin/__init__.py
def on_start(args):
engine.message('', 'Hello, world!')
engine.register(on_start, "ModEventStartUp")| 我想…… | 去看 |
|---|---|
| 把项目跑起来 | 项目概览 → 构建 → 部署 |
| 看懂运行时的终端界面 | 终端界面 |
| 写一个插件 | 插件开发 |
| 查某个函数怎么用 | engine API · Python 原生接口 |
| 搞懂内部怎么实现的 | 架构 |
| 把 Python 2.7 的旧插件迁过来 | Py2 → Py3 迁移 |
| 项目 | 值 |
|---|---|
| 协议版本 | ProtocolVersion = 860(MCBE 1.21.120) |
| Python 运行时 | 3.12.2(动态链接;python312.dll 与 python312/ 随包提供) |
| C++ 标准 | C++17 |
| 主平台 | Windows(Visual Studio 2026 / MSVC x64) |
| 构建系统 | CMake 4.x(最低 3.20) |
| 第三方依赖 | 源码随仓库提供(OpenSSL / jsoncpp / libdatachannel / libwebsockets / SLikeNet / zlib) |
| 构建前置 | 需本机安装 Python 3.12(含 Development 组件:头文件 + python312.lib) |
一句话理解这个项目
C++ 负责「连上服务器、收发协议包、维护游戏状态」,Python 负责「你的业务逻辑」。 两者之间是 19 个原生模块和一套事件系统。