diff --git a/internal/lavalink/node.go b/internal/lavalink/node.go new file mode 100644 index 0000000..02b4f9d --- /dev/null +++ b/internal/lavalink/node.go @@ -0,0 +1,20 @@ +package lavalink + +import ( + "context" + "fmt" + "log/slog" + + "github.com/disgoorg/disgolink/v4/disgolink" + "github.com/disgoorg/snowflake/v2" +) + +func Connect(ctx context.Context, botUserID snowflake.ID, logger *slog.Logger, node disgolink.NodeConfig) (*disgolink.Client, error) { + client := disgolink.New(botUserID, disgolink.WithLogger(logger)) + + if _, err := client.AddNode(ctx, node); err != nil { + return nil, fmt.Errorf("connecting to lavalink node %q: %w", node.Name, err) + } + + return client, nil +}