Ejemplo n.º 1
0
 public Audio(VictoriaService vic, LogHandler logger, HelpService helpService, LocalManagementService local)
 {
     Vic             = vic;
     Logger          = logger;
     HelpService     = helpService;
     Local           = local;
     RestClient      = vic.RestClient;
     LavaShardClient = vic.Client;
 }
Ejemplo n.º 2
0
        public async Task RunBotAsync()
        {
            client = new DiscordSocketClient(
                new DiscordSocketConfig()
            {
                LogLevel = LogSeverity.Verbose
            }
                );
            commands     = new CommandService();
            audioservice = new AudioService();
            services     = new ServiceCollection()
                           .AddSingleton(client)
                           .AddSingleton(commands)
                           .AddSingleton(new InteractiveService(client))
                           //.AddSingleton(new ReliabilityService(client))
                           .AddSingleton(audioservice)
                           //victoria
                           .AddSingleton <LavaNode>()
                           .AddSingleton <LavaConfig>()
                           .BuildServiceProvider();

            client.Log += client_log;


            // do something .. don't forget disposing serviceProvider!
            Dispose();

            await RegisterCommandsAsync();

            await client.LoginAsync(TokenType.Bot, Config.Onpu.Token);

            await client.StartAsync();

            _lavaNode              = services.GetRequiredService <LavaNode>();
            victoriaservice        = new VictoriaService(_lavaNode, client);
            client.JoinedGuild    += JoinedGuild;
            client.GuildAvailable += GuildAvailable;

            //start rotates random activity
            _timerStatus = new Timer(async _ =>
            {
                var returnStatusActivity = Config.Core.BotStatus.checkStatusActivity(Config.Core.BotClass.Onpu,
                                                                                     Config.Onpu.Status.arrRandomActivity);

                var returnObjectActivity                = returnStatusActivity.Item1;
                Config.Onpu.Status.currentActivity      = returnObjectActivity[0].ToString();
                Config.Onpu.Status.currentActivityReply = returnObjectActivity[1].ToString();
                await client.SetGameAsync(Config.Onpu.Status.currentActivity);
                await client.SetStatusAsync((UserStatus)returnObjectActivity[2]);
            },
                                     null,
                                     TimeSpan.FromSeconds(1), //time to wait before executing the timer for the first time (set first status)
                                     TimeSpan.FromMinutes(10) //time to wait before executing the timer again (set new status - repeats indifinitely every 10 seconds)
                                     );
            //end block

            client.Ready += () =>
            {
                Console.WriteLine("Onpu Connected!");
                //new Momoko().RunBotAsync().GetAwaiter().GetResult();
                if (!_lavaNode.IsConnected)
                {
                    _lavaNode.ConnectAsync();
                }

                return(Task.CompletedTask);
            };


            //// Block this task until the program is closed.
            await Task.Delay(4000);
        }