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) }, } },
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(); } }
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"); }
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); }
public PlaysReplacements() { _tokenSetter = Tokens.CreateTokenSetter(Name); UpdateTokens(); }
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; }