87 lines
3.8 KiB
C#
87 lines
3.8 KiB
C#
using SharedLibraryCore;
|
|
using SharedLibraryCore.Commands;
|
|
using SharedLibraryCore.Configuration;
|
|
using SharedLibraryCore.Database.Models;
|
|
using SharedLibraryCore.Interfaces;
|
|
using System.Threading.Tasks;
|
|
using ClanTagRankCommands;
|
|
|
|
namespace ClanTagRankCommands.Commands
|
|
{
|
|
/// <summary>
|
|
/// Example script command
|
|
/// </summary>
|
|
public class PermaperkCommand : Command
|
|
{
|
|
private readonly IMetaService _metaService;
|
|
private readonly IConfigurationHandler<Configuration> _configurationHandler;
|
|
private Configuration Config;
|
|
public PermaperkCommand(CommandConfiguration config, ITranslationLookup lookup, IMetaService metaService, IConfigurationHandlerFactory configurationHandlerFactory) : base(config, lookup)
|
|
{
|
|
_metaService = metaService;
|
|
_configurationHandler = configurationHandlerFactory.GetConfigurationHandler<Configuration>("ClanTagRankCommands");
|
|
if (_configurationHandler.Configuration() == null)
|
|
{
|
|
_configurationHandler.Set((Configuration)new Configuration().Generate());
|
|
_configurationHandler.Save();
|
|
}
|
|
Config = _configurationHandler.Configuration();
|
|
Name = "Permaperk";
|
|
Description = "force permaperks, clan tag, and speed if they don't set correctly.";
|
|
Alias = "perma";
|
|
Permission = EFClient.Permission.Trusted;
|
|
RequiresTarget = false;
|
|
Arguments = new[]
|
|
{
|
|
new CommandArgument()
|
|
{
|
|
}
|
|
};
|
|
}
|
|
|
|
public override async Task ExecuteAsync(GameEvent E)
|
|
{
|
|
//await yadb.notifyYADB("Kicked player @{target} after a successful vote started from @{origin}", $"testing", E.Data,":pencil:", E.Owner, E.Origin, E.Origin);
|
|
var speedtoggle = await _metaService.GetPersistentMeta("speedtoggle", E.Origin);
|
|
if (speedtoggle == null)
|
|
{
|
|
// speedtoggle == 1 means slower, unmodified speed)
|
|
await _metaService.AddPersistentMeta("speedtoggle", "0", E.Origin);
|
|
speedtoggle = await _metaService.GetPersistentMeta("speedtoggle", E.Origin);
|
|
}
|
|
await E.Owner.SetDvarAsync("sv_iw4madmin_options", "speedtoggle;" + E.Origin.ClientNumber.ToString() + ";" + speedtoggle.Value.ToString());
|
|
|
|
if (E.Origin.CurrentServer == E.Owner && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)
|
|
{
|
|
var rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
|
|
var rankName = E.Origin.Level.ClanTag(Config);
|
|
|
|
rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
|
|
if (rank_player_var == null)
|
|
{
|
|
|
|
await _metaService.AddPersistentMeta("rank", "none", E.Origin);
|
|
rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
|
|
}
|
|
|
|
if (!(rank_player_var.Value.Contains("none")) && !(rank_player_var.Value.Contains("None")) && !(rank_player_var.Value.Contains("NONE")))
|
|
{
|
|
rankName = rank_player_var.Value;
|
|
|
|
}
|
|
if (E.Origin.CurrentServer == E.Owner && E.Origin is object && E.Origin.ClientNumber != -1 && E.Origin.ClientNumber != 9)// && (E.Origin.Level > EFClient.Permission.Trusted || rankName != Config.User))
|
|
{
|
|
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
|
|
await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|