https://github.com/CFPAOrg/Minecraft-Mod-Language-Package 的 PR 管理及一些网页工具
但是这一切真的值得吗((
其实代码是一堆 sh*t 山 我自己都看不懂(
除了 token 以外的内容均开源,直接使用下面的部署指南就可以部署
每一行会当作单独的命令执行,也就是说你可以在同一个 Comment 内执行多条命令。
所有命令仅维护者和 PR 提交者可用。
/mv-recursive [a] [b]
将 a 移动到 b,文件夹或文件均可,若路径包含空格可使用引号包裹 a 和 b。/update-en [CurseForge项目名] [游戏版本]
更新指定模组的英文文件。
游戏版本可为仓库中的五个值1.12.2
1.16
1.18
1.16-fabric
1.18-fabric
/sort-keys [文件路径]
重排键序。适用于 MCreator。/add-mapping [slug] [curseForgeProjectID]
你用不到的。
例如:/update-en xaeros-world-map 1.12.2
善用 PR files 内的文件路径复制功能。
如果有哪一天我似了() 可以用下面的方法自己部署
-
参照
build-from-codespace.sh
构建 docker image -
修改
docker-compose.yml
中的环境变量 -
在
config/
放置cfpa-bot.pem
,这是 GitHub App 的私钥 -
GitHub App Webhook 设置
https://你的域名/api/WebhookListener
, Webhook Secret 为docker-compose.yml
中的GITHUB_WEBHOOK_SECRET
-
project hex 需要放置 Packer: 在主库中
dotnet publish .\src\Packer\Packer.csproj -o ./ -r linux-x64 -p:PublishSingleFile=true
-
初始
config/mappings.json
的生成方法:// <PackageReference Include="CurseForge.APIClient" Version="1.3.4" /> 版本更新也行 // <PackageReference Include="GammaLibrary" Version="3.0.0-pre2" /> var apiClient = new ApiClient("CURSEFORGE_API_TOKEN", "你的邮箱"); for (int i = 0; i < 50; i++) { var addons = await apiClient.GetModsByIdListAsync(new GetModsByIdsListRequestBody() { ModIds = Enumerable.Range(i * 20000 + 1, 20000).Select(x => (uint)x).ToList()}); List<Mod> addonsData = addons.Data; AddMapping(addonsData); Console.WriteLine($"初始化 Mapping: {i + 1}/50"); } ModIDMappingMetadata.Save(); static void AddMapping(List<Mod> addons) { foreach (var addon in addons.Where(s => s.GameId == 432 && s.Links.WebsiteUrl.StartsWith("https://www.curseforge.com/minecraft/mc-mods/"))) lock (ModIDMappingMetadata.Instance) { ModIDMappingMetadata.Instance.Mapping[addon.Slug] = (int)addon.Id; } } [ConfigurationPath("mappings.json")] public class ModIDMappingMetadata : Configuration<ModIDMappingMetadata> { public Dictionary<string, int> Mapping { get; set; } = new(); public DateTime LastUpdate { get; set; } [JsonIgnore] public int LastID => Mapping.Values.Max(); }
-
把代码所有的
cfpa.cyan.cafe
换成你的域名 (有 4 个地方要改) -
如果需要 Azusa, nginx 配置反代时需要配置 WebSocket
-
最后
docker-compose up -d
即可