• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
资源图标

Python 🎉在所有Linux服务器上运行EndStone 面板服支持!支持全版本! 4.1

请登录后获取
[MD]# EndStart 更新日志 ## v4.1(2026-08-19) ### 重大修复 - **修复在部分环境下 `.whl` 插件无法自动加载的问题**(受系统全局 Python 干扰的场景) - 根因:`uv venv` 创建的虚拟环境默认不含 pip,而 EndStone 加载 `.whl` 插件时会静默调用虚拟环境内的 pip 安装到 `plugins/.local`,pip 缺失导致安装静默失败,最终报 `PackageNotFoundError` - 根因二:系统存在与所选版本相同的全局 Python 时,虚拟环境可能建立在系统 Python 上,受 PEP 668(externally-managed)限制拒绝安装 - 修复措施: - 新增 `seed_venv_pip`:安装/重装虚拟环境后自动注入 pip(优先 uv pip + 镜像源,失败回退 ensurepip) - 启动服务端时自动检测旧虚拟环境缺 pip 并补装(老用户无需重装即被治愈) - 启动时导出 `ENDSTONE_PYTHON_EXECUTABLE`(锁定解释器,避免被全局 Python 干扰) - 启动时导出 `PIP_INDEX_URL`(EndStone 内部安装插件依赖也走镜像源,不再直连 pypi.org) - 启动时导出 `PIP_BREAK_SYSTEM_PACKAGES=1`(治愈已建在系统 Python 上的存量虚拟环境,安装目标为 `plugins/.local` 前缀目录,不污染系统) - 重装虚拟环境流程改为无条件执行 `uv python install`(幂等),彻底杜绝虚拟环境建到系统 Python 上 - **修复 Python 版本列表过期问题**:官方已发布 3.14.6 但列表仍显示 3.14.3 - 获取版本列表时使用 `uv python list --all-versions --no-cache` 强制刷新 uv 内部清单,旧版 uv 不支持时自动回退 - 版本选择新增手动输入模式(`m`),在线列表未及时更新时可手动指定版本号 - **修复 EndStone 更新检查逻辑**:原选择"检查更新"就默认立即更新 - 现在先比对当前版本与最新版本,检测到新版本时提示"检测到新版本 xxx(当前: xxx),是否立即更新?(Y/n)",用户确认后才执行更新 - 配置文件未记录版本号时自动读取实际安装的版本进行比对 ### 新功能 - **下载进度条**:所有下载操作(版本信息、uv 安装包等)均使用美观的单行刷新进度条 - 显示:进度条、百分比、已下载/总大小、实时网速、剩余时间、已用时间 - 未知文件大小时自动切换为滑动指示条模式 - 下载完成后显示平均速度与总耗时 - 下载失败自动清理残缺文件并报错 - **uv 安装全面升级**: - 不再使用硬编码版本号,支持自动获取并安装最新版 uv - 支持手动输入指定版本号(自动校验格式,容错处理 `v` / `uv-` 前缀) - 下载前校验地址有效性(版本号不存在 / 镜像站不可用 / 网络异常时给出明确提示) - 下载出错后提供容错菜单:1) 重试下载 2) 重新选择版本和镜像 3) 取消安装 - **GitHub 加速镜像下载**: - 安装 uv 时询问是否使用 GitHub 加速镜像,默认镜像站 `gh.xxooo.cf`,支持自定义 - 自动规范化镜像地址:去除协议头(http:// / https://)、自动处理末尾多余的 `/` - 镜像配置持久化保存,下次使用时可选择沿用 / 直连 / 更换 - **崩服重启询问**(无限次数模式): - 选择无限次数崩溃重启时,每次崩溃后询问"检测到服务器崩溃,是否重启? (y/n)" - 5 秒倒计时选择时间,超时未输入 `n` 则默认重启,输入 `n` 返回菜单 - 有限次数模式保持原有的自动重启行为 ### 优化改进 - **版本获取 API 更换**:主数据源更换为 `https://endstone.123456789123456789.shop/endstone_versions.json` - 备用数据源:`https://api.github.com/repos/EndstoneMC/endstone/releases` - 主源不可用时自动切换备用源 - **版本获取超时**:设置为 30 秒,避免网络异常时长时间卡死 - **全局禁用 wget/curl SSL 证书检测**:适配证书陈旧或缺失的受限环境 - **UI 整体优化**: - 统一菜单首行缩进与对齐,消除参差不齐 - Python 版本列表按次版本号分组竖向展示,整齐美观 - 状态信息区标签对齐(BDS 版本 / Endstone / Python / uv / 崩服重启等) - **临时文件清理**:下载失败自动清理残留文件,临时目录统一管理 ### 兼容性说明 - 本工具继续保持对**读写受限制**(如仅 `/home/container` 可写、其余目录只读)、**无 root**、**无法安装第三方软件包**的 Linux 环境的完整支持 - 所有数据(uv / Python / 虚拟环境 / 日志 / 临时文件)仍写入脚本所在目录或用户指定的可写目录 - 自带静态编译工具链(jq / tar / unzip / wget / bedrock-nbt),启动时自动赋予执行权限 ### 升级建议 - 从 v4.0 直接解压覆盖即可,配置文件兼容 - v4.0 创建的虚拟环境首次用 v4.1 启动时会自动补装 pip,`.whl` 插件即可正常自动加载 - 如需彻底干净(虚拟环境回到 uv 托管 Python),可执行一次"重装虚拟环境" ---[/MD]
[MD]# EndStart 更新日志 --- ## v4.0.0 — 当前版本 **发布日期:** 2026-03-07 本版本为重大功能重构版本,核心变更是将 Python 安装方式从预编译二进制包切换至 **uv** 工具链,并引入虚拟环境隔离机制,以适配 EndStone 0.11.0 及以上版本的运行要求。同时对脚本的容错逻辑、UI 交互、配色方案及环境初始化进行了全面优化。 ### 新增功能 **uv 工具链集成** 新增 `install_uv()`、`ensure_uv()` 等函数,内嵌 uv 官方安装器逻辑(当前版本 v0.10.9)。安装器自动检测 CPU 架构(x86_64 / aarch64 / armv7)与操作系统(Linux / macOS),通过 `curl` 或 `wget` 将 uv 下载至脚本指定目录,全程无需 root 权限,不写入系统目录。uv 安装路径通过配置文件中的 `UV_INSTALL_PATH` 项持久化保存,重启后自动恢复。 **Python 版本交互式选择** 新增 `list_python_versions()` 与 `show_python_versions()` 函数,调用 `uv python list --all-versions` 获取可用版本列表,过滤出 3.10.x 至 3.14.x 范围内的版本(排除 freethreaded 变体),按 minor 版本分组后以竖向列表整齐打印,用户输入序号即可选择,输入 `0` 返回上级菜单。若 uv 无法联网,自动回退至内置后备版本列表。 **虚拟环境管理** 新增 `activate_venv()`、`get_venv_path()`、`get_uv_python_dir()` 三个函数,将 Python 安装流程从"安装 Python → 设置环境变量"改为两步式: 1. `uv python install cpython-<版本>` 将 Python 安装至 `<base_dir>/python/` 2. `uv venv <base_dir>/.venv --python <python路径>` 创建虚拟环境 EndStone 的安装与运行均在虚拟环境内进行,通过 `uv pip install --python $VENV_PYTHON` 完成,与宿主机 Python 环境完全隔离。 **重装虚拟环境功能** 将原"更新/重装/回退 Python"菜单选项替换为"重装虚拟环境"(`reinstall_venv()`),操作流程为:确认 → 选择 Python 版本 → 删除旧 `.venv` → 重新创建虚拟环境 → 询问是否重新安装 EndStone。 **HOME 目录重定向** 在 `initialize_data()` 初始化阶段新增 `export HOME="$SCRIPT_DIR"`,确保 uv、pip、Python 等工具的默认配置目录、缓存目录均写入脚本所在目录,不依赖宿主机的 `~` 目录,满足只读容器环境的运行需求。 **TOOLS_DIR 环境变量** 初始化时自动将 `tools/` 目录的绝对路径导出为 `$TOOLS_DIR` 环境变量,并对该目录下所有文件及子目录执行 `chmod -R 777`,确保插件脚本在受限容器中具有完整的读写执行权限。 **wget 安全包装函数** 新增 `wget_safe()` 函数,所有 wget 调用均通过此函数执行,自动附加以下参数: - `--hsts-file="${TMP_DIR}/wget-hsts"`:将 HSTS 记录写入脚本可写目录,解决容器中 HOME 目录权限受限导致的 HSTS 报错 - `--no-check-certificate`:跳过 CA 证书验证,解决静态编译 wget 在无系统证书容器中的 HTTPS 连接失败问题 函数同时支持自动检测并优先使用脚本同目录或 `tools/` 目录下的预编译 wget 二进制。 ### 改进与修复 **BDS 版本号解析重构** EndStone 0.11.0 起,GitHub Release body 格式由 badge 链接(`minecraft-v1.21.130`)改为纯文字描述(`Added support for BDS version 1.26.x.x.`),导致旧正则完全失效。新版本采用三级回退策略: | 优先级 | 匹配格式 | 适用版本 | |---|---|---| | 1 | `BDS version X.X.X.X` | EndStone 0.11.1+ | | 2 | `BDS X.X.X` | EndStone 0.11.0 | | 3 | `minecraft-vX.X.X` | EndStone 0.10.x | 对于 body 中不含任何 BDS 信息的版本(如 v0.10.18,仅含 changelog URL),采用"向后继承"策略,自动沿用下方(更旧)版本的有效 BDS 号,确保版本列表完整显示。 **EndStone 版本号提取修复** 将 `pip show endstone | grep Version` 改为 `grep "^Version:" | head -1 | awk '{print $2}' | tr -d '\r'`,修复因 `Requires-Dist` 字段含版本范围约束(如 `minecraft-bedrock-server (>=1.26,<2.0)`)而导致版本号显示为 `0.11.2\n 2.0,` 的问题。 **分割线长度优化** 将全脚本分割线从约 60 字符缩短为 32 字符,适配手机竖屏终端宽度,避免在窄屏设备上折行显示。 **主菜单状态区标签缩短** 将状态区标签由长格式(如 `• BDS版本: `)改为简洁格式(`• BDS: `),减少标签与数值之间的间距,防止在手机端折行。 ### 删除内容 以下函数与逻辑因 Python 安装方式变更而不再需要,已从脚本中完全移除: | 删除内容 | 原用途 | |---|---| | `fetch_python_versions()` | 从 HTTP 接口拉取预编译 Python 版本列表 | | `load_python_versions()` | 加载并解析版本列表 | | `download_file()` | 下载 tar.gz 预编译包 | | `extract_file()` | 解压 tar.gz 预编译包 | | `handle_no_download_tools()` | 无下载工具容错弹窗 | | `handle_no_extract_tools()` | 无解压工具容错弹窗 | | `handle_no_tools()` | 无工具综合容错处理 | | `handle_download_failure()` | 下载失败容错处理 | | `handle_download_failure_no_tar()` | 无 tar 时下载失败容错 | | `install_system_tool()` | 尝试安装系统工具 | | 全局变量 `HAS_TAR` / `TOOLS_MISSING` / `DOWNLOAD_URL` / `BACKUP_DOWNLOAD_URL` | 旧预编译方案相关变量 | | 配置项 `DOWNLOAD_URL` | 旧预编译包下载地址 | | 百宝箱"修改下载源地址"选项 | 已无实际意义 | ---[/MD]


+修复addon管理脚本及服务器配置文件编辑脚本

+addon管理脚本新增一键开关测试版api(gametest)
修改api参数,支持所有endstone版本
修复addon安装无法处理多世界
下午上传错了个,辛苦审核大大啦:给你心心:
+Python版本联网获取,不再硬编码
+实现模块化,可将shell脚本放入tools文件夹即可显示在菜单
+更换下载源为自建OpenList,平均下载速度4MB/s,预计1分钟不到即可下载完
更换自建为银杏网盘,下载更稳定
+更新Python3.14.2
+微调菜单样式,使其更加整齐美观,完善server-port正规,不会再打印ipv6端口及注释至终端
+修复使用自定义路径后,server.properties管理脚本无法找到server.properties文件
+修复jq文件权限,成功解析endstone版本信息
+修改server.properties管理脚本部分翻译
+修复jq环境变量设置失败
+修复addon管理脚本无法正确处理.mcaddon及完善UI界面
后退
顶部 底部