/// <summary> /// Send a lobby chat message /// </summary> /// <param name="msg"></param> public void SendLobbyMessage(string msg) { if (_lobbyChannelId == 0) { return; } DotaGcHandler.SendChannelMessage(_lobbyChannelId, msg); }
/// <summary> /// Leave a lobby chat channel /// </summary> private void LeaveLobbyChat() { if (_lobbyChannelId == 0) { return; } DotaGcHandler.LeaveChatChannel(_lobbyChannelId); _lobbyChannelId = 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); }
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(); }
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); }
/// <summary> /// Completely disconnect from the DOTA gc /// </summary> private void ReleaseDotaGCConnection() { DotaGcHandler?.Stop(); DotaGcHandler = null; }
/// <summary> /// Start connecting to the DOTA 2 game coordinator /// </summary> private void StartDotaGCConnection() { DotaGcHandler = SteamClient.GetHandler <DotaGCHandler>(); DotaGcHandler.Start(); }
/// <summary> /// Join the correct slot /// </summary> private void JoinLobbySlot() { DotaGcHandler.JoinTeam(DOTA_GC_TEAM.DOTA_GC_TEAM_PLAYER_POOL, 6); // DotaGcHandler.JoinBroadcastChannel(); }