diff --git a/Events.cs b/Events.cs index 846aedf7..f89fede2 100644 --- a/Events.cs +++ b/Events.cs @@ -9,7 +9,8 @@ namespace WeaponPaints { CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot); - if (player == null || !player.IsValid || player.IsBot || player.IsHLTV || weaponSync == null || player.Connected == PlayerConnectedState.PlayerDisconnecting) return; + if (player is null || !player.IsValid || player.IsBot || player.IsHLTV || player.SteamID.ToString().Length != 17 || + weaponSync == null || player.Connected == PlayerConnectedState.PlayerDisconnecting) return; PlayerInfo playerInfo = new PlayerInfo { @@ -37,8 +38,7 @@ namespace WeaponPaints { CCSPlayerController player = Utilities.GetPlayerFromSlot(playerSlot); - if (player == null || !player.IsValid || player.IsBot || player.IsHLTV || player.UserId == null) - return; + if (player is null || !player.IsValid || !player.UserId.HasValue || player.IsBot || player.IsHLTV || player.SteamID.ToString().Length != 17) return; if (Config.Additional.KnifeEnabled) g_playersKnife.TryRemove((int)player.Index, out _); @@ -134,7 +134,7 @@ namespace WeaponPaints CCSPlayerController? player = Utilities.GetEntityFromIndex((int)activator.Index).OriginalController.Value; if (player == null || player.IsBot || player.IsHLTV || - player.SteamID.ToString() == "" || !g_knifePickupCount.TryGetValue((int)player.Index, out var pickupCount) || + player.SteamID.ToString().Length != 17 || !g_knifePickupCount.TryGetValue((int)player.Index, out var pickupCount) || !g_playersKnife.ContainsKey((int)player.Index)) { return HookResult.Continue; diff --git a/WeaponAction.cs b/WeaponAction.cs index 40937a1a..cf316b8b 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -337,7 +337,7 @@ namespace WeaponPaints } } - internal void RefreshKnife(CCSPlayerController? player, bool force = false) + internal void RefreshKnife(CCSPlayerController? player) { if (player == null || !player.IsValid || player.PlayerPawn?.Value == null || (LifeState_t)player.LifeState != LifeState_t.LIFE_ALIVE) return; @@ -358,8 +358,7 @@ namespace WeaponPaints if (weapon.Value.DesignerName.Contains("knife") || weaponData?.GearSlot == gear_slot_t.GEAR_SLOT_KNIFE) { - player.RemoveItemByDesignerName(weapon.Value.DesignerName, weapon.Value.Entity?.EntityInstance.IsValid ?? false); - AddTimer(0.2f, () => GiveKnifeToPlayer(player)); + RefreshWeapons(player); break; } } diff --git a/WeaponPaints.cs b/WeaponPaints.cs index cd350cbb..4a328e73 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -151,7 +151,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.6b"; + public override string ModuleVersion => "1.6c"; public static WeaponPaintsConfig GetWeaponPaintsConfig() { @@ -166,7 +166,8 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig