配置文件

配置文件位于 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 启动服务器的话,这样配置可能更方便。