配置文件
配置文件位于 config/world-comment.json,运行一次后会自动创建。其内容的一个示例:
{
"imageUploadConfig": "smms: xxxxxxxx;"
}
所有字段都是可选的,不想配置的内容省略不写即可。
图床设定
imageUploadConfig:图像上传配置。必须在服务器上或在单人游戏实例中配置此项,才能够将截图附加到评论中。
一个字符串,或是字符串数组,设定所要使用的图床网站。当指定多个时,客户端会逐个尝试。
当在服务器上使用时,只需在服务器上配置,客户端会自动从服务器一侧获得这个配置并向它上传图片。
现在是不能将图片直接存储在存档里的。
这是因为 WorldComment 设计上主要是用于多人服务器的,而直接通过 Minecraft 游戏连接发送图片可能会占用宝贵的服务器带宽,导致游玩体验卡顿。"smms: <API 密钥>;"
上传至 https://smms.app。在那边注册一个帐户以获取 API 密钥。
"imgloc: <API 密钥>;"
上传至 https://imgloc.com。在那边注册一个帐户以获取 API 密钥。
"lsky: <API URL>: <API 密钥>;"
上传至自托管的 Lsky Pro 实例(https://github.com/lsky-org/lsky-pro)。他们的文档中有安装和 API 密钥配置的相关教程。
有计划支持 Imgur,但还没写完。
标记类评论允许范围
本模组的评论类型有四个“感想”类,和四个“标记”类。标记类评论无论玩家是否打开显示评论都会展示。
allowMarkerUsage
"op"
只允许 OP(具体来说,有 3 级权限的玩家)发送标记类评论。
"creative"
只允许现在在创造模式的玩家发送标记类评论。这是默认设定。
"all"
所有玩家都可以发送标记类评论。
(高级内容) Redis 同步设定
{
...
"syncRole": "host",
"redisUrl": "redis://localhost:6379"
}
syncRole:用于在多个服务器之间通过 Redis 同步评论。这是为了 Teacon 2023 定做的功能,他们有一个特别的分布式负载均衡配置(多个子服务器)。
host:此服务器是主机,评论存储在它的存档里。
subordinate:此服务器不在其存档中存储评论,而是从主机同步评论。
redisUrl:用于同步评论的 Redis 服务器的 URL(按照 Lettuce 的语法)。
(高级内容) HTTP Webhook 评论上传
{
...
"uplinkUrl": "https://example.domain/teacon2023/subnoteica_uplink.php",
"uplinkAuthKey": "xxxxxxxxx"
}
uplinkUrl:用于将评论以 Webhook 形式同步到 Web 服务器的上行脚本的 URL。如果使用了 syncRole,每个评论将仅由主机服务器发送一次。
这个功能用于将评论同步到 Web 服务器,以便它们可以在网站上显示。
该脚本将接收到带有以下内容的 POST 请求:{
"id": 1166045306574225400,
"timestamp": 1698077265000,
"level": "minecraft:overworld",
"location": [0, 0, 0],
"initiator": "00000000-0000-0000-0000-000000000000",
"initiatorName": "",
"messageType": 1,
"message": "希望国产社区越来越好!!!!!!!!",
"image": {
"url": "",
"thumb": ""
},
"like": 0,
"deleted": false
}该请求将同时包括一个 Authorization 标头,内容类似于 "NEX-HMAC-SHA1 Signature=xxxxxxxx",其中签名值是请求体由 uplinkAuthKey 作为密钥进行 SHA1 HMAC 散列计算后,以 Base64 编码的结果。
uplinkAuthKey:用于上行请求的 HMAC 签名的密钥。这是用于确定数据确实是由服务器发送,避免有人往接收端塞垃圾数据的。
环境变量
所有配置项也可以使用环境变量设置。例如,imageUploadConfig 可以使用 SUBNOTEICA_IMAGE_UPLOAD_CONFIG 设置。如果您正在使用 Kubernetes 启动服务器的话,这样配置可能更方便。