mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
Fix alliance selection and lower third overlays to work across a refresh.
This commit is contained in:
@@ -66,6 +66,8 @@ type Arena struct {
|
||||
SavedMatch *model.Match
|
||||
SavedMatchResult *model.MatchResult
|
||||
AllianceStationDisplayMode string
|
||||
AllianceSelectionAlliances [][]model.AllianceTeam
|
||||
LowerThird *model.LowerThird
|
||||
MuteMatchSounds bool
|
||||
matchAborted bool
|
||||
Scale *game.Seesaw
|
||||
|
||||
@@ -60,7 +60,7 @@ type audienceAllianceScoreFields struct {
|
||||
|
||||
// Instantiates notifiers and configures their message producing methods.
|
||||
func (arena *Arena) configureNotifiers() {
|
||||
arena.AllianceSelectionNotifier = websocket.NewNotifier("allianceSelection", nil)
|
||||
arena.AllianceSelectionNotifier = websocket.NewNotifier("allianceSelection", arena.generateAllianceSelectionMessage)
|
||||
arena.AllianceStationDisplayModeNotifier = websocket.NewNotifier("allianceStationDisplayMode",
|
||||
arena.generateAllianceStationDisplayModeMessage)
|
||||
arena.ArenaStatusNotifier = websocket.NewNotifier("arenaStatus", arena.generateArenaStatusMessage)
|
||||
@@ -69,7 +69,7 @@ func (arena *Arena) configureNotifiers() {
|
||||
arena.DisplayConfigurationNotifier = websocket.NewNotifier("displayConfiguration",
|
||||
arena.generateDisplayConfigurationMessage)
|
||||
arena.LedModeNotifier = websocket.NewNotifier("ledMode", arena.generateLedModeMessage)
|
||||
arena.LowerThirdNotifier = websocket.NewNotifier("lowerThird", nil)
|
||||
arena.LowerThirdNotifier = websocket.NewNotifier("lowerThird", arena.generateLowerThirdMessage)
|
||||
arena.MatchLoadNotifier = websocket.NewNotifier("matchLoad", arena.generateMatchLoadMessage)
|
||||
arena.MatchTimeNotifier = websocket.NewNotifier("matchTime", arena.generateMatchTimeMessage)
|
||||
arena.MatchTimingNotifier = websocket.NewNotifier("matchTiming", arena.generateMatchTimingMessage)
|
||||
@@ -80,6 +80,10 @@ func (arena *Arena) configureNotifiers() {
|
||||
arena.ScoringStatusNotifier = websocket.NewNotifier("scoringStatus", arena.generateScoringStatusMessage)
|
||||
}
|
||||
|
||||
func (arena *Arena) generateAllianceSelectionMessage() interface{} {
|
||||
return &arena.AllianceSelectionAlliances
|
||||
}
|
||||
|
||||
func (arena *Arena) generateAllianceStationDisplayModeMessage() interface{} {
|
||||
return arena.AllianceStationDisplayMode
|
||||
}
|
||||
@@ -112,6 +116,10 @@ func (arena *Arena) generateLedModeMessage() interface{} {
|
||||
return &LedModeMessage{arena.ScaleLeds.GetCurrentMode(), arena.RedVaultLeds.CurrentForceMode}
|
||||
}
|
||||
|
||||
func (arena *Arena) generateLowerThirdMessage() interface{} {
|
||||
return arena.LowerThird
|
||||
}
|
||||
|
||||
func (arena *Arena) generateMatchLoadMessage() interface{} {
|
||||
teams := make(map[string]*model.Team)
|
||||
for station, allianceStation := range arena.AllianceStations {
|
||||
|
||||
@@ -20,8 +20,7 @@ type RankedTeam struct {
|
||||
Picked bool
|
||||
}
|
||||
|
||||
// Global vars to hold the alliances that are in the process of being selected.
|
||||
var cachedAlliances [][]model.AllianceTeam
|
||||
// Global var to hold the team rankings during the alliance selection.
|
||||
var cachedRankedTeams []*RankedTeam
|
||||
|
||||
// Shows the alliance selection page.
|
||||
@@ -51,11 +50,11 @@ func (web *Web) allianceSelectionPostHandler(w http.ResponseWriter, r *http.Requ
|
||||
}
|
||||
|
||||
// Iterate through all selections and update the alliances.
|
||||
for i, alliance := range cachedAlliances {
|
||||
for i, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
for j := range alliance {
|
||||
teamString := r.PostFormValue(fmt.Sprintf("selection%d_%d", i, j))
|
||||
if teamString == "" {
|
||||
cachedAlliances[i][j].TeamId = 0
|
||||
web.arena.AllianceSelectionAlliances[i][j].TeamId = 0
|
||||
} else {
|
||||
teamId, err := strconv.Atoi(teamString)
|
||||
if err != nil {
|
||||
@@ -66,12 +65,13 @@ func (web *Web) allianceSelectionPostHandler(w http.ResponseWriter, r *http.Requ
|
||||
for _, team := range newRankedTeams {
|
||||
if team.TeamId == teamId {
|
||||
if team.Picked {
|
||||
web.renderAllianceSelection(w, r, fmt.Sprintf("Team %d is already part of an alliance.", teamId))
|
||||
web.renderAllianceSelection(w, r,
|
||||
fmt.Sprintf("Team %d is already part of an alliance.", teamId))
|
||||
return
|
||||
}
|
||||
found = true
|
||||
team.Picked = true
|
||||
cachedAlliances[i][j].TeamId = teamId
|
||||
web.arena.AllianceSelectionAlliances[i][j].TeamId = teamId
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -84,7 +84,7 @@ func (web *Web) allianceSelectionPostHandler(w http.ResponseWriter, r *http.Requ
|
||||
}
|
||||
cachedRankedTeams = newRankedTeams
|
||||
|
||||
web.arena.AllianceSelectionNotifier.NotifyWithMessage(cachedAlliances)
|
||||
web.arena.AllianceSelectionNotifier.Notify()
|
||||
http.Redirect(w, r, "/alliance_selection", 303)
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ func (web *Web) allianceSelectionStartHandler(w http.ResponseWriter, r *http.Req
|
||||
return
|
||||
}
|
||||
|
||||
if len(cachedAlliances) != 0 {
|
||||
if len(web.arena.AllianceSelectionAlliances) != 0 {
|
||||
web.renderAllianceSelection(w, r, "Can't start alliance selection when it is already in progress.")
|
||||
return
|
||||
}
|
||||
@@ -104,15 +104,15 @@ func (web *Web) allianceSelectionStartHandler(w http.ResponseWriter, r *http.Req
|
||||
}
|
||||
|
||||
// Create a blank alliance set matching the event configuration.
|
||||
cachedAlliances = make([][]model.AllianceTeam, web.arena.EventSettings.NumElimAlliances)
|
||||
web.arena.AllianceSelectionAlliances = make([][]model.AllianceTeam, web.arena.EventSettings.NumElimAlliances)
|
||||
teamsPerAlliance := 3
|
||||
if web.arena.EventSettings.SelectionRound3Order != "" {
|
||||
teamsPerAlliance = 4
|
||||
}
|
||||
for i := 0; i < web.arena.EventSettings.NumElimAlliances; i++ {
|
||||
cachedAlliances[i] = make([]model.AllianceTeam, teamsPerAlliance)
|
||||
web.arena.AllianceSelectionAlliances[i] = make([]model.AllianceTeam, teamsPerAlliance)
|
||||
for j := 0; j < teamsPerAlliance; j++ {
|
||||
cachedAlliances[i][j] = model.AllianceTeam{AllianceId: i + 1, PickPosition: j}
|
||||
web.arena.AllianceSelectionAlliances[i][j] = model.AllianceTeam{AllianceId: i + 1, PickPosition: j}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ func (web *Web) allianceSelectionStartHandler(w http.ResponseWriter, r *http.Req
|
||||
cachedRankedTeams[i] = &RankedTeam{i + 1, ranking.TeamId, false}
|
||||
}
|
||||
|
||||
web.arena.AllianceSelectionNotifier.NotifyWithMessage(cachedAlliances)
|
||||
web.arena.AllianceSelectionNotifier.Notify()
|
||||
http.Redirect(w, r, "/alliance_selection", 303)
|
||||
}
|
||||
|
||||
@@ -142,9 +142,9 @@ func (web *Web) allianceSelectionResetHandler(w http.ResponseWriter, r *http.Req
|
||||
return
|
||||
}
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
web.arena.AllianceSelectionAlliances = [][]model.AllianceTeam{}
|
||||
cachedRankedTeams = []*RankedTeam{}
|
||||
web.arena.AllianceSelectionNotifier.NotifyWithMessage(cachedAlliances)
|
||||
web.arena.AllianceSelectionNotifier.Notify()
|
||||
http.Redirect(w, r, "/alliance_selection", 303)
|
||||
}
|
||||
|
||||
@@ -167,7 +167,7 @@ func (web *Web) allianceSelectionFinalizeHandler(w http.ResponseWriter, r *http.
|
||||
}
|
||||
|
||||
// Check that all spots are filled.
|
||||
for _, alliance := range cachedAlliances {
|
||||
for _, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
for _, team := range alliance {
|
||||
if team.TeamId <= 0 {
|
||||
web.renderAllianceSelection(w, r, "Can't finalize alliance selection until all spots have been filled.")
|
||||
@@ -177,7 +177,7 @@ func (web *Web) allianceSelectionFinalizeHandler(w http.ResponseWriter, r *http.
|
||||
}
|
||||
|
||||
// Save alliances to the database.
|
||||
for _, alliance := range cachedAlliances {
|
||||
for _, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
for _, team := range alliance {
|
||||
err := web.arena.Database.CreateAllianceTeam(&team)
|
||||
if err != nil {
|
||||
@@ -240,10 +240,10 @@ func (web *Web) allianceSelectionPublishHandler(w http.ResponseWriter, r *http.R
|
||||
}
|
||||
|
||||
func (web *Web) renderAllianceSelection(w http.ResponseWriter, r *http.Request, errorMessage string) {
|
||||
if len(cachedAlliances) == 0 && !web.canModifyAllianceSelection() {
|
||||
if len(web.arena.AllianceSelectionAlliances) == 0 && !web.canModifyAllianceSelection() {
|
||||
// The application was restarted since the alliance selection was conducted; reload the alliances from the DB.
|
||||
var err error
|
||||
cachedAlliances, err = web.arena.Database.GetAllAlliances()
|
||||
web.arena.AllianceSelectionAlliances, err = web.arena.Database.GetAllAlliances()
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
return
|
||||
@@ -263,7 +263,7 @@ func (web *Web) renderAllianceSelection(w http.ResponseWriter, r *http.Request,
|
||||
NextRow int
|
||||
NextCol int
|
||||
ErrorMessage string
|
||||
}{web.arena.EventSettings, cachedAlliances, cachedRankedTeams, nextRow, nextCol, errorMessage}
|
||||
}{web.arena.EventSettings, web.arena.AllianceSelectionAlliances, cachedRankedTeams, nextRow, nextCol, errorMessage}
|
||||
err = template.ExecuteTemplate(w, "base", data)
|
||||
if err != nil {
|
||||
handleWebErr(w, err)
|
||||
@@ -283,7 +283,7 @@ func (web *Web) canModifyAllianceSelection() bool {
|
||||
// Returns the row and column of the next alliance selection spot that should have keyboard autofocus.
|
||||
func (web *Web) determineNextCell() (int, int) {
|
||||
// Check the first two columns.
|
||||
for i, alliance := range cachedAlliances {
|
||||
for i, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
if alliance[0].TeamId == 0 {
|
||||
return i, 0
|
||||
}
|
||||
@@ -294,14 +294,14 @@ func (web *Web) determineNextCell() (int, int) {
|
||||
|
||||
// Check the third column.
|
||||
if web.arena.EventSettings.SelectionRound2Order == "F" {
|
||||
for i, alliance := range cachedAlliances {
|
||||
for i, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
if alliance[2].TeamId == 0 {
|
||||
return i, 2
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for i := len(cachedAlliances) - 1; i >= 0; i-- {
|
||||
if cachedAlliances[i][2].TeamId == 0 {
|
||||
for i := len(web.arena.AllianceSelectionAlliances) - 1; i >= 0; i-- {
|
||||
if web.arena.AllianceSelectionAlliances[i][2].TeamId == 0 {
|
||||
return i, 2
|
||||
}
|
||||
}
|
||||
@@ -309,14 +309,14 @@ func (web *Web) determineNextCell() (int, int) {
|
||||
|
||||
// Check the fourth column.
|
||||
if web.arena.EventSettings.SelectionRound3Order == "F" {
|
||||
for i, alliance := range cachedAlliances {
|
||||
for i, alliance := range web.arena.AllianceSelectionAlliances {
|
||||
if alliance[3].TeamId == 0 {
|
||||
return i, 3
|
||||
}
|
||||
}
|
||||
} else if web.arena.EventSettings.SelectionRound3Order == "L" {
|
||||
for i := len(cachedAlliances) - 1; i >= 0; i-- {
|
||||
if cachedAlliances[i][3].TeamId == 0 {
|
||||
for i := len(web.arena.AllianceSelectionAlliances) - 1; i >= 0; i-- {
|
||||
if web.arena.AllianceSelectionAlliances[i][3].TeamId == 0 {
|
||||
return i, 3
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
func TestAllianceSelection(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
web.arena.AllianceSelectionAlliances = [][]model.AllianceTeam{}
|
||||
cachedRankedTeams = []*RankedTeam{}
|
||||
web.arena.EventSettings.NumElimAlliances = 15
|
||||
web.arena.EventSettings.SelectionRound3Order = "L"
|
||||
@@ -30,8 +30,8 @@ func TestAllianceSelection(t *testing.T) {
|
||||
// Start the alliance selection.
|
||||
recorder = web.postHttpResponse("/alliance_selection/start", "")
|
||||
assert.Equal(t, 303, recorder.Code)
|
||||
if assert.Equal(t, 15, len(cachedAlliances)) {
|
||||
assert.Equal(t, 4, len(cachedAlliances[0]))
|
||||
if assert.Equal(t, 15, len(web.arena.AllianceSelectionAlliances)) {
|
||||
assert.Equal(t, 4, len(web.arena.AllianceSelectionAlliances[0]))
|
||||
}
|
||||
recorder = web.getHttpResponse("/alliance_selection")
|
||||
assert.Contains(t, recorder.Body.String(), "Captain")
|
||||
@@ -46,14 +46,14 @@ func TestAllianceSelection(t *testing.T) {
|
||||
web.arena.EventSettings.SelectionRound3Order = ""
|
||||
recorder = web.postHttpResponse("/alliance_selection/start", "")
|
||||
assert.Equal(t, 303, recorder.Code)
|
||||
if assert.Equal(t, 3, len(cachedAlliances)) {
|
||||
assert.Equal(t, 3, len(cachedAlliances[0]))
|
||||
if assert.Equal(t, 3, len(web.arena.AllianceSelectionAlliances)) {
|
||||
assert.Equal(t, 3, len(web.arena.AllianceSelectionAlliances[0]))
|
||||
}
|
||||
|
||||
// Update one team at a time.
|
||||
recorder = web.postHttpResponse("/alliance_selection", "selection0_0=110")
|
||||
assert.Equal(t, 303, recorder.Code)
|
||||
assert.Equal(t, 110, cachedAlliances[0][0].TeamId)
|
||||
assert.Equal(t, 110, web.arena.AllianceSelectionAlliances[0][0].TeamId)
|
||||
recorder = web.getHttpResponse("/alliance_selection")
|
||||
assert.Contains(t, recorder.Body.String(), "\"110\"")
|
||||
assert.NotContains(t, recorder.Body.String(), ">110<")
|
||||
@@ -61,9 +61,9 @@ func TestAllianceSelection(t *testing.T) {
|
||||
// Update multiple teams at a time.
|
||||
recorder = web.postHttpResponse("/alliance_selection", "selection0_0=101&selection0_1=102&selection1_0=103")
|
||||
assert.Equal(t, 303, recorder.Code)
|
||||
assert.Equal(t, 101, cachedAlliances[0][0].TeamId)
|
||||
assert.Equal(t, 102, cachedAlliances[0][1].TeamId)
|
||||
assert.Equal(t, 103, cachedAlliances[1][0].TeamId)
|
||||
assert.Equal(t, 101, web.arena.AllianceSelectionAlliances[0][0].TeamId)
|
||||
assert.Equal(t, 102, web.arena.AllianceSelectionAlliances[0][1].TeamId)
|
||||
assert.Equal(t, 103, web.arena.AllianceSelectionAlliances[1][0].TeamId)
|
||||
recorder = web.getHttpResponse("/alliance_selection")
|
||||
assert.Contains(t, recorder.Body.String(), ">110<")
|
||||
|
||||
@@ -95,7 +95,7 @@ func TestAllianceSelection(t *testing.T) {
|
||||
func TestAllianceSelectionErrors(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
web.arena.AllianceSelectionAlliances = [][]model.AllianceTeam{}
|
||||
cachedRankedTeams = []*RankedTeam{}
|
||||
web.arena.EventSettings.NumElimAlliances = 2
|
||||
for i := 1; i <= 6; i++ {
|
||||
@@ -149,7 +149,7 @@ func TestAllianceSelectionErrors(t *testing.T) {
|
||||
recorder = web.postHttpResponse("/alliance_selection", "selection0_0=asdf")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
assert.Contains(t, recorder.Body.String(), "already been finalized")
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
web.arena.AllianceSelectionAlliances = [][]model.AllianceTeam{}
|
||||
cachedRankedTeams = []*RankedTeam{}
|
||||
recorder = web.postHttpResponse("/alliance_selection/start", "")
|
||||
assert.Equal(t, 200, recorder.Code)
|
||||
@@ -159,7 +159,7 @@ func TestAllianceSelectionErrors(t *testing.T) {
|
||||
func TestAllianceSelectionAutofocus(t *testing.T) {
|
||||
web := setupTestWeb(t)
|
||||
|
||||
cachedAlliances = [][]model.AllianceTeam{}
|
||||
web.arena.AllianceSelectionAlliances = [][]model.AllianceTeam{}
|
||||
cachedRankedTeams = []*RankedTeam{}
|
||||
web.arena.EventSettings.NumElimAlliances = 2
|
||||
|
||||
@@ -171,35 +171,35 @@ func TestAllianceSelectionAutofocus(t *testing.T) {
|
||||
i, j := web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 0, j)
|
||||
cachedAlliances[0][0].TeamId = 1
|
||||
web.arena.AllianceSelectionAlliances[0][0].TeamId = 1
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 1, j)
|
||||
cachedAlliances[0][1].TeamId = 2
|
||||
web.arena.AllianceSelectionAlliances[0][1].TeamId = 2
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 0, j)
|
||||
cachedAlliances[1][0].TeamId = 3
|
||||
web.arena.AllianceSelectionAlliances[1][0].TeamId = 3
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 1, j)
|
||||
cachedAlliances[1][1].TeamId = 4
|
||||
web.arena.AllianceSelectionAlliances[1][1].TeamId = 4
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 2, j)
|
||||
cachedAlliances[0][2].TeamId = 5
|
||||
web.arena.AllianceSelectionAlliances[0][2].TeamId = 5
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 2, j)
|
||||
cachedAlliances[1][2].TeamId = 6
|
||||
web.arena.AllianceSelectionAlliances[1][2].TeamId = 6
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 3, j)
|
||||
cachedAlliances[0][3].TeamId = 7
|
||||
web.arena.AllianceSelectionAlliances[0][3].TeamId = 7
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 3, j)
|
||||
cachedAlliances[1][3].TeamId = 8
|
||||
web.arena.AllianceSelectionAlliances[1][3].TeamId = 8
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, -1, i)
|
||||
assert.Equal(t, -1, j)
|
||||
@@ -214,35 +214,35 @@ func TestAllianceSelectionAutofocus(t *testing.T) {
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 0, j)
|
||||
cachedAlliances[0][0].TeamId = 1
|
||||
web.arena.AllianceSelectionAlliances[0][0].TeamId = 1
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 1, j)
|
||||
cachedAlliances[0][1].TeamId = 2
|
||||
web.arena.AllianceSelectionAlliances[0][1].TeamId = 2
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 0, j)
|
||||
cachedAlliances[1][0].TeamId = 3
|
||||
web.arena.AllianceSelectionAlliances[1][0].TeamId = 3
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 1, j)
|
||||
cachedAlliances[1][1].TeamId = 4
|
||||
web.arena.AllianceSelectionAlliances[1][1].TeamId = 4
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 2, j)
|
||||
cachedAlliances[1][2].TeamId = 5
|
||||
web.arena.AllianceSelectionAlliances[1][2].TeamId = 5
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 2, j)
|
||||
cachedAlliances[0][2].TeamId = 6
|
||||
web.arena.AllianceSelectionAlliances[0][2].TeamId = 6
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 1, i)
|
||||
assert.Equal(t, 3, j)
|
||||
cachedAlliances[1][3].TeamId = 7
|
||||
web.arena.AllianceSelectionAlliances[1][3].TeamId = 7
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, 0, i)
|
||||
assert.Equal(t, 3, j)
|
||||
cachedAlliances[0][3].TeamId = 8
|
||||
web.arena.AllianceSelectionAlliances[0][3].TeamId = 8
|
||||
i, j = web.determineNextCell()
|
||||
assert.Equal(t, -1, i)
|
||||
assert.Equal(t, -1, j)
|
||||
|
||||
@@ -41,6 +41,8 @@ func TestAudienceDisplayWebsocket(t *testing.T) {
|
||||
readWebsocketType(t, ws, "matchTime")
|
||||
readWebsocketType(t, ws, "realtimeScore")
|
||||
readWebsocketType(t, ws, "scorePosted")
|
||||
readWebsocketType(t, ws, "allianceSelection")
|
||||
readWebsocketType(t, ws, "lowerThird")
|
||||
readWebsocketType(t, ws, "displayConfiguration")
|
||||
|
||||
// Run through a match cycle.
|
||||
|
||||
@@ -96,7 +96,8 @@ func (web *Web) lowerThirdsWebsocketHandler(w http.ResponseWriter, r *http.Reque
|
||||
continue
|
||||
}
|
||||
web.saveLowerThird(&lowerThird)
|
||||
web.arena.LowerThirdNotifier.NotifyWithMessage(lowerThird)
|
||||
web.arena.LowerThird = &lowerThird
|
||||
web.arena.LowerThirdNotifier.Notify()
|
||||
web.arena.AudienceDisplayMode = "lowerThird"
|
||||
web.arena.AudienceDisplayModeNotifier.Notify()
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user