diff --git a/ClanTagRankCommands.csproj b/ClanTagRankCommands.csproj
index e5bca04..5348bdd 100644
--- a/ClanTagRankCommands.csproj
+++ b/ClanTagRankCommands.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/Commands/ResetRankCommand.cs b/Commands/ResetRankCommand.cs
index 260dc81..e8470c2 100644
--- a/Commands/ResetRankCommand.cs
+++ b/Commands/ResetRankCommand.cs
@@ -51,10 +51,16 @@ namespace ClanTagRankApi.Commands
{
//var S = E.Owner;
rank_string = "none";
- 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);
- await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber + " " + rank_string);
+ if(E.Target is object)
+ {
+ 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)
+ await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber + " " + rank_string);
+
+ }
+
}
}
}
diff --git a/Commands/SetRankCommand.cs b/Commands/SetRankCommand.cs
index cb9f4e8..fa381b5 100644
--- a/Commands/SetRankCommand.cs
+++ b/Commands/SetRankCommand.cs
@@ -55,41 +55,45 @@ namespace ClanTagRankApi.Commands
rank_string = "none";
if (E.Data != null)
rank_string = E.Data;
- var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
- if (rank_player_var == null)
+ if(E.Target is object)
{
- 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")
+ var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Target);
+ if (rank_player_var == null)
{
-
- //E.Origin.Tell(E.Target.Name + "'s rank has been reset");
- rank_string = E.Target.Level.ClanTag(Config);
- E.Origin.Tell(E.Target.Name + "'s rank has been reset to: " + rank_string);
-
+ 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(E.Target.Name + "'s rank has been reset to: " + rank_string);
+
+ }
+
+ else
+ {
+ rank_string = rank_player_var.Value;
+ 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);
-
+ E.Origin.Tell($"invalid rank length (between 1-8 characters), set rank to none, or use !ResetRank to reset");
}
- }
- else
- {
- 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)
+ await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber + " " + rank_string);
}
-
- await E.Owner.ExecuteCommandAsync("setclantag" + " " + E.Target.ClientNumber + " " + rank_string);
}
}
}
diff --git a/Configuration.cs b/Configuration.cs
index 7212314..ce91c79 100644
--- a/Configuration.cs
+++ b/Configuration.cs
@@ -22,7 +22,7 @@ namespace ClanTagRankApi
{
//this.RestartTimerLength = Utilities.PromptInt("How long in seconds until a server is killed after it is empty?", (string)null, 60, 86400, new int?(43200));
this.WARNING = "Do Not Exceed 8 characters, names will be truncated.";
- this.User = "User";
+ this.User = "";
this.Trusted = "Trusted";
this.Moderator = "Mod";
this.Admin = "Admin";
diff --git a/Plugin.cs b/Plugin.cs
index 03cbb03..98cbba6 100644
--- a/Plugin.cs
+++ b/Plugin.cs
@@ -53,39 +53,16 @@ namespace ClanTagRankApi
{
if (E.Type == GameEvent.EventType.Join ||E.Type == GameEvent.EventType.ChangePermission)
{
- Thread.Sleep(1000);
- var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
- rankName = E.Origin.Level.ClanTag(Config);
-
- rank_player_var = await _metaService.GetPersistentMeta("rank", E.Origin);
- if (rank_player_var == null)
+ if(E.Origin.IsIngame && E.Origin is object)
{
- await _metaService.AddPersistentMeta("rank", "none", E.Origin);
+ var rank_player_var = await _metaService.GetPersistentMeta(rank, E.Origin);
+ rankName = E.Origin.Level.ClanTag(Config);
+
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("setclantag" + " " + E.Origin.ClientNumber + " " + rankName);
- }
- if (E.Type == GameEvent.EventType.Start || E.Type == GameEvent.EventType.MapEnd || E.Type == GameEvent.EventType.MapChange)
- {
- Thread.Sleep(1000);
- IList currentclients = E.Owner.Manager.GetActiveClients();
- foreach(EFClient client in currentclients)
- {
- var rank_player_var = await _metaService.GetPersistentMeta(rank, client);
- rankName = client.Level.ClanTag(Config);
-
- 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);
+ 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")))
@@ -93,8 +70,37 @@ namespace ClanTagRankApi
rankName = rank_player_var.Value;
}
+ if (E.Origin.IsIngame && E.Origin is object)
+ await S.ExecuteCommandAsync("setclantag" + " " + E.Origin.ClientNumber + " " + rankName);
+ }
+
+ }
+ if (E.Type == GameEvent.EventType.Start || E.Type == GameEvent.EventType.MapEnd || E.Type == GameEvent.EventType.MapChange)
+ {
+ IList currentclients = E.Owner.Manager.GetActiveClients();
+ foreach(EFClient client in currentclients)
+ {
+ if (client.IsIngame && client is object)
+ {
+ var rank_player_var = await _metaService.GetPersistentMeta("rank", client);
+ rankName = client.Level.ClanTag(Config);
+
+ 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;
+
+ }
+ if (client.IsIngame && client is object)
+ await S.ExecuteCommandAsync("setclantag" + " " + client.ClientNumber + " " + rankName);
+ }
- await S.ExecuteCommandAsync("setclantag" + " " + client.ClientNumber + " " + rankName);
}
@@ -110,6 +116,37 @@ namespace ClanTagRankApi
public Task OnUnloadAsync() => Task.CompletedTask;
+ public Task notifyYADB(string message, string title, string reason, string icon, Server S, EFClient OriginClient, EFClient TargetClient)
+ {
+ string json = "";
+ using (var stream = new System.IO.MemoryStream())
+ {
+ using (var writer = new System.Text.Json.Utf8JsonWriter(stream))
+ {
+ writer.WriteStartObject();
+ writer.WriteString("title", title);
+ writer.WriteString("message", message);
+ writer.WriteString("reason", reason);
+ writer.WriteString("icon", icon);
+ writer.WriteEndObject();
+ }
+ json = System.Text.Encoding.UTF8.GetString(stream.ToArray());
+ }
+ var e = new GameEvent()
+ {
+ Origin = OriginClient,
+ Target = TargetClient,
+ Owner = S,
+ Type = GameEvent.EventType.Other,
+ Subtype = "YADB-Embed",
+ Extra = json
+ };
+
+ S.ExecuteEvent(e);
+ return Task.CompletedTask;
+
+ //notifyYADB("Kicked player @{target} after a successful vote started from @{origin}", $"Vote kicked {target.Name}", gameEvent.Data,":pencil:", Server, origin, target);
+ }
}
}