public void Init(BotType _botType, int _botID, float _x, float _y) { t = transform; mat = GetComponent <Renderer>().material; fireSim = FireSim.INSTANCE; arriveThreshold = t.localScale.x * 1f; t.position = new Vector3(_x, t.localScale.y * 0.5f, _y); decisionTimer = decisionRate; botID = _botID; carrying = null; targetBucket = null; isFillingBucket = false; Setup_BotType(_botType); name = _botType.ToString(); }
public void SendMessage(BotType target, string message) { switch (target) { case BotType.Osu: { string composed = ComposeRawMessage(target, message); m_osuClient.SendRawMessage(composed); } break; case BotType.Twitch: { string composed = ComposeRawMessage(target, message); m_twitchClient.SendRawMessage(composed); } break; } #if DEBUG Console.WriteLine($"{target.ToString()} sent: {message}"); #endif }
private void CommandLog(BotType target, string message) { Console.WriteLine($"{target.ToString()}: {message}"); }
private async void ParseMessage(BotType target, IrcRawMessageEventArgs e) { switch (e.Message.Command) { // messages to ignore case "002": // twitch case "003": case "004": case "375": case "376": case "353": case "366": case "372": // osu! motd case "QUIT": break; case "PRIVMSG": #if DEBUG Console.WriteLine($"{target.ToString()}: {e.Message.Source.Name}: {e.Message.Parameters[1]}"); #endif if (target == BotType.Twitch) { string source = e.Message.Source.Name; string message = e.Message.Parameters[1]; string[] request = message.Split(' '); if (message.ToLowerInvariant().StartsWith("!request") || message.ToLowerInvariant().StartsWith("!req")) { if (!request[1].Contains("osu.ppy.sh/b/") && !request[1].Contains("osu.ppy.sh/s/")) { SendMessage(BotType.Twitch, $"@{source} that is an invalid beatmap."); return; } string[] map = await Globals.OsuApiHelper.GetBeatmap(request[1]); if (map[0] == "404") { SendMessage(BotType.Twitch, $"@{source} map not found."); } SendMessage(BotType.Osu, $"{source} requests {map[0]} to be played!"); SendMessage(BotType.Twitch, $"@{source} sent request for {map[1]} to be played"); } } break; case "PING": { switch (target) { case BotType.Osu: m_osuClient.SendRawMessage("PONG"); break; case BotType.Twitch: m_twitchClient.SendRawMessage("PONG"); break; } } break; case "JOIN": if (target == BotType.Twitch) { CommandLog(target, $"Joined channel #{m_twitchChat}"); } break; case "001": CommandLog(target, "Auth Success"); if (target == BotType.Twitch) { m_twitchClient.SendRawMessage($"JOIN #{m_twitchChat}\r\n"); } break; case "464": CommandLog(target, "Auth Fail"); break; default: #if DEBUG CommandLog(target, $"{e.Message.Source.Name}: {e.Message.Command} - {String.Join(", ", e.Message.Parameters)}"); #endif break; } }
public IActionResult CreateNewBotForSales(TokenChange tokenModel, BotType botType) { int accountId = (int)HttpContext.Items["accountId"]; try { string token = tokenModel?.Token; string botUsername = new TelegramBotClient(token).GetMeAsync().Result.Username; string jsonBotMarkup = localizer[botType.ToString()]; int statusGroupId = contextDb.OrderStatusGroups.First(stat => stat.OwnerId == accountId).Id; //нужно установить групппу статусов if (jsonBotMarkup.Contains("1000001")) { jsonBotMarkup = jsonBotMarkup.Replace("1000001", statusGroupId.ToString()); } BotDB bot = new BotDB { OwnerId = accountId, BotType = "BotForSales", Token = token, BotName = botUsername, Markup = jsonBotMarkup }; contextDb.Bots.Add(bot); //Создание статистики для бота BotForSalesStatistics botForSalesStatistics = new BotForSalesStatistics { Bot = bot, NumberOfOrders = 0, NumberOfUniqueMessages = 0, NumberOfUniqueUsers = 0 }; contextDb.BotForSalesStatistics.Add(botForSalesStatistics); try { contextDb.SaveChanges(); } catch (Exception exception) { throw new TokenMatchException("Возможно в базе уже есть этот бот", exception); } return(RedirectToAction("SalesTreeEditor", "BotForSalesEditing", new { botId = bot.Id })); } catch (TokenMatchException ex) { logger.Log(LogLevel.USER_ERROR, Source.WEBSITE, $"Сайт. Создание нового бота. При " + $"запросе botUsername было выброшено исключение (возможно, введённый" + $"токен был специально испорчен)" + ex.Message, accountId: accountId); ModelState.AddModelError("", "Этот бот уже зарегистрирован."); } catch (Exception ee) { logger.Log(LogLevel.USER_ERROR, Source.WEBSITE, $"Сайт. Создание нового бота. При " + $"запросе botUsername было выброшено исключение (возможно, введённый" + $"токен был специально испорчен)" + ee.Message, accountId: accountId); ModelState.AddModelError("", "Ошибка обработки токена."); } return(View("BotForSalesTokenEntry")); }