GET -> 陶瓦联机
简单的陶瓦联机网络控制方案
⭐ 引言
陶瓦联机作为一款针对 Minecraft 优化的联机核心,被众多启动器使用。
然而,目前网上并没有许多针对陶瓦联机的文档,导致部分用户只能去查阅现有源代码。
本文将介绍利用网络请求控制陶瓦联机的方法。
我们开始吧!
🚀 准备工作
开始之前,你需要:
- 启动陶瓦联机;
- 准备一个可以发起
HTTP GET请求的工具(浏览器就行)。
🔍 获取状态
你可以通过 HTTP 请求:
GET /state
来获取当前状态。
以下是一些常见的 state:
| 状态 | 含义 | 备注 |
|---|---|---|
waiting |
等待中(空闲) | |
host-scanning |
主机扫描中(正在扫描局域网世界) | |
host-starting |
主机启动中 | room 即为邀请码 |
host-ok |
主机就绪(房间已开启) | room 即为邀请码,profiles 即为房间内玩家 |
guest-connecting |
房客连接中(正在进入房间) | room 即为邀请码 |
guest-starting |
房客启动中 | room 即为邀请码,difficulty 即为连接难度 |
guest-ok |
房客就绪(房间已加入) | url 即为服务器地址(端口若为 25565 会自动隐藏),profiles 即为房间内玩家 |
exception |
发生错误 | 强烈建议处理该 state!type 即为异常类型 |
详解 *-ok.profiles 内容
| 属性 | 含义 | 备注 |
|---|---|---|
kind |
类型 | HOST 即为房主,GUEST 即为房客 |
machine_id |
机器 ID | |
name |
名称 | |
vendor |
核心提供商 | 例如 Terracotta XXX, EasyTier XXX |
详解 exception.type
| 数字 | 文字 | 解释 |
|---|---|---|
| 0 | PingHostFail |
无法连接到主机 |
| 1 | PingHostRst |
主机连接被重置 |
| 2 | GuestEasytierCrash |
房客端 Easytier 崩溃 |
| 3 | HostEasytierCrash |
房主端 Easytier 崩溃 |
| 4 | PingServerRst |
服务器连接被重置(三次均无法连接到 Minecraft) |
| 5 | ScaffoldingInvalidResponse |
脚手架返回了无效响应 |
🚗 作为房主
作为房主,你可以通过 HTTP 请求:
GET /state/scanning?player=<名称,可选>
来开始扫描。
这会让核心开始扫描局域网世界。
此时,房主需要在 Minecraft 中将自己的世界对局域网开放。
后续就可以轮询状态了,若状态为 host-ok 即为成功。
接下来就该对你的用户显示 room 啦!
🔑 作为房客
作为房客,你可以通过 HTTP 请求:
GET /state/guesting?room=<邀请码>&player=<名称,可选>
来加入房间。
后续就可以轮询状态了,若状态为 guest-ok 即为成功。
与房主不同,此时的 state 并不提供邀请码(需要使用传到 Query 中的)。
接下来就该对你的用户显示 url 啦!
实际上,Minecraft 一般能够自动扫描到大厅,并不需要手动输入 URL。
🚫 终止联机
你可以通过 HTTP 请求:
GET /state/ide
来终止联机。
这会退出或关闭房间。
顺带一提,应当在房间就绪后持续轮询状态,以免出现连接断开而未处理的情况。
🚩 结语
本篇文章到此结束,希望能够给你提供帮助。
这里是 awa_Eric233,以后会继续在这里更新内容。
📕 参考来源
- GitHub 陶瓦联机仓库
burningtnt/Terracotta。