update commands to make sure they address objects being null.
This commit is contained in:
94
Commands/GetRankCommand.cs
Normal file
94
Commands/GetRankCommand.cs
Normal file
@ -0,0 +1,94 @@
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Commands;
|
||||
using SharedLibraryCore.Configuration;
|
||||
using SharedLibraryCore.Database.Models;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
namespace ClanTagRankCommands.Commands
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Example script command
|
||||
/// </summary>
|
||||
///
|
||||
|
||||
public class GetRankCommand : Command
|
||||
{
|
||||
readonly string rank = "rank";
|
||||
string rank_string;
|
||||
private readonly IMetaService _metaService;
|
||||
private readonly IConfigurationHandler<Configuration> _configurationHandler;
|
||||
private Configuration Config;
|
||||
|
||||
|
||||
public GetRankCommand(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 = "GetRank";
|
||||
Description = "Get a user's clan tag Rank (does not give permissions)";
|
||||
Alias = "Gr";
|
||||
Permission = EFClient.Permission.Trusted;
|
||||
RequiresTarget = true;
|
||||
Arguments = new[]
|
||||
{
|
||||
new CommandArgument()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
public override async Task ExecuteAsync(GameEvent E)
|
||||
{
|
||||
//var S = E.Owner;
|
||||
rank_string = "none";
|
||||
if(E.Target is not null)
|
||||
{
|
||||
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
if (rank_player_var == null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta(rank, "none", E.Target);
|
||||
rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
}
|
||||
|
||||
if (rank_string.Length > 0 && rank_string.Length < 9)
|
||||
{
|
||||
|
||||
//await _metaService.AddPersistentMeta(rank, rank_string, E.Target);
|
||||
rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
if(rank_player_var.Value == "none" || rank_player_var.Value == "None" || rank_player_var.Value == "NONE")
|
||||
{
|
||||
|
||||
//E.Origin.Tell(E.Target.Name + "'s rank has been reset");
|
||||
rank_string = E.Target.Level.ClanTag(Config);
|
||||
E.Origin.Tell("[" + rank_string + "]" + E.Target.Name );
|
||||
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
rank_string = rank_player_var.Value;
|
||||
E.Origin.Tell("[" + rank_player_var.Value + "]" + E.Target.Name);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
@ -5,6 +5,8 @@ using SharedLibraryCore.Database.Models;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using System.Threading.Tasks;
|
||||
using ClanTagRankCommands;
|
||||
using System;
|
||||
using System.Runtime;
|
||||
|
||||
namespace ClanTagRankCommands.Commands
|
||||
{
|
||||
@ -49,9 +51,9 @@ namespace ClanTagRankCommands.Commands
|
||||
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());
|
||||
//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)
|
||||
if (E.Origin is not null && E.Origin.CurrentServer == E.Owner && 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);
|
||||
@ -69,10 +71,20 @@ namespace ClanTagRankCommands.Commands
|
||||
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))
|
||||
if (E.Origin is not null && E.Origin.CurrentServer == E.Owner && 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());
|
||||
if(string.IsNullOrWhiteSpace(rankName))
|
||||
{
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
|
||||
await E.Owner.ExecuteCommandAsync("setrole" + " " + E.Origin.ClientNumber.ToString() + " " + rankName.ToString());
|
||||
E.Origin.Tell("Setting permaperks");
|
||||
}
|
||||
|
||||
//await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Origin.ClientNumber.ToString() + ";" + rankName.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -51,16 +51,26 @@ namespace ClanTagRankCommands.Commands
|
||||
{
|
||||
//var S = E.Owner;
|
||||
rank_string = "none";
|
||||
if(E.Target is object)
|
||||
if(E.Target is not null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta(rank, rank_string, E.Target);
|
||||
rank_string = E.Target.Level.ClanTag(Config);
|
||||
E.Origin.Tell(E.Target.Name + "'s rank has been reset to: " + rank_string);
|
||||
if (E.Target.IsIngame && E.Target is object)
|
||||
if (E.Target is not null && E.Target.IsIngame )
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
//await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
|
||||
await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
if (string.IsNullOrWhiteSpace(rank_string))
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
|
||||
|
||||
await E.Owner.ExecuteCommandAsync("resetrole " + E.Target.ClientNumber.ToString());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
//await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
|
||||
await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -55,7 +55,7 @@ namespace ClanTagRankCommands.Commands
|
||||
rank_string = "none";
|
||||
if (E.Data != null)
|
||||
rank_string = E.Data;
|
||||
if(E.Target is object)
|
||||
if(E.Target is not null)
|
||||
{
|
||||
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
if (rank_player_var == null)
|
||||
@ -90,11 +90,21 @@ namespace ClanTagRankCommands.Commands
|
||||
E.Origin.Tell($"invalid rank length (between 1-8 characters), set rank to none, or use !ResetRank to reset");
|
||||
}
|
||||
|
||||
if(E.Target.IsIngame && E.Target is object)
|
||||
if(E.Target is not null && E.Target.IsIngame)
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
//await E.Owner.SetDvarAsync("sv_iw4madmin_role", "setRole;" + E.Target.ClientNumber.ToString() + ";" + rank_string.ToString());
|
||||
await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
if (string.IsNullOrWhiteSpace(rank_string))
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("resetclantag" + " " + E.Target.ClientNumber.ToString());
|
||||
|
||||
await E.Owner.ExecuteCommandAsync("resetrole " + E.Target.ClientNumber.ToString());
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
|
||||
await E.Owner.ExecuteCommandAsync("setrole " + E.Target.ClientNumber.ToString() + " " + rank_string.ToString());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user