예제 #1
0
        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);
 }