Пример #1
0
        public InputHandler(
            IDiscord discord,
            ILogger logger,
            INixProvider nixProvider,
            LavalinkService lavalink,
            MinecraftService minecraft)
        {
            this.discord     = discord;
            this.logger      = logger;
            this.nixProvider = nixProvider;

            services = new ServiceCollection()
                       .AddSingleton(discord)
                       .AddSingleton(discord.Client)
                       .AddSingleton(commands)
                       .AddSingleton(logger)
                       .AddSingleton(lavalink)
                       .AddSingleton(minecraft)
                       .AddSingleton <InteractiveService>()
                       .AddSingleton <AudioService>()
                       .AddSingleton <SpotifyService>()
                       .AddSingleton <EmbedService>()
                       .AddLavaNode(lava => lava.SelfDeaf = true)
                       .BuildServiceProvider();
        }
Пример #2
0
 public MusicCommands(MusicData music, LavalinkService lavalink, PasteBinService pastebin, YoutubeSearchEngine youtube)
 {
     this.MusicData = music;
     this.Lavalink  = lavalink;
     this.PasteBin  = pastebin;
     this.Youtube   = youtube;
 }
Пример #3
0
 public MusicData(LavalinkService lavalink)
 {
     this.Lavalink = lavalink;
     this.Queue    = new List <TrackItem>();
     this.RNG      = new Random();
     // Any items added to the internal queue will be wrapped with the readonlycollection!
     // In other words, adding an item to the Queue variable will also add it to the PublicQueue
     this.PublicQueue = new ReadOnlyCollection <TrackItem>(this.Queue);
 }
Пример #4
0
 /// <summary>
 /// Creates a new instance of playback data.
 /// </summary>
 /// <param name="guild">Guild to track data for.</param>
 /// <param name="rng">Cryptographically-secure random number generator implementation.</param>
 /// <param name="lavalink">Lavalink service.</param>
 /// <param name="redis">Redis service.</param>
 public GuildMusicData(DiscordGuild guild, CSPRNG rng, LavalinkService lavalink)
 {
     this.Guild         = guild;
     this.RNG           = rng;
     this.Lavalink      = lavalink;
     this.Identifier    = this.Guild.Id.ToString(CultureInfo.InvariantCulture);
     this.QueueInternal = new List <MusicItem>();
     this.Queue         = new ReadOnlyCollection <MusicItem>(this.QueueInternal);
 }
Пример #5
0
 public GuildMusicPlayer(DiscordGuild guild, LavalinkService lavalink)
 {
     this.guild      = guild;
     this.rng        = new SecureRandom();
     this.lava       = lavalink;
     this.Identifier = this.guild.Id.ToString(CultureInfo.InvariantCulture);
     this.queueSem   = new SemaphoreSlim(1, 1);
     this.queue      = new List <Song>();
     this.Queue      = new ReadOnlyCollection <Song>(this.queue);
 }
 /// <summary>
 /// Creates a new instance of playback data.
 /// </summary>
 /// <param name="guild">Guild to track data for.</param>
 /// <param name="rng">Cryptographically-secure random number generator implementation.</param>
 /// <param name="lavalink">Lavalink service.</param>
 /// <param name="redis">Redis service.</param>
 public GuildMusicData(DiscordGuild guild, SecureRandom rng, LavalinkService lavalink, RedisClient redis)
 {
     this.Guild             = guild;
     this.RNG               = rng;
     this.Lavalink          = lavalink;
     this.Redis             = redis;
     this.Identifier        = this.Guild.Id.ToString(CultureInfo.InvariantCulture);
     this.QueueInternalLock = new SemaphoreSlim(1, 1);
     this.QueueInternal     = new List <MusicItem>();
     this.Queue             = new ReadOnlyCollection <MusicItem>(this.QueueInternal);
 }
Пример #7
0
        public GuildMusicData(LavalinkService lavalink, DiscordGuild guild, Program program)
        {
            this.CurrentProgram = program;
            this.Guild          = guild;
            this.Lavalink       = lavalink;

            this.MusicSources = new IMusicSource[]
            {
                new RemoteMusicData(this.CurrentProgram),
                new PlayNextData(this.CurrentProgram),
                new LocalMusicData(this.Guild, this.CurrentProgram)
            };
        }
Пример #8
0
        public ServicesController(LavalinkService lavalink, MinecraftService minecraft)
        {
            this.lavalink  = lavalink;
            this.minecraft = minecraft;

            Menu = new View(this)
            {
                Name      = "Services",
                Parent    = CurrentView,
                Behaviour = new Navigation
                {
                    Options = new()
                    {
                        new() { Name = "Lavalink", View = Lavalink },
                        new() { Name = "Minecraft", View = Minecraft },
                    }
                }
            };
        }
Пример #9
0
 public InfoCommands(Bot bot, LavalinkService lavalink)
 {
     this.Bot      = bot;
     this.Lavalink = lavalink.LavalinkNode;
 }