Ejemplo n.º 1
0
        public async Task SellAllSkinsOfRarity(Rarity rarity)
        {
            await QuickEmbed($"Selling skins of rarity {CSGOConfigs.LogRarity(rarity)}");

            UserData user       = GetUserData(Context.Message.Author.Id);
            int      numberSold = 0;
            int      moneymade  = 0;

            for (int i = user.skins.Count - 1; i >= 0; i--) //needs to reverse because list gets edited throughout the looop
            {
                SkinInstance s = user.skins[i];
                if (s.skinData.rarity == rarity)
                {
                    numberSold++;
                    moneymade += s.worth;
                    user.skins.RemoveAt(i);
                }
            }

            if (numberSold == 0)
            {
                await QuickEmbed($"No {CSGOConfigs.LogRarity(rarity)} skins found in your inventory!");

                return;
            }

            user.cash += moneymade;
            ChangeUserData(Context.Message.Author.Id, user);
            await QuickEmbed($"{Context.Message.Author.Mention} sold {numberSold} {CSGOConfigs.LogRarity(rarity)} skins for **${moneymade}**");
        }
Ejemplo n.º 2
0
        public async Task UpdateConfig(string arg = "moneyconfig")
        {
            switch (arg.ToLower())
            {
            case "moneyconfig":
                string raw = File.ReadAllText(moneyconfigPath);

                if (raw.Length == 0)
                {
                    _configs = MoneyConfig.defaultValues;
                    File.WriteAllText(moneyconfigPath,
                                      JsonConvert.SerializeObject(_configs));
                    await QuickEmbed("moneyconfig.txt is empty! Instead defaulting values");
                }

                _configs = JsonConvert.DeserializeObject <MoneyConfig>(raw);
                var embed = new EmbedBuilder {
                    Description = "Configs has successfully been updated from moneyconfig.txt"
                };

                //gets each member
                string values = UnpackValues(_configs);

                embed.AddField("Values", values);
                await ReplyAsync(embed : embed.Build());

                break;

            case "csgoconfig":
                CSGOConfigs.UpdateConfigFromJson();

                var e = new EmbedBuilder {
                    Description = "Configs has successfully been updated from moneyconfig.txt"
                };

                //gets each member
                string v = UnpackValues(CSGOConfigs.config);

                e.AddField("Values", v);
                await ReplyAsync(embed : e.Build());

                break;

            default:
                await QuickEmbed("File not recognised");

                break;
            }
        }
Ejemplo n.º 3
0
        public async Task BuyCase(int n)
        {
            UserData user = GetUserData(Context.Message.Author.Id);

            if (CSGOConfigs.config.caseprice > user.cash)
            {
                await QuickEmbed($"Insufficient funds! A case costs ``${CSGOConfigs.config.caseprice}``");

                return;
            }
            if (n >= Cases.cases.Length || n < 0)
            {
                await QuickEmbed($"Please enter a number between 0 and {Cases.cases.Length - 1}");

                return;
            }

            Console.WriteLine($"There are {Cases.cases.Length} cases aval");

            user.cash -= CSGOConfigs.config.caseprice;
            SkinInstance skin = Cases.cases[n].OpenCase();

            user.skins.Add(skin);

            ChangeUserData(Context.Message.Author.Id, user);

            var embed = new EmbedBuilder();

            embed.WithDescription($"{Context.Message.Author.Mention} just unboxed a")
            .AddField("---------------", $"**{skin.ToString()}** \n" +
                      $"from a {Cases.cases[n].name}!\n" +
                      $"Value **${skin.worth}**")
            .WithColor(CSGOConfigs.GetColor(skin.skinData.rarity));

            if (skin.skinData.imageURL != "")
            {
                embed.WithImageUrl(skin.skinData.imageURL);
            }


            await ReplyAsync(embed : embed.Build());
        }
Ejemplo n.º 4
0
        public async Task Inspect(int index)
        {
            if (index < 0)
            {
                await EnterNonNegativeValue();

                return;
            }
            List <SkinInstance> skins = GetUserData(Context.Message.Author.Id).skins;

            if (index >= skins.Count)
            {
                await QuickEmbed($"Please enter a number between 0 and {skins.Count - 1}");

                return;
            }
            SkinInstance skin = skins[index];

            var e = new EmbedBuilder();

            e.WithDescription($"{Context.Message.Author.Mention}'s **{skin.skinData.weapon} {skin.skinData.name}**")
            .AddField("=======================",
                      $"Value: **${skin.worth}**\n" +
                      $"Float: **{skin.floatValue}**\n" +
                      $"Condition: **{CSGOConfigs.LogCondition(skin.condition)}**\n" +
                      $"Rarity: **{CSGOConfigs.LogRarity(skin.skinData.rarity)}**\n" +
                      $"Stattrak? **{(skin.stattrak? "YES" : "NO")}**\n" +
                      $"ID: **{skin.id}**\n" +
                      $"Description: *{skin.skinData.description}*")
            .WithColor(CSGOConfigs.GetColor(skin.skinData.rarity));
            if (skin.skinData.imageURL != "")
            {
                e.WithImageUrl(skin.skinData.imageURL);
            }
            await ReplyAsync(embed : e.Build());
        }