async void GroupRaceControl(string channel) { await Task.Run(() => { Models.RaceDivision division = Models.RaceDivision.Common; while (groupRaceIsOn) { try { GroupRaceHandler.CreateRace(channel, this, division); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 8); Thread.Sleep(TimeSpan.FromMinutes(5)); GroupRaceHandler.GroupRaceInfo(channel, this, 5); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 3); Thread.Sleep(TimeSpan.FromMinutes(2)); GroupRaceHandler.GroupRaceInfo(channel, this, 1); Thread.Sleep(TimeSpan.FromMinutes(1)); UpdateDivision(ref division); GroupRaceHandler.GroupRaceResult(channel, this); Thread.Sleep(TimeSpan.FromMinutes(19)); } catch (Exception ex) { Logger.Log(ex); CloseNotFinishedGroupRace(); } } }); }
public async void CheckMessage(OnMessageReceivedArgs e) { await Task.Run(() => { try { var message = e.ChatMessage.Message.ToLower().Trim(); switch (message) { case "!testdrive": // тестовый зазд SoloRaces.Race(e, this); break; case "!info": // характеристики пользователя UserActions.ShowInfo(e, this); break; case "!join": // присоединение к групповому заеду GroupRaceHandler.JoinToRace(e, this); break; case "!shop": // доступные для покупки машины ShopAction.ShowCarsForSale(e, this); break; case "!car": // инфа об авто UserActions.ShowUserCar(e, this); break; case "!start": // команда для начала игры UserActions.CreateUser(e, this); break; case "!game": // описание игры, с командами ShowGameInfo(e.ChatMessage.Channel); break; default: { if (message.StartsWith("!lvlup")) // улучшение характеристик пользователя { UserActions.Upgrade(e, this); } else if (message.StartsWith("!iirace")) // гонка с компьютером { RaceWithAI.Race(e, this); } else if (message.StartsWith("!buy")) // покупка авто { ShopAction.BuyAuto(e, this); } AdminCommands(e); break; } } } catch (Exception ex) { Logger.Log(ex); } }); }