package service import ( "errors" "git.cliffbreak.de/haveachin/go-tsviewer/features/client" "github.com/multiplay/go-ts3" ) func (s Service) Client(id int) (*client.Client, error) { clients, err := s.TSClient.Server.ClientList() if err != nil { return nil, err } var c *client.Client for _, client := range clients { if client.DatabaseID == id { c = convertClient(client) break } } if c == nil { return nil, errors.New("client does not exist") } /* if _, err := s.TSClient.Server.ExecCmd(ts3.NewCmd(fmt.Sprintf("clientinfo clid=%d", c.ID)).WithResponse(&c)); err != nil { return nil, err } */ return c, nil } func (s Service) Clients() ([]*client.Client, error) { clients, err := s.TSClient.Server.ClientList() if err != nil { return nil, err } var cc []*client.Client for _, client := range clients { cc = append(cc, convertClient(client)) } return cc, nil } func convertClient(c *ts3.OnlineClient) *client.Client { return &client.Client{ DatabaseID: c.DatabaseID, ChannelID: c.ID, Nickname: c.Nickname, Type: c.Type, Away: c.Away, AwayMessage: c.AwayMessage, } }