Пример #1
0
 /// <summary>
 ///     Send a lobby chat message
 /// </summary>
 /// <param name="msg"></param>
 public void SendLobbyMessage(string msg)
 {
     if (_lobbyChannelId == 0)
     {
         return;
     }
     DotaGcHandler.SendChannelMessage(_lobbyChannelId, msg);
 }
Пример #2
0
 /// <summary>
 ///     Leave a lobby chat channel
 /// </summary>
 private void LeaveLobbyChat()
 {
     if (_lobbyChannelId == 0)
     {
         return;
     }
     DotaGcHandler.LeaveChatChannel(_lobbyChannelId);
     _lobbyChannelId = 0;
 }
Пример #3
0
        /// <summary>
        ///     Join the lobby chat channel
        /// </summary>
        private void JoinLobbyChat()
        {
            if (DotaGcHandler.Lobby == null)
            {
                log.Warn("JoinLobbyChat called with no lobby!");
                return;
            }

            DotaGcHandler.JoinChatChannel("Lobby_" + DotaGcHandler.Lobby.lobby_id,
                                          DOTAChatChannelType_t.DOTAChannelType_Lobby);
        }
Пример #4
0
        public void LeaveLobby(bool kickEveryone = false)
        {
            if (kickEveryone && DotaGcHandler.Lobby != null)
            {
                foreach (var pm in DotaGcHandler.Lobby.members)
                {
                    DotaGcHandler.KickPlayerFromLobby(new SteamID(pm.id).AccountID);
                }
            }

            DotaGcHandler.AbandonGame();
            DotaGcHandler.LeaveLobby();
        }
Пример #5
0
        public void FetchMatchResult(ulong matchId, Action <CMsgDOTAMatch> callback)
        {
            // Set timeout
            Task.Run(() =>
            {
                Thread.Sleep(5000);
                if (!_callbacks.ContainsKey(matchId))
                {
                    return;
                }
                log.Debug("Match result fetch for " + matchId + " timed out!");
                _callbacks[matchId](null);
                _callbacks.Remove(matchId);
            });

            _matchId            = matchId;
            _callbacks[matchId] = callback;
            DotaGcHandler.RequestMatchResult(matchId);
        }
Пример #6
0
 /// <summary>
 ///     Completely disconnect from the DOTA gc
 /// </summary>
 private void ReleaseDotaGCConnection()
 {
     DotaGcHandler?.Stop();
     DotaGcHandler = null;
 }
Пример #7
0
 /// <summary>
 ///     Start connecting to the DOTA 2 game coordinator
 /// </summary>
 private void StartDotaGCConnection()
 {
     DotaGcHandler = SteamClient.GetHandler <DotaGCHandler>();
     DotaGcHandler.Start();
 }
Пример #8
0
 /// <summary>
 ///     Join the correct slot
 /// </summary>
 private void JoinLobbySlot()
 {
     DotaGcHandler.JoinTeam(DOTA_GC_TEAM.DOTA_GC_TEAM_PLAYER_POOL, 6);
     // DotaGcHandler.JoinBroadcastChannel();
 }