介绍
### 模组介绍
DiscordScreenMaster 可以将 Minecraft 截图直接发送到 Discord 频道——不用 Alt+Tab,不用翻找文件夹,也不用手动上传。客户端和服务器都需要安装本模组,而 Discord 机器人只在服务器上运行,因此玩家不会接触到机器人令牌。
v1.0.1 仅支持俄语
### 工作原理
1. 在游戏中按 **F4**(可在*选项 → 控制*中重新绑定)。客户端会截取屏幕并将截图发送到服务器。
2. 聊天栏中会出现一条带有 **[发布]** 和 **[丢弃]** 按钮的消息。
3. 点击“发布”后,图片会发送到你的 Discord 频道,并以嵌入图片的形式直接显示在消息中。
### 功能
– **不写入磁盘。** 截图会在内存中编码为 JPEG 并发送到服务器——不会在客户端或服务器上写入任何文件。
– **会话令牌。** 每位玩家加入时都会获得一个随机令牌,该令牌与其 UUID 绑定,并在玩家断开连接时移除。你无法上传其他人的截图,也无法冒充其他玩家。
– **上传冷却时间。** 防刷屏保护,可配置(默认 60 秒)。设为 `0` 可禁用。
– **服务器端验证。** 服务器不会盲目信任客户端:只接受最大 4 MB 的 JPEG;每位玩家最多只能有一张待处理截图;文件名也会经过清理。
– **可配置画质。** 可在配置文件中设置 JPEG 画质以及最大宽度和高度。
– **机器人仅在服务器端运行。** 客户端只需安装本模组、Fabric API 和 Fabric Language Kotlin——客户端不需要机器人令牌。
– **Discord 显示整洁。** 图片会以嵌入图片的形式显示,而不是单独的文件链接。
### 配置
首次启动时会创建 `config/discordscreenmaster.json`:
“`json
{
“botToken”: “YOUR_BOT_TOKEN”,
“discordChannelId”: 0,
“cooldownSeconds”: 60,
“compressionQuality”: 75,
“maxWidth”: 1920,
“maxHeight”: 1080
}
“`
| 字段 | 说明 |
| — | — |
| `botToken` | Discord 机器人令牌。必填,否则机器人会保持禁用状态。 |
| `discordChannelId` | 用于发布截图的频道 ID。 |
| `cooldownSeconds` | 上传间隔(秒)。设为 `0` 可取消限制。 |
| `compressionQuality` | JPEG 画质,范围为 `1`–`100`。 |
| `maxWidth` / `maxHeight` | 图片最大宽度和高度(像素)。设为 `0` 或 `-1` 可取消对应方向的限制。 |
**`maxWidth` / `maxHeight` 应该填什么?** 这是截图的像素上限——不是游戏分辨率,也不是窗口大小。模组会按原样截取屏幕,再将图片缩小至设定值:例如,4K 显示器上的截图会在设置为 `1920` / `1080` 时缩至全高清。图片会保持宽高比,不会放大尺寸较小的图片。
| 目标 | `maxWidth` | `maxHeight` |
| — | — | — |
| 普通截图(默认) | `1920` | `1080` |
| 节省流量和空间 | `1280` | `720` |
| 保留更多细节 | `2560` | `1440` |
| 保持原始尺寸 | `0` | `0` |
如果不确定该怎么设置,就保持 `1920` 和 `1080`——既清晰易读,也能满足 4 MiB 的大小限制。缩放会在 JPEG 编码前进行,因此 `compressionQuality` 作用于缩小后的图片。
> 配置文件中包含你的机器人令牌。请勿公开或提交此文件。
### 所需条件
– **Minecraft**:使用表格中任意受支持的版本,并安装 Fabric Loader 和 Fabric API。
– **Fabric Language Kotlin**——必需的前置库:JDA、OkHttp 和 Okio 均基于它构建。
– 拥有 **发送消息**、**附加文件**、**嵌入链接**权限,并且可以访问目标频道的 Discord 机器人令牌。
– 客户端和服务器**都必须**安装本模组。
### 支持的版本
每个游戏版本都会单独构建一个 jar。请下载文件名中包含你的 Minecraft 版本的文件:
| Minecraft | Fabric 加载器 | Java |
| — | — | — |
| 1.16.5 | 0.14+ | 8+ |
| 1.18.2 – 1.19.2 | 0.14+ | 17+ |
| 1.20.1 – 1.20.4 | 0.14+ | 17+ |
| 1.21.1 – 1.21.11 | 0.16.9+ | 21+ |
| 26.1 – 26.3 | 0.19.5+ | 25+ |
准确的 Fabric API 和 Fabric Language Kotlin 版本列在下载页面上——如果缺少依赖,本模组会提示你。
### ViaVersion 与客户端、服务器版本不一致
你可以在某个版本的服务器上运行本模组,同时让其他受支持版本的客户端通过 **ViaVersion / ViaBackwards / ViaFabric** 加入。所有构建版本使用完全相同的模组协议:通道 `discordscreenmaster:screenshot_chunk` 和 `discordscreenmaster:session_token`、相同的字段顺序以及相同的分块方式。因此,1.16.5 客户端和 26.3 服务器(反过来也一样)可以互相兼容。
规则很简单:
– **服务器**:安装与服务器版本对应的一个 jar。
– **客户端**:安装与客户端版本对应的 jar。
– 两端的模组版本必须一致(1.0.1)。
– 按照常规配置 ViaVersion 即可;DiscordScreenMaster 无需特殊设置。
### 安装
1. 下载对应 Minecraft 版本的 jar,并将其放入 `mods/` 文件夹——客户端和服务器都要安装。服务器需要安装与服务器版本对应的 jar。
2. 启动服务器一次,以创建 `config/discordscreenmaster.json`。
3. 填写 `botToken` 和 `discordChannelId`。
4. 重启服务器——你应该会在日志中看到 `Discord bot connected!`。
5. 加入游戏,按 F4 开始分享截图。
### 大尺寸截图
截图会以 30 KB 的数据块发送到服务器,因此即使是 4K 截图也不会受到原版数据包大小限制的影响。服务器会在内存中重新组装数据块,验证 JPEG 文件头和总大小(最多 4 MiB),之后才会显示发布按钮。
### 按 F4 没有反应?
– 客户端和服务器**都必须**安装本模组,且模组版本(1.0.1)必须一致。请为两端分别使用对应 Minecraft 版本的 jar。
– 会话令牌由服务器发放:如果服务器没有安装本模组,客户端就无法发送截图。
– 检查*选项 → 控制*中的按键绑定——F4 必须绑定到“将截图上传到 Discord”,且未被其他模组占用。
– 故障原因会写入 `latest.log`(搜索包含 `DiscordScreenMaster` 的日志行)。
—
*DiscordScreenMaster 与 Discord Inc. 无关联,也未获得其认可。*
常见问题
DiscordScreenMaster (DSM) 支持哪些 Minecraft 版本?
DiscordScreenMaster (DSM) 支持 Minecraft Java 版 1.16.5–26.3,共 14 个版本,可用的加载器:Fabric。下载时注意选择和你游戏版本一致的文件。
DiscordScreenMaster (DSM) 怎么安装?
先用 PCL2 或 HMCL 启动器安装对应版本的 Fabric,再把下载的 .jar 文件放进游戏目录的 mods 文件夹,重新启动游戏即可。开启了版本隔离的,mods 文件夹在 versions/版本名 下面。
评论
登录后评论和评分