public Beatmap(DirectMemoryReader reader, OsuProcessMatchedEvent @event) { this.Reader = reader; BeatmapAddressOffset = LatestBeatmapOffset; BeatmapSetAddressOffset = LatestBeatmapSetOffset; BeatmapFolderAddressOffset = LatestBeatmapFolderOffset; BeatmapFileNameAddressOffset = LatestBeatmapFilenameOffset; if (@event.LatestVersion.ToComparableVersion() < "20190816".ToComparableVersion()) { BeatmapAddressOffset -= 4; BeatmapSetAddressOffset -= 4; BeatmapFolderAddressOffset -= 4; BeatmapFileNameAddressOffset -= 4; } }
public static CollectorBuilder UseOsuProcessEvent(this CollectorBuilder builder, OsuProcessMatchedEvent @event) { builder.Builder.RegisterInstance(@event).SingleInstance(); builder.Builder.Register((ctx) => { var process = Process.GetProcessById(ctx.Resolve <OsuProcessMatchedEvent>().ProcessId); if (process == null || process.HasExited) { throw new EntryPointNotFoundException(); } return(process); }).As <Process>(); return(builder); }