private async Task SneakyGameStatusEvent(ICommandContext context, int num) { if (num < 10 || num > 600) { num = 60; } var ev = new SneakyEvent(_cs, _client, _bc, num); if (!await _service.StartSneakyEvent(ev, context.Message, context)) { return; } try { var title = GetText("sneakygamestatus_title"); var desc = GetText("sneakygamestatus_desc", Format.Bold(100.ToString()) + _bc.BotConfig.CurrencySign, Format.Bold(num.ToString())); await context.Channel.SendConfirmAsync(title, desc) .ConfigureAwait(false); } catch { // ignored } }
public async Task <bool> StartSneakyEvent(SneakyEvent ev, IUserMessage msg, ICommandContext ctx) { await _sneakyLock.WaitAsync().ConfigureAwait(false); try { if (SneakyEvent != null) { return(false); } SneakyEvent = ev; ev.OnEnded += () => SneakyEvent = null; var _ = SneakyEvent.Start(msg, ctx).ConfigureAwait(false); } finally { _sneakyLock.Release(); } return(true); }