public LavaNodeSettings VerifyNodeSettings(LavaNodeSettings settings) { settings ??= new LavaNodeSettings(); return(settings); }
public async Task <IEnumerable <LavaNode> > AddNodesAsync(DiscordShardedClient shardedClient, LavaNodeSettings settings) { settings.With(shardedClient.Shards.Count, shardedClient.CurrentUser.Id); var add = shardedClient.Shards.Select(x => AddNodeAsync(x, settings)); var nodes = await Task.WhenAll(add).ConfigureAwait(false); return(nodes); }
public async Task <LavaNode> AddNodeAsync(DiscordSocketClient socketClient, LavaNodeSettings settings) { var hash = socketClient.GetHashCode(); if (_nodes.TryGetValue(hash, out LavaNode node)) { return(node); } settings.Shards = settings.Shards is null ? await socketClient.GetRecommendedShardCountAsync().ConfigureAwait(false) : 1; node = new LavaNode(settings); await node.InitializeAsync().ConfigureAwait(false); return(node); }
internal LavaNode(LavaNodeSettings nodeSettings) { _nodeSettings = nodeSettings; _players = new ConcurrentDictionary <ulong, LavaPlayer>(); }