Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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;
            }
        }
Exemple #4
0
        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));
        }