public PpReplacements(ISettings settings)
        {
            _settings    = settings;
            _tokenSetter = Tokens.CreateTokenSetter(Name);

            ppTokenDefinitions = new Dictionary <TokenMode, Dictionary <string, PpValue> >
            {
                { TokenMode.Osu, new Dictionary <string, PpValue>
                  {
                      { "osu_SSPP", (c, mods) => GetPp(c, _ppCalculator, 100d) },
                      { "osu_99_9PP", (c, mods) => GetPp(c, _ppCalculator, 99.9d) },
                      { "osu_99PP", (c, mods) => GetPp(c, _ppCalculator, 99d) },
                      { "osu_98PP", (c, mods) => GetPp(c, _ppCalculator, 98d) },
                      { "osu_97PP", (c, mods) => GetPp(c, _ppCalculator, 97d) },
                      { "osu_96PP", (c, mods) => GetPp(c, _ppCalculator, 96d) },
                      { "osu_95PP", (c, mods) => GetPp(c, _ppCalculator, 95d) },
                      { "osu_90PP", (c, mods) => GetPp(c, _ppCalculator, 90d) },
                      { "osu_mSSPP", (c, mods) => GetPp(c, _ppCalculator, 100d, mods) },
                      { "osu_m99_9PP", (c, mods) => GetPp(c, _ppCalculator, 99.9d, mods) },
                      { "osu_m99PP", (c, mods) => GetPp(c, _ppCalculator, 99d, mods) },
                      { "osu_m98PP", (c, mods) => GetPp(c, _ppCalculator, 98d, mods) },
                      { "osu_m97PP", (c, mods) => GetPp(c, _ppCalculator, 97d, mods) },
                      { "osu_m96PP", (c, mods) => GetPp(c, _ppCalculator, 96d, mods) },
                      { "osu_m95PP", (c, mods) => GetPp(c, _ppCalculator, 95d, mods) },
                      { "osu_m90PP", (c, mods) => GetPp(c, _ppCalculator, 90d, mods) },
                  } },
Exemple #2
0
 public BackgroundImageProviderPlugin(ISaver saver, ISettingsHandler settings)
 {
     _saver        = saver;
     _settings     = settings;
     _saveLocation = Path.Combine(_saver.SaveDirectory, "BG.png");
     _tokenSetter  = Tokens.CreateTokenSetter(Name);
     _imageToken   = _tokenSetter("backgroundImage", null);
 }
        public BackgroundImageProviderPlugin(ISaver saver, ISettings settings, IContextAwareLogger logger)
        {
            _saver        = saver;
            _settings     = settings;
            _logger       = logger;
            _saveLocation = Path.Combine(_saver.SaveDirectory, "BG.png");
            _tokenSetter  = Tokens.CreateTokenSetter(Name);
            var initialValue = settings.Get <bool>(EnableImageToken)
                ? null
                : $"Disabled, enable it in configuration manually under {EnableImageToken.Name}";

            _imageToken = _tokenSetter("backgroundImage", initialValue);
        }
        public OsuMemoryEventSourceBase(IContextAwareLogger logger, ISettings settings,
                                        IDatabaseController databaseControler, IModParser modParser,
                                        List <IHighFrequencyDataConsumer> highFrequencyDataConsumers, ISaver saver)
        {
            _settings                   = settings;
            _databaseController         = databaseControler;
            _modParser                  = modParser;
            _highFrequencyDataConsumers = highFrequencyDataConsumers;
            Logger          = logger;
            LiveTokenSetter = Tokens.CreateTokenSetter(Name);
            TokenSetter     = Tokens.CreateTokenSetter($"{Name}-Regular");
            _memoryReader   = OsuMemoryReader.Instance;

            _settings.SettingUpdated += OnSettingsSettingUpdated;

            bool isFallback             = _settings.Get <bool>(_names.OsuFallback);
            bool memoryScannerIsEnabled = _settings.Get <bool>(_names.EnableMemoryScanner);

            MemoryPoolingIsEnabled = _settings.Get <bool>(_names.EnableMemoryPooling);

            _poolingMsDelay = _settings.Get <int>(_names.MemoryPoolingFrequency);
            if (!memoryScannerIsEnabled)
            {
                return;
            }
            if (isFallback)
            {
                _settings.Add(_names.EnableMemoryScanner.Name, false);
                return;
            }

            lock (_lockingObject)
                _timer = new Timer(TimerCallback, null, 250, Int32.MaxValue);


            _memoryListener              = new MemoryListener(settings, saver, logger);
            _memoryListener.NewOsuEvent += async(s, args) =>
            {
                while (NewOsuEvent == null)
                {
                    await Task.Delay(5);
                }

                NewOsuEvent.Invoke(this, args);
            };
            _memoryListener.SetHighFrequencyDataHandlers(_highFrequencyDataConsumers);

            Started = true;
        }
        public ClickCounter(ILogger logger, ISaver saver, ISettings settings, List <Lazy <IHighFrequencyDataConsumer> > consumers)
        {
            _logger   = logger;
            _saver    = saver;
            _settings = settings;
            _highFrequencyDataConsumers = consumers;

            disableSavingToDisk = _settings.Get <bool>(_names.DisableClickCounterWrite);
            Load();
            _tokenSetter = Tokens.CreateTokenSetter(Name);
            if (_settings.Get <bool>(_names.ResetKeysOnRestart))
            {
                ResetKeys();
            }
            HookAll();
            if (_settings.Get <bool>(_names.CfgEnableKpx))
            {
                _keysPerX.Start();
            }
        }
Exemple #6
0
        public ClickCounter(ILogger logger, ISaver saver, ISettingsHandler settings, IEnumerable <IHighFrequencyDataHandler> handlers)
        {
            _logger   = logger;
            _saver    = saver;
            _settings = settings;
            _highFrequencyDataHandler = handlers.ToList();

            disableSavingToDisk = _settings.Get <bool>(_names.DisableClickCounterWrite);
            Load();

            if (_settings.Get <bool>(_names.ResetKeysOnRestart))
            {
                ResetKeys();
            }
            HookAll();
            if (_settings.Get <bool>(_names.CfgEnableKpx))
            {
                _keysPerX.Start();
            }

            _tokenSetter = Tokens.CreateTokenSetter(Name);
        }
 public MapReplacement(ILogger logger, ISettings settings)
 {
     _settings    = settings;
     _tokenSetter = Tokens.CreateTokenSetter("MapReplacements");
 }
Exemple #8
0
 public void Initialize()
 {
     _tokenSetter = Tokens.CreateTokenSetter("test");
 }
 public ModsHandler(ISettingsHandler settings)
 {
     _modParser   = new ModParser(settings);
     _tokenSetter = Tokens.CreateTokenSetter(Name);
 }
 public PpReplacements(ISettingsHandler settings)
 {
     _settings    = settings;
     _tokenSetter = Tokens.CreateTokenSetter(Name);
 }
Exemple #11
0
 public PlaysReplacements()
 {
     _tokenSetter = Tokens.CreateTokenSetter(Name);
     UpdateTokens();
 }
Exemple #12
0
        public OsuMemoryEventSourceBase(IContextAwareLogger logger, ISettings settings,
                                        IDatabaseController databaseControler, IModParser modParser,
                                        List <Lazy <IHighFrequencyDataConsumer> > highFrequencyDataConsumers, ISaver saver, Delegates.Exit exiter)
        {
            _settings                   = settings;
            _databaseController         = databaseControler;
            _modParser                  = modParser;
            _highFrequencyDataConsumers = highFrequencyDataConsumers;
            Logger          = logger;
            LiveTokenSetter = Tokens.CreateTokenSetter(Name);
            TokenSetter     = Tokens.CreateTokenSetter($"{Name}-Regular");
            var clientCount = _settings.Get <bool>(TourneyMode)
                ? _settings.Get <int>(ClientCount)
                : 1;

            if (_settings.Get <bool>(TourneyMode))
            {
                string exitReason = null;
                if (clientCount < 2)
                {
                    exitReason = $"{ClientCount.Name} setting value is invalid. Set value equal or bigger than 2";
                }

                if (_settings.Get <int>(DataClientId) > clientCount - 1)
                {
                    exitReason = $"{DataClientId.Name} can't be bigger than {ClientCount.Name}. Client ids are 0-indexed";
                }

                if (!string.IsNullOrWhiteSpace(exitReason))
                {
                    Logger.Log(exitReason, LogLevel.Warning);
                    MessageBox.Show(exitReason, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    exiter(exitReason);
                    return;
                }

                _clientMemoryReaders.AddRange(Enumerable.Range(0, clientCount)
                                              .Select(i =>
                {
                    var instance = StructuredOsuMemoryReader.Instance.GetInstanceForWindowTitleHint(
                        $" Tournament Client {i}");
                    instance.OsuMemoryAddresses.GeneralData.KeyOverlay = null;
                    return(instance);
                }));

                //TODO: provide tournament-manager specific data via tokens
                var _tournamentManagerMemoryReader = OsuMemoryReader.Instance.GetInstanceForWindowTitleHint("Tournament Manager");

                Logger.Log($"{_clientMemoryReaders.Count} client readers prepared", LogLevel.Information);
            }
            else
            {
                _clientMemoryReaders.Add(StructuredOsuMemoryReader.Instance);
                StructuredOsuMemoryReader.Instance.OsuMemoryAddresses.GeneralData.KeyOverlay = null;
                StructuredOsuMemoryReader.Instance.InvalidRead += OnInvalidMemoryRead;
            }

            _settings.SettingUpdated += OnSettingsSettingUpdated;

            bool isFallback             = _settings.Get <bool>(_names.OsuFallback);
            bool memoryScannerIsEnabled = _settings.Get <bool>(_names.EnableMemoryScanner);

            MemoryPoolingIsEnabled = _settings.Get <bool>(_names.EnableMemoryPooling);

            _poolingMsDelay = _settings.Get <int>(_names.MemoryPoolingFrequency);
            if (!memoryScannerIsEnabled)
            {
                return;
            }
            if (isFallback)
            {
                _settings.Add(_names.EnableMemoryScanner.Name, false);
                return;
            }

            memoryListener              = new MemoryListener(settings, saver, logger, clientCount);
            memoryListener.NewOsuEvent += async(s, args) =>
            {
                while (NewOsuEvent == null)
                {
                    await Task.Delay(5);
                }

                NewOsuEvent.Invoke(this, args);
            };
            memoryListener.SetHighFrequencyDataHandlers(_highFrequencyDataConsumers);

            MemoryWorkerTask = Task.Run(MemoryWorker, cts.Token).HandleExceptions();

            Started = true;
        }