Move SCUM lifecycle ownership to plugin

This commit is contained in:
npc0-hue
2026-08-01 09:36:12 +08:00
parent bca4f935ba
commit d1249fca85
49 changed files with 795 additions and 566 deletions
+20
View File
@@ -748,6 +748,7 @@ func gamePluginFromManifestRegistration(registration domain.GamePluginManifestRe
DeclaredPermissions: manifest.Permissions,
Permissions: pluginPermissionsFromManifest(manifest.Permissions),
LifecycleActions: manifest.Actions,
LifecycleAssets: lifecycleAssetsFromManifestRegistration(registration),
BridgeActions: manifest.Bridge.Actions,
Pages: manifest.Pages,
FileWorkspace: manifest.FileWorkspace,
@@ -762,6 +763,25 @@ func gamePluginFromManifestRegistration(registration domain.GamePluginManifestRe
}
}
func lifecycleAssetsFromManifestRegistration(registration domain.GamePluginManifestRegistration) []domain.PluginAssetFile {
assets := domain.CopyPluginAssetFiles(registration.AssetFiles)
if len(registration.Manifest.AssetFiles) == 0 {
return assets
}
modeByPath := map[string]int{}
for _, file := range registration.Manifest.AssetFiles {
if file.Mode != 0 {
modeByPath[file.Path] = file.Mode
}
}
for i := range assets {
if assets[i].Mode == 0 {
assets[i].Mode = modeByPath[assets[i].Path]
}
}
return assets
}
func (svc *CoreService) AuthorizePluginBridgeAction(request domain.PluginBridgeAuthorizeRequest) (domain.PluginBridgeAuthorization, error) {
if err := validator.ValidatePluginBridgeAuthorizeRequest(request); err != nil {
return domain.PluginBridgeAuthorization{}, err