diff --git a/Commands.cs b/Commands.cs index dce10b93..6437a964 100644 --- a/Commands.cs +++ b/Commands.cs @@ -86,7 +86,7 @@ namespace WeaponPaints if (!Utility.IsPlayerValid(player) || !g_bCommandsAllowed) return; int playerIndex = (int)player!.Index; - if (commandCooldown != null && DateTime.UtcNow >= commandCooldown[playerIndex].AddSeconds(Config.CmdRefreshCooldownSeconds) && playerIndex > 0 && playerIndex < commandCooldown.Length) + if (commandCooldown != null && DateTime.UtcNow >= commandCooldown[playerIndex].AddSeconds(Config.CmdRefreshCooldownSeconds)) { commandCooldown[playerIndex] = DateTime.UtcNow; ChatMenus.OpenMenu(player, giveItemMenu); diff --git a/Events.cs b/Events.cs index bd1393dc..cc01183a 100644 --- a/Events.cs +++ b/Events.cs @@ -1,23 +1,26 @@ using CounterStrikeSharp.API; using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Modules.Entities; +using CounterStrikeSharp.API.Core.Attributes.Registration; namespace WeaponPaints { public partial class WeaponPaints { - private void RegisterEvents() + private void RegisterListeners() { RegisterListener(OnEntitySpawned); RegisterListener(OnClientAuthorized); RegisterListener(OnClientDisconnect); RegisterListener(OnMapStart); + /* RegisterEventHandler(OnPlayerConnectFull); RegisterEventHandler(OnPlayerSpawn); RegisterEventHandler(OnRoundStart, HookMode.Pre); RegisterEventHandler(OnRoundEnd); RegisterEventHandler(OnEventItemPurchasePost); RegisterEventHandler(OnItemPickup); + */ } /*private HookResult OnPlayerConnectFull(EventPlayerConnectFull @event, GameEventInfo info) @@ -89,6 +92,7 @@ namespace WeaponPaints } /* WORKAROUND FOR CLIENTS WITHOUT STEAMID ON AUTHORIZATION */ + [GameEventHandler] private HookResult OnPlayerConnectFull(EventPlayerConnectFull @event, GameEventInfo info) { CCSPlayerController? player = @event.Userid; @@ -131,6 +135,7 @@ namespace WeaponPaints gPlayerWeaponsInfo.Remove((int)player.Index); } + [GameEventHandler] private HookResult OnPlayerSpawn(EventPlayerSpawn @event, GameEventInfo info) { CCSPlayerController? player = @event.Userid; @@ -153,6 +158,7 @@ namespace WeaponPaints return HookResult.Continue; } + [GameEventHandler(HookMode.Pre)] private HookResult OnRoundStart(EventRoundStart @event, GameEventInfo info) { NativeAPI.IssueServerCommand("mp_t_default_melee \"\""); @@ -164,12 +170,14 @@ namespace WeaponPaints return HookResult.Continue; } + [GameEventHandler] private HookResult OnRoundEnd(EventRoundEnd @event, GameEventInfo info) { g_bCommandsAllowed = false; return HookResult.Continue; } + [GameEventHandler] private HookResult OnItemPickup(EventItemPickup @event, GameEventInfo info) { if (@event.Defindex == 42 || @event.Defindex == 59) @@ -257,6 +265,8 @@ namespace WeaponPaints catch (Exception) { } }); } + + [GameEventHandler] private HookResult OnEventItemPurchasePost(EventItemPurchase @event, GameEventInfo info) { CCSPlayerController? player = @event.Userid; diff --git a/WeaponAction.cs b/WeaponAction.cs index ad238e6d..e8d5991f 100644 --- a/WeaponAction.cs +++ b/WeaponAction.cs @@ -251,7 +251,7 @@ namespace WeaponPaints { if (!_config.Additional.KnifeEnabled) return false; - if (player == null || !player.IsValid) + if (player == null || !player.IsValid || !player.Pawn.IsValid) { return false; } @@ -260,7 +260,7 @@ namespace WeaponPaints return false; var weapons = player.PlayerPawn.Value.WeaponServices.MyWeapons; - if (weapons == null || weapons.Count <= 0) return false; + if (weapons == null) return false; foreach (var weapon in weapons) { if (weapon != null && weapon.IsValid && weapon.Value != null && weapon.Value.IsValid) diff --git a/WeaponPaints.cs b/WeaponPaints.cs index 0c97216b..3a8f309f 100644 --- a/WeaponPaints.cs +++ b/WeaponPaints.cs @@ -126,7 +126,7 @@ public partial class WeaponPaints : BasePlugin, IPluginConfig