private Task Client_UserBanned(SocketUser arg1, SocketGuild arg2)
        {
            Program.LogConsole("ADMINISTRATION", ConsoleColor.Red, $"User {arg1.Username} has been banned.");

            UserDataService.On_UserLeft(arg1 as SocketGuildUser);

            return(Task.CompletedTask);
        }
 private Task OnVoiceStateUpdated(SocketUser arg1, SocketVoiceState arg2, SocketVoiceState arg3)
 {
     if (!UserDataService.HasGottenFirstConnectionToVoiceOfDay(arg1) && arg3.VoiceChannel != null && arg3.VoiceChannel.Id != 601175267817291822)
     {
         UserDataService.GrantExp(20, arg1, false, true);
         UserDataService.GrantDrak(5, arg1);
     }
     return(Task.CompletedTask);
 }
        private void On_MidnightTimer(object sender, ElapsedEventArgs e)
        {
            UserDataService.On_MidnightTimer();
            UserDataService.BackupUserData();
            GiveAwayService.BackupGiveAways();
            CleanBackups();

            midnightTimer           = new Timer((DateTime.Today.AddDays(1) - DateTime.Now).TotalMilliseconds);
            midnightTimer.AutoReset = false;
            midnightTimer.Elapsed  += On_MidnightTimer;
        }
        public Task Client_Ready()
        {
            var wowService      = _serviceProvider.GetRequiredService <WoWService>();
            var userDataService = _serviceProvider.GetRequiredService <UserDataService>();

            UserDataService.LoadUserData();
            userDataService.InitializeRanks(_client);
            wowService.Initialize();
            GiveAwayService.LoadGiveAways();
            return(Task.CompletedTask);
        }
Пример #5
0
        public async Task Start()
        {
            client         = new DiscordSocketClient();
            commandService = new CommandService();

            IServiceCollection services = new ServiceCollection()
                                          .AddSingleton <WoWService>()
                                          .AddSingleton <UserDataService>()
                                          .AddSingleton <GiveAwayService>()
                                          .AddSingleton(commandService)
                                          .AddSingleton(client);

            serviceProvider = services.BuildServiceProvider();

            commandHandler = new CommandHandler(client, commandService, serviceProvider);
            eventHandler   = new EventHandler(client, serviceProvider);

            string AuthToken = File.ReadAllText(AppDomain.CurrentDomain.BaseDirectory + "authkey.secret");
            await client.LoginAsync(TokenType.Bot, AuthToken, true);


            await client.StartAsync();

            await client.SetGameAsync("Aequinoctium");

            while (true)
            {
                string command = Console.ReadLine();

                switch (command.ToLower())
                {
                case "backup":
                    UserDataService.BackupUserData();
                    GiveAwayService.BackupGiveAways();
                    break;

                case "save":
                    UserDataService.SaveUserData();
                    GiveAwayService.SaveGiveAways();
                    break;

                case "load":
                    UserDataService.LoadUserData();
                    GiveAwayService.LoadGiveAways();
                    break;

                case "stop":
                    UserDataService.SaveUserData();
                    GiveAwayService.SaveGiveAways();
                    return;
                }
            }
        }
 private void OnVoiceRewardTimer_Elapse(object sender, ElapsedEventArgs e)
 {
     Program.LogConsole("VoiceRewardTimer", ConsoleColor.Magenta, $"Elapsed -- {DateTime.Now}");
     foreach (IGuildUser user in Program.guild.Users)
     {
         if (user.VoiceChannel != null && user.VoiceChannel.Id != 601175267817291822)
         {
             UserDataService.GrantExp(2, user, false, false);
             UserDataService.GrantDrak(0.5f, user, true);
         }
     }
 }
 public Task Client_UserJoined(SocketGuildUser user)
 {
     if (user.Nickname != null)
     {
         Program.LogConsole("JOINLEAVEHANDLE", ConsoleColor.Cyan, $"User: {user.Nickname} has joined the Server.");
     }
     else
     {
         Program.LogConsole("JOINLEAVEHANDLE", ConsoleColor.Cyan, $"User: {user.Username} has joined the Server.");
     }
     UserDataService.On_UserJoined(user);
     return(Task.CompletedTask);
 }
        public static void BuyTickets(ICommandContext context, int id, int amountToBuy)
        {
            GiveAway giveAway = GiveAways[id - 1];

            switch (giveAway.state)
            {
            case GiveAwayState.Cancelled:
                context.Channel.SendMessageAsync("Sorry, That giveaway is cancelled! You cannot buy tickets.");
                return;

            case GiveAwayState.Ended:
                context.Channel.SendMessageAsync("Sorry, That giveaway has aleady ended! You cannot buy tickets.");
                return;

            case GiveAwayState.Pending:
                context.Channel.SendMessageAsync("Sorry, That giveaway has not yet started and is in pending status! You cannot buy tickets yet. Wait untill the status is `open`.");
                return;
            }

            UserDataSet userDataSet = UserDataService.UserData.FirstOrDefault(x => x.userID == context.User.Id);

            if (userDataSet.drak - (amountToBuy * giveAway.ticketEntryCost) < 0)
            {
                context.Channel.SendMessageAsync("Sorry, you don't have enough Draks to complete this purchase."); return;
            }
            if (giveAway.tickets.Exists(x => x.userDataSet.userID == userDataSet.userID))
            {
                userDataSet.drak -= giveAway.ticketEntryCost * amountToBuy;

                TicketData ticketData = giveAway.tickets.FirstOrDefault(x => x.userDataSet.userID == userDataSet.userID);
                ticketData.userDataSet   = userDataSet;
                ticketData.ticketAmount += amountToBuy;
                context.Channel.SendMessageAsync("Tickets have been successfully bought!");
            }
            else
            {
                userDataSet.drak -= giveAway.ticketEntryCost * amountToBuy;

                TicketData ticketData = new TicketData();
                ticketData.userDataSet   = userDataSet;
                ticketData.ticketAmount += amountToBuy;

                giveAway.tickets.Add(ticketData);
                context.Channel.SendMessageAsync("Tickets have been successfully bought!");
            }
            UserDataService.SaveUserData();
            SaveGiveAways();
            UpdateGiveAwayMessage(giveAway);
        }
 private Task Client_MessageReceived(SocketMessage arg)
 {
     if (arg.Channel as IDMChannel != null && arg.Author.IsBot == false)
     {
         Program.LogConsole("MESSAGELOG", ConsoleColor.Yellow, "Messaged by user: "******" \n" +
                            "Message: \n" + arg.Content);
     }
     else
     {
         if (!UserDataService.HasGottenFirstMessageOfTheDay(arg.Author))
         {
             UserDataService.GrantExp(15, arg.Author, true);
             UserDataService.GrantDrak(2.5f, arg.Author);
         }
     }
     return(Task.CompletedTask);
 }
 public async Task SetMain([Summary("CharacterName")] string characterName)
 {
     await UserDataService.SetMain(characterName, Context);
 }
 public async Task GiftDrak([Summary("CharacterName")] IGuildUser user, [Summary("Amount of Drak")] float Amount)
 {
     await UserDataService.GiftDrak(user, Amount, Context);
 }
 public async Task Inspect([Summary("User")] IGuildUser user)
 {
     await UserDataService.InspectUser(Context, true, user, null, null);
 }
 public async Task GrantDrak([Summary("UserToGrant")] IUser user, [Summary("AmountToGrant")] float Amount)
 {
     UserDataService.GrantDrak(Amount, user);
 }
 public async Task Sync()
 {
     await UserDataService.SyncChar(Context);
 }
 public async Task ViewProfile([Summary("WhatUserToView")] IUser user)
 {
     await UserDataService.ViewProfile(user as IGuildUser, Context);
 }
 public async Task CreateLeaderboard()
 {
     await UserDataService.CreateLeaderboard();
 }
 public async Task DenyLink([Summary("UserToReset")] IUser user, [Summary("CharacterName")] string charactername)
 {
     await UserDataService.DenyCharacterLink(user, charactername, Context);
 }
 public async Task ConfirmLink([Summary("UserToConfirm")] IUser user, [Summary("CharacterName")] string charactername)
 {
     await UserDataService.ConfirmCharacterLink(user, charactername, Context);
 }
 public async Task LinkCharacter([Summary("CharacterName")] string characterName, [Summary("CharacterRealm")] string realmName = "Silvermoon")
 {
     await UserDataService.LinkCharacter(characterName, realmName, Context);
 }
 public async Task Inspect([Summary("CharacterName")] string characterName, [Summary("CharacterRealm")] string realmName = "Silvermoon")
 {
     await UserDataService.InspectUser(Context, false, null, characterName, realmName);
 }
 public async Task ViewProfile()
 {
     await UserDataService.ViewProfile(Context.User as IGuildUser, Context);
 }
 public async Task GrantXP([Summary("UserToGrant")] IUser user, [Summary("AmountToGrant")] float Amount)
 {
     UserDataService.GrantExp(Amount, user, false);
 }