2022-08-26 13:09:33 -04:00
|
|
|
|
using Data.Models.Client;
|
|
|
|
|
using SharedLibraryCore;
|
|
|
|
|
using SharedLibraryCore.Commands;
|
|
|
|
|
using SharedLibraryCore.Configuration;
|
|
|
|
|
using SharedLibraryCore.Interfaces;
|
|
|
|
|
|
2023-02-11 21:48:31 -05:00
|
|
|
|
namespace IW4MAdmin.Plugins.Mute.Commands;
|
2022-08-26 13:09:33 -04:00
|
|
|
|
|
|
|
|
|
public class MuteCommand : Command
|
|
|
|
|
{
|
2023-02-11 21:48:31 -05:00
|
|
|
|
private readonly MuteManager _muteManager;
|
|
|
|
|
|
|
|
|
|
public MuteCommand(CommandConfiguration config, ITranslationLookup translationLookup, MuteManager muteManager) : base(config,
|
2022-08-26 13:09:33 -04:00
|
|
|
|
translationLookup)
|
|
|
|
|
{
|
2023-02-11 21:48:31 -05:00
|
|
|
|
_muteManager = muteManager;
|
2022-08-26 13:09:33 -04:00
|
|
|
|
Name = "mute";
|
|
|
|
|
Description = translationLookup["PLUGINS_MUTE_COMMANDS_MUTE_DESC"];
|
|
|
|
|
Alias = "mu";
|
|
|
|
|
Permission = EFClient.Permission.Moderator;
|
|
|
|
|
RequiresTarget = true;
|
|
|
|
|
SupportedGames = Plugin.SupportedGames;
|
|
|
|
|
Arguments = new[]
|
|
|
|
|
{
|
|
|
|
|
new CommandArgument
|
|
|
|
|
{
|
|
|
|
|
Name = translationLookup["COMMANDS_ARGS_PLAYER"],
|
|
|
|
|
Required = true
|
2022-10-05 16:29:31 -04:00
|
|
|
|
},
|
|
|
|
|
new CommandArgument
|
|
|
|
|
{
|
|
|
|
|
Name = translationLookup["COMMANDS_ARGS_REASON"],
|
|
|
|
|
Required = true
|
2022-08-26 13:09:33 -04:00
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override async Task ExecuteAsync(GameEvent gameEvent)
|
|
|
|
|
{
|
2022-10-24 19:58:12 -04:00
|
|
|
|
if (gameEvent.Origin.ClientId == gameEvent.Target.ClientId)
|
|
|
|
|
{
|
|
|
|
|
gameEvent.Origin.Tell(_translationLookup["COMMANDS_DENY_SELF_TARGET"]);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2023-02-11 21:48:31 -05:00
|
|
|
|
if (await _muteManager.Mute(gameEvent.Owner, gameEvent.Origin, gameEvent.Target, null, gameEvent.Data))
|
2022-08-26 13:09:33 -04:00
|
|
|
|
{
|
2022-10-05 16:29:31 -04:00
|
|
|
|
gameEvent.Origin.Tell(_translationLookup["PLUGINS_MUTE_COMMANDS_MUTE_MUTED"]
|
|
|
|
|
.FormatExt(gameEvent.Target.CleanedName));
|
|
|
|
|
gameEvent.Target.Tell(_translationLookup["PLUGINS_MUTE_COMMANDS_MUTE_TARGET_MUTED"]
|
|
|
|
|
.FormatExt(gameEvent.Data));
|
2022-08-26 13:09:33 -04:00
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2022-10-05 16:29:31 -04:00
|
|
|
|
gameEvent.Origin.Tell(_translationLookup["PLUGINS_MUTE_COMMANDS_MUTE_NOT_UNMUTED"]
|
|
|
|
|
.FormatExt(gameEvent.Target.CleanedName));
|
2022-08-26 13:09:33 -04:00
|
|
|
|
}
|
|
|
|
|
}
|