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
+1
View File
@@ -277,6 +277,7 @@ type RunJobReconcileResult struct {
func CopyRunJobAssignment(assignment RunJobAssignment) RunJobAssignment {
assignment.ExecutionInput.Inputs = CopyStringMap(assignment.ExecutionInput.Inputs)
assignment.ExecutionInput.DLLExtensions = append([]RuntimeDLLExtensionPlan(nil), assignment.ExecutionInput.DLLExtensions...)
return assignment
}
+43
View File
@@ -368,6 +368,7 @@ type RuntimeLifecycleProfile struct {
ActionRefs PluginLifecycleActions
TransportKeys []string
ClientManagerRef string
DLLExtensionRefs []string
Platforms []string
}
@@ -455,6 +456,40 @@ type RuntimeClientManagerProfile struct {
UpdatePolicy RuntimeClientManagerUpdatePolicy
}
type RuntimeDLLExtensionProfile struct {
Key string
DisplayName string
Kind string
Activation string
Version string
ReleaseState string
ReleaseURL string
Checksum string
SizeBytes int64
TargetKey string
ModKey string
DLLRef string
SCUMExecutableChecksum string
UE4SSABI string
SupportedTargets []RuntimeTarget
UpdateOnStart bool
RCONPort int
}
type RuntimeDLLExtensionPlan struct {
Key string
Version string
ReleaseURL string
Checksum string
SizeBytes int64
TargetKey string
ModKey string
DLLRef string
SCUMExecutableChecksum string
UE4SSABI string
RCONPort int
}
type RuntimeConfigTemplate struct {
Key string
TemplateRef string
@@ -470,6 +505,7 @@ type GamePluginRuntimeProfiles struct {
LogEvents []RuntimeLogEvent
TransportProfiles []RuntimeTransportProfile
ClientManagers []RuntimeClientManagerProfile
DLLExtensions []RuntimeDLLExtensionProfile
}
type GamePluginManifest struct {
@@ -812,6 +848,7 @@ type JobExecutionInput struct {
LifecycleOperation string
TargetVersion string
Inputs map[string]string
DLLExtensions []RuntimeDLLExtensionPlan
}
type JobExecutionResult struct {
@@ -1397,6 +1434,7 @@ func CopyGamePluginRuntimeProfiles(profiles GamePluginRuntimeProfiles) GamePlugi
for i := range profiles.LifecycleProfiles {
profiles.LifecycleProfiles[i].Capabilities = CopyStringSlice(profiles.LifecycleProfiles[i].Capabilities)
profiles.LifecycleProfiles[i].TransportKeys = CopyStringSlice(profiles.LifecycleProfiles[i].TransportKeys)
profiles.LifecycleProfiles[i].DLLExtensionRefs = CopyStringSlice(profiles.LifecycleProfiles[i].DLLExtensionRefs)
profiles.LifecycleProfiles[i].Platforms = CopyStringSlice(profiles.LifecycleProfiles[i].Platforms)
}
profiles.DependencyProbes = append([]RuntimeDependencyProbe(nil), profiles.DependencyProbes...)
@@ -1424,6 +1462,10 @@ func CopyGamePluginRuntimeProfiles(profiles GamePluginRuntimeProfiles) GamePlugi
profiles.ClientManagers[i].Lifecycle.Actions = CopyStringSlice(profiles.ClientManagers[i].Lifecycle.Actions)
profiles.ClientManagers[i].Health.RequiredCapabilities = CopyStringSlice(profiles.ClientManagers[i].Health.RequiredCapabilities)
}
profiles.DLLExtensions = append([]RuntimeDLLExtensionProfile(nil), profiles.DLLExtensions...)
for i := range profiles.DLLExtensions {
profiles.DLLExtensions[i].SupportedTargets = append([]RuntimeTarget(nil), profiles.DLLExtensions[i].SupportedTargets...)
}
return profiles
}
@@ -1527,6 +1569,7 @@ func CopyRunEndpoint(endpoint RunEndpoint) RunEndpoint {
func CopyJob(job Job) Job {
job.ExecutionInput.Inputs = CopyStringMap(job.ExecutionInput.Inputs)
job.ExecutionInput.DLLExtensions = append([]RuntimeDLLExtensionPlan(nil), job.ExecutionInput.DLLExtensions...)
return job
}