Example #1
0
        private async Task HandleConnectionAsync(GuildPlayer guildPlayer)
        {
            var writer    = _pipe.Writer;
            var webSocket = guildPlayer.Socket;

            try {
                do
                {
                    var memory        = writer.GetMemory(BUFFER_SIZE);
                    var receiveResult = await webSocket.ReceiveAsync(memory, CancellationToken.None);

                    if (!receiveResult.EndOfMessage)
                    {
                        writer.Advance(receiveResult.Count);
                        continue;
                    }

                    await writer.FlushAsync();

                    await guildPlayer.OnMessageAsync(_pipe.Reader);
                } while (webSocket.State == WebSocketState.Open);
            }
            catch (Exception exception) {
                _logger.LogCritical(exception, exception.StackTrace);

                await writer.CompleteAsync(exception);

                await guildPlayer.OnDisconnectedAsync(exception);
            }
        }
Example #2
0
        public async static Task AddGuild(PlayerContext context, Player player, Guild guild)
        {
            var playerGuild = new GuildPlayer {
                Player = player, PlayerId = player.PlayerId, GuildId = guild.Id, Guild = guild
            };

            player.GuildPlayers.Append(playerGuild);
            await context.GuildPlayers.AddAsync(playerGuild);

            await context.SaveChangesAsync();
        }
        public static async Task AddGuildToPlayer(PlayerContext context, Guild guild, Player player)
        {
            var guildPlayer = new GuildPlayer {
                PlayerId = player.PlayerId,
                GuildId  = guild.Id,
                Player   = player,
                Guild    = guild
            };

            player.GuildPlayers.Add(guildPlayer);
            context.GuildPlayers.Add(guildPlayer);
            context.Update <Player> (player);
            await context.SaveChangesAsync();
        }