private bool ServerTerminalMonitor(PacketObj data) { var packet = data.Packet; var terminalMonPacket = (TerminalMonitorPacket)packet; var ent = MyEntities.GetEntityByIdOrDefault(packet.EntityId); var comp = ent?.Components.Get <WeaponComponent>(); if (comp?.Ai == null || comp.Platform.State != MyWeaponPlatform.PlatformState.Ready) { return(Error(data, Msg("Comp", comp != null), Msg("Ai", comp?.Ai != null), Msg("Ai", comp?.Platform.State == MyWeaponPlatform.PlatformState.Ready))); } uint[] mIds; if (PlayerMIds.TryGetValue(packet.SenderId, out mIds) && mIds[(int)packet.PType] < packet.MId) { mIds[(int)packet.PType] = packet.MId; if (terminalMonPacket.State == TerminalMonitorPacket.Change.Update) { TerminalMon.ServerUpdate(comp); } else if (terminalMonPacket.State == TerminalMonitorPacket.Change.Clean) { TerminalMon.ServerClean(comp); } data.Report.PacketValid = true; } else { Log.Line($"ServerTerminalMonitor: MidsHasSenderId:{PlayerMIds.ContainsKey(packet.SenderId)} - midsNull:{mIds == null} - senderId:{packet.SenderId}"); } return(true); }