From 9b688a42afaefd86414da460def26fcb6bfb9502 Mon Sep 17 00:00:00 2001 From: daffyyyy Date: Wed, 29 Nov 2023 02:48:30 +0100 Subject: [PATCH] Fixed scoreboard tags, tested on k4 --- CS2-Tags.cs | 38 +++++++++++++++++++++++++++++++++++--- README.md | 2 +- 2 files changed, 36 insertions(+), 4 deletions(-) diff --git a/CS2-Tags.cs b/CS2-Tags.cs index 98ebbc0..f29d4e8 100644 --- a/CS2-Tags.cs +++ b/CS2-Tags.cs @@ -7,6 +7,7 @@ using CounterStrikeSharp.API.Modules.Entities; using CounterStrikeSharp.API.Modules.Utils; using Newtonsoft.Json.Linq; using System.Reflection; +using static CounterStrikeSharp.API.Core.Listeners; namespace CS2_Tags; public class CS2_Tags : BasePlugin @@ -22,7 +23,10 @@ public class CS2_Tags : BasePlugin CreateOrLoadJsonFile(ModuleDirectory + "/tags.json"); RegisterListener(OnClientAuthorized); + RegisterEventHandler(OnPlayerConnectFull); + //RegisterListener(OnClientPutInServer); RegisterEventHandler(OnPlayerSpawn); + RegisterEventHandler(OnPlayerDeath); AddCommandListener("say", OnPlayerChat); AddCommandListener("say_team", OnPlayerChatTeam); } @@ -35,6 +39,13 @@ public class CS2_Tags : BasePlugin { ["tags"] = new JObject { + ["#css/admin"] = new JObject + { + ["prefix"] = "{RED}[ADMIN]", + ["nick_color"] = "{RED}", + ["message_color"] = "{GOLD}", + ["scoreboard"] = "[ADMIN]" + }, ["@css/chat"] = new JObject { ["prefix"] = "{GREEN}[CHAT]", @@ -44,7 +55,7 @@ public class CS2_Tags : BasePlugin }, ["76561197961430531"] = new JObject { - ["prefix"] = "{GREEN}[ADMIN]", + ["prefix"] = "{RED}[ADMIN]", ["nick_color"] = "{RED}", ["message_color"] = "{GOLD}", ["scoreboard"] = "[ADMIN]" @@ -75,6 +86,8 @@ public class CS2_Tags : BasePlugin { if (player != null) return; CreateOrLoadJsonFile(ModuleDirectory + "/tags.json"); + + Server.PrintToConsole("[CS2-Tags] Config reloaded!"); } private void OnClientAuthorized(int playerSlot, SteamID steamId) @@ -85,6 +98,16 @@ public class CS2_Tags : BasePlugin AddTimer(1.0f, () => SetPlayerClanTag(player)); } + private HookResult OnPlayerConnectFull(EventPlayerConnectFull @event, GameEventInfo info) + { + CCSPlayerController? player = @event.Userid; + + if (player == null || !player.IsValid || player.IsBot) return HookResult.Continue; + + AddTimer(3.0f, () => SetPlayerClanTag(player)); + + return HookResult.Continue; + } private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info) { @@ -96,6 +119,17 @@ public class CS2_Tags : BasePlugin return HookResult.Continue; } + private HookResult OnPlayerDeath(EventPlayerDeath @event, GameEventInfo info) + { + CCSPlayerController? player = @event.Userid; + if (player == null || !player.IsValid || player.IsBot) return HookResult.Continue; + + AddTimer(1.0f, () => SetPlayerClanTag(player)); + + return HookResult.Continue; + } + + private HookResult OnPlayerChat(CCSPlayerController? player, CommandInfo info) { if (player == null || !player.IsValid || info.GetArg(1).Length == 0) return HookResult.Continue; @@ -128,8 +162,6 @@ public class CS2_Tags : BasePlugin return HookResult.Handled; } - - foreach (var tagKey in tagsObject.Properties()) { if (tagKey.Name.StartsWith("#")) diff --git a/README.md b/README.md index aa4e4e6..1a67768 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Adds tags to the server that can be easily edited, tags can be assigned via perm ``` { "tags": { - "#css/admin": { // Permission + "#css/admin": { // Group "prefix": "{GREEN}[ADMIN]", // Chat prefix "nick_color": "{RED}", // Nick color "message_color": "{GOLD}", // Message nick color