Fix GeoLite crash, add PerfMode profiling, reload cache invalidation
- GeoLite/MaxMind lookup wrapped in try/catch and disabled for the session on failure (stops the per-tick exception spam when the assembly cannot load during hot-reload) - New PerfMode config option: writes performance logs to logs/perf_<date>.txt (DisableAll/SetSkill/PlayerDeath totals, per-skill SkillAction timings, aggregated OnTick/CheckTransmit avg-max summaries) - css_reload now invalidates the skill-info and freeze-time caches - Removed the last null-forgiving player lookups (Command, Armored, Baseball, FriendlyFire, OneShot)
This commit is contained in:
parent
25cd8eb989
commit
b68a033b4c
14 changed files with 157 additions and 10 deletions
|
|
@ -78,7 +78,7 @@ namespace src.command
|
|||
player = PlayerManager.GetPlayerEvent(player);
|
||||
if (player == null || !player.IsValid) return;
|
||||
|
||||
var playerInfo = PlayerManager.GetPlayerByIndex(PlayerManager.GetPlayerEvent(player)!.Index);
|
||||
var playerInfo = PlayerManager.GetPlayerByIndex(PlayerManager.GetPlayerEvent(player)?.Index ?? player.Index);
|
||||
if (playerInfo == null || playerInfo.IsDrawing) return;
|
||||
|
||||
var playerPawn = player.PlayerPawn.Value;
|
||||
|
|
@ -406,7 +406,7 @@ namespace src.command
|
|||
if (player == null || !player.IsValid || player.PlayerPawn.Value == null || !player.PlayerPawn.Value.IsValid) return;
|
||||
if (!string.IsNullOrEmpty(config.NormalCommands.HudCommand.Permissions) && !AdminManager.PlayerHasPermissions(player, config.NormalCommands.HudCommand.Permissions)) return;
|
||||
|
||||
var playerInfo = PlayerManager.GetPlayerByIndex(PlayerManager.GetPlayerEvent(player)!.Index);
|
||||
var playerInfo = PlayerManager.GetPlayerByIndex(PlayerManager.GetPlayerEvent(player)?.Index ?? player.Index);
|
||||
if (playerInfo == null) return;
|
||||
|
||||
playerInfo.DisplayHUD = !playerInfo.DisplayHUD;
|
||||
|
|
@ -570,6 +570,9 @@ namespace src.command
|
|||
if (SkillsInfo.GetValue<bool>(skill, "active"))
|
||||
Instance.SkillAction(skill.ToString()!, "LoadSkill");
|
||||
|
||||
SkillData.Invalidate();
|
||||
Event.InvalidateFreezeDisabledCache();
|
||||
|
||||
if (player != null && player.IsValid)
|
||||
player.PrintToChat($" {ChatColors.Green}{player.GetTranslation("reload")}");
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue