public IHttpActionResult GetGames() { var games = GameKeeper.GetGameIds(); var response = new GetGamesResponse() { games = games }; return(Ok(response)); }
private async void OnStreamOnlineEventAsync(object sender, OnStreamOnlineArgs e) { if (StreamsOnline.Contains(e.Stream.UserId)) { return; } var gameTemp = new List <string> { e.Stream.GameId }; GetGamesResponse getGamesResponse = new GetGamesResponse(); try { getGamesResponse = await TwApi.Helix.Games.GetGamesAsync(gameTemp); } catch (Exception ex) { await Console.Out.WriteLineAsync($"{ex.GetType().Name}: Error at GetGamesResponse. Aborting process. - {ex.Message}"); return; } try { UpdateLiveStreamModelsAsync(e.Stream, getGamesResponse); } catch (Exception ex) { await Console.Out.WriteLineAsync($"{ex.GetType().Name}: Error at UpdateLiveStreamModelsAsync. Aborting process. - {ex.Message}"); return; } EmbedBuilder eb = CreateStreamerEmbed(StreamModels[e.Stream.UserId]); foreach (var x in StreamNotifChannels) { await x.SendMessageAsync(null, false, eb.Build()); } StreamsOnline.Add(e.Stream.UserId); if (StreamsOnline.Contains(e.Stream.UserId)) { await Console.Out.WriteLineAsync($"Successfully add {e.Stream.UserName} to the StreamsOnline list."); } else { await Console.Out.WriteLineAsync($"Failed to add {e.Stream.UserName} to the StreamsOnline list."); } }
public async Task <APIGatewayProxyResponse> Get(ILambdaContext context) { AmazonGameLiftClient amazonClient = new AmazonGameLiftClient(Amazon.RegionEndpoint.USEast1); ListAliasesRequest aliasReq = new ListAliasesRequest(); aliasReq.Name = "WarshopServer"; Alias aliasRes = (await amazonClient.ListAliasesAsync(aliasReq)).Aliases[0]; DescribeAliasRequest describeAliasReq = new DescribeAliasRequest(); describeAliasReq.AliasId = aliasRes.AliasId; string fleetId = (await amazonClient.DescribeAliasAsync(describeAliasReq.AliasId)).Alias.RoutingStrategy.FleetId; DescribeGameSessionsRequest describeReq = new DescribeGameSessionsRequest(); describeReq.FleetId = fleetId; describeReq.StatusFilter = GameSessionStatus.ACTIVE; DescribeGameSessionsResponse describeRes = await amazonClient.DescribeGameSessionsAsync(describeReq); List <GameView> gameViews = describeRes.GameSessions .FindAll((GameSession g) => g.CurrentPlayerSessionCount < g.MaximumPlayerSessionCount) .ConvertAll((GameSession g) => new GameView() { gameSessionId = g.GameSessionId, creatorId = g.CreatorId, isPrivate = true.ToString() == g.GameProperties.Find((GameProperty gp) => gp.Key.Equals("IsPrivate")).Value }); GetGamesResponse response = new GetGamesResponse() { gameViews = gameViews.ToArray() }; return(new APIGatewayProxyResponse { StatusCode = (int)HttpStatusCode.OK, Body = JsonSerializer.Serialize(response), Headers = new Dictionary <string, string> { { "Content-Type", "application/json" } } }); }
private void UpdateLiveStreamModelsAsync(TwitchLib.Api.Helix.Models.Streams.Stream twitchStream, GetGamesResponse game) { string gameName = game.Games.Length != 0 ? game.Games[0].Name : "Unknown"; StreamModel streamModel = new StreamModel() { Stream = twitchStream.UserName, Id = twitchStream.UserId, Avatar = StreamProfileImages[twitchStream.UserId], Title = twitchStream.Title, Game = gameName, Viewers = twitchStream.ViewerCount, Link = $"https://www.twitch.tv/{twitchStream.UserName}" }; if (StreamModels.ContainsKey(twitchStream.UserId)) { StreamModels.Remove(twitchStream.UserId); } StreamModels.Add(twitchStream.UserId, streamModel); }
private async void HandleSetGame(object sender, OnChatCommandReceivedArgs e) { if (!(sender is TwitchClient senderClient)) { return; } if (!Extensions.IsHost(senderClient.TwitchUsername)) { return; } string newGame = e.Command.ArgumentsAsString; if (newGame == null || newGame.Length <= 0) { return; } GetUsersResponse resp = await LeTwitchBot.BotAPI.Helix.Users.GetUsersAsync(null, new List <string> { senderClient.TwitchUsername }); if (resp.Users.Length <= 0) { return; } User user = resp.Users[0]; if (!user.DisplayName.ToLower().Equals(LeTwitchBot.HostChannelName.ToLower())) { return; } GetChannelInformationResponse existingInfo = await LeTwitchBot.BotAPI.Helix.Channels.GetChannelInformationAsync(user.Id); if (existingInfo.Data.Length <= 0) { return; } ChannelInformation info = existingInfo.Data[0]; GetGamesResponse gameResponse = await LeTwitchBot.BotAPI.Helix.Games.GetGamesAsync(null, new List <string> { newGame }); if (gameResponse.Games.Length <= 0) { LeTwitchBot.TwitchClient.SendHostChannelMessage($"Couldn't locate {newGame} :( :( :( :( "); return; } Game tehGame = gameResponse.Games[0]; ModifyChannelInformationRequest changeReq = new ModifyChannelInformationRequest(); changeReq.BroadcasterLanguage = info.BroadcasterLanguage; changeReq.Title = info.Title; changeReq.GameId = tehGame.Id; await LeTwitchBot.BotAPI.Helix.Channels.ModifyChannelInformationAsync(user.Id, changeReq, LeTwitchBot.Secrets.HostChannelUserToken); LeTwitchBot.TwitchClient.SendHostChannelMessage($"Broadcaster {user.DisplayName} will now be playin' {tehGame.Name} Kappa Kappa Kappa Kappa"); }