Пример #1
0
        public static void Main(string[] args)
        {
            var bot = new Bot();

            Console.WriteLine(@"
           ▄████████  ▄████████     ███      ▄█     ▄████████ 
          ███    ███ ███    ███ ▀█████████▄ ███    ███    ███ 
          ███    ███ ███    █▀     ▀███▀▀██ ███▌   ███    █▀  
          ███    ███ ███            ███   ▀ ███▌   ███        
         ▀███████████ ███            ███     ███▌ ▀███████████ 
          ███    ███ ███    █▄      ███     ███           ███ 
          ███    ███ ███    ███     ███     ███     ▄█    ███ 
          ███    █▀  ████████▀     ▄████▀   █▀    ▄████████▀  
                                                      "); //ЧСВ

            ReloadSettings();                             // Загрузим настройки

            ShipList.ReadFromXML(BotSettings.ShipXML);
            DonatorList.ReadFromXML(BotSettings.DonatorXML);
            UserList.ReadFromXML(BotSettings.WarningsXML);

            DonatorList.SaveToXML(BotSettings.DonatorXML); // Если вдруг формат был изменен, перезапишем XML-файлы.
            UserList.SaveToXML(BotSettings.WarningsXML);

            bot.RunBotAsync().GetAwaiter().GetResult();
        }
Пример #2
0
        public async Task DFriend(CommandContext ctx, DiscordMember member)
        {
            if (!DonatorList.Donators.ContainsKey(ctx.Member.Id))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Вы не являетесь донатером!");

                return;
            }

            if (DonatorList.Donators[ctx.Member.Id].Balance < 250)
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Ваш баланс меньше 250 рублей!");

                return;
            }

            if (DonatorList.Donators[ctx.Member.Id].Friends.Count == 5)
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Вы можете добавить только 5 друзей!");

                return;
            }
            DonatorList.Donators[ctx.Member.Id].AddFriend(member.Id);
            await member.GrantRoleAsync(ctx.Guild.GetRole(DonatorList.Donators[ctx.Member.Id].ColorRole));

            DonatorList.SaveToXML(Bot.BotSettings.DonatorXML);

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Вы успешно добавили вашему другу цвет!");
        }
Пример #3
0
        public async Task SetHidden(CommandContext ctx, DiscordMember member, bool hidden = true)
        {
            if (!DonatorList.Donators.ContainsKey(member.Id))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Участник не является донатером!");

                return;
            }

            DonatorList.Donators[member.Id].UpdateHidden(hidden);
            DonatorList.SaveToXML(Bot.BotSettings.DonatorXML);
        }
Пример #4
0
        public async Task DonatorAdd(CommandContext ctx, DiscordMember member, int balance)
        {
            var res = new Donator(member.Id, 0, balance);

            if (balance >= 50)
            {
                var role = await ctx.Guild.CreateRoleAsync($"{member.Username} Style");

                res.SetRole(role.Id);
                await ctx.Guild.UpdateRolePositionAsync(role, ctx.Guild.GetRole(Bot.BotSettings.BotRole).Position - 1);

                await member.GrantRoleAsync(role);
            }
            DonatorList.SaveToXML(Bot.BotSettings.DonatorXML);

            var over100Message = ".";

            if (balance >= 100)
            {
                over100Message = ", `!droleadd` для выдачи роли Wanted, `!drolerm` для снятия роли Wanted";
            }

            var over250Message = ".";

            if (balance >= 250)
            {
                over250Message =
                    ", `!drename` для переименования своей роли, `!dfriend` для того чтобы выдать свой цвет другу.";
            }

            var over50Message = "";

            if (balance >= 50)
            {
                over50Message = "Используйте команду " +
                                $"`!dcolor код_цвета` для изменения цвета{over100Message}{over250Message}";
            }
            await member.SendMessageAsync(
                $"Администратор **{ctx.Member.Username}** добавил вас в качестве донатера. Ваш баланс: **{balance} рублей**. {over50Message}");

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Успешно добавлен донатер!");
        }
Пример #5
0
        public async Task DUnFriend(CommandContext ctx, DiscordMember member)
        {
            if (!DonatorList.Donators.ContainsKey(ctx.Member.Id))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Вы не являетесь донатером!");

                return;
            }

            if (DonatorList.Donators[ctx.Member.Id].Balance < 250)
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Ваш баланс меньше 250 рублей!");

                return;
            }

            await member.RevokeRoleAsync(ctx.Guild.GetRole(DonatorList.Donators[ctx.Member.Id].ColorRole));

            DonatorList.Donators[ctx.Member.Id].RemoveFriend(member.Id);
            DonatorList.SaveToXML(Bot.BotSettings.DonatorXML);

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Успешно удален цвет!");
        }
Пример #6
0
        public async Task DBalance(CommandContext ctx, DiscordMember member, int newBalance)
        {
            if (!DonatorList.Donators.ContainsKey(member.Id))
            {
                await ctx.RespondAsync($"{Bot.BotSettings.ErrorEmoji} Пользователь не является донатером!");

                return;
            }

            double oldBalance = DonatorList.Donators[member.Id].Balance;

            DonatorList.Donators[member.Id].SetBalance(newBalance);
            DonatorList.SaveToXML(Bot.BotSettings.DonatorXML);

            await ctx.RespondAsync($"{Bot.BotSettings.OkEmoji} Вы успешно изменили баланс.");

            await member.SendMessageAsync(
                $"Администратор **{ctx.Member.Username}** изменил ваш баланс. Ваш новый баланс: **{newBalance}** рублей.");

            if (oldBalance < 50)
            {
                if (newBalance >= 50)
                {
                    await member.SendMessageAsync($"Используйте `!dcolor` для изменения цвета ника.");
                }

                if (newBalance >= 100)
                {
                    await member.SendMessageAsync(
                        $"Используйте `!droleadd` для выдачи роли Wanted. `!drolerm` для того чтобы убрать её.");
                }

                if (newBalance >= 250)
                {
                    await member.SendMessageAsync(
                        $"Используйте `!drename` для переименования роли донатера. `!dfriend` для выдачи своему другу цвета донатера.");
                }
            }
            else if (oldBalance < 100)
            {
                if (newBalance < 50)
                {
                    await member.SendMessageAsync($"Вам стал недоступен функционал `!dcolor`.");
                }

                if (newBalance >= 100)
                {
                    await member.SendMessageAsync(
                        $"Используйте `!droleadd` для выдачи роли Wanted. `!drolerm` для того чтобы убрать её.");
                }

                if (newBalance >= 250)
                {
                    await member.SendMessageAsync(
                        $"Используйте `!drename` для переименования роли донатера. `!dfriend` для выдачи своему другу цвета донатера.");
                }
            }
            else if (oldBalance < 250)
            {
                if (newBalance < 50)
                {
                    await member.SendMessageAsync($"Вам стал недоступен функционал `!dcolor`.");
                }

                if (newBalance < 100)
                {
                    await member.SendMessageAsync(
                        $"Вам стал недоступен функционал `!droleadd`, `!drolerm`.");
                }

                if (newBalance >= 250)
                {
                    await member.SendMessageAsync(
                        $"Используйте `!drename` для переименования роли донатера. `!dfriend` для выдачи своему другу цвета донатера.");
                }
            }
            else
            {
                if (newBalance < 50)
                {
                    await member.SendMessageAsync($"Вам стал недоступен функционал `!dcolor`.");
                }

                if (newBalance < 100)
                {
                    await member.SendMessageAsync(
                        $"Вам стал недоступен функционал `!droleadd`, `!drolerm`.");
                }

                if (newBalance < 250)
                {
                    await member.SendMessageAsync(
                        $"Вам стал недоступен функционал `!drename`, `!dfriend`.");
                }
            }
        }