support using Rcon for changing clan tag.
This commit is contained in:
parent
0557523482
commit
7b73331924
57
ClanTag.cs
Normal file
57
ClanTag.cs
Normal file
@ -0,0 +1,57 @@
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Database.Models;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ClanTagRankApi
|
||||
{
|
||||
public static class ExtensionMethods
|
||||
{
|
||||
public static string ClanTag(this EFClient.Permission level)
|
||||
{
|
||||
string rankName;
|
||||
switch ((int)level)
|
||||
{
|
||||
case -1:
|
||||
rankName = "Banned"; //this typically won't be seen.
|
||||
break;
|
||||
case 0:
|
||||
rankName = "User";
|
||||
break;
|
||||
case 1:
|
||||
rankName = "User"; //1 = flagged, but don't want to show this in game.
|
||||
break;
|
||||
case 2:
|
||||
rankName = "Trusted";
|
||||
break;
|
||||
case 3:
|
||||
rankName = "Mod";
|
||||
break;
|
||||
case 4:
|
||||
rankName = "Admin";
|
||||
break;
|
||||
case 5:
|
||||
rankName = "SrAdmin";
|
||||
break;
|
||||
case 6:
|
||||
rankName = "Owner";
|
||||
break;
|
||||
case 7:
|
||||
rankName = "Creator";
|
||||
break;
|
||||
case 8:
|
||||
rankName = "Console";
|
||||
break;
|
||||
default:
|
||||
rankName = "User";
|
||||
break;
|
||||
}
|
||||
return rankName;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -7,7 +7,7 @@ using System.Threading.Tasks;
|
||||
|
||||
|
||||
|
||||
namespace IW4ScriptCommands.Commands
|
||||
namespace ClanTagRankApi.Commands
|
||||
{
|
||||
/// <summary>
|
||||
/// Example script command
|
||||
@ -55,15 +55,35 @@ namespace IW4ScriptCommands.Commands
|
||||
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 reset to none");
|
||||
{
|
||||
//E.Origin.Tell(E.Target.Name + "'s rank has been reset");
|
||||
rank_string = E.Target.Level.ClanTag();
|
||||
E.Origin.Tell(E.Target.Name + "'s rank has been reset to: " + rank_string);
|
||||
|
||||
E.Origin.Tell("New rank set: [" + rank_player_var.Value + "]" + E.Target.Name);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
rank_string = rank_player_var.Value;
|
||||
E.Origin.Tell("New rank set: [" + rank_player_var.Value + "]" + E.Target.Name);
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
E.Origin.Tell($"invalid rank length (between 1-8 characters), set rank to none to reset");
|
||||
}
|
||||
|
||||
//var cmd = new ScriptCommand()
|
||||
//{
|
||||
|
||||
// CommandName = "setrank",
|
||||
// ClientNumber = E.Target.ClientNumber,
|
||||
// CommandArguments = new[] {rank_string }
|
||||
//};
|
||||
|
||||
await E.Owner.ExecuteCommandAsync("setrank" + " " + E.Target.ClientNumber + " " + rank_string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using ClanTagRankApi;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Database.Models;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
@ -35,41 +36,7 @@ namespace WebfrontCore.Controllers.API
|
||||
if (clientInfo != null)
|
||||
{
|
||||
|
||||
switch ((int)clientInfo.Level)
|
||||
{
|
||||
case -1:
|
||||
rankName = "Banned"; //this typically won't be seen.
|
||||
break;
|
||||
case 0:
|
||||
rankName = "User";
|
||||
break;
|
||||
case 1:
|
||||
rankName = "User"; //1 = flagged, but don't want to show this in game.
|
||||
break;
|
||||
case 2:
|
||||
rankName = "Trusted";
|
||||
break;
|
||||
case 3:
|
||||
rankName = "Mod";
|
||||
break;
|
||||
case 4:
|
||||
rankName = "Admin";
|
||||
break;
|
||||
case 5:
|
||||
rankName = "SrAdmin";
|
||||
break;
|
||||
case 6:
|
||||
rankName = "Owner";
|
||||
break;
|
||||
case 7:
|
||||
rankName = "Creator";
|
||||
break;
|
||||
case 8:
|
||||
rankName = "Console";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
rankName = clientInfo.Level.ClanTag();
|
||||
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
if (customRankName == null)
|
||||
@ -103,41 +70,7 @@ namespace WebfrontCore.Controllers.API
|
||||
if (clientInfo != null)
|
||||
{
|
||||
|
||||
switch ((int)clientInfo.Level)
|
||||
{
|
||||
case -1:
|
||||
rankName = "Banned"; //this typically won't be seen.
|
||||
break;
|
||||
case 0:
|
||||
rankName = "User";
|
||||
break;
|
||||
case 1:
|
||||
rankName = "User"; //1 = flagged, but don't want to show this in game.
|
||||
break;
|
||||
case 2:
|
||||
rankName = "Trusted";
|
||||
break;
|
||||
case 3:
|
||||
rankName = "Mod";
|
||||
break;
|
||||
case 4:
|
||||
rankName = "Admin";
|
||||
break;
|
||||
case 5:
|
||||
rankName = "SrAdmin";
|
||||
break;
|
||||
case 6:
|
||||
rankName = "Owner";
|
||||
break;
|
||||
case 7:
|
||||
rankName = "Creator";
|
||||
break;
|
||||
case 8:
|
||||
rankName = "Console";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
rankName = clientInfo.Level.ClanTag();
|
||||
|
||||
customRankName = await _metaService.GetPersistentMeta("rank", clientInfo);
|
||||
if (customRankName == null)
|
||||
|
52
Plugin.cs
52
Plugin.cs
@ -1,6 +1,10 @@
|
||||
using SharedLibraryCore;
|
||||
using SharedLibraryCore.Interfaces;
|
||||
using System.Diagnostics.Tracing;
|
||||
using System.Threading.Tasks;
|
||||
using System.Threading;
|
||||
using SharedLibraryCore.Database.Models;
|
||||
using System.Collections.Generic;
|
||||
|
||||
|
||||
namespace ClanTagRankApi
|
||||
@ -11,6 +15,7 @@ namespace ClanTagRankApi
|
||||
private readonly IConfigurationHandler<Configuration> _configurationHandler;
|
||||
private Configuration Config;
|
||||
readonly string rank = "rank";
|
||||
string rankName = "none";
|
||||
|
||||
|
||||
|
||||
@ -43,14 +48,53 @@ namespace ClanTagRankApi
|
||||
}
|
||||
public async Task OnEventAsync(GameEvent E, Server S)// => Task.CompletedTask;
|
||||
{
|
||||
if (E.Type == GameEvent.EventType.Join)
|
||||
if (E.Type == GameEvent.EventType.Join ||E.Type == GameEvent.EventType.ChangePermission)
|
||||
{
|
||||
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
Thread.Sleep(10000);
|
||||
var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
|
||||
rankName = E.Origin.Level.ClanTag();
|
||||
|
||||
rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
|
||||
if (rank_player_var == null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta(rank, "none", E.Target);
|
||||
rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
await S.ExecuteCommandAsync("setrank" + " " + E.Origin.ClientNumber + " " + rankName);
|
||||
}
|
||||
if (E.Type == GameEvent.EventType.Start || E.Type == GameEvent.EventType.MapEnd || E.Type == GameEvent.EventType.MapChange)
|
||||
{
|
||||
Thread.Sleep(10000);
|
||||
IList<EFClient> currentclients = E.Owner.Manager.GetActiveClients();
|
||||
foreach(EFClient client in currentclients)
|
||||
{
|
||||
var rank_player_var = await _metaService.GetPersistentMeta(rank, client);
|
||||
rankName = client.Level.ClanTag();
|
||||
|
||||
rank_player_var = await _metaService.GetPersistentMeta("rank", client);
|
||||
if (rank_player_var == null)
|
||||
{
|
||||
await _metaService.AddPersistentMeta("rank", "none", client);
|
||||
rank_player_var = await _metaService.GetPersistentMeta("rank", client);
|
||||
}
|
||||
|
||||
if (!(rank_player_var.Value.Contains("none")) && !(rank_player_var.Value.Contains("None")) && !(rank_player_var.Value.Contains("NONE")))
|
||||
{
|
||||
rankName = rank_player_var.Value;
|
||||
|
||||
}
|
||||
|
||||
await S.ExecuteCommandAsync("setrank" + " " + client.ClientNumber + " " + rankName);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//return Task.CompletedTask;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user