public void RemoveGame(ulong userId) { Game game = _gameByUserId[userId]; game.OnGameUpdated -= HandleGameUpdate; game.OnGameEnded -= HandleGameEnded; _gameByUserId.Remove(userId); }
private async Task HandleGameEnded(Game game) { Embed embed = new EmbedBuilder() .WithTitle("Game Over!") .WithDescription($"{game.Player.Username}#{game.Player.Discriminator} reached a score of {game.Score}.\nThanks for playing!") .AddField("\u200B", "[GitHub Repository](https://github.com/DaRealBerlm/ProtoTheSnake)") .WithCurrentTimestamp() .Build(); await game.Message.ModifyAsync(x => x.Embed = embed); RemoveGame(game.Player.Id); }
private async Task HandleGameUpdate(Game game) { var level = game.Grid.Render(); var embed = GetEmbed(level, game.Player); await game.Message.ModifyAsync(x => x.Embed = embed); }
public void AddGame(ulong userId, Game game) { game.OnGameUpdated += HandleGameUpdate; game.OnGameEnded += HandleGameEnded; _gameByUserId.Add(userId, game); }