ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

mindcraft 通过 ViaProxy 连接不支持的 Minecraft 服务端版本:完整配置指南

mindcraft 通过 ViaProxy 连接不支持的 Minecraft 服务端版本:完整配置指南 AI Agent人工智能游戏开发【免费下载链接】mindcraftMinecraft AI with LLMsMineflayer项目地址https://gitcode.com/GitHub_Trending/mi/mindcraft点击查看免费下载本文是基于 mindcraft 仓库 services/viaproxy/README.md 编写的实战指南。mindcraftMinecraft AI with LLMs Mineflayer基于 mineflayer / minecraft-protocol 构建对服务端版本有严格的兼容范围当目标服务端运行在不被支持的版本上时即可借助 ViaProxy 协议转换层让 LLM 驱动的机器人顺利加入服务器。读完本文你将掌握 ViaProxy 容器的一键启动、离线服快速接入、在线服微软账号登录与管理、配置持久化以及常见排错方法。为什么需要 ViaProxymindcraft 的版本兼容边界mindcraft 的机器人依赖 Mineflayer 生态与minecraft-protocol库与服务端通信而协议库对 Minecraft 版本的支持是有限的。这一点在源码中有明确体现src/mindcraft/mcserver.js 中的getServer()会在启动阶段 ping 目标服务器读取其版本号并用mc.supportedVersions判断版本是否受支持isSupported检查通过后才会放行连接否则直接抛出 MC server was found ..., but version is unsupported 错误src/mindcraft/mindcraft.js 在创建每个 Agent 前调用getServer(settings.host, settings.port, settings.minecraft_version)若minecraft_version为auto且探测失败则降级为null后尝试直接连接src/agent/connection_handler.js 将version_mismatch定义为致命错误keywords 含outdated、version、client一旦发生即视为无法恢复的连接失败。这意味着当目标服务器使用过新、过旧或非标准协议版本时机器人无法直接加入。ViaProxyViaVersion 系列工具的服务端实现的作用正是在机器人客户端与目标服务器之间插入一层协议翻译机器人按自己支持的版本与 ViaProxy 通信ViaProxy 再以目标服务器的协议版本转发到真实服务端从而突破版本限制。仓库主 README 在 Docker 章节也给出了提示To connect to an unsupported minecraft version, you can try to use viaproxy见 README.md。一键启动Docker Compose 中的 viaproxy 服务仓库根目录的 docker-compose.yml 中已经内置了viaproxy服务定义这也是使用它的最简方式viaproxy: #use this service to connect to an unsupported minecraft server versions. more info: ./services/viaproxy/README.md image: ghcr.io/viaversion/viaproxy:latest volumes: - ./services/viaproxy:/app/run ports: - 25568:25568 profiles: - viaproxy stdin_open: true tty: true关键点说明镜像ghcr.io/viaversion/viaproxy:latest官方发布的 ViaProxy 容器镜像卷挂载将仓库内services/viaproxy/目录挂载到容器的/app/runViaProxy 的配置文件、账号数据saves.json都会落盘到这个目录便于持久化与备份端口宿主机25568映射到容器25568这是 mindcraft 机器人将连接的 ViaProxy 监听端口profileviaproxy属于可选 profile默认docker-compose up不会启动它必须显式指定--profile viaproxystdin_open/tty保持容器交互式终端这是后续docker attach进入容器执行account命令的前提。启动命令docker-compose --profile viaproxy up首次启动后ViaProxy 会在挂载目录即仓库的services/viaproxy/中自动生成配置文件viaproxy.yml。该文件是后续所有接入配置目标地址、认证方式、账号索引等的核心所在。离线服接入三步完成对于不需要正版验证offline的服务器接入过程非常简单按原文档的步骤执行即可第一步编辑viaproxy.yml设置目标服务器修改自动生成的 services/viaproxy/viaproxy.yml首次启动后才会生成将target-address改为你真正要连接的服务端地址与端口。第二步修改settings.js把机器人指向 ViaProxy编辑仓库根目录的 settings.js将连接目标改为 ViaProxy 容器的地址与端口host: host.docker.internal, port: 25568,host使用host.docker.internal这是 mindcraft 容器访问宿主机回环地址的特殊主机名。docker-compose.yml 中 mindcraft 服务已通过extra_hosts: host.docker.internal:host-gateway注入该映射port固定为25568对应 docker-compose.yml 中暴露的映射端口。第三步正常启动 mindcraftnode main.js此时机器人先与 ViaProxy协议版本由其自行协商支持握手再由 ViaProxy 转发到目标服务端。由于 offline 服务器不做正版验证ViaProxy 以离线模式直连即可无需任何账号配置。补充settings.js中minecraft_version可保持auto启动时 src/mindcraft/mcserver.js 会从 ViaProxy 探测到的服务信息中解析版本号ViaProxy 上报的通常是其自身翻译后的版本从而绕过getServer()的supportedVersions校验。在线服接入微软账号登录与管理如果目标服务器开启了正版验证onlineViaProxy 必须以一个真实的正版账号身份与服务器通信。原文档明确指出这involves more effort需要更多步骤具体流程如下1. 启动容器并附加终端先启动 ViaProxy 容器然后在 mindcraft 目录下另开一个终端附加到容器docker attach mindcraft-viaproxy-1容器名mindcraft-viaproxy-1由 docker-compose 按项目名-服务名-序号自动生成对应 docker-compose.yml 中的viaproxy服务与stdin_open: true、tty: true配置。2. 使用account命令管理账号附加成功后即可在容器交互终端中使用account命令族命令作用account list列出当前已保存的全部账号及其 idaccount add microsoft添加一个微软账号执行后按提示完成登录流程account select id选中要使用的账号id 可通过account list查看account remove id移除某个账号id 可通过account list查看account deselect取消当前选中的账号回到离线模式典型操作序列account add microsoft完成交互式登录 →account list获取账号 id →account select id激活该账号。3. 安全警告切勿泄露saves.json原文档对此给出了明确的[!WARNING]必须原样继承如果你使用微软账号登录访问令牌access token会存储在saves.json文件中。永远不要与任何人分享这个文件否则对方可以用你的名义加入服务器由于services/viaproxy/目录被挂载为容器的/app/runsaves.json实际保存在仓库的 services/viaproxy/saves.json首次账号登录后生成。该文件属于敏感凭据应像 keys.json 一样加入.gitignore并妥善保管切勿提交到公开仓库或发送给他人。4. 分离容器账号配置完成后使用快捷键CTRL-P然后CTRL-Q从容器终端分离容器会继续在后台运行。配置持久化把账号设置写进viaproxy.ymlaccount命令的选择是运行时状态容器重启后会丢失。若希望持久保留这些配置原文档给出了两个配置项将auth-method改为account将minecraft-account-index设置为对应账号的 id用account list查看。这样每次容器启动时ViaProxy 都会自动使用指定账号进行正版登录无需再手动account select。离线场景下则保持默认的离线认证方式即可。与 mindcraft 的联动细节与排错建议host 必须用host.docker.internal吗只有当 mindcraft 本体也运行在 Docker 容器中时才需要mindcraft 容器通过host-gateway映射访问宿主机上的 ViaProxy 端口。若 mindcraft 直接运行在宿主机上node main.jshost直接写127.0.0.1、port写25568即可参见 README.md 的说明。连接报错时先看是哪种失败参照 src/agent/connection_handler.js 的ERROR_DEFINITIONSversion_mismatch表示协议版本仍未对齐检查 viaproxy.yml 的target-address与 mindcraft 的minecraft_versionaccess_denied表示未被白名单/被封禁在线服需确认账号已selectnetwork_error表示 ViaProxy 端口不可达检查 25568 端口映射与容器运行状态。版本自动协商settings.js中minecraft_version建议保持auto与 src/mindcraft/mindcraft.js 的降级逻辑配合尽可能避免因版本探测失败而中止启动。端口冲突若宿主机 25568 已被占用可修改 docker-compose.yml 中 viaproxy 的ports映射如25569:25568并同步更新settings.js中的port。小结ViaProxy 是 mindcraft 应对不支持的 Minecraft 服务端版本这一边界场景的官方推荐方案它通过 docker-compose.yml 中的viaproxyprofile 一键部署离线服只需修改 services/viaproxy/viaproxy.yml 的target-address与 settings.js 的host/port即可接入在线服则需通过docker attach进入容器用account命令完成微软账号的添加、选择与持久化。全程注意保护保存了访问令牌的saves.json文件。结合 src/mindcraft/mcserver.js 的版本校验逻辑与 src/agent/connection_handler.js 的错误分类你可以在接入失败时快速定位问题层级将 LLM 驱动的机器人稳定地带入任何目标服务器。赞分享AI Agent人工智能游戏开发【免费下载链接】mindcraftMinecraft AI with LLMsMineflayer项目地址https://gitcode.com/GitHub_Trending/mi/mindcraft点击查看免费下载相关推荐如何让旧版Minecraft客户端连接新版服务器ViaBackwards完整使用指南如何让旧版Minecraft客户端连接新版服务器ViaBackwards完整使用指南 ViaBackwards是一款专为Minecraft服务器设计的实用工具yuzu 完整指南如何在电脑上跑起 Switch 模拟器从安装到调优 5 步搞定yuzu 完整指南如何在电脑上跑起 Switch 模拟器从安装到调优 5 步搞定 yuzu 是一款免费开源的 Nintendo Switch 模拟器可以把虚拟化桌面应用图形学pgAdmin4服务器连接配置完全指南从入门到精通pgAdmin4服务器连接配置完全指南从入门到精通 pgAdmin4作为PostgreSQL数据库最受欢迎的图形化管理工具其服务器连接配置是每个数据库管理员数据库客户端后端前端桌面应用上一篇一键把任意 Windows 窗口改成想要的大小WindowResizer 窗口尺寸调整工具上手指南下一篇iPhone USB 网络共享驱动缺失 2 步解决1 分钟装齐 tethering 驱动创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表