summaryrefslogtreecommitdiff
path: root/pkg/ui/views/game_api.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/ui/views/game_api.go')
-rw-r--r--pkg/ui/views/game_api.go29
1 files changed, 16 insertions, 13 deletions
diff --git a/pkg/ui/views/game_api.go b/pkg/ui/views/game_api.go
index 485df41..e2ef280 100644
--- a/pkg/ui/views/game_api.go
+++ b/pkg/ui/views/game_api.go
@@ -6,6 +6,7 @@ import (
"os"
"github.com/boozec/rahanna/internal/api/database"
+ "github.com/boozec/rahanna/pkg/p2p"
tea "github.com/charmbracelet/bubbletea"
"github.com/notnil/chess"
)
@@ -15,6 +16,21 @@ func (m GameModel) handleDatabaseGameMsg(msg database.Game) (GameModel, tea.Cmd)
var cmd tea.Cmd
+ // Establish peer connection
+ if m.network.Peer() == p2p.EmptyNetworkID {
+ if m.network.Me() == m.playerPeer(1) {
+ if m.game.IP2 != "" {
+ remote := m.game.IP2
+ go m.network.AddPeer(m.playerPeer(2), remote)
+ }
+ } else {
+ if m.game.IP1 != "" {
+ remote := m.game.IP1
+ go m.network.AddPeer(m.playerPeer(1), remote)
+ }
+ }
+ }
+
if m.game.Outcome != chess.NoOutcome.String() {
cmd = func() tea.Msg {
return EndGameMsg{}
@@ -46,19 +62,6 @@ func (m *GameModel) getGame() tea.Cmd {
return nil
}
- // Establish peer connection
- if m.network.Me() == "peer-1" {
- if game.IP2 != "" {
- remote := game.IP2
- go m.network.AddPeer("peer-2", remote)
- }
- } else {
- if game.IP1 != "" {
- remote := game.IP1
- go m.network.AddPeer("peer-1", remote)
- }
- }
-
return game
}
}