mirror of
https://github.com/chylex/Minecraft-Phantom-Panel.git
synced 2025-05-02 21:34:05 +02:00
18 lines
646 B
C#
18 lines
646 B
C#
using Phantom.Agent.Services.Instances.States;
|
|
using Phantom.Common.Data.Instance;
|
|
|
|
namespace Phantom.Agent.Services.Instances.Procedures;
|
|
|
|
sealed record SetInstanceToNotRunningStateProcedure(IInstanceStatus Status) : IInstanceProcedure {
|
|
public Task<IInstanceState?> Run(IInstanceContext context, CancellationToken cancellationToken) {
|
|
if (context.CurrentState is InstanceRunningState { Process.HasEnded: true }) {
|
|
context.SetStatus(Status);
|
|
context.ReportEvent(InstanceEvent.Stopped);
|
|
return Task.FromResult<IInstanceState?>(new InstanceNotRunningState());
|
|
}
|
|
else {
|
|
return Task.FromResult<IInstanceState?>(null);
|
|
}
|
|
}
|
|
}
|