コード例 #1
0
ファイル: CmdBrdCstr.cs プロジェクト: zkitX/TwitchBot
        public async Task CmdSetGenericIgn(string message)
        {
            try
            {
                string gameIgn = message.Substring(message.IndexOf(" ") + 1);

                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelById();

                string gameTitle = json.Game;

                InGameUsername ign = await _ign.GetInGameUsername(_broadcasterInstance.DatabaseId);

                if (ign == null)
                {
                    await _ign.CreateInGameUsername(null, _broadcasterInstance.DatabaseId, gameIgn);

                    _irc.SendPublicChatMessage($"Yay! You've set your generic IGN to \"{gameIgn}\"");
                }
                else
                {
                    ign.Message = gameIgn;
                    await _ign.UpdateInGameUsername(ign.Id, _broadcasterInstance.DatabaseId, ign);

                    _irc.SendPublicChatMessage($"Yay! You've updated your generic IGN to \"{gameIgn}\"");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "CmdBrdCstr", "CmdSetGenericIgn(string)", false, "!setgenericign");
            }
        }
コード例 #2
0
ファイル: CmdBrdCstr.cs プロジェクト: zkitX/TwitchBot
        public async Task CmdDeleteIgn()
        {
            try
            {
                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelById();

                string gameTitle = json.Game;

                TwitchGameCategory game = await _gameDirectory.GetGameId(gameTitle);

                InGameUsername ign = await _ign.GetInGameUsername(_broadcasterInstance.DatabaseId, game);

                if (ign != null && ign.GameId != null)
                {
                    await _ign.DeleteInGameUsername(ign.Id, _broadcasterInstance.DatabaseId);

                    _irc.SendPublicChatMessage($"Successfully deleted IGN set for the category \"{game.Title}\"");
                }
                else
                {
                    _irc.SendPublicChatMessage($"Wasn't able to find an IGN to delete for the category \"{game.Title}\"");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "CmdBrdCstr", "CmdDeleteIgn()", false, "!deleteign");
            }
        }
コード例 #3
0
        private async Task <DateTime> SetGenericIgnAsync(TwitchChatter chatter)
        {
            try
            {
                string message = chatter.Message;
                string gameIgn = message.Substring(message.IndexOf(" ") + 1);

                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelByIdAsync();

                string gameTitle = json.Game;

                InGameUsername ign = await _ign.GetInGameUsernameAsync(_broadcasterInstance.DatabaseId);

                if (ign == null)
                {
                    await _ign.CreateInGameUsernameAsync(null, _broadcasterInstance.DatabaseId, gameIgn);

                    _irc.SendPublicChatMessage($"Yay! You've set your generic IGN to \"{gameIgn}\" @{chatter.DisplayName}");
                }
                else
                {
                    ign.Message = gameIgn;
                    await _ign.UpdateInGameUsernameAsync(ign.Id, _broadcasterInstance.DatabaseId, ign);

                    _irc.SendPublicChatMessage($"Yay! You've updated your generic IGN to \"{gameIgn}\" @{chatter.DisplayName}");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "InGameNameFeature", "SetGenericIgn(TwitchChatter)", false, "!setgenericign", chatter.Message);
            }

            return(DateTime.Now);
        }
コード例 #4
0
        public async Task CreateInGameUsername(int?gameId, int broadcasterId, string message)
        {
            InGameUsername ign = new InGameUsername
            {
                GameId        = gameId,
                BroadcasterId = broadcasterId,
                Message       = message
            };

            await ApiBotRequest.PostExecuteAsync(_twitchBotApiLink + $"ingameusernames/create", ign);
        }
コード例 #5
0
        public async Task <IActionResult> Create([FromBody] InGameUsername inGameUsername)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            _context.InGameUsername.Add(inGameUsername);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("Get", new { broadcasterId = inGameUsername.BroadcasterId, gameId = inGameUsername.Game }, inGameUsername));
        }
コード例 #6
0
        private async Task <DateTime> SetGameIgnAsync(TwitchChatter chatter)
        {
            try
            {
                string message = chatter.Message;
                string gameIgn = message.Substring(message.IndexOf(" ") + 1);

                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelByIdAsync();

                string gameTitle = json.Game;

                TwitchGameCategory game = await _gameDirectory.GetGameIdAsync(gameTitle);

                InGameUsername ign = await _ign.GetInGameUsernameAsync(_broadcasterInstance.DatabaseId, game);

                if (game == null)
                {
                    _irc.SendPublicChatMessage("The game isn't in the database. "
                                               + $"Please set this as part of the general game IDs or IGNs using !setgenericign or !setgenericid @{chatter.DisplayName}");
                    return(DateTime.Now);
                }

                if (ign == null || (ign != null && ign.GameId == null))
                {
                    await _ign.CreateInGameUsernameAsync(game.Id, _broadcasterInstance.DatabaseId, gameIgn);

                    _irc.SendPublicChatMessage($"Yay! You've set your IGN for {gameTitle} to \"{gameIgn}\" @{chatter.DisplayName}");
                }
                else
                {
                    ign.Message = gameIgn;
                    await _ign.UpdateInGameUsernameAsync(ign.Id, _broadcasterInstance.DatabaseId, ign);

                    _irc.SendPublicChatMessage($"Yay! You've updated your IGN for {gameTitle} to \"{gameIgn}\" @{chatter.DisplayName}");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "InGameNameFeature", "SetGameIgn(TwitchChatter)", false, "!setgameign", chatter.Message);
            }

            return(DateTime.Now);
        }
コード例 #7
0
        public async Task <IActionResult> Delete([FromRoute] int broadcasterId, [FromQuery] int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            InGameUsername inGameUsername = await _context.InGameUsername.SingleOrDefaultAsync(m => m.Id == id && m.BroadcasterId == broadcasterId);

            if (inGameUsername == null)
            {
                return(NotFound());
            }

            _context.InGameUsername.Remove(inGameUsername);
            await _context.SaveChangesAsync();

            return(NoContent());
        }
コード例 #8
0
        private async Task <DateTime> InGameUsernameAsync(TwitchChatter chatter)
        {
            try
            {
                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelByIdAsync();

                string gameTitle = json.Game;

                TwitchGameCategory game = await _gameDirectory.GetGameIdAsync(gameTitle);

                InGameUsername ign = null;

                if (chatter.Message.StartsWith("!all"))
                {
                    ign = await _ign.GetInGameUsernameAsync(_broadcasterInstance.DatabaseId); // return generic IGN
                }
                else
                {
                    ign = await _ign.GetInGameUsernameAsync(_broadcasterInstance.DatabaseId, game); // return specified IGN (if available)
                }
                if (ign != null && !string.IsNullOrEmpty(ign.Message))
                {
                    _irc.SendPublicChatMessage($"{ign.Message} @{chatter.DisplayName}");
                }
                else
                {
                    _irc.SendPublicChatMessage($"I cannot find your in-game username @{chatter.DisplayName}");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "InGameNameFeature", "InGameUsername(TwitchChatter)", false, "!ign");
            }

            return(DateTime.Now);
        }
コード例 #9
0
        private async Task <DateTime> DeleteIgnAsync(TwitchChatter chatter)
        {
            try
            {
                // Get current game name
                ChannelJSON json = await _twitchInfo.GetBroadcasterChannelByIdAsync();

                string gameTitle = json.Game;

                TwitchGameCategory game = await _gameDirectory.GetGameIdAsync(gameTitle);

                InGameUsername ign = await _ign.GetInGameUsernameAsync(_broadcasterInstance.DatabaseId, game);

                if (game == null)
                {
                    _irc.SendPublicChatMessage($"The game isn't in the database @{chatter.DisplayName}");
                    return(DateTime.Now);
                }

                if (ign != null && ign.GameId != null)
                {
                    await _ign.DeleteInGameUsernameAsync(ign.Id, _broadcasterInstance.DatabaseId);

                    _irc.SendPublicChatMessage($"Successfully deleted IGN set for the category, \"{game.Title}\" @{chatter.DisplayName}");
                }
                else
                {
                    _irc.SendPublicChatMessage($"Wasn't able to find an IGN to delete for the category, \"{game.Title}\" @{chatter.DisplayName}");
                }
            }
            catch (Exception ex)
            {
                await _errHndlrInstance.LogError(ex, "InGameNameFeature", "DeleteIgn(TwitchChatter)", false, "!deleteign", chatter.Message);
            }

            return(DateTime.Now);
        }
コード例 #10
0
        public async Task <IActionResult> Update([FromRoute] int broadcasterId, [FromQuery] int id, [FromBody] InGameUsername inGameUsername)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != inGameUsername.Id && broadcasterId != inGameUsername.BroadcasterId)
            {
                return(BadRequest());
            }

            _context.Entry(inGameUsername).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!InGameUsernameExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #11
0
 public async Task UpdateInGameUsernameAsync(int id, int broadcasterId, InGameUsername ign)
 {
     await _ignDb.UpdateInGameUsernameAsync(id, broadcasterId, ign);
 }
コード例 #12
0
 public async Task UpdateInGameUsername(int id, int broadcasterId, InGameUsername ign)
 {
     await ApiBotRequest.PutExecuteAsync(_twitchBotApiLink + $"ingameusernames/update/{broadcasterId}?id={id}", ign);
 }