From b0790729be2df3f9e152cac0128040b50a178fb2 Mon Sep 17 00:00:00 2001 From: daffyyyy Date: Tue, 5 Dec 2023 19:30:10 +0100 Subject: [PATCH] Small fixes --- Commands.cs | 13 ++++++++++++- Events.cs | 2 ++ WeaponAction.cs | 5 ++++- WeaponPaints.cs | 6 +++++- WeaponSynchronization.cs | 9 +++------ 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/Commands.cs b/Commands.cs index c235706d..82bd1248 100644 --- a/Commands.cs +++ b/Commands.cs @@ -109,6 +109,7 @@ namespace WeaponPaints { if (Utility.IsPlayerValid(player)) { + if (player == null) return; var knifeName = option.Text; var knifeKey = knivesOnly.FirstOrDefault(x => x.Value == knifeName).Key; if (!string.IsNullOrEmpty(knifeKey)) @@ -127,14 +128,24 @@ namespace WeaponPaints player!.PrintToChat(Utility.ReplaceTags(temp)); } + PlayerInfo playerInfo = new PlayerInfo + { + UserId = player.UserId, + Index = (int)player.Index, + SteamId = player?.AuthorizedSteamID?.SteamId64.ToString(), + Name = player?.PlayerName, + IpAddress = player?.IpAddress?.Split(":")[0] + }; + g_playersKnife[(int)player!.Index] = knifeKey; if (player!.PawnIsAlive && g_bCommandsAllowed) { RefreshWeapons(player); } + if (weaponSync != null) - Task.Run(() => weaponSync.SyncKnifeToDatabase((int)player.Index, knifeKey)); + Task.Run(async () => await weaponSync.SyncKnifeToDatabase(playerInfo, knifeKey)); } } }; diff --git a/Events.cs b/Events.cs index 7cdeb45b..b8836c9f 100644 --- a/Events.cs +++ b/Events.cs @@ -105,6 +105,7 @@ namespace WeaponPaints RemovePlayerKnife(player, true); AddTimer(0.3f, () => GiveKnifeToPlayer(player)); + } } return HookResult.Continue; @@ -207,6 +208,7 @@ namespace WeaponPaints return HookResult.Continue; } + private HookResult OnRoundEnd(EventRoundEnd @event, GameEventInfo info) { g_bCommandsAllowed = false; diff --git a/WeaponAction.cs b/WeaponAction.cs index ed33bda6..ccecddf4 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -2,6 +2,7 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Memory; using CounterStrikeSharp.API.Modules.Utils; +using Microsoft.Extensions.Logging; namespace WeaponPaints { @@ -81,7 +82,7 @@ namespace WeaponPaints { if (!_config.Additional.KnifeEnabled) return false; - if (player == null || !player.IsValid || !player.PlayerPawn.IsValid) + if (player == null || !player.IsValid || player.PlayerPawn == null || !player.PlayerPawn.IsValid || !player.PawnIsAlive) { return false; } @@ -221,6 +222,7 @@ namespace WeaponPaints } catch (Exception ex) { + Logger.LogWarning("Refreshing weapons exception"); Console.WriteLine("[WeaponPaints] Refreshing weapons exception"); Console.WriteLine(ex.Message); } @@ -240,6 +242,7 @@ namespace WeaponPaints if (weapons != null && weapons.Count > 0) { CCSPlayer_ItemServices service = new CCSPlayer_ItemServices(player.PlayerPawn.Value.ItemServices.Handle); + //var dropWeapon = VirtualFunction.CreateVoid(service.Handle, GameData.GetOffset("CCSPlayer_ItemServices_DropActivePlayerWeapon")); foreach (var weapon in weapons) { diff --git a/WeaponPaints.cs b/WeaponPaints.cs index 9333e98a..08158eba 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -3,6 +3,7 @@ using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Attributes; using CounterStrikeSharp.API.Modules.Cvars; using Newtonsoft.Json.Linq; +using Microsoft.Extensions.Logging; namespace WeaponPaints; @@ -142,7 +143,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig "Nereziel & daffyy"; public override string ModuleDescription => "Skin and knife selector, standalone and web-based"; public override string ModuleName => "WeaponPaints"; - public override string ModuleVersion => "1.3c"; + public override string ModuleVersion => "1.3d"; public static WeaponPaintsConfig GetWeaponPaintsConfig() { return _config; @@ -203,6 +204,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig