feat: 项目初始化 + 3D方块世界原型 + AI助搭系统
CI / Go Backend (push) Canceled after 0s

初始化 monorepo: Go后端(7微服务) + Unity客户端(9模块) + 启动器

HTML5原型: Three.js 3D体素世界, Perlin噪声地形, 原版材质, 22种方块

Minecraft创造模式背包: 双栏布局, 拖拽移动物品, 方向性元件引脚

AI助搭策划文档 + 客户端/服务端骨架 + Docker Compose + CI
This commit is contained in:
xyou
2026-08-08 14:07:56 +08:00
parent 9500c4c80a
commit f70b061d1a
1972 changed files with 159760 additions and 6 deletions
@@ -0,0 +1,38 @@
using System.Net;
using System.Net.Http;
using PCL.Core.App;
namespace PCL.Network;
public static class RequestSigning
{
internal static string SecretCdnSign(string urlWithMark)
{
if (!urlWithMark.EndsWithF("{CDN}"))
return urlWithMark;
return urlWithMark.Replace("{CDN}", "").Replace(" ", "%20");
}
/// <summary>
/// 设置 Headers 的 UA、Referer。
/// </summary>
internal static void SecretHeadersSign(string url, ref HttpRequestMessage client, bool useBrowserUserAgent = false,
string customUserAgent = "")
{
client.Version = HttpVersion.Version20;
client.VersionPolicy = HttpVersionPolicy.RequestVersionOrLower;
if (Uri.TryCreate(url, UriKind.Absolute, out var parsedUri)
&& (parsedUri.Host == "api.curseforge.com"
|| parsedUri.Host == "edge.forgecdn.net"
|| parsedUri.Host == "mediafilez.forgecdn.net"))
{
client.Headers.Add("x-api-key", Secrets.CurseForgeAPIKey);
}
var userAgent = !string.IsNullOrEmpty(customUserAgent)
? customUserAgent
: useBrowserUserAgent
? $"PCL2/{ModBase.upstreamVersion}.{ModBase.versionBranchCode} PCLCE/{ModBase.versionStandardCode} Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36 Edg/136.0.0.0"
: $"PCL2/{ModBase.upstreamVersion}.{ModBase.versionBranchCode} PCLCE/{ModBase.versionStandardCode}";
client.Headers.Add("User-Agent", userAgent);
}
}