42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
|
using SharedLibraryCore;
|
|||
|
using SharedLibraryCore.Commands;
|
|||
|
using SharedLibraryCore.Configuration;
|
|||
|
using SharedLibraryCore.Interfaces;
|
|||
|
using System;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using static SharedLibraryCore.Database.Models.EFClient;
|
|||
|
|
|||
|
namespace IW4MAdmin.Application.Misc
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// generic script command implementation
|
|||
|
/// </summary>
|
|||
|
public class ScriptCommand : Command
|
|||
|
{
|
|||
|
private readonly Action<GameEvent> _executeAction;
|
|||
|
|
|||
|
public ScriptCommand(string name, string alias, string description, Permission permission,
|
|||
|
CommandArgument[] args, Action<GameEvent> executeAction, CommandConfiguration config, ITranslationLookup layout)
|
|||
|
: base(config, layout)
|
|||
|
{
|
|||
|
|
|||
|
_executeAction = executeAction;
|
|||
|
Name = name;
|
|||
|
Alias = alias;
|
|||
|
Description = description;
|
|||
|
Permission = permission;
|
|||
|
Arguments = args;
|
|||
|
}
|
|||
|
|
|||
|
public override Task ExecuteAsync(GameEvent E)
|
|||
|
{
|
|||
|
if (_executeAction == null)
|
|||
|
{
|
|||
|
throw new InvalidOperationException($"No execute action defined for command \"{Name}\"");
|
|||
|
}
|
|||
|
|
|||
|
return Task.Run(() => _executeAction(E));
|
|||
|
}
|
|||
|
}
|
|||
|
}
|