Skip to content

Releases: AUGUHDAR/VoxLink

1.0.9

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 05 Aug 15:27

VoxLink 1.0.9

无限重试 / 无限打洞

连接失败后不再放弃,底层持续重试打洞,仅当你主动取消或对端取消时才停止。等待期间不再出现"连接失败了 :(" 的提示打断你。

###主菜单新增"前往网站"按钮
主菜单"浏览房间"按钮下方新增"前往网站",点击直接用系统浏览器打开官网(支持 Windows / macOS / Linux)。

新增 Forge 支持

  • 新增 Forge 加载器支持,覆盖 MC 1.20 ~ 26.2(含独立 1.20 版本)
  • 至此 Fabric / Forge / NeoForge 三大加载器共 26 个版本 全部可用

多语言

新增"前往网站"等文案的 13 种语言翻译(简体中文 / 繁體中文 / English / 日本語 / 한국어 / Français / Deutsch / Español / Русский / Português / العربية / 文言文 / 拉丁文)

支持的版本

加载器 版本数 覆盖范围
Fabric 8 1.20 ~ 26.2
Forge 10 1.20 ~ 26.2
NeoForge 8 1.20.1~ 26.2

1.0.8

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 01 Aug 15:59

Voxlink 1.0.8

新增

  • NeoForge 加载器支持(1.20.1 ~ 26.2),共 8 个版本
  • 加载器区分功能:房间卡片显示加载器标识,房间列表支持按加载器筛选
    • 当前已支持 Fabric 与 NeoForge,Quilt / Forge 尚未适配,筛选选项已预留
  • 一键构建脚本 build_merged.py,自动切换 JDK 批量构建 16 个版本

修复

  • 创建房间玩家数硬编码,提取为常量(范围 2~100)
  • 房间显示玩家数为信令系统加入量而非真实 MC 在线数,改为房主心跳上报 mcPlayerCount
  • STUN 超时回归导致卡在"正在探测网络环境"(3s → 10s)
  • P2P 中继在打洞失败后自动触发,改为仅手动按钮触发

其他

  • 新增加入状态提示"正在加入房间...",与网络探测状态分离
  • Fabric 目录重构为 8 个聚合目录,便于维护

1.0.7

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 27 Jul 03:52

# VoxLink 1.0.7 — 史诗级更新 (・ω・)ノ

对比 1.0.6 新增 4 大功能模块 + 20+ 关键 bug 修复,连接稳定性大幅提升。
支持 23 个 MC 版本 × 13 种语言,覆盖 1.20 ~ 1.21.11 和 26.1/26.1.1/26.1.2/26.2。


四大新增模块

1. 智能打洞系统

全新 NatClass/ProtocolNegotiator/PunchStrategy 等模块,实现:

  • NAT 类型自动分类识别
  • RTT 感知 + 失败历史感知(连续 3 次同原因自动切策略)
  • 每轮打洞 socket 数递增,提高成功率
  • 打洞失败原因智能分类

2. 陶瓦状态机 + CN 节点注入

  • 完整状态机:Bootstrap / Waiting / Scanning / GuestOk / HostOk / Exception
  • CN 时区节点自动注入(Asia/Urumqi/Chongqing/Harbin)
  • 严格遵循 Terracotta 0.4.2 状态机硬约束

3. Android JNI 集成(抄 FCL)

  • 不再用 ProcessBuilder 拉 .so,改为 JNI 直接调用
  • 新增 TerracottaAndroidBridge + TerracottaVpnService + AndroidContextHelper
  • VpnService 生命周期由前台服务承载
  • 直接下载 .so 二进制(arm64v8a/armv7/x86/x86_64)+ SHA256 校验

4. LAN 命令系统

  • LAN 模式下原生注册 9 个命令(op/deop/ban/ban-ip/banlist/pardon/pardon-ip/whitelist/kick)
  • Mixin 修改 requires 谓词放行 LAN 房主
  • 完整保留原生 Tab 补全和 @a/@p 等选择器

连接稳定性(核心修复)

无限重试机制

CONTINUOUS_RETRY_MAX_ROUNDS 提升至 Integer.MAX_VALUE,仅玩家退出房间或对端 cancel_connection 才停。双方支持 CAP_CONTINUOUS_RETRY 时启用,老版本走 maxCycles=8 降级。

6 个关键 bug 修复

  • 主机桥建立后停所有打洞(stopAllPunchingAfterHostBridge)
  • killAllConnectionAttempts 检查 connectionWon → 修复异地联机中断
  • handleDisconnect 调 clearHostPunchingState → 修复"正在探测网络环境"卡死
  • sendHolepunchOffer 后 punch_info 等待超时 15 秒
  • handleJoinRequest 排队重试无条件继续 → 修复 joiner 静默丢弃
  • joiner 桥建立后停所有打洞 → 修复"正在加入服务器最后失败"

ReliableUdpTransport 稳定性

  • 卡死检测改用 System.currentTimeMillis() 真实时间(禁用 waitCount 累加假阳性)
  • Throwable catch + sendBytes 超时 + close 死锁修复

状态机修复

  • TCP_FALLBACK 允许转回 STUN_PROBE/UDP_PUNCH(支持周期重试)
  • 完整状态转换校验

陶瓦集成改进

Android

  • 直接下载 .so + SHA256 校验 + 跳过执行权限检查(JNI 加载无需执行权限)
  • 双 P2P 竞速:waitForDownload 下载完成后再判断(修复手机端陶瓦不显示)

PC 端

  • --hmcl 参数对齐 HMCL-3.15.2
  • isAlive() 信任 httpPort → 修复 Windows UAC 后不显示房间号
  • startInternalRetry 等 portFile 10 秒
  • secondary 模式识别(同机 host+joiner 场景)

Terracotta 0.4.2 状态机

  • 修复 setIdle 端点为 /state/ide(不是 /state/idle)
  • ensureReady() 正确处理 Ready 非 Waiting 时先 setIdle 再 initialize
  • 完整 HTTP API 支持

进程清理(双保险)

  • 退出世界 DISCONNECT 事件无条件兜底杀陶瓦
  • joinRoom 入口杀残留陶瓦
  • startRedownload 先杀进程(防 Windows 文件占用)

OP / 权限系统

房主 OP / 访客 OP 分离

  • allowCommands = guestOp(访客 OP 控制世界命令开关)
  • 房主 OP 由 applyOpPolicy 独立管理
  • 房主 OP 关 → 房主 OP 也被撤回
  • 访客 OP 关 → 访客无论如何都无 OP
  • 1.21.11 用 NameAndId 方案,其他版本用字符串命令方案

LAN 命令注册

  • 调用原生 register 方法注册 9 个命令
  • 保留原生 Tab 补全和 @a/@p 选择器
  • Mixin 放行 LAN 房主

UI / UX

  • 简单配置:「加入时陶瓦: 开/关」明确区分陶瓦配置的「陶瓦: 开/关」
  • 陶瓦删除按钮:下载时禁用,完成或失败时恢复
  • 更新检查:移除 AtomicBoolean,每次进入世界都检查并提示(除非玩家关闭)
  • 联机大厅:VERSION_SAME 从排序改为真筛选,过滤异版本房间
  • TitleScreenMixin 小窗口防溢出
  • drawCenteredClipped 统一渲染

协议 / 网络层

  • handleTcpSimopenRequest:host 桥已 listening 时跳过 SimOpen(hostPort 被占用时 bind 必失败)
  • SignalingClient:data 字段 JsonArray 容错,HTTP_EXECUTOR 固定 4 线程(防线程爆炸)
  • ConnectionHelper:强引用 + 字段 resetTask + 取消 + owner 校验
  • 1.20/1.20.1 走 (String,String,boolean) 分支,1.20.2~26.x 走 ServerData.Type.class 类字面量分支
  • stubs sourceSet:编译但不打包进 jar,仅用于 PC 端编译期符号引用

下载

支持 23 个 MC 版本,请根据你的游戏版本选择对应的 jar:

1.20 系列:1.20 / 1.20.1 / 1.20.2 / 1.20.3 / 1.20.4 / 1.20.5 / 1.20.6
1.21 系列:1.21.0 / 1.21.1 / 1.21.2 / 1.21.3 / 1.21.4 / 1.21.5 / 1.21.6 / 1.21.7 / 1.21.8 / 1.21.9 / 1.21.10 / 1.21.11
26.x 系列:26.1 / 26.1.1 / 26.1.2 / 26.2

依赖:Fabric Loader + Fabric API


多语言

简体中文 / 繁体中文(台) / 繁体中文(港) / 文言文 / English / العربية / Deutsch / Español / Français / 日本語 / 한국어 / Português(BR) / Русский


从 1.0.6 升级的用户:直接替换 jar 即可,配置文件向后兼容。

感谢使用 VoxLink ᕕ( ᐛ )ᕗ

1.0.6

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 18 Jul 03:34

VoxLink 1.0.6

本次更新主要修复创建房间取消时的提示错误,优化陶瓦二进制下载速度,并清理了一批死代码。

新增

  • 陶瓦下载镜像竞速:新增 Gitee 镜像源,客户端会并发探测 GitHub / Gitee / ghproxy 三个源(单源 4 秒超时,总 6 秒超时),自动选最快的链接下载。若全部探测失败则回退原顺序下载。
  • 玩家版本号上报:建房时自动上传当前 MC 版本到服务器,用于大厅的"同版本"筛选。

修复

  • 创建房间取消提示错误:之前在创建房间过程中按 ESC 或点击取消按钮,会错误显示"出了点意外,再来一次吧 qwq"。现在正确显示"已取消创建房间"。内部机制:新增 cancelled 标志位,用户主动取消后静默丢弃迟到的 future 结果,不再触发 error 分支。
  • 更新提示样式丢失:UpdateChecker 中多余的 .withStyle(ChatFormatting.WHITE) 覆盖了 AQUA 前缀色,已移除。
  • fabric.mod.json 版本范围depends.minecraft>=${minecraft_version} 改为 ${minecraft_version},精确匹配当前 MC 版本,避免加载到不兼容版本。

重构

  • 死代码清理(23 个版本同步):
    • 删除 6 个无调用文件:DataRouter / GlobalIPs / FirewallHelper / fw/FirewallGuard / fw/PlatformFirewall / fw/PortDiscovery
    • 移除 46 个未被调用的 public 方法
  • GAME_VERSION 集中管理:新建 VoxLinkConstants.java,各版本从 gradle.properties 读取 minecraft_version 写入编译期常量,避免运行时依赖和硬编码。
  • UI 代码规范化
    • VoxLinkScreenBase 新增 drawCenteredComponent / fontWidth 工具方法
    • CreateRoomScreen 提取布局常量,文案改用 Component.append().withStyle() 链式调用

1.0.5

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 16 Jul 12:39

修复
游戏菜单按钮重命名为"房间管理"
修复更改房间配置后,房间名审核提示反复横跳(先显示未过审又显示过审)
修复每次正常关闭游戏都会出现报错
修复陶瓦进程不自动关闭:关房间/关游戏后陶瓦不再后台残留,删除陶瓦不再失败
修复双 P2P 竞速不公平:VoxLink 和陶瓦现在真正公平竞速,哪边先连上用哪边
修复访客 OP 逻辑:作弊开启但访客 OP 设为否时,访客不再残留 OP 权限
优化
陶瓦解压改纯 Java 实现,全平台支持,不再依赖系统 tar 命令
新增 GitHub 更新检查(可在简单配置中开关)
更新提示开关文案统一加 VoxLink 前缀,13 种语言同步
HTTP 错误日志加中英双语解释

1.0.4

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 15 Jul 03:24
7e6d4c1

兼容1.20以上的所有fabric版本!
兼容陶瓦联机(陶瓦联机是一个MC社区成熟的外部联机工具,MOD内做了可选下载)
修复已知BUG提高稳定性
Compatible with all Fabric versions 1.20 and above!
Supports TerraClient multiplayer (TerrariaClient is a mature external MC multiplayer tool, an optional download is included in the mod)
Fixed known bugs and improved stability

1.0.3

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 03 Jul 03:33

修复已知BUG,优化体验
将房间名最多10字改为20
新增APP端

1.0.2

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 02 Jul 10:55

增加并更新了STUN服务器列表
修复了已知BUG,增加了稳定性

1.0.1

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 01 Jul 13:04
69ae1b5

第二个Beta版本,支持1.21.11
新增联机互助功能:双方无法直连时,自动通过第三方玩家客户端中继建立连接,全程不经服务器转发
新增房间标签审核,优化房间名审核流程
房间大厅新增分页跳页功能,保留滚动加载
修复了已知问题,提高了连接稳定性

1.0.0

Choose a tag to compare

@AUGUHDAR AUGUHDAR released this 21 Jun 14:36

首个公开 Beta 版本。支持 Fabric 1.21.11。
目前联机很不稳定,有时候能连上,有时候连不上。这个跟双方的 NAT 类型和网络环境强相关。
遇到 BUG 请提 Issues,务必带上双方日志。