func AfterLobbyJoin(server *wsevent.Server, so *wsevent.Client, lobby *models.Lobby, player *models.Player) { room := fmt.Sprintf("%s_private", GetLobbyRoom(lobby.ID)) server.AddClient(so, room) bytes, _ := json.Marshal(models.DecorateLobbyData(lobby, false)) broadcaster.SendMessage(player.SteamId, "lobbyJoined", string(bytes)) }
func AfterLobbySpec(server *wsevent.Server, so *wsevent.Client, lobby *models.Lobby) { //remove socket from room of the previous lobby the socket was spectating (if any) lobbyID, ok := sessions.GetSpectating(so.ID) if ok { server.RemoveClient(so, fmt.Sprintf("%d_public", lobbyID)) sessions.RemoveSpectator(so.ID) } server.AddClient(so, fmt.Sprintf("%s_public", GetLobbyRoom(lobby.ID))) chelpers.BroadcastScrollback(so, lobby.ID) sessions.SetSpectator(so.ID, lobby.ID) }
func AfterConnect(server *wsevent.Server, so *wsevent.Client) { server.AddClient(so, fmt.Sprintf("%s_public", config.GlobalChatRoom)) //room for global chat var lobbies []models.Lobby err := db.DB.Where("state = ?", models.LobbyStateWaiting).Order("id desc").Find(&lobbies).Error if err != nil { logrus.Error(err) return } so.EmitJSON(helpers.NewRequest("lobbyListData", models.DecorateLobbyListData(lobbies))) chelpers.BroadcastScrollback(so, 0) so.EmitJSON(helpers.NewRequest("subListData", models.DecorateSubstituteList())) }
func AfterConnect(server *wsevent.Server, so *wsevent.Client) { server.AddClient(so, fmt.Sprintf("%s_public", config.Constants.GlobalChatRoom)) //room for global chat var lobbies []models.Lobby err := db.DB.Where("state = ?", models.LobbyStateWaiting).Order("id desc").Find(&lobbies).Error if err != nil { helpers.Logger.Critical("%s", err.Error()) return } bytes, _ := json.Marshal(models.DecorateLobbyListData(lobbies)) if err != nil { helpers.Logger.Critical("Failed to send lobby list: %s", err.Error()) return } so.EmitJSON(helpers.NewRequest("lobbyListData", string(bytes))) BroadcastScrollback(so, 0) bytes, _ = json.Marshal(helpers.NewRequestFromObj("subListData", models.GetSubList())) so.EmitJSON(helpers.NewRequest("subListData", string(bytes))) }
func AfterLobbySpec(server *wsevent.Server, so *wsevent.Client, lobby *models.Lobby) { server.AddClient(so, fmt.Sprintf("%s_public", GetLobbyRoom(lobby.ID))) BroadcastScrollback(so, lobby.ID) }