diff --git a/lib/chessh/discord/notifier.ex b/lib/chessh/discord/notifier.ex index 93d27f1..f4fc4fa 100644 --- a/lib/chessh/discord/notifier.ex +++ b/lib/chessh/discord/notifier.ex @@ -59,7 +59,8 @@ defmodule Chessh.DiscordNotifier do %Game{ status: :continue, dark_player: %Player{discord_id: dark_player_discord_id}, - light_player: %Player{discord_id: light_player_discord_id} + light_player: %Player{discord_id: light_player_discord_id}, + discord_thread_id: nil } = game -> game = maybe_put_new_thread_on_game(game) diff --git a/lib/chessh/ssh/client/game/game.ex b/lib/chessh/ssh/client/game/game.ex index 4ac0f31..4fb28f3 100644 --- a/lib/chessh/ssh/client/game/game.ex +++ b/lib/chessh/ssh/client/game/game.ex @@ -155,6 +155,12 @@ defmodule Chessh.SSH.Client.Game do if status == :ok && maybe_joined_game do :syn.publish(:games, {:game, game_id}, :player_joined) + + GenServer.cast( + :discord_notifier, + {:schedule_notification, {:player_joined, game_id}, + Application.get_env(:chessh, DiscordNotifications)[:game_player_joined_notif_delay_ms]} + ) end binbo_pid = initialize_game(game_id, fen) @@ -212,12 +218,6 @@ defmodule Chessh.SSH.Client.Game do :player_joined, %State{client_pid: client_pid, game: %Game{id: game_id}} = state ) do - GenServer.cast( - :discord_notifier, - {:schedule_notification, {:player_joined, game_id}, - Application.get_env(:chessh, DiscordNotifications)[:game_player_joined_notif_delay_ms]} - ) - game = Repo.get(Game, game_id) |> Repo.preload([:light_player, :dark_player]) new_state = %State{state | game: game} send(client_pid, {:send_to_ssh, Renderer.render_board_state(new_state)})