public static void CallPlayerInfo(SteamGameCoordinator gc, ProPlayers proPlayers) { var w = new ClientGCMsgProtobuf <CMsgGCPlayerInfoRequest>((uint)EDOTAGCMsg.k_EMsgGCPlayerInfoRequest); w.Body.player_infos = proPlayers.PlayerInfoRequest; gc.Send(w, 570); }
public static ProPlayers SourceTvProPlayers(List <CSourceTVGameSmall> gameList, uint steamid32) { var ProPlayers = new ProPlayers(); foreach (var game in gameList) { foreach (var player in game.players) { if (player.account_id == steamid32) { ProPlayers.GameFound = true; break; } } if (ProPlayers.GameFound) { ProPlayers.GameMode = (int)game.game_mode; ProPlayers.AverageGameMMR = game.average_mmr.ToString(); foreach (var player in game.players) { ProPlayers.PlayerInfoRequest.Add(new PlayerInfo() { account_id = player.account_id }); ProPlayers.PlayerInfo.Add(player); } break; } } return(ProPlayers); }
public static void TriggerRoute(Routes route, string channel, Action <string> botReturn, string argument = "") { if (argument.Equals(Program.BotDetails.TwitchNick)) { botReturn("Kappa"); return; } switch (route) { case Routes.PlayerRank: if (!argument.Equals("")) { ulong profileSteamId64 = ApiModule.TwitchAPISteamId64(argument); if (profileSteamId64 == 1) { botReturn(argument + " please link your steam to twitch"); } else if (profileSteamId64 != 0) { uint steamId32 = DotaModule.ConvertSteamId32(profileSteamId64); channels.Add(new Channel() { ChannelName = channel, ChannelResponse = botReturn, EndRoute = Routes.PlayerRank, SteamId32 = steamId32 }); SteamBotModule.CallProfileCard(SteamBot.gameCoordinator, steamId32); } else { botReturn("user not found"); } } break; case Routes.NotablePlayers: ulong npSteamId64 = ApiModule.TwitchAPISteamId64(channel); var players = DotaModule.SourceTvProPlayers( sourceTvGames.SourceTvGames, DotaModule.ConvertSteamId32(npSteamId64)); if (players.GameFound == false) { botReturn("game not found"); break; } if (npSteamId64 != 1 || npSteamId64 != 0) { channels.Add(new Channel() { ChannelName = channel, ChannelResponse = botReturn, EndRoute = Routes.NotablePlayers, Pros = players, SteamId32 = DotaModule.ConvertSteamId32(npSteamId64) }); SteamBotModule.CallPlayerInfo( SteamBot.gameCoordinator, players ); } break; case Routes.PlayerInfo: ulong piSteamId64 = ApiModule.TwitchAPISteamId64(channel); if (piSteamId64 != 1 || piSteamId64 != 0) { int playerPosition = DotaModule.FindPlayerPosition(argument); if (playerPosition >= 0 && playerPosition <= 9) { var pros = DotaModule.SourceTvProPlayers( sourceTvGames.SourceTvGames, DotaModule.ConvertSteamId32(piSteamId64)); channels.Add(new Channel() { ChannelName = channel, ChannelResponse = botReturn, EndRoute = Routes.PlayerInfo, Pros = pros, PlayerColor = argument, SteamId32 = DotaModule.ConvertSteamId32(piSteamId64) }); SteamBotModule.CallPlayerInfo( SteamBot.gameCoordinator, pros ); } ulong SteamId64 = ApiModule.TwitchAPISteamId64(argument); if (playerPosition == 10) { if (SteamId64 == 1) { botReturn(argument + " please link your steam to your twitch"); } else if (SteamId64 == 0) { botReturn("twitchname or color not found"); } else { var player = new ProPlayers(); uint SteamId32 = DotaModule.ConvertSteamId32(SteamId64); player.PlayerInfoRequest.Add(new CMsgGCPlayerInfoRequest.PlayerInfo() { account_id = SteamId32 }); channels.Add(new Channel() { ChannelName = channel, ChannelResponse = botReturn, EndRoute = Routes.PlayerInfo, Pros = player, PlayerColor = "blue", SteamId32 = SteamId32 }); SteamBotModule.CallPlayerInfo( SteamBot.gameCoordinator, player ); } } } break; default: break; } }
public static string SmallPlayerInfos(ClientGCMsgProtobuf <CMsgGCPlayerInfo> players, ProPlayers proPlayers) { string returnString = ""; if (proPlayers.GameMode != 2) { returnString = "Average MMR [" + proPlayers.AverageGameMMR + "]: "; } else { returnString = "Captains Mode: "; } string tempHero = ""; for (int i = 0; i < 10; i++) { var player = players.Body.player_infos[i]; if (player.is_pro) { try { var p = proPlayers.PlayerInfo.Find(x => x.account_id == player.account_id); tempHero = heros.Find(h => h.Id == p.hero_id).localized_name; } catch { if (proPlayers.GameMode != 2) { tempHero = FindPlayerColor(i); } else { tempHero = "Not Picked"; } } if (player.team_name != "") { returnString = returnString + player.team_name + "."; } returnString = returnString + player.name + " (" + tempHero + "), "; } } return(returnString.Substring(0, returnString.Length - 2)); }