From 2b53bcfcd751fdff20925253fe3cc92c1bc54930 Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Fri, 7 Aug 2026 15:53:57 -0700 Subject: [PATCH 1/7] feat: latitude and longitude are based on the .env file --- .env.example | 4 ++++ README.md | 12 ++++++++--- api/game.go | 54 ++++++++++++++++++++++++++++++++++++++++-------- api/game_test.go | 41 ++++++++++++++++++++++++++++++++++-- main.go | 6 ++++-- 5 files changed, 101 insertions(+), 16 deletions(-) diff --git a/.env.example b/.env.example index 44c3c32..294a3db 100644 --- a/.env.example +++ b/.env.example @@ -1 +1,5 @@ ADMIN_PASSWORD=replace-with-a-long-random-password +MIN_LAT=49.27462710773634 +MIN_LON=-123.91628624024605 +MAX_LAT=49.28099313727333 +MAX_LON=-122.90273076431673 diff --git a/README.md b/README.md index ac173ef..ac59612 100644 --- a/README.md +++ b/README.md @@ -9,13 +9,19 @@ This version of PacMacro consists of a **Go API** accessed under `/api` and two ## Deployment -The backend requires `ADMIN_PASSWORD`. For local development, add it to the ignored `.env` file in the repository root (see `.env.example`): +The backend requires `ADMIN_PASSWORD` and the map bounds shown below. +For local development, add them to the ignored `.env` file in the repository root (see `.env.example`): ```dotenv ADMIN_PASSWORD=replace-with-a-long-random-password +# These are the boundaries for UniverCity +MIN_LAT=49.27462710773634 +MIN_LON=-123.91628624024605 +MAX_LAT=49.28099313727333 +MAX_LON=-122.90273076431673 ``` -The binary loads `.env` from its working directory when present. For the production systemd service, put the same setting in `/etc/pacmacro/pacmacro.env` and retain this service setting: +The binary loads `.env` from its working directory when present. For the production systemd service, put the same variables in `/etc/pacmacro/pacmacro.env` and retain this service setting: ```systemd EnvironmentFile=/etc/pacmacro/pacmacro.env @@ -35,7 +41,7 @@ Install the GoLang toolchain and run `go build -o pacmacro`. ### Backend To build the PacMacro server, run `go build -o pacmacro .` from the root directory. -The backend refuses to start when `ADMIN_PASSWORD` is missing. +The backend refuses to start when `ADMIN_PASSWORD` or any map bound is missing or invalid. ### Frontend diff --git a/api/game.go b/api/game.go index 841c65e..2aaf72b 100644 --- a/api/game.go +++ b/api/game.go @@ -4,7 +4,11 @@ package api import ( "fmt" + "math" "net/http" + "os" + "strconv" + "strings" "sync" ) @@ -20,26 +24,58 @@ type Game struct { Height uint64 `json:"height"` } -func (g *Game) Init(players *Players) { - g.players = players +func (g *Game) Init(players *Players) error { + minLatitude, err := requiredEnvironmentFloat("MIN_LAT") + if err != nil { + return err + } + minLongitude, err := requiredEnvironmentFloat("MIN_LON") + if err != nil { + return err + } + maxLatitude, err := requiredEnvironmentFloat("MAX_LAT") + if err != nil { + return err + } + maxLongitude, err := requiredEnvironmentFloat("MAX_LON") + if err != nil { + return err + } + if minLatitude >= maxLatitude { + return fmt.Errorf("MIN_LAT must be less than MAX_LAT") + } + if minLongitude >= maxLongitude { + return fmt.Errorf("MIN_LON must be less than MAX_LON") + } - // hardcoded UniverCity coordinates - // (matches the map used in the HTML) - g.Min.Latitude = 49.27462710773634 - g.Min.Longitude = -122.91628624024605 - g.Max.Latitude = 49.28099313727333 - g.Max.Longitude = -122.90273076431673 + g.players = players + g.Min = Coordinate{Latitude: minLatitude, Longitude: minLongitude} + g.Max = Coordinate{Latitude: maxLatitude, Longitude: maxLongitude} // coordinate size of map g.Width = 32 g.Height = 32 fmt.Print("Game handler initialized.\n") + return nil +} + +func requiredEnvironmentFloat(name string) (float64, error) { + rawValue := strings.TrimSpace(os.Getenv(name)) + if rawValue == "" { + return 0, fmt.Errorf("%s is required", name) + } + + value, err := strconv.ParseFloat(rawValue, 64) + if err != nil || math.IsNaN(value) || math.IsInf(value, 0) { + return 0, fmt.Errorf("%s must be a finite number", name) + } + return value, nil } // /api/game/* func (g *Game) ServeHTTP(w http.ResponseWriter, r *http.Request) { - path := r.URL.Path[10:] + path := strings.TrimPrefix(r.URL.Path, "/api/game/") // GET /api/game/map.json if path == "map.json" { diff --git a/api/game_test.go b/api/game_test.go index 5b2cf23..0836296 100644 --- a/api/game_test.go +++ b/api/game_test.go @@ -8,10 +8,14 @@ import ( ) func TestMapUsesJSONObjectResponse(t *testing.T) { + setGameEnvironment(t) + players := new(Players) players.Init() game := new(Game) - game.Init(players) + if err := game.Init(players); err != nil { + t.Fatalf("initialize game: %v", err) + } request := httptest.NewRequest(http.MethodGet, "/api/game/map.json", nil) response := httptest.NewRecorder() game.ServeHTTP(response, request) @@ -28,6 +32,39 @@ func TestMapUsesJSONObjectResponse(t *testing.T) { t.Fatalf("decode map response: %v", err) } if body.Width != game.Width || body.Height != game.Height || body.Min != game.Min || body.Max != game.Max { - t.Errorf("map response = %#v, want %#v", body, game) + t.Errorf( + "map response = min %#v, max %#v, width %d, height %d; want min %#v, max %#v, width %d, height %d", + body.Min, + body.Max, + body.Width, + body.Height, + game.Min, + game.Max, + game.Width, + game.Height, + ) } } + +func TestGameInitUsesEnvironmentBounds(t *testing.T) { + setGameEnvironment(t) + + game := new(Game) + if err := game.Init(new(Players)); err != nil { + t.Fatalf("initialize game: %v", err) + } + + wantMin := Coordinate{Latitude: 49.221927, Longitude: -123.007418} + wantMax := Coordinate{Latitude: 49.228999, Longitude: -122.997131} + if game.Min != wantMin || game.Max != wantMax { + t.Errorf("bounds = min %#v, max %#v; want min %#v, max %#v", game.Min, game.Max, wantMin, wantMax) + } +} + +func setGameEnvironment(t *testing.T) { + t.Helper() + t.Setenv("MIN_LAT", "49.27462710773634") + t.Setenv("MIN_LON", "-123.91628624024605") + t.Setenv("MAX_LAT", "49.28099313727333") + t.Setenv("MAX_LON", "-122.90273076431673") +} diff --git a/main.go b/main.go index 53365cb..95111ac 100644 --- a/main.go +++ b/main.go @@ -52,8 +52,10 @@ func main() { sock api.Sockets ) - players.Init() // initialize players handler - game.Init(&players) // initialize game handler + players.Init() // initialize players handler + if err := game.Init(&players); err != nil { + log.Fatalf("initialize game: %v", err) + } sock.Init(&players) // initialize sockets handler admin.Init(&players, &sock, adminPassword) // initialize admin handler From 2f172b36ff439fd8fcffd2fc777bd20e1b2f6af8 Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sat, 8 Aug 2026 15:22:36 -0700 Subject: [PATCH 2/7] fix: fix UniverCity lat/lon boundaries --- .env.example | 2 +- README.md | 2 +- api/game_test.go | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.env.example b/.env.example index 294a3db..0c1d803 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,5 @@ ADMIN_PASSWORD=replace-with-a-long-random-password MIN_LAT=49.27462710773634 -MIN_LON=-123.91628624024605 +MIN_LON=-122.91628624024605 MAX_LAT=49.28099313727333 MAX_LON=-122.90273076431673 diff --git a/README.md b/README.md index ac59612..2c57931 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ For local development, add them to the ignored `.env` file in the repository roo ADMIN_PASSWORD=replace-with-a-long-random-password # These are the boundaries for UniverCity MIN_LAT=49.27462710773634 -MIN_LON=-123.91628624024605 +MIN_LON=-122.91628624024605 MAX_LAT=49.28099313727333 MAX_LON=-122.90273076431673 ``` diff --git a/api/game_test.go b/api/game_test.go index 0836296..ea716ee 100644 --- a/api/game_test.go +++ b/api/game_test.go @@ -54,8 +54,8 @@ func TestGameInitUsesEnvironmentBounds(t *testing.T) { t.Fatalf("initialize game: %v", err) } - wantMin := Coordinate{Latitude: 49.221927, Longitude: -123.007418} - wantMax := Coordinate{Latitude: 49.228999, Longitude: -122.997131} + wantMin := Coordinate{Latitude: 49.27462710773634, Longitude: -122.91628624024605} + wantMax := Coordinate{Latitude: 49.28099313727333, Longitude: -122.90273076431673} if game.Min != wantMin || game.Max != wantMax { t.Errorf("bounds = min %#v, max %#v; want min %#v, max %#v", game.Min, game.Max, wantMin, wantMax) } @@ -64,7 +64,7 @@ func TestGameInitUsesEnvironmentBounds(t *testing.T) { func setGameEnvironment(t *testing.T) { t.Helper() t.Setenv("MIN_LAT", "49.27462710773634") - t.Setenv("MIN_LON", "-123.91628624024605") + t.Setenv("MIN_LON", "-122.91628624024605") t.Setenv("MAX_LAT", "49.28099313727333") t.Setenv("MAX_LON", "-122.90273076431673") } From 5aa8fc2073c3b130cedc72f07b017412569facfe Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sat, 8 Aug 2026 15:23:18 -0700 Subject: [PATCH 3/7] fix(#7): Remove websocket pauses when tab isn't focused --- .../src/app/core/game-socket.service.spec.ts | 19 +++++++++++++++++++ frontend/src/app/core/game-socket.service.ts | 14 +------------- .../pages/game-page/game-page.component.ts | 6 ------ 3 files changed, 20 insertions(+), 19 deletions(-) diff --git a/frontend/src/app/core/game-socket.service.spec.ts b/frontend/src/app/core/game-socket.service.spec.ts index 870db7f..f4d94cf 100644 --- a/frontend/src/app/core/game-socket.service.spec.ts +++ b/frontend/src/app/core/game-socket.service.spec.ts @@ -72,6 +72,25 @@ describe('GameSocketService', () => { expect(service.state()).toBe('connected'); }); + it('stays active while the game tab is hidden', () => { + const originalVisibilityState = Object.getOwnPropertyDescriptor(document, 'visibilityState'); + Object.defineProperty(document, 'visibilityState', { configurable: true, value: 'hidden' }); + + try { + service.start('ABCD', () => undefined); + + expect(MockWebSocket.instances).toHaveLength(1); + MockWebSocket.instances[0].open(); + expect(service.state()).toBe('connected'); + } finally { + if (originalVisibilityState) { + Object.defineProperty(document, 'visibilityState', originalVisibilityState); + } else { + Reflect.deleteProperty(document, 'visibilityState'); + } + } + }); + it('accepts inform and move messages without unsafe rendering', () => { service.start('ABCD', () => undefined); const socket = MockWebSocket.instances[0]; diff --git a/frontend/src/app/core/game-socket.service.ts b/frontend/src/app/core/game-socket.service.ts index fc3b35d..2c9d1c8 100644 --- a/frontend/src/app/core/game-socket.service.ts +++ b/frontend/src/app/core/game-socket.service.ts @@ -41,12 +41,6 @@ export class GameSocketService { this.status.set('Offline. Waiting for a network connection…'); return; } - if (this.browserWindow.document.visibilityState === 'hidden') { - this.state.set('suspended'); - this.status.set('Paused while the page is hidden.'); - return; - } - this.intentionallyClosed = false; this.connect(); } @@ -115,7 +109,7 @@ export class GameSocketService { return; } // A reconnect receives a fresh list of active players from the server. - // Clear missed disconnects from a period where this page was sleeping. + // Clear missed disconnects from a period when this connection was unavailable. this.players.set({}); this.reconnectAttempt = 0; this.state.set('connected'); @@ -150,12 +144,6 @@ export class GameSocketService { this.status.set('Offline. Waiting for a network connection…'); return; } - if (this.browserWindow.document.visibilityState === 'hidden') { - this.state.set('suspended'); - this.status.set('Paused while the page is hidden.'); - return; - } - const delay = RECONNECT_DELAYS[Math.min(this.reconnectAttempt, RECONNECT_DELAYS.length - 1)]; this.reconnectAttempt += 1; this.status.set(`Connection lost. Retrying in ${delay / 1000} s…`); diff --git a/frontend/src/app/pages/game-page/game-page.component.ts b/frontend/src/app/pages/game-page/game-page.component.ts index 011a39e..b835f6a 100644 --- a/frontend/src/app/pages/game-page/game-page.component.ts +++ b/frontend/src/app/pages/game-page/game-page.component.ts @@ -47,12 +47,6 @@ export class GamePageComponent { }); private readonly onVisibilityChange = () => { - if (this.browserWindow?.document.visibilityState === 'hidden') { - this.geolocation.stop(); - this.socket.suspend(); - return; - } - this.socket.resume(); void this.wakeLock.handleVisibilityChange(); }; private readonly onOnline = () => this.socket.resume(); From c9867127ad1f353cb0c925e0902974fa772b5055 Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sat, 8 Aug 2026 15:33:09 -0700 Subject: [PATCH 4/7] refactor: playerID uses its own type instead of string --- api/player.go | 38 ++++++++++++++++++++------------------ api/socket.go | 1 + 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/api/player.go b/api/player.go index 6697220..90d4add 100644 --- a/api/player.go +++ b/api/player.go @@ -11,21 +11,23 @@ import ( "sync" ) +type PlayerID string + type PlayerRegistrationRequest struct { Type *int `json:"type"` Name string `json:"name"` } type PlayerRegistrationResponse struct { - ID string `json:"id"` + ID PlayerID `json:"id"` } type PlayerResponse struct { - ID string `json:"id"` - Type uint64 `json:"type"` - Name string `json:"name"` - Reps uint64 `json:"reps"` - Status uint64 `json:"status"` + ID PlayerID `json:"id"` + Type uint64 `json:"type"` + Name string `json:"name"` + Reps uint64 `json:"reps"` + Status uint64 `json:"status"` } // zero-value player: player, pacman, disconnected @@ -36,12 +38,12 @@ type Player struct { Status uint64 `json:"status"` } -func (p *Player) Format(ID string) string { +func (p *Player) Format(ID PlayerID) string { JSON, _ := json.Marshal(newPlayerResponse(ID, p)) return string(JSON) } -func newPlayerResponse(ID string, player *Player) PlayerResponse { +func newPlayerResponse(ID PlayerID, player *Player) PlayerResponse { return PlayerResponse{ ID: ID, Type: player.Type, @@ -52,13 +54,13 @@ func newPlayerResponse(ID string, player *Player) PlayerResponse { } type Players struct { - players map[string]*Player + players map[PlayerID]*Player mutex sync.Mutex observer func(PlayerResponse) } func (p *Players) Init() { - p.players = make(map[string]*Player) + p.players = make(map[PlayerID]*Player) fmt.Print("Players handler initialized.\n") } @@ -73,10 +75,10 @@ func (p *Players) notify(response PlayerResponse) { } } -func (p *Players) New(t uint64, name string, reps uint64, status uint64) string { +func (p *Players) New(t uint64, name string, reps uint64, status uint64) PlayerID { p.mutex.Lock() - var ID string + var ID PlayerID for { // create random session ID @@ -85,7 +87,7 @@ func (p *Players) New(t uint64, name string, reps uint64, status uint64) string ID_b[i] = id_letters[rand.Intn(len(id_letters))] } - ID = string(ID_b) + ID = PlayerID(ID_b) // break if this ID isn't in use if _, found := p.players[ID]; !found { @@ -108,14 +110,14 @@ func (p *Players) New(t uint64, name string, reps uint64, status uint64) string return ID } -func (p *Players) Delete(ID string) { +func (p *Players) Delete(ID PlayerID) { p.mutex.Lock() defer p.mutex.Unlock() delete(p.players, ID) } -func (p *Players) SetStatus(ID string, status uint64) { +func (p *Players) SetStatus(ID PlayerID, status uint64) { p.mutex.Lock() player, found := p.players[ID] if found { @@ -132,7 +134,7 @@ func (p *Players) SetStatus(ID string, status uint64) { } } -func (p *Players) Get(ID string) *Player { +func (p *Players) Get(ID PlayerID) *Player { p.mutex.Lock() defer p.mutex.Unlock() @@ -155,7 +157,7 @@ func (p *Players) List() []PlayerResponse { } func (p *Players) UpdateConnected( - ID string, + ID PlayerID, playerType uint64, representation uint64, ) (PlayerResponse, bool, bool) { @@ -229,7 +231,7 @@ func (p *Players) ServeRegister(w http.ResponseWriter, r *http.Request) { t := *request.Type name := request.Name - var ID string + var ID PlayerID if t < TypePlayer || t > TypeLeader { // admins register separately writeJSONError(w, http.StatusBadRequest) diff --git a/api/socket.go b/api/socket.go index ff99504..9e73e46 100644 --- a/api/socket.go +++ b/api/socket.go @@ -15,6 +15,7 @@ type Conn struct { c *ws.Conn coord Coordinate id string + coordinates map[PlayerID]Coordinate } type Sockets struct { From 5a2463d08a0c6974361eb0fc9acc9c0b73a99279 Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sun, 9 Aug 2026 20:33:52 -0700 Subject: [PATCH 5/7] feat: update backend to use a hub and goroutines --- api/admin.go | 4 +- api/admin_test.go | 16 ++- api/hub.go | 238 +++++++++++++++++++++++++++++++++++++ api/socket.go | 285 ++++++++++++--------------------------------- api/socket_test.go | 195 +++++++++++++++++++++++++++++-- 5 files changed, 512 insertions(+), 226 deletions(-) create mode 100644 api/hub.go diff --git a/api/admin.go b/api/admin.go index 3b90d41..be3ec9d 100644 --- a/api/admin.go +++ b/api/admin.go @@ -171,7 +171,7 @@ func (a *Admin) ServeUpdate(w http.ResponseWriter, r *http.Request) { return } - targetID := strings.TrimPrefix(r.URL.Path, "/api/admin/update/") + targetID := PlayerID(strings.TrimPrefix(r.URL.Path, "/api/admin/update/")) _, found, connected := a.players.UpdateConnected( targetID, uint64(playerType), @@ -185,7 +185,7 @@ func (a *Admin) ServeUpdate(w http.ResponseWriter, r *http.Request) { writeJSONError(w, http.StatusConflict) return } - a.sockets.Inform(targetID) + a.sockets.Inform(targetID) w.WriteHeader(http.StatusNoContent) } diff --git a/api/admin_test.go b/api/admin_test.go index 78cfc27..8f20803 100644 --- a/api/admin_test.go +++ b/api/admin_test.go @@ -113,13 +113,16 @@ func TestAdminCookieAuthorizesPlayerUpdate(t *testing.T) { players, admin := newAdminTestState(t, "top-secret") cookie := registerTestAdmin(t, admin, "top-secret") playerID := players.New(TypePlayer, "Player", RepsGhost, StatusConn) + gameConnection := newTestConnection(playerID) + admin.sockets.hub.registerConnection(gameConnection) + _ = receiveTestMessage(t, gameConnection) // initial player snapshot playerType := TypeLeader representation := RepsEdible request := newJSONRequest( t, http.MethodPost, - "/api/admin/update/"+playerID, + "/api/admin/update/"+string(playerID), AdminUpdateRequest{Type: &playerType, Reps: &representation}, ) request.AddCookie(cookie) @@ -133,6 +136,11 @@ func TestAdminCookieAuthorizesPlayerUpdate(t *testing.T) { if player.Type != TypeLeader || player.Reps != RepsEdible { t.Errorf("updated player = type %d reps %d, want type %d reps %d", player.Type, player.Reps, TypeLeader, RepsEdible) } + + updatedPlayer := informPlayer(t, receiveTestMessage(t, gameConnection)) + if updatedPlayer.ID != playerID || updatedPlayer.Type != TypeLeader || updatedPlayer.Reps != RepsEdible { + t.Errorf("informed player = %#v, want updated player %q", updatedPlayer, playerID) + } } func TestAdminUpdateRejectsDisconnectedPlayer(t *testing.T) { @@ -144,7 +152,7 @@ func TestAdminUpdateRejectsDisconnectedPlayer(t *testing.T) { request := newJSONRequest( t, http.MethodPost, - "/api/admin/update/"+playerID, + "/api/admin/update/"+string(playerID), AdminUpdateRequest{Type: &playerType, Reps: &representation}, ) request.AddCookie(cookie) @@ -224,7 +232,7 @@ func TestAdminUpdateRequiresCookieAndRejectsAdminPlayerType(t *testing.T) { unauthorizedRequest := newJSONRequest( t, http.MethodPost, - "/api/admin/update/"+playerID, + "/api/admin/update/"+string(playerID), requestBody, ) unauthorizedResponse := httptest.NewRecorder() @@ -236,7 +244,7 @@ func TestAdminUpdateRequiresCookieAndRejectsAdminPlayerType(t *testing.T) { adminTypeRequest := newJSONRequest( t, http.MethodPost, - "/api/admin/update/"+playerID, + "/api/admin/update/"+string(playerID), requestBody, ) adminTypeRequest.AddCookie(cookie) diff --git a/api/hub.go b/api/hub.go new file mode 100644 index 0000000..fa8dbcc --- /dev/null +++ b/api/hub.go @@ -0,0 +1,238 @@ +package api + +import ( + "encoding/json" + "fmt" +) + +// Hub owns the connections and handles communication. +type Hub struct { + // This map acts like a set. + // The value is a dummy to test membership in the set. + players *Players + connections map[*Conn]struct{} + coordinates map[PlayerID]Coordinate + + register chan *Conn // adds a connection + unregister chan *Conn // removes a connection + move chan moveEvent // channel for movement + inform chan PlayerID // channel for other communication +} + +func NewHub(players *Players) *Hub { + return &Hub{ + players: players, + connections: make(map[*Conn]struct{}), + coordinates: make(map[PlayerID]Coordinate), + register: make(chan *Conn), + unregister: make(chan *Conn), + move: make(chan moveEvent), + inform: make(chan PlayerID), + } +} + +func (h *Hub) Run() { + for { + select { + case connection := <-h.register: + h.registerConnection(connection) + + case connection := <-h.unregister: + h.unregisterConnection(connection) + + case event := <-h.move: + if _, exists := h.connections[event.connection]; !exists { + continue + } + playerID := event.connection.playerID + h.coordinates[playerID] = event.coord + h.broadcastMove(playerID, event.coord) + + case playerID := <-h.inform: + h.broadcastInform(playerID, nil) + } + } +} + +func (h *Hub) hasConnectionForID(id PlayerID) bool { + for connection := range h.connections { + if connection.playerID == id { + return true + } + } + + return false +} + +func (h *Hub) registerConnection(connection *Conn) { + // Don't register the same connection twice + if _, exists := h.connections[connection]; exists { + return + } + + // Check if the player is creating a separate connection + // e.g. from opening a new tab + firstConnection := !h.hasConnectionForID(connection.playerID) + h.connections[connection] = struct{}{} + + // If it's the player's first connection, give them coordinates + if firstConnection { + h.coordinates[connection.playerID] = Coordinate{} + h.players.SetStatus(connection.playerID, StatusConn) + } + + if !h.sendSnapshot(connection) { + h.unregisterConnection(connection) + return + } + + // Existing clients only need an announcement when + // this is the first player's active connection + if firstConnection { + h.broadcastInform(connection.playerID, connection) + } +} + +func (h *Hub) unregisterConnection(connection *Conn) { + // Ensure the connection exists before unregistering + if _, exists := h.connections[connection]; !exists { + return + } + + delete(h.connections, connection) + + if connection.socket != nil { + _ = connection.socket.Close() + } + close(connection.send) + + // The player may still have another connection, don't clean up everything else + if h.hasConnectionForID(connection.playerID) { + return + } + + delete(h.coordinates, connection.playerID) + + h.players.SetStatus(connection.playerID, StatusDisc) + + // When a player's coordinates are (0.0, 0.0) they should be removed + // from the game map + h.broadcastMove(connection.playerID, Coordinate{}) +} + +// sendSnapshot will create a game state to send to new connections +func (h *Hub) sendSnapshot(target *Conn) bool { + // Players may have multiple connections so we keep track of ones we have seen. + seen := make(map[PlayerID]struct{}) + + // Only iterate through players that have active connections + for connection := range h.connections { + playerID := connection.playerID + + // We've already recorded a player's position, so avoid recording it again + if _, exists := seen[playerID]; exists { + continue + } + seen[playerID] = struct{}{} + + message, ok := h.informMessage(playerID) + if !ok { + continue + } + + if !h.enqueue(target, message) { + return false + } + } + + return true +} + +// broadcast sends a message to all connections except the origin. +func (h *Hub) broadcast(message []byte, origin *Conn) { + var slowConnections []*Conn + + for connection := range h.connections { + if connection == origin { + continue + } + + if !h.enqueue(connection, message) { + slowConnections = append(slowConnections, connection) + } + } + + for _, connection := range slowConnections { + h.unregisterConnection(connection) + } +} + +func (h *Hub) enqueue(connection *Conn, message []byte) bool { + select { + case connection.send <- message: + return true + default: + // The queue is full, means the connection is slow + return false + } +} + +// informMessage constructs the message to send. +func (h *Hub) informMessage(playerID PlayerID) ([]byte, bool) { + player, exists := h.playerResponse(playerID) + + if !exists { + return nil, false + } + + playerJSON, err := json.Marshal(player) + if err != nil { + return nil, false + } + + messageJSON, err := json.Marshal(Message{ + Coord: h.coordinates[playerID], + Command: CMD_INFORM, + Data: string(playerJSON), + }) + if err != nil { + fmt.Printf("Error marshalling inform message: %v\n", err) + return nil, false + } + + return messageJSON, true +} + +// broadcastInform sends a message to all connection except the origin +func (h *Hub) broadcastInform(playerID PlayerID, origin *Conn) { + message, ok := h.informMessage(playerID) + if !ok { + return + } + + h.broadcast(message, origin) +} + +func (h *Hub) playerResponse(playerID PlayerID) (PlayerResponse, bool) { + for _, player := range h.players.List() { + if player.ID == playerID { + return player, true + } + } + + return PlayerResponse{}, false +} + +func (h *Hub) broadcastMove(playerID PlayerID, coordinate Coordinate) { + message, err := json.Marshal(Message{ + Coord: coordinate, + Command: CMD_MOVE, + Data: string(playerID), + }) + if err != nil { + fmt.Printf("Error marshalling move message: %v\n", err) + return + } + + h.broadcast(message, nil) +} diff --git a/api/socket.go b/api/socket.go index 9e73e46..5688148 100644 --- a/api/socket.go +++ b/api/socket.go @@ -6,269 +6,134 @@ import ( "encoding/json" "fmt" "net/http" + "strings" "sync" + "time" ws "github.com/gorilla/websocket" ) -type Conn struct { - c *ws.Conn - coord Coordinate - id string - coordinates map[PlayerID]Coordinate +const ( + socketSendQueueSize = 256 + socketWriteTimeout = 10 * time.Second +) + +type moveEvent struct { + connection *Conn + coord Coordinate } type Sockets struct { // private players *Players - conn []*Conn // active connections; nil if broken - mutex sync.Mutex + hub *Hub } func (s *Sockets) Init(players *Players) { s.players = players + s.hub = NewHub(players) + + go s.hub.Run() fmt.Print("Sockets handler initialized.\n") } -func (s *Sockets) Find(id string) *Conn { - s.mutex.Lock() - defer s.mutex.Unlock() - - for _, conn := range s.conn { - if conn == nil { - continue - } - - if conn.id == id { - return conn - } - } - - return nil +func (s *Sockets) Inform(playerID PlayerID) { + s.hub.inform <- playerID } -func (s *Sockets) Inform(id string) { - s.mutex.Lock() - defer s.mutex.Unlock() - - p := s.players.Get(id) - if p == nil { - return // player doesn't exist - } - - var msg Message - for _, conn := range s.conn { - // was disconnected - if conn == nil { - continue - } +type Conn struct { + socket *ws.Conn + playerID PlayerID + send chan []byte - if conn.id == id { - msg.Coord = conn.coord - } - } - msg.Command = CMD_INFORM - msg.Data = p.Format(id) + unregisterOnce sync.Once +} - msg_json, err := json.Marshal(msg) - if err != nil { - return - } +func (c *Conn) unregister(hub *Hub) { + c.unregisterOnce.Do(func() { + hub.unregister <- c + }) +} - // for every connection - for _, conn := range s.conn { - if conn == nil { - continue +// writePump the only goroutine that writes to a WebSocket +func (c *Conn) writePump(hub *Hub) { + defer func() { + _ = c.socket.Close() + c.unregister(hub) + }() + + for message := range c.send { + _ = c.socket.SetWriteDeadline(time.Now().Add(socketWriteTimeout)) + if err := c.socket.WriteMessage( + ws.TextMessage, + message, + ); err != nil { + return } - - // inform - conn.c.WriteMessage(ws.TextMessage, msg_json) } } -func (s *Sockets) Informs() []string { - s.mutex.Lock() - defer s.mutex.Unlock() - - var ret []string +// readPump the only goroutine that reads from a Websocket +func (c *Conn) readPump(hub *Hub) error { + defer c.unregister(hub) - for _, conn := range s.conn { - // disconnected - if conn == nil { - continue - } - - p := s.players.Get(conn.id) - // invalid connection - if p == nil { - continue - } - - var msg Message - msg.Coord = conn.coord - msg.Command = CMD_INFORM - msg.Data = p.Format(conn.id) - - msg_json, err := json.Marshal(msg) + for { + messageType, data, err := c.socket.ReadMessage() if err != nil { - continue + return err } - ret = append(ret, string(msg_json)) - } - - return ret -} - -// move a player; notify connections -func (s *Sockets) Move(conn_i int, coord Coordinate) { - s.mutex.Lock() - defer s.mutex.Unlock() - - conn := s.conn[conn_i] - conn.coord = coord - - var msg Message - msg.Coord = coord - msg.Command = CMD_MOVE - msg.Data = conn.id - - msg_json, err := json.Marshal(msg) - if err != nil { - return // failure - } + if messageType == ws.CloseMessage { + return nil + } - // for every connection - for _, conn := range s.conn { - // check if unactive - if conn == nil { + var coordinate Coordinate + if err := json.Unmarshal(data, &coordinate); err != nil { continue } - // send update message - conn.c.WriteMessage(ws.TextMessage, msg_json) - } -} - -func (s *Sockets) Connect(c *ws.Conn, id string) int { - s.mutex.Lock() - defer s.mutex.Unlock() - - p := s.players.Get(id) - if p == nil { - return -1 // player doesn't exist - } - - var conn *Conn - conn = new(Conn) - conn.c = c - conn.id = id - conn_i := -1 - - // iterate over active connections - for i := range s.conn { - if s.conn[i] == nil { - s.conn[i] = conn - conn_i = i - break + hub.move <- moveEvent{ + connection: c, + coord: coordinate, } } - - // if there are no empty spaces; append - if conn_i == -1 { - conn_i = len(s.conn) - s.conn = append(s.conn, conn) - } - s.players.SetStatus(id, StatusConn) - - return conn_i } -func (s *Sockets) Disconnect(conn_i int) { - s.mutex.Lock() - defer s.mutex.Unlock() - - connection := s.conn[conn_i] - if connection == nil { +// WS /api/ws/ +// ServeHTTP upgrades the connection to a websocket connection +func (s *Sockets) ServeHTTP(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + writeJSONError(w, http.StatusMethodNotAllowed) return } - s.conn[conn_i] = nil - for _, activeConnection := range s.conn { - if activeConnection != nil && activeConnection.id == connection.id { - return - } - } - s.players.SetStatus(connection.id, StatusDisc) -} -// WS /api/ws/ -func (s *Sockets) ServeHTTP(w http.ResponseWriter, r *http.Request) { - ID := r.URL.Path[8:] - if s.players.Get(ID) == nil { - http.Error(w, - http.StatusText(http.StatusBadRequest), - http.StatusBadRequest) + playerID := PlayerID(strings.TrimPrefix(r.URL.Path, "/api/ws/")) + if s.players.Get(playerID) == nil { + writeJSONError(w, http.StatusBadRequest) return } // attempt to upgrade connection to websocket connection - conn, err := Upgrader.Upgrade(w, r, nil) + socket, err := Upgrader.Upgrade(w, r, nil) if err != nil { - http.Error(w, - http.StatusText(http.StatusBadRequest), - http.StatusBadRequest) return } - defer conn.Close() - // add connection - conn_i := s.Connect(conn, ID) - if conn_i == -1 { - return // error + connection := &Conn{ + socket: socket, + playerID: playerID, + send: make(chan []byte, socketSendQueueSize), } - defer s.Disconnect(conn_i) - fmt.Printf("Sockets\tServeHTTP (/api/ws/):\tID %q: Connection opened.\n", ID) - - // inform new connection of existing connections - informs := s.Informs() - for _, msg := range informs { - conn.WriteMessage(ws.TextMessage, []byte(msg)) - } + go connection.writePump(s.hub) + s.hub.register <- connection - // let existing connections know about this player - s.Inform(ID) + fmt.Printf("Sockets\tServeHTTP (/api/ws/):\tID %q: Connection opened.\n", playerID) - // hold connection open; receive location information - for { - // receive message from connection - msgType, msg, err := conn.ReadMessage() - // check if either the connection failed or was closed - if err != nil || msgType == ws.CloseMessage { - fmt.Printf("Sockets\tServeHTTP (/api/ws/):\tID %q: Connection closed", ID) - - if err != nil { - fmt.Printf(": %v.\n", err) - } else { - fmt.Print(" by user.") - } - - // exit loop; close goroutine - break - } - - var coord Coordinate - if err := json.Unmarshal(msg, &coord); err != nil { - continue - } - - s.Move(conn_i, coord) + if err := connection.readPump(s.hub); err != nil { + fmt.Printf("Sockets\tServeHTTP (/api/ws/):\tID %q: Connection closed by error: %v.\n", playerID, err) + } else { + fmt.Printf("Sockets\tServeHTTP (/api/ws/):\tID %q: Connection closed by user.\n", playerID) } - - // on disconnect, tell everyone you moved to 0.0, 0.0, so you disappear from the map - var coord Coordinate - coord.Latitude = 0.0 - coord.Longitude = 0.0 - s.Move(conn_i, coord) } diff --git a/api/socket_test.go b/api/socket_test.go index a854d75..43ed3c5 100644 --- a/api/socket_test.go +++ b/api/socket_test.go @@ -1,30 +1,205 @@ package api -import "testing" +import ( + "encoding/json" + "testing" + "time" +) func TestPlayerStaysConnectedUntilLastSocketDisconnects(t *testing.T) { players := new(Players) players.Init() - sockets := new(Sockets) - sockets.Init(players) playerID := players.New(TypePlayer, "Test", RepsNothing, StatusDisc) + hub := NewHub(players) - firstConnection := sockets.Connect(nil, playerID) - secondConnection := sockets.Connect(nil, playerID) - if firstConnection < 0 || secondConnection < 0 { - t.Fatal("connect player sockets") - } + firstConnection := newTestConnection(playerID) + secondConnection := newTestConnection(playerID) + hub.registerConnection(firstConnection) + hub.registerConnection(secondConnection) if player := players.Get(playerID); player == nil || player.Status != StatusConn { t.Fatalf("player status after connect = %#v, want connected", player) } - sockets.Disconnect(firstConnection) + hub.unregisterConnection(firstConnection) if player := players.Get(playerID); player == nil || player.Status != StatusConn { t.Errorf("player status after first disconnect = %#v, want connected", player) } - sockets.Disconnect(secondConnection) + hub.unregisterConnection(secondConnection) if player := players.Get(playerID); player == nil || player.Status != StatusDisc { t.Errorf("player status after last disconnect = %#v, want disconnected", player) } } + +func TestRegisterConnectionSendsSnapshotAndJoinAnnouncement(t *testing.T) { + players := new(Players) + players.Init() + firstPlayerID := players.New(TypePlayer, "First", RepsPacman, StatusDisc) + secondPlayerID := players.New(TypeLeader, "Second", RepsGhost, StatusDisc) + hub := NewHub(players) + + firstConnection := newTestConnection(firstPlayerID) + hub.registerConnection(firstConnection) + firstSnapshot := receiveTestMessage(t, firstConnection) + if player := informPlayer(t, firstSnapshot); player.ID != firstPlayerID { + t.Errorf("first snapshot player ID = %q, want %q", player.ID, firstPlayerID) + } + + secondConnection := newTestConnection(secondPlayerID) + hub.registerConnection(secondConnection) + + snapshotPlayers := make(map[PlayerID]PlayerResponse) + for range 2 { + message := receiveTestMessage(t, secondConnection) + player := informPlayer(t, message) + snapshotPlayers[player.ID] = player + } + if len(snapshotPlayers) != 2 { + t.Fatalf("snapshot players = %d, want 2", len(snapshotPlayers)) + } + if _, exists := snapshotPlayers[firstPlayerID]; !exists { + t.Errorf("snapshot does not contain first player %q", firstPlayerID) + } + if _, exists := snapshotPlayers[secondPlayerID]; !exists { + t.Errorf("snapshot does not contain second player %q", secondPlayerID) + } + + joinMessage := receiveTestMessage(t, firstConnection) + if player := informPlayer(t, joinMessage); player.ID != secondPlayerID { + t.Errorf("join announcement player ID = %q, want %q", player.ID, secondPlayerID) + } +} + +func TestSnapshotDeduplicatesMultipleConnectionsForPlayer(t *testing.T) { + players := new(Players) + players.Init() + playerID := players.New(TypePlayer, "Player", RepsPacman, StatusDisc) + observerID := players.New(TypeLeader, "Observer", RepsNothing, StatusDisc) + hub := NewHub(players) + + firstConnection := newTestConnection(playerID) + secondConnection := newTestConnection(playerID) + hub.registerConnection(firstConnection) + hub.registerConnection(secondConnection) + + observerConnection := newTestConnection(observerID) + hub.registerConnection(observerConnection) + + snapshotIDs := make(map[PlayerID]int) + for range 2 { + player := informPlayer(t, receiveTestMessage(t, observerConnection)) + snapshotIDs[player.ID]++ + } + if snapshotIDs[playerID] != 1 { + t.Errorf("player appears in snapshot %d times, want 1", snapshotIDs[playerID]) + } + if snapshotIDs[observerID] != 1 { + t.Errorf("observer appears in snapshot %d times, want 1", snapshotIDs[observerID]) + } +} + +func TestBroadcastMoveQueuesMessageForEveryConnection(t *testing.T) { + players := new(Players) + players.Init() + firstPlayerID := players.New(TypePlayer, "First", RepsPacman, StatusDisc) + secondPlayerID := players.New(TypePlayer, "Second", RepsGhost, StatusDisc) + hub := NewHub(players) + firstConnection := newTestConnection(firstPlayerID) + secondConnection := newTestConnection(secondPlayerID) + hub.registerConnection(firstConnection) + drainTestMessages(firstConnection) + hub.registerConnection(secondConnection) + drainTestMessages(firstConnection) + drainTestMessages(secondConnection) + + coordinate := Coordinate{Latitude: 49.27, Longitude: -122.91} + hub.coordinates[firstPlayerID] = coordinate + hub.broadcastMove(firstPlayerID, coordinate) + + for _, connection := range []*Conn{firstConnection, secondConnection} { + message := receiveTestMessage(t, connection) + if message.Command != CMD_MOVE { + t.Errorf("movement command = %q, want %q", message.Command, CMD_MOVE) + } + if message.Data != string(firstPlayerID) { + t.Errorf("movement player ID = %q, want %q", message.Data, firstPlayerID) + } + if message.Coord != coordinate { + t.Errorf("movement coordinate = %#v, want %#v", message.Coord, coordinate) + } + } +} + +func TestBroadcastDisconnectsConnectionWithFullQueue(t *testing.T) { + players := new(Players) + players.Init() + playerID := players.New(TypePlayer, "Slow", RepsPacman, StatusDisc) + hub := NewHub(players) + connection := &Conn{ + playerID: playerID, + send: make(chan []byte, 1), + } + hub.registerConnection(connection) + + hub.broadcastMove(playerID, Coordinate{Latitude: 49.27, Longitude: -122.91}) + + if _, exists := hub.connections[connection]; exists { + t.Error("slow connection remains registered") + } + if _, exists := hub.coordinates[playerID]; exists { + t.Error("slow player's coordinate remains registered") + } + if player := players.Get(playerID); player == nil || player.Status != StatusDisc { + t.Errorf("slow player status = %#v, want disconnected", player) + } +} + +func newTestConnection(playerID PlayerID) *Conn { + return &Conn{ + playerID: playerID, + send: make(chan []byte, socketSendQueueSize), + } +} + +func receiveTestMessage(t *testing.T, connection *Conn) Message { + t.Helper() + select { + case data, open := <-connection.send: + if !open { + t.Fatal("connection message queue is closed") + } + var message Message + if err := json.Unmarshal(data, &message); err != nil { + t.Fatalf("decode connection message: %v", err) + } + return message + case <-time.After(time.Second): + t.Fatal("timed out waiting for a connection message") + return Message{} + } +} + +func informPlayer(t *testing.T, message Message) PlayerResponse { + t.Helper() + if message.Command != CMD_INFORM { + t.Fatalf("message command = %q, want %q", message.Command, CMD_INFORM) + } + var player PlayerResponse + if err := json.Unmarshal([]byte(message.Data), &player); err != nil { + t.Fatalf("decode informed player: %v", err) + } + return player +} + +func drainTestMessages(connection *Conn) { + for { + select { + case _, open := <-connection.send: + if !open { + return + } + default: + return + } + } +} From 7473aa51d4bd6b445937c7fa78ee3ec1121623fa Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sun, 9 Aug 2026 20:34:08 -0700 Subject: [PATCH 6/7] chore: remove legacy frontend pages --- htdocs/admin.html | 25 ---- htdocs/create.html | 82 ---------- htdocs/css/index.css | 33 ---- htdocs/css/main.css | 63 -------- htdocs/css/ribbons.css | 51 ------- htdocs/index.html | 23 --- htdocs/js/admin.js | 189 ----------------------- htdocs/js/create.js | 232 ----------------------------- htdocs/js/index.js | 211 -------------------------- htdocs/js/login.js | 16 -- htdocs/js/pacmacro.js | 211 -------------------------- htdocs/js/register.js | 43 ------ htdocs/login.html | 25 ---- htdocs/register.html | 34 ----- htdocs/static/.DS_Store | Bin 6148 -> 0 bytes htdocs/static/flag_background.gif | Bin 49120 -> 0 bytes htdocs/static/flag_grid.png | Bin 57177 -> 0 bytes htdocs/static/flag_grid_t.png | Bin 10428 -> 0 bytes htdocs/static/frosh.png | Bin 168786 -> 0 bytes htdocs/static/game/.DS_Store | Bin 6148 -> 0 bytes htdocs/static/game/anti.png | Bin 649 -> 0 bytes htdocs/static/game/anti_pacman.png | Bin 2710 -> 0 bytes htdocs/static/game/coin.png | Bin 2444 -> 0 bytes htdocs/static/game/edible.png | Bin 2918 -> 0 bytes htdocs/static/game/ghost.png | Bin 2810 -> 0 bytes htdocs/static/game/leader.png | Bin 2248 -> 0 bytes htdocs/static/game/map.svg | 114 -------------- htdocs/static/game/pacman.png | Bin 2716 -> 0 bytes htdocs/static/game/pacman_flag.png | Bin 3228 -> 0 bytes htdocs/static/pacmacro.svg | 50 ------- 30 files changed, 1402 deletions(-) delete mode 100644 htdocs/admin.html delete mode 100644 htdocs/create.html delete mode 100644 htdocs/css/index.css delete mode 100644 htdocs/css/main.css delete mode 100644 htdocs/css/ribbons.css delete mode 100644 htdocs/index.html delete mode 100644 htdocs/js/admin.js delete mode 100644 htdocs/js/create.js delete mode 100644 htdocs/js/index.js delete mode 100644 htdocs/js/login.js delete mode 100644 htdocs/js/pacmacro.js delete mode 100644 htdocs/js/register.js delete mode 100644 htdocs/login.html delete mode 100644 htdocs/register.html delete mode 100644 htdocs/static/.DS_Store delete mode 100644 htdocs/static/flag_background.gif delete mode 100644 htdocs/static/flag_grid.png delete mode 100644 htdocs/static/flag_grid_t.png delete mode 100644 htdocs/static/frosh.png delete mode 100644 htdocs/static/game/.DS_Store delete mode 100644 htdocs/static/game/anti.png delete mode 100644 htdocs/static/game/anti_pacman.png delete mode 100644 htdocs/static/game/coin.png delete mode 100644 htdocs/static/game/edible.png delete mode 100644 htdocs/static/game/ghost.png delete mode 100644 htdocs/static/game/leader.png delete mode 100644 htdocs/static/game/map.svg delete mode 100644 htdocs/static/game/pacman.png delete mode 100644 htdocs/static/game/pacman_flag.png delete mode 100644 htdocs/static/pacmacro.svg diff --git a/htdocs/admin.html b/htdocs/admin.html deleted file mode 100644 index fca3297..0000000 --- a/htdocs/admin.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Admin | PacMacro - - - - -

Admin

-
- -
- -
-
-

All good.

- - -
- -
- - diff --git a/htdocs/create.html b/htdocs/create.html deleted file mode 100644 index 842a27d..0000000 --- a/htdocs/create.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - Create Utilities | PacMacro - - - - - -

Create Utilities

- -
-

Admin Information

- - -
- - -
- - -

...

- -
-

Map Configuration

- - -

Set Map

- - - - -

...

- -
- -

Map Bounds

- -
- -
- -
- -
- -
- -
- -
- -

Map Scale

- -
- -
- -
- -
- -
- -
- -
- -

Populate Map

- - - - - -

...

- - - diff --git a/htdocs/css/index.css b/htdocs/css/index.css deleted file mode 100644 index 21e52e2..0000000 --- a/htdocs/css/index.css +++ /dev/null @@ -1,33 +0,0 @@ -#self-summary { - position: fixed; - left: 50vw; - top: 168px; - transform: translateX(-50%); - font-size: 16pt; - font-weight: 400; -} -#pacmacro-status { - position: fixed; - left: 50vw; - top: 192px; - transform: translateX(-50%); - font-size: 10pt; - font-weight: 400; -} -#pacmacro-canvas { - z-index: 99; - position: fixed; - top: 240px; - left: 50%; - transform: translateX(-50%); - width: calc(min(480px, 100vw)); /* canvas should be stretched */ - border: 4px solid gray; -} -#coords { - position: absolute; -} - -#latlong { - position: absolute; - top: 2rem; -} diff --git a/htdocs/css/main.css b/htdocs/css/main.css deleted file mode 100644 index 57462c3..0000000 --- a/htdocs/css/main.css +++ /dev/null @@ -1,63 +0,0 @@ -body { - position: relative; - margin: 0; - padding: 0; - font-family: "Inter", sans-serif; - background-color: black; - color: white; -} -body.admin { - background-color: white; - color: black; - padding: 16px; -} -h1, h2, h3, p { - margin: 8px 0; -} -input, select, button { - margin: 2px; - border-radius: 4px; - border: 1px solid #a0a0a0; - padding: 4px; - background-color: white; - color: black; -} -.form { - border: 1px solid #808080; - padding: 32px; - background-color: #f0f0f0; - color: black; -} -.center { - position: fixed; - z-index: 99; - left: 50vw; - top: 50vh; - transform: translate(-50%, -50%); - width: 100vw; - max-width: 512px; - height: fit-content; -} -div.list { - padding: 32px; -} -div.player { - display: flex; - flex-direction: row; - flex-wrap: nowrap; - justify-content: flex-start; - justify-items: flex-start; - align-content: center; - align-items: center; - width: 100%; - height: 48px; - border-bottom: 1px solid #d0d0d0; -} -div.player.hidden { - opacity: 0.25; -} -div.player h1 { - margin: 0 8px; - font-size: 12pt; - font-weight: 400; -} diff --git a/htdocs/css/ribbons.css b/htdocs/css/ribbons.css deleted file mode 100644 index 8741808..0000000 --- a/htdocs/css/ribbons.css +++ /dev/null @@ -1,51 +0,0 @@ -header { - position: fixed; - top: 0; - left: 0; - z-index: 0; - background-color: black; - margin: 0; - padding :0; - width: 100vw; - height: 160px; -} -header img.top-grid, header img.bottom-grid { - position: absolute; - z-index: 2; - left: 50%; - height: 33%; -} -header img.top-grid { - top: 0; - transform: translateX(-50%); -} -header img.bottom-grid { - bottom: 0; - transform: translateX(-50%) rotate(180deg); -} -header img.pacmacro-logo { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - height: 64px; - filter: drop-shadow(0 0 8px #f30180); -} -footer { - position: fixed; - left: 0; - right: 0; - bottom: 0; - height: 120px; - display: flex; - flex-direction: row; - flex-wrap: nowrap; - justify-content: center; - justify-items: center; - align-content: center; - align-items: center; - filter: drop-shadow(0 0 8px #f30180); -} -footer img.frosh-logo { - height: 80px; -} diff --git a/htdocs/index.html b/htdocs/index.html deleted file mode 100644 index ed05099..0000000 --- a/htdocs/index.html +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - PacMacro - - - - - - - -

-
-
-

Joining PacMacro...

- - - diff --git a/htdocs/js/admin.js b/htdocs/js/admin.js deleted file mode 100644 index 7fd8895..0000000 --- a/htdocs/js/admin.js +++ /dev/null @@ -1,189 +0,0 @@ -// admin.js -// for admin.html - -import { NTYPE, NREPS, type, reps } from "./pacmacro.js"; - -window.onload = () => { - let stat = document.getElementById("status"); - let load = document.getElementById("load"); - let list = document.getElementById("list"); - - stat.innerHTML = "--"; // no status - - document.getElementById("all_edible").onclick = async () => { - let players; - try { - players = await fetch("/api/player/list.json"); - if (!players.ok) { - throw "Response not OK."; - } - - players = await players.json(); - } catch { - list.innerHTML = ` -

There was a problem contacting the API.

- `; - return; - } - - let id = document.getElementById("id"); - let pass = document.getElementById("pass"); - - for (const p of players) { - if (p.reps != 3 || p.type == 2) continue; - - let form = new FormData(); - - form.append("id", id.value); - form.append("pass", pass.value); - form.append("type", p.type); - form.append("reps", 4); // 4 is RepsEdible - - try { - let resp = await fetch(`/api/admin/update/${p.id}`, { - method: "POST", - body: form, - }); - if (resp.ok) { - stat.innerHTML = `Success ${p.id}`; - } - } catch {} - } - list.innerHTML = "Please load players again."; - }; - - document.getElementById("all_nothing").onclick = async () => { - let players; - try { - players = await fetch("/api/player/list.json"); - if (!players.ok) { - throw "Response not OK."; - } - - players = await players.json(); - } catch { - list.innerHTML = ` -

There was a problem contacting the API.

- `; - return; - } - - let id = document.getElementById("id"); - let pass = document.getElementById("pass"); - - for (const p of players) { - // don't change admin - if (p.type == 2) continue; - - let form = new FormData(); - - form.append("id", id.value); - form.append("pass", pass.value); - form.append("type", p.type); - form.append("reps", 0); // 0 is RepsNothing - - try { - let resp = await fetch(`/api/admin/update/${p.id}`, { - method: "POST", - body: form, - }); - if (resp.ok) { - stat.innerHTML = `Success ${p.id}`; - } - } catch {} - } - list.innerHTML = "Please load players again."; - }; - - load.onclick = async () => { - list.innerHTML = ""; // clear list - - let players; - try { - players = await fetch("/api/player/list.json"); - if (!players.ok) { - throw "Response not OK."; - } - - players = await players.json(); - } catch { - list.innerHTML = ` -

There was a problem contacting the API.

- `; - return; - } - // players is a list of all online players - - for (let i = 0; i < players.length; i++) { - const p = players[i]; - - let types = ""; - for (let j = 0; j < NTYPE; j++) { - types += ``; - } - - let reps_ = ""; - for (let j = 0; j < NREPS; j++) { - reps_ += ``; - } - - let player = document.createElement("div"); - player.classList.add("player"); - - if (p.type == 3) - // TypeHidden - player.classList.add("hidden"); - - player.innerHTML = ` -

${p.name} (${p.id})

- - - `; - - let submit = document.createElement("button"); - submit.onclick = eval(` - async () => { - let id = document.getElementById("id"); - let pass = document.getElementById("pass"); - let stat = document.getElementById("status"); - let _type = document.getElementById("type${i}"); - let _reps = document.getElementById("reps${i}"); - - let form = new FormData(); - - form.append("id", id.value); - form.append("pass", pass.value); - form.append("type", _type.value); - form.append("reps", _reps.value); - - try { - let resp = await fetch("/api/admin/update/${p.id}", { - method: "POST", - body: form - }); - if (!resp.ok) { - stat.innerHTML = "Response not OK."; - } else { - stat.innerHTML = "Success."; - setTimeout(() => { - stat.innerHTML = "--"; - }, 2000); // after two seconds, update status - } - } catch { - stat.innerHTML = "Error: couldn't contact API."; - } - } - `); - submit.innerHTML = `Update ${p.id}`; - - player.appendChild(submit); - list.appendChild(player); - } - }; -}; diff --git a/htdocs/js/create.js b/htdocs/js/create.js deleted file mode 100644 index c0d6d15..0000000 --- a/htdocs/js/create.js +++ /dev/null @@ -1,232 +0,0 @@ -// create.js -// programming for the Create Utilities page (create.html) - -import { - WS, - URL_ROOT, - EXPAND_X, - EXPAND_Y, - pacmacro_init, - watchLocation, - stopWatchLocation, - convertCoords, -} from "./pacmacro.js"; - -window.onload = async () => { - pacmacro_init(); - - /* ADMIN INFORMATION */ - - let admin_id = document.getElementById("admin-id"); - let admin_pass = document.getElementById("admin-pass"); - - /* - document.getElementById("load-id").onclick = () => { - admin_id.value = getID(); - } - */ - - /* REGISTRATION */ - - let register_button = document.getElementById("register-button"); - let register_status = document.getElementById("register-status"); - - register_button.onclick = async () => { - const form = new FormData(); - - form.append("type", "2"); // TypeAdmin - form.append("pass", admin_pass.value); - - let resp; - - // attempt to register admin - try { - resp = await fetch("/api/player/register", { - method: "POST", - body: form, - }); - } catch { - // on fetch error - register_status.innerHTML = "Error"; - } - - if (resp.ok) { - let ID = await resp.text(); - - // store ID in cookie - document.cookie = `id=${ID}`; - - register_status.innerHTML = ID; - } else - // on form error - register_status.innerHTML = `${resp.status}`; - }; - - /* LOCATION */ - - let lopen_button = document.getElementById("location-open-button"); - let lwrite_button = document.getElementById("location-write-button"); - let lclose_button = document.getElementById("location-close-button"); - let location_status = document.getElementById("location-status"); - - // on connection opened - let set_ws_open = () => { - location_status.innerHTML = "Connected."; - - // on server message - window.pacmacro_set_ws.addEventListener("message", (e) => { - // show server message in status - location_status.innerHTML = e.data; - }); - - let log_in = { - coordinate: { - latitude: 0, - longitude: 0, - }, - command: "password", - data: admin_pass.value, - }; - - // send log-in information - window.pacmacro_set_ws.send(JSON.stringify(log_in)); - - // watch location and pass it along to the server - watchLocation((p) => { - let msg = { - coordinate: { - latitude: p.coords.latitude, - longitude: p.coords.longitude, - }, - command: "location", - data: "", - }; - - window.pacmacro_set_ws.send(JSON.stringify(msg)); - }); - }; // set_ws_open - - // on connection closed - let set_ws_close = () => { - location_status.innerHTML = "Closed."; - - // stop watching location - stopWatchLocation(); - - if (window.pacmacro_set_ws !== undefined) { - // close connection ourselves (on lclose_button.onclick()) - window.pacmacro_set_ws.close(); - window.pacmacro_set_ws = undefined; - } - }; // set_ws_close - - // on prompt to start map setting - lopen_button.onclick = () => { - if (window.pacmacro_set_ws !== undefined) return; // websocket is already opened - - location_status.innerHTML = "Connecting..."; - - // try to open connection - window.pacmacro_set_ws = new WebSocket( - `${WS}://${URL_ROOT}/api/admin/set/${admin_id.value}`, - ); - window.pacmacro_set_ws.onopen = set_ws_open; - window.pacmacro_set_ws.onclose = set_ws_close; - }; // location_button.onclick - - // on prompt to write collected location data to server - lwrite_button.onclick = () => { - if (window.pacmacro_set_ws === undefined) return; // there isn't an open connection - - let msg = { - coordinate: { - latitude: 0, - longitude: 0, - }, - command: "write", - data: "", - }; - - // send command to write data - window.pacmacro_set_ws.send(JSON.stringify(msg)); - }; // lwrite_button.onclick - - lclose_button.onclick = set_ws_close; - - /* POPULATE */ - - let pgenerate_button = document.getElementById("populate-generate-button"); - let pdrawpath_button = document.getElementById("populate-draw-path-button"); - let pstopdraw_button = document.getElementById("populate-stop-draw-button"); - let psubmit_button = document.getElementById("populate-submit-button"); - let populate_status = document.getElementById("populate-status"); - let pacmacro_map = document.getElementById("pacmacro-map"); - - // generate table for filling map data - pgenerate_button.onclick = async () => { - try { - window.pacmacro_map = await fetch("/api/game/map.json"); - } catch { - populate_status.innerHTML = "Error"; - } - - window.pacmacro_map = await window.pacmacro_map.json(); - console.log(window.pacmacro_map); - - window.pacmacro_ctx = pacmacro_map.getContext("2d"); - let ctx = window.pacmacro_ctx; - - ctx.canvas.width = window.pacmacro_map.width * EXPAND_X; - ctx.canvas.height = window.pacmacro_map.height * EXPAND_Y; - ctx.fillStyle = "silver"; - ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height); - - let start_tile = 0, - tile = 0; - let n = window.pacmacro_map.width * window.pacmacro_map.height; - - // fill map with grid - for (let i = 0; i < n; i++) { - let x = i % window.pacmacro_map.width; - let y = Math.floor(i / window.pacmacro_map.width); - - tile = tile == 1 ? 0 : 1; - - if (x == 0) { - tile = start_tile; - start_tile = start_tile == 1 ? 0 : 1; - } - - let rendx = x * EXPAND_X; - let rendy = y * EXPAND_Y; - - ctx.fillStyle = tile == 1 ? "gray" : "silver"; - ctx.fillRect(rendx, rendy, rendx + EXPAND_X, rendy + EXPAND_Y); - } - }; - - pdrawpath_button.onclick = () => { - watchLocation((p) => { - let plot = convertCoords( - window.pacmacro_map, - p.coords.latitude, - p.coords.longitude, - ); - - let ctx = window.pacmacro_ctx; - let rendx = plot.x * EXPAND_X; - let rendy = plot.y * EXPAND_Y; - - ctx.fillStyle = "black"; - ctx.fillRect(rendx, rendy, rendx + 1, rendy + 1); - }); - }; - - pstopdraw_button.onclick = () => { - stopWatchLocation(); - }; - - psubmit_button.onclick = async () => { - // do nothing - }; -}; diff --git a/htdocs/js/index.js b/htdocs/js/index.js deleted file mode 100644 index b1e6225..0000000 --- a/htdocs/js/index.js +++ /dev/null @@ -1,211 +0,0 @@ -// index.js -// programming for the lobby and PacMacro game - -import { - ribbons, - EXPAND_X, - EXPAND_Y, - pacmacro_init, - connectWS, - watchLocation, - convertCoords, - NREPS, - getCredentials, - reps, -} from "./pacmacro.js"; - -window.onload = async () => { - ribbons(); - // reset globals - pacmacro_init(); - - let self_summary = document.getElementById("self-summary"); - let pacmacro_status = document.getElementById("pacmacro-status"); - let pacmacro_canvas = document.getElementById("pacmacro-canvas"); - let pass = ""; // received upon window.prompt(...) - - pacmacro_status.style.visibility = "hidden"; // hides debug - - try { - let pacmacro_map = await fetch("/api/game/map.json"); - window.pacmacro_map = await pacmacro_map.json(); - } catch { - pacmacro_status.innerHTML = "Error: Couldn't receive map information."; - if (window.pacmacro_map) { - window.pacmacro_ws.close(); // close websocket connection - } - return; // do not proceed - } - - window.pacmacro_ctx = pacmacro_canvas.getContext("2d"); - // set canvas size as per window.pacmacro_map - window.pacmacro_ctx.canvas.width = window.pacmacro_map.width * EXPAND_X; - window.pacmacro_ctx.canvas.height = window.pacmacro_map.height * EXPAND_Y; - window.pacmacro_ctx.font = "16pt sans-serif"; - - let pacmacro_draw = () => { - console.log("draw"); - - if (window.pacmacro_ctx === undefined) return; - - // fill canvas with map drawing - window.pacmacro_ctx.drawImage( - window.pacmacro_img_map, - 0, - 0, - window.pacmacro_ctx.canvas.width, - window.pacmacro_ctx.canvas.height, - ); - - // render each player - Object.keys(window.pacmacro_players).forEach((ID) => { - console.log("---- DRAWING ----"); - - const p = window.pacmacro_players[ID]; - if (p.player.type == 3) - // TypeHidden - return; - let img, text; - - console.log(p); - - if (p.player.type == 1) { - if (p.player.reps == 1) { - img = window.pacmacro_img_coin; - } else { - img = window.pacmacro_img_leader; - } - } else { - switch (p.player.reps) { - case 1: // pacman - img = window.pacmacro_img_pacman; - break; - case 2: // antipac - img = window.pacmacro_img_anti; - break; - case 3: // ghost - img = window.pacmacro_img_ghost; - break; - case 4: // edible - img = window.pacmacro_img_edible; - break; - default: // nothing; watcher; error - return; - } - } - - window.pacmacro_ctx.drawImage( - img, - p.plot.x * EXPAND_X - 48, - p.plot.y * EXPAND_Y - 88, - 96, - 96, - ); - window.pacmacro_ctx.textAlign = "center"; - window.pacmacro_ctx.fillStyle = "#ffffff"; - - if (ID == window.pacmacro_ID) { - text = `${p.player.name} (You)`; - document.getElementById("coords").innerHTML = - `${p.plot.x}, ${p.plot.y}`; - } else { - text = `${p.player.name} (${ID})`; - } - - console.log(p.plot); - - window.pacmacro_ctx.fillText( - text, - p.plot.x * EXPAND_X, - p.plot.y * EXPAND_Y - 112, - ); - }); - }; - - let pacmacro_open = async () => { - // send password to authenticate player - window.pacmacro_ws.send(pass); - - watchLocation((p) => { - let coordinate = { - latitude: p.coords.latitude, - longitude: p.coords.longitude, - }; - - document.getElementById("latlong").innerHTML = - `${coordinate.latitude}, ${coordinate.longitude}`; - window.pacmacro_ws.send(JSON.stringify(coordinate)); - }); - - pacmacro_status.innerHTML = "Good to go."; - }; - - let pacmacro_redirect = () => { - // window.location.href = "/login"; - }; - - let pacmacro_recv = (e) => { - let msg = JSON.parse(e.data); - console.log(`COMMAND: ${msg.command}`); - console.log(`DATA: ${msg.data}`); - - if (msg.command === undefined) return; // invalid message - - if (msg.command == "inform") { - let plot = convertCoords( - window.pacmacro_map, - msg.coordinate.latitude, - msg.coordinate.longitude, - ); - const p = JSON.parse(msg.data); - - if (p.id === undefined) return; // invalid - - // set player - window.pacmacro_players[p.id] = { - plot: plot, - player: p, - }; - - if (p.id == window.pacmacro_ID) { - self_summary.innerHTML = `${p.name} (${p.id}) is ${reps(p.reps)}`; - } - } else if (msg.command == "move") { - console.log("moving"); - const p = window.pacmacro_players[msg.data]; // data is ID - - if (p === undefined) return; // invalid - - // update plot - p.plot = convertCoords( - window.pacmacro_map, - msg.coordinate.latitude, - msg.coordinate.longitude, - ); - } - - // write server message to status element - pacmacro_status.innerHTML = e.data; - pacmacro_draw(); // re-draw the map; maybe there was a player update - }; - - const params = new URLSearchParams(window.location.search); - - const { ID, password } = getCredentials(); - - if (ID.length == 0 || password.length == 0) { - window.location.href = "/register"; - return; - } - - pass = password; - window.pacmacro_ID = ID; - - connectWS( - ID, - pacmacro_open, // on open - pacmacro_redirect, // on close - pacmacro_redirect, // on error - pacmacro_recv, - ); // on message -}; diff --git a/htdocs/js/login.js b/htdocs/js/login.js deleted file mode 100644 index f859148..0000000 --- a/htdocs/js/login.js +++ /dev/null @@ -1,16 +0,0 @@ -// login.js -// programming for login page - -import { ribbons, getCredentials } from "./pacmacro.js"; - -window.onload = () => { - ribbons(); - - let ID = document.getElementById("login-id"); - ID.value = getCredentials().ID; - let submit_button = document.getElementById("login-submit"); - - submit_button.onclick = () => { - window.location.href = `/?id=${ID.value}`; // go to index - }; -}; diff --git a/htdocs/js/pacmacro.js b/htdocs/js/pacmacro.js deleted file mode 100644 index 3267407..0000000 --- a/htdocs/js/pacmacro.js +++ /dev/null @@ -1,211 +0,0 @@ -// pacmacro.js -// general programming for all pages - -const WS = window.location.protocol === "https:" ? "wss" : "ws"; // change to "wss" in production -const URL_ROOT = "localhost:49152"; // must be root domain of server hosting API -const EXPAND_X = 32; -const EXPAND_Y = 32; - -/* GLOBALS - * window.pacmacro_set_ws : Admin; setting map minimum and maximum latitude and longitude values - * window.pacmacro_ws : websocket connection to API for lobby or PacMacro game - * window.pacmacro_geo : geolocation value associated with current watch function - * window.pacmacro_ctx : canvas API 2d context for drawing PacMacro game - * window.pacmacro_map : PacMacro map information (JSON; /api/game/map.json) - */ - -function ribbons() { - document.body.innerHTML = ` -
- - (grid) - (grid) - - - - - -
- - ${document.body.innerHTML} - `; -} - -// init pacmacro -function pacmacro_init() { - // undefine globals - window.pacmacro_set_ws = undefined; - window.pacmacro_ws = undefined; - window.pacmacro_geo = undefined; - window.pacmacro_ctx = undefined; - window.pacmacro_map = undefined; - - window.pacmacro_players = {}; // prepare player map - - // load images (for the canvas) - window.pacmacro_img_map = new Image(EXPAND_X, EXPAND_Y); - window.pacmacro_img_map.src = "static/game/map.svg"; - window.pacmacro_img_pacman = new Image(96, 96); - window.pacmacro_img_pacman.src = "static/game/pacman.png"; - window.pacmacro_img_pacman_flag = new Image(96, 96); - window.pacmacro_img_pacman_flag.src = "static/game/pacman_flag.png"; - window.pacmacro_img_anti = new Image(96, 96); - window.pacmacro_img_anti.src = "static/game/anti_pacman.png"; - window.pacmacro_img_ghost = new Image(96, 96); - window.pacmacro_img_ghost.src = "static/game/ghost.png"; - window.pacmacro_img_edible = new Image(96, 96); - window.pacmacro_img_edible.src = "static/game/edible.png"; - window.pacmacro_img_coin = new Image(96, 96); - window.pacmacro_img_coin.src = "static/game/coin.png"; - window.pacmacro_img_leader = new Image(96, 96); - window.pacmacro_img_leader.src = "static/game/leader.png"; -} - -// save credentials -function saveCredentials(ID, password) { - document.cookie = `id=${ID}`; - document.cookie = `password=${password}`; -} - -// get player ID from cookies -function getCredentials() { - let ID = "", - password = "1234"; - - let cookies = document.cookie; - cookies = cookies.split(";").map((v) => v.split("=")); - - for (const c of cookies) { - if (c[0].trim() == "id") ID = c[1]; - - if (c[0].trim() == "password") password = c[1]; - } - - return { ID, password }; -} - -// connect to websocket as player -function connectWS(ID, onopen, onclose, onerror, onmessage) { - // calling function should run connectWS in a try-catch block - window.pacmacro_ws = new WebSocket(`${WS}://${URL_ROOT}/api/ws/${ID}`); - window.pacmacro_ws.onopen = onopen; - window.pacmacro_ws.onclose = onclose; - window.pacmacro_ws.onerror = onerror; - window.pacmacro_ws.onmessage = onmessage; -} - -// watch location of user; run update_func on each update -function watchLocation(update_func) { - if ("geolocation" in navigator) { - // check if watchLocation was previously run; - // if yes, stop watching location. - if (window.pacmacro_geo !== undefined) - navigator.geolocation.clearWatch(window.pacmacro_geo); - - // start watching location - window.pacmacro_geo = navigator.geolocation.watchPosition( - // on each update... - update_func, - // in the event of an error... - (e) => { - console.log(`watchLocation error: ${e}.`); - }, - // watch options - { - maximumAge: 0, // don't stop watching - timeout: 5000, - enableHighAccuracy: true, - }, - ); - } else { - return false; - } - - return true; -} - -function stopWatchLocation() { - if (navigator.geolocation !== undefined && window.pacmacro_geo !== undefined) - navigator.geolocation.clearWatch(window.pacmacro_geo); - - window.pacmacro_geo = undefined; -} - -function convertCoords(map, lat, lon) { - let plot = { - x: 0, - y: 0, - }; - - let dlat = map.max.latitude - map.min.latitude; - let dlon = map.max.longitude - map.min.longitude; - - // denominator cannot be zero - if (dlat == 0 || dlon == 0) return plot; - - plot.x = ((lon - map.min.longitude) / dlon) * map.width; - plot.y = ((lat - map.min.latitude) / dlat) * map.height; - plot.y = map.height - plot.y; - - console.log(`[${lat}, ${lon}] => [${plot.x}, ${plot.y}`); - - return plot; -} - -const NREPS = 5; -const NTYPE = 4; - -function reps(n) { - switch (n) { - case 0: - return "Nothing"; - case 1: - return "Pacman"; - case 2: - return "Antipac"; - case 3: - return "Ghost"; - case 4: - return "Edible"; - default: - return "Error"; - } -} - -function type(n) { - switch (n) { - case 0: - return "Player"; - case 1: - return "Leader"; - case 2: - return "Admin"; - case 3: - return "Hidden"; - default: - return "Error"; - } -} - -export { - WS, - URL_ROOT, - EXPAND_X, - EXPAND_Y, - ribbons, - pacmacro_init, - saveCredentials, - getCredentials, - connectWS, - watchLocation, - stopWatchLocation, - convertCoords, - NREPS, - NTYPE, - reps, - type, -}; diff --git a/htdocs/js/register.js b/htdocs/js/register.js deleted file mode 100644 index ff8c57d..0000000 --- a/htdocs/js/register.js +++ /dev/null @@ -1,43 +0,0 @@ -// register.js -// programming for the Player Registration page (register.html) - -import { saveCredentials, ribbons } from "./pacmacro.js"; - -window.onload = () => { - ribbons(); - - let submit_button = document.getElementById("register-submit"); - - submit_button.onclick = async () => { - let type = document.getElementById("register-type").value; - let name = document.getElementById("register-name").value; - let stat = document.getElementById("register-status"); - let pass = "1234"; - - let form = new FormData(); - form.append("type", type); - form.append("name", name); - form.append("pass", pass); - - let ID; - - try { - ID = await fetch("/api/player/register", { - method: "POST", - body: form, - }); - } catch { - stat.innerHTML = "Couldn't contact API."; - return; - } - - if (!ID.ok) { - stat.innerHTML = `Error ${ID.status}`; - return; - } - - ID = await ID.text(); - saveCredentials(ID, pass); // save ID in cookies - window.location.href = "/"; // go to index - }; -}; diff --git a/htdocs/login.html b/htdocs/login.html deleted file mode 100644 index 005070c..0000000 --- a/htdocs/login.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Login | PacMacro - - - - - - -
-
-

Login

-
- - -
- -

Don't have an account? Register

-
-
- - diff --git a/htdocs/register.html b/htdocs/register.html deleted file mode 100644 index d85b8a8..0000000 --- a/htdocs/register.html +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - Register | PacMacro - - - - - - -
-
-

Register

-

Leaders: please register as Leader and send the Admin your ID.

-
- - -
- - -
- -

Already have an account? Login

-

-
-
- - diff --git a/htdocs/static/.DS_Store b/htdocs/static/.DS_Store deleted file mode 100644 index cf95530872f60c543af40df84b681e0513f21e51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKO>fjN5FNLHW+@db0fGyXC9bQb6>6!(B`oE@l^{3(3Q4owM$N{nB-=eyE9DCO z2mS&_{t15v-q_x1zc_*@@<`)1vHcv+OJc`FBzog?kEl&VKAh3JfntquJNt@l*cxsW zdW?t?is_inXt2`TRX7El0{@x<{O#VR6Uy=34ru=SElJUs3QDPqmW)nb=IS`fRRRVt z7ti3`pV|-+?aYlbpb`vbjxfStktrT5F>kG5MpUn7)3+sd3v8ZiMW^c-;>!}lLq0JL zslPZcozd61j4t~nlWJr$|DKHUtg3f+e~67u@7nb(f6L$YKZK`h64r4&u6l9#j;~%T zl_#?}PTpkwNz}gcTorYk75!2Zvb2vb@84!cswO=(F49VKL(|~5{8rSycX4sB|F|Rf z52qc8@JUA=9_&r0E&uMrM^9fxXZf&DpO7LVl7V{rzb5nQHo9+pL}3SOeQ|4lq3 zUbKh0WGTB4^L+WSY2oMPnT_r6iYj1V7JvJS&fiVjDc}_Na|-bKAmNOG#m1msI#B2% z0MJ9VHpKjMz#M5Yu-F(x3rrX)&`^avVhBS=y|n!Ti;Y1;Ct(jC!rocf6N=Dx$M{lr zClMHQrBlEuu&BVMxoq?P|Kj)O|3#9!atb&F{woE9cN8A=kdob7SCZqsR>D8R*|=Y0 mP*YIY?N|rA72k(zL!0CP7+7o!q6X%E1hfpUa0>iY1%3g>aiFdM diff --git a/htdocs/static/flag_background.gif b/htdocs/static/flag_background.gif deleted file mode 100644 index a4d87434cf60624dc764510aba8b55993afb0445..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49120 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 diff --git a/htdocs/static/flag_grid_t.png b/htdocs/static/flag_grid_t.png deleted file mode 100644 index 37e6af2b43cd0e9f6c32c4f3dba93047374fd237..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10428 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≦Bc4!5rY{=5v<_UwP<@WKgb%CpC!BK!>( zXwS1J2?bm$xhZF|d=2**iy92*8Zs?oI#>A@v2$93pfB0lxg8r;(8W^DI3B2aO}#ge z`Gb!M8&npbGOxq_xi#~Gv73$f(bB*<&%ZF42de(9S;V=oZ@gN(cJVwf^x_IiY-I}m z@UOb>DLdERXNaFxCPOi{s!wLnai`TFj|@)saqcvz`WFokTj`<_xE&Ooj30OtGH95o z(>GRz6rGmY8;JW7$Lo@5@38CQTT{>Us^-e_2B0`qtzXL&z1EZpH~}1yMm@OME&j-% zox=p$s=4U@orV{874Csi{})E-u#Zom&F(6wzL(HzIJVG5RnEZX+_a^C^&qthpi9!h z9Zs7p)TQ&8rTYy&poXnCLhQ#qkFgV_>c$8G05?kp&V8omY)0LSnKrHS7ozsTWJ$S8{lG)~;%3!%Zr`t`N^ye+p!$gf!Ghen++(GI&D zP>wnDNB)F9ONH%66}~vw9vMydwc&I!4bu)*&Lko@L=7cTIG5K5PUzP3U7w8~UfH?{ z5PT~Qb#ryzQkeaxRc%+sn-h3$sx{~1W2z&LbEebQv$art*fqt4%clw&s@SaOZvzC> zsSK#CT(7~W-e5Q-6V~U4oGU{f;6mu5)^tv-NJ3AglqH|3M3^LbQC5riO20ukcuw;! zm4Tx}O|PIX;J*nZS)Hna1Olo3CH-#lt7kLp&91A;^8R9{BWXeEar^2DveB?UJD>>q z_7R4mx`W`CS9$)nnU;g(3MfdqV>pBE?c1wze>BGbMd^EOZ(B6K+-TQ}XdN|yhnkn< zVx#&q$*IvWnN_?*uX2iGl7y@k+FqxgD>(F{lm0RUQfGsc(0@Fi>Qa<4c21m^(nf?Y zsufAeNU}DL3b+ZX+qa!1Cx!Nol2!Pic@Bk*;1pB~5gW03Kl-pJ1{W zV}cm|v8cczI+aAqxgMYFG(rB|;;AIh>ntL$$aJXGyKdS`=s}M1(9`j$cJn_G5}9E< zbQk{Oe4p<5Y0)uLo2f=f{Wr*6JalfksSZwy3E0SgjB57ro#yQgI$vYnJ`N6)EhE07 z3Zbhb{%qtC#s6 zPzTPCL>nPQyR;797pezXJMI}3yZOVrFo`Lln)0|V?WD`I96v=ClkTf>@yva&lka-IGGWPAAGf?zhmu}L% z8tb^%XURER3M?i#v&X;0ZWkk-SJ`~C^c|@A{R`uFc&q@uk^^*^PQ4&51qCxzI_>@L z)c(OHP4izEKv~^>OEP2?i+7#?T)xJ&9>Ip*3V7h*Sq0HTsRrdc@`e$h1>;{)EL>S^~z z+ax9CiRRy~GV{SSQef)Op91YY;PYw1?3_R3_{yLZ8(3M0&7nR~6Lg}Ltk*g?+tcrs z?GeJY1ia-V_)1j6EaKIWzyFGVV+?O3^K_o&zsa~u(Mhzi-fN!Y{M$6e9)5*Com^d2 jSV!C}RWpQzugK5S6=vGfF1c=gM+6w?m}u8(!s7o2v_8IU diff --git a/htdocs/static/frosh.png b/htdocs/static/frosh.png deleted file mode 100644 index 539a14bb852d5b78232db8783aa1d99c8a7e9407..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168786 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 z 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

QBBFzp!vy#m&5h~ZE^D`{Ax(HczA5H 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 z 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 diff --git a/htdocs/static/game/.DS_Store b/htdocs/static/game/.DS_Store deleted file mode 100644 index ea37f4cb500b4b11c92e44a02f2051702565bfea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 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 KMNUMnLSTYB4wcOS diff --git a/htdocs/static/game/edible.png b/htdocs/static/game/edible.png deleted file mode 100644 index 504a18a63a23ba1be8994937bee65e538406ebbf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2918 zcmV-s3z_tZP)3>*M98$KN!@!EA=zsNEQB_IfbA@D1Rj@I|*2M10~ zhh?2G9Cp72O?0piB}9As`5X?q)-9 zbi{W>DgWfe;`Fpfr{mCS9c$g=_Vx?c*C8K2&iMQ}pBYq1kmkrOqEE<8fb@3eK)VR# zo2HFzdzj{-pl3F$RtutNnyXbLTEY#`&FdZIB0&22Q>3f;_U*s5mEUR^IL?4h=b85N zq`~#|e+k1ex3_vRCd)eE)vF)kKd%tpk+yIB7hOS#5mNc%aj32QPRF6wyC_}xqO51K zEJsUzx%|v{9L9g1BXpn*?G_-z3;zP)=PM7D3AXKF+eL@|(;*~#RC8Y=gtPBKH+1dWh^wedLA8sR$5 z0LwbpEWS8c*0~l5>-DYL>d(+LMVSeZUe9X~fi<1jj%|C5P<{-{I>)xX%yLn*VmA92 z|M^<#CKGg8zz9SQm`sYITBr4-5i)?BFWG}B>`%TlX#Lv%* zPUjh>X=jqz(F#&~L|IzEF#eBD?bqq#>VnR*CUi1PE0=|U3lM{@thN8-#40?tQzlIF zjFXcGvnIZZ_4-!*?s1V;E)@at3)dN-HErbdw3q6-ejkQIuy(w=Wr^SV{qp2hqXEK2=U*Pz7tHfA&$H(Hg$)r4a6|L5B=FS-I=_r*um6iY(&>Hn-d5Pr`eE+@@ zRpt4r0Q-T(zJjsY-cHF zg<)s~2^#^OXHV$qU`L#Z03Gc6fW8k&o1L`jWy|Mz_83JIV1u6d$%>@%eE*?MKja1F zkuM60uIxkCrfvaM%xdfRAKL7sO+Pda$RocCI%Y`Gm3`>iGz7GP$|hLt>M&I$mMx#e zdY!%HE4n&3{C}`qq)zz${@<2M_~n;!tmXXi2aLzXmy;D~TEGItq|~BenqqX?R!02owm4^Go1E}f z7{chwtY1T~C+-Ok%kjM8%88-q zDmrv+8Up4ZRu2{pM}Bmg%^(cLF`J2V=jX+=0>cml00hCqa^hzw5{j-4F5pO0ts^MM z1jV&7inixwvu%y-cDIUB(d&sr?KdV9q1Yt4-EBE@MIBKDuDkuMNGQ6B4qcnN1sFza zU*-{QTwRGnC1AbYDzdvHnCp4)w%z-%T7CVSK-o|#=OXPI;w-TsKQ5$Xwhu>z%6M`P7T@lF%kVhFaf&u!Ctn*z9}x7>ATl zw|orCI#F%^yF3|o^G-{-K&0+co8wL#difaplu)<43gumI$Wi+tCjl~5*98c7Y@b(@ z_T^(Fl~A|53eU6Ej`t#OTI1YNHP?0hAP5G)bI-F0!|Quf*|WZUjASQSr+kcr>A5T- zb!Aa$D^0`)==O5?8Q-5jnl!~}VHho5z4{^Ucy9o^h@{?yOih#zG6Yde4)q6*5&iyC z)$17+l~KL0xuG%!@&-iCE`5&^NZ~~-l^fntl8Agl2 zz~M%BD3O-%;SxRVYCki8-ukUOQ<6q-VJ#M4D12!Oj3k7HzpuIV(=+8|;VJkM4? zCEg%*N1YaO^PFf50dSY2+DCp*2*YdbJ!)VZ(NxwmTp_+@l@eIfL8AzOdpk5e2ay8u z{rmr9?ib=%zVaFIk^(;^7KO$U5F^<+XXzJuy;D5TZd7Nx4~-=NKu&k@k^RCUleEL+ z+#qUw!OO9WL!$|R^jo7>y%l*;XgmQiRFec^%aGVh@;o~^3!||nCy7Tx0NlB%J~AO{ zoTFK(^$Uc_nO6RAns`(Mz@3*gLhk0L;0-WpnwN73kB)#CN^5{eR_j8e9M?rlV3 Qh5!Hn07*qoM6N<$g8WL0>i_@% diff --git a/htdocs/static/game/ghost.png b/htdocs/static/game/ghost.png deleted file mode 100644 index ee5ac854b23519104720cc28e4ff465253632f94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2810 zcmVn7wDR%*~y}O zX`r-B1h}r-z*l$^Fw;&RXagP7G`lIMt&GA6a9vjiY+#QmwR<@97!E!9{UM%r&dJH? z-1O@83Yu2NFm!ZXL)W!wj~xSl2OQHhhlyVz0SY6)bzK8!0lV_=o_9{KH=y4i((ex$ z4!uPA=(>hs=op61=4K5|D~BK12U@0S_7i2Kh};R7rTA|5gkEnzuQ$jv|IN)Bo0~Nn zje7WBg%FV&0ivsE0Z)V9Jnx*t!;c&ue#G<6b16pvO)Imtwa(Vodbm}*#3v$`t|=D+ zgf-(J`uHLhAI1zKjsZIl>nT$Lrq%kx!;f@2{lXO=hNhLVEQ77Bb@}JaTSI09h`zoJ z+ymd5X}5dy`-K`E3t<>K&E}?TJsknftj2~+2oUys2dIKSz#bgDU%Fa93z}ADXJ7sC85>g`|OXW8-Z}O>^&-qh%dRO+J^D-yrWxAd= z`J{m?Nl1kN*L54?F>a~Et+bTCas3NF-ulG$+8H;meN{^1zhAHM_H2#cKi%T}m+Ohj zBanITc!p`p? zOwC_@`IoZtE7!jAtTy2O+L>~BqTrurYrGiLIQ@D}NxojM@c8lf!Pg^v>qyzQRx8B? zS_tL0+dXCFZ?B#4+xo}Ml@D-Vraa_w(uUM_ZiQrurVqY-l!KBW~zwus`i06X|YrS_`~az#OpG=UiBhSAuIt#gO~2pw z75ec(n|nISH_}eBe#I8cC|&Rt#O`BJ3W)AVveaRdlgK&#b? zT(c)u%QQDa+UezlVhQ;00mCrpbUJgDR;^a)bUGM@0UtihCLqo9aze3Vz^hmA`SWCE zy1To3NpaO`mEGOl$;_6|pM9CU(#rwyhxjxx7{Jdz!;>c%hJoWav!DI&VX-qV?eua$ zu>`<{($aEAr=4ELh(f?IaHn3cWP83VZKV{b~WCE3ezF!<~ZsZ;yBJYC&*+qDfZSoHD%W+|a)c^T5Xj!01ZAt3=GRM#H(=GZK&DC)}x2rHpz zc^Q^v$OG?Q(y+#fy=tauIoyy)&Q4kyaTC!+7xQf`>*^sRsJFST7 zscp^`K9HB-$6Wp+c}%yq*5v?wFXQ@q<{^vV-CaZ|OULOheYpBXFbo~ro*Z^OGEFm5 z42Y=6VtcxUFijsl`tC|^=&IK%JbLt9@O6ZUnUN+^CqVR#)_BY(O)JxEZeGbHOu6ji zF`q~nA$JxsIiO*hX17%GBP&jcJiheMv@*8cn6zGTZ$KuOzh!npM%c(d!PT>jc6K)8 zuJfm~FKv*K`7KJW>pF;7b4fxR=Y>#6;(gOJ?JV=l{EV1*fql4qCCD-&Z{ULxld7Z6;AR%uLYS_-FAmu}WC*|dVInT-3GASRH<3{Zk@K?zG^0z5O|IIYbRwkK6 zMBxO$x0k>j9K28c`ol(}9^OKe>Wz4+SPBAQ65_Fqh|tyP^p!4%mtTv*g4P3dw*__aQ@ zHQcnZ)C55EtI_kmiaaeWJplpaE(!cALjo(wvW)O9jHT^z!niU7z{FH_5CKtx7|l|x zKgREJI=L545m$-;m{>_I#BF{OUIMLUvvL;U$`KGiY7KD3YQ2pA0kNRR6w-oFzyJUM M07*qoM6N<$g46F>O8@`> diff --git a/htdocs/static/game/leader.png b/htdocs/static/game/leader.png deleted file mode 100644 index 2e63d10e36fdf0d791e1dcefb4362bcf780f9923..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2248 zcmV;(2sihMP)Px-f=NU{RCt{2oh@wRNEFBaITZw~t^o@QD%B?y1gx}yVdGaq!dE&z)VGL`suUXWS^xUQ=JFaf;hKcCH>Fd98zJf31a zp2D`mzN);-p@<3 zd4X#6HEOj3?^m%XA~g!2uEqrLk$pCsJz+4o!(ea+$2pO5A5k=|gL?fC_4=XLD$cP` zgcR453I)(;#$rBxn}YYUMiCPLhK%TGs|r|E>j#57^!wwj3*L*Sb)c#W>h(kZ8qL`D2$t0fRbEmUMi;tX<)fz?0D9QAVJixt@q8b^K4=5$IJc>*_3O~I z4m9nUZ>S#usA2jKi7UW$U1L7Sd8ve-0l>CL=yscd%18^X)+Kbk3ILeT@vT(CM?#1d zq>Mxr;JU5>;45fDYgt3|dY^@VpGF#uGZ;pVZ=intOx}vZy$YcX+ zwmr&B4_79RbHcl#BZPECfn5-ddj10)SZlX`3v=JxaC-VTKY;g(H!6z51(~3ot$sh2 zNu*5C?~nOTT3{;(qySp`--FivU35KO9Onds!5w@1p2|p=pcb&K{oGA=p26TQv=s;| zfVT2Q?O(wPD-e!|f>^+E0II0{FY(Akc(5*r0$Ny3t`xQ3i{qSNIJ{?Xg{S?56hLRV zjsRdZdIgg@KU=6&Cc-gJv#Y)u`)UaIFvw5LxzrPrfRn^V+W!J64 z`+M*8e%}YZ&U?LRd8@GPHVngI>x$U&oVAF!prrx|#NcG*8wrV6fP$FZkEo@rtI6Ka z!(J!)e4-XU9#5et6)@RtLf8Vh@T$NEPFB7O5V3%L0KPj@!rlLr^z@Hpo+{(C+h3q*#{e)(Jg>q_g=Um ze|Q;*q&g4{LtSs-1*_p?h_EFV|>VhgX1bDuciZD3|vND_DUi zADw&!(7jLB0K7?!3VxKyb&%XbK}SO^(4L-QbOZi0zZgcB@BIc!XA?*PgbC^=L#M>-UFCcAcA{_%c2Y_1b0PXe{Sw(N1cKZvTpzl2Bc+V!{NZvhUsVpsP znEG_}ei%j-VKEpO&rw>KoPh9N!j; zxw6?PYgz}oUR~yjrsoGp->VzT@^nJTuvA(cTe6tEsbxwDn%03~)RvPh^xS}04u6Yn ze*leK=2qBT;{cSYDKS2M$6=-w@ z#On9QFikn0!89#?D)Et?j+#iymCPsr&pE0sHlHvWJw!UAhK*=)`x$QNY*s7-YpckV z0`TJrP47TcK=yk725uMFSUxw6cr9}(QIyOnfZ=VNgR~3n_7|wCl4xVQj?5|m3nl2( z8ulUJl2*8!M_TKp&EWk{bvemo^%Edh3cz!eWCDvhXO43KX3|lPAGuQigR=&tt=9ASDd2xG WF#7&jLy_hH0000R diff --git a/htdocs/static/game/map.svg b/htdocs/static/game/map.svg deleted file mode 100644 index f419cf4..0000000 --- a/htdocs/static/game/map.svg +++ /dev/null @@ -1,114 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/htdocs/static/game/pacman.png b/htdocs/static/game/pacman.png deleted file mode 100644 index 0cc8586474aa3b85de0ebf8a0a56b7eef19455bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2716 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From ab2c2414c6f18b9ace24730f0803429dc067fb2d Mon Sep 17 00:00:00 2001 From: Jon Andre Briones Date: Sun, 9 Aug 2026 21:50:16 -0700 Subject: [PATCH 7/7] fix: updated UpdateConnected to remove unused PlayerResponse and add clarifying comments --- api/admin.go | 2 +- api/player.go | 15 +++++++++++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/api/admin.go b/api/admin.go index be3ec9d..076008f 100644 --- a/api/admin.go +++ b/api/admin.go @@ -172,7 +172,7 @@ func (a *Admin) ServeUpdate(w http.ResponseWriter, r *http.Request) { } targetID := PlayerID(strings.TrimPrefix(r.URL.Path, "/api/admin/update/")) - _, found, connected := a.players.UpdateConnected( + found, connected := a.players.UpdateConnected( targetID, uint64(playerType), uint64(representation), diff --git a/api/player.go b/api/player.go index 90d4add..8f86aa1 100644 --- a/api/player.go +++ b/api/player.go @@ -156,20 +156,27 @@ func (p *Players) List() []PlayerResponse { return players } +// UpdateConnected updates a connected player. Potential return values are: +// +// (false, false) - player not found +// +// (true, false) - player is found, but not connected +// +// (true, true) - player exists and is found func (p *Players) UpdateConnected( ID PlayerID, playerType uint64, representation uint64, -) (PlayerResponse, bool, bool) { +) (bool, bool) { p.mutex.Lock() player, found := p.players[ID] if !found { p.mutex.Unlock() - return PlayerResponse{}, false, false + return false, false } if player.Status != StatusConn { p.mutex.Unlock() - return PlayerResponse{}, true, false + return true, false } player.Type = playerType @@ -177,7 +184,7 @@ func (p *Players) UpdateConnected( response := newPlayerResponse(ID, player) p.mutex.Unlock() p.notify(response) - return response, true, true + return true, true } // /api/player/*