feat: add UE4SS DLL runtime extension

This commit is contained in:
npc0-hue
2026-07-23 09:49:14 +08:00
parent 8e34c8762a
commit 1caf40565c
30 changed files with 1179 additions and 70 deletions
+20
View File
@@ -24,6 +24,20 @@ const marketplacePlugin: MarketplacePluginResponse = {
tags: ["example"],
aiPurposes: ["logs.diagnose"],
productionLifecycle: { operations: ["install", "enable", "disable", "upgrade", "rollback", "retire", "dependency-check"], dependencyPolicy: "optional", approvalRequired: ["disable", "rollback", "retire"] },
runtimeProfiles: {
dllExtensions: [{
key: "scum-simple-rcon-ue4ss",
displayName: "SCUM Simple RCON UE4SS DLL",
kind: "ue4ss-dll",
activation: "server-start",
version: "0.1.0-unpublished",
releaseState: "unpublished",
releaseHost: "cdn.npc0.com",
releaseFilename: "scum_simple_rcon_ue4s.dll",
supportedTargets: [{ os: "windows", arch: "amd64" }],
updateOnStart: true
}]
},
status: "installed",
source: "platform-registry"
};
@@ -58,6 +72,10 @@ describe("PluginsPage", () => {
expect(html).toContain("安装");
expect(html).toContain("启用");
expect(html).toContain("停用");
expect(html).toContain("SCUM Simple RCON UE4SS DLL");
expect(html).toContain("启动前自动校验和更新");
expect(html).toContain("运行:SCUM 服务器受监管启动");
expect(html).toContain("Linux 启动前拒绝");
expect(html).toContain('role="dialog"');
expect(html).not.toContain("billing");
expect(html).not.toContain("/Users/");
@@ -66,6 +84,7 @@ describe("PluginsPage", () => {
expect(html).not.toContain("sk-");
expect(html).not.toContain("password=");
expect(html).not.toContain("apiKeyRef");
expect(html).not.toContain("ue4ss/Mods/");
});
it("keeps standalone fallback visibly isolated", () => {
@@ -90,6 +109,7 @@ describe("PluginsPage", () => {
expect(pluginsPageSource).toContain("retryDetail");
expect(pluginsPageSource).toContain("当前账号为只读模式");
expect(pluginsPageSource).toContain("平台会返回持久状态");
expect(pluginsPageSource).toContain("UE4SS DLL 声明");
expect(pluginsPageSource).toContain("actionPending !== null");
expect(pluginsPageSource).toContain("operations?.begin");
expect(pluginsPageSource).toContain("operations?.succeed");