From aea96e6d98a83207ddd02edddfe402ea6fc86464 Mon Sep 17 00:00:00 2001 From: D1GQ Date: Tue, 23 Jun 2026 23:50:52 -0500 Subject: [PATCH] Fix null exception In vanilla meeting update --- src/Patches/Gameplay/UI/MeetingHudPatch.cs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/Patches/Gameplay/UI/MeetingHudPatch.cs b/src/Patches/Gameplay/UI/MeetingHudPatch.cs index 9861a2b..9eacd16 100644 --- a/src/Patches/Gameplay/UI/MeetingHudPatch.cs +++ b/src/Patches/Gameplay/UI/MeetingHudPatch.cs @@ -5,6 +5,7 @@ using BetterAmongUs.Mono.Extended; using BetterAmongUs.Patches.Gameplay.UI.Chat; using BetterAmongUs.Utilities; using HarmonyLib; +using Rewired; using TMPro; using UnityEngine; @@ -81,6 +82,39 @@ internal static class MeetingHudPatch internal static float timeOpen = 0f; + // Fix null exception + [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.Update))] + [HarmonyPrefix] + private static bool MeetingHud_Update_Prefix(MeetingHud __instance) + { + if (__instance.playerStates == null || __instance.playerStates.Length == 0) + return false; + + if (GameManager.Instance == null || GameManager.Instance.LogicOptions == null) + return false; + + if (PlayerControl.LocalPlayer == null || PlayerControl.LocalPlayer.Data == null) + return false; + + for (int i = 0; i < __instance.playerStates.Length; i++) + { + if (__instance.playerStates[i] == null) + return false; + } + + try + { + if (ReInput.players == null || ReInput.players.GetPlayer(0) == null) + return false; + } + catch + { + return false; + } + + return true; + } + // Track how long meeting has been open [HarmonyPatch(typeof(MeetingHud), nameof(MeetingHud.Update))] [HarmonyPostfix]