Esempio n. 1
0
    public async Task RemovePrinterAsync(string printerName)
    {
        int count = 0;

        if (printerName == "")
        {
            return;
        }

        if (PermissionManager.GetPerms(Context.Message.Author.Id) < PermissionConfig.Admin)
        {
            await Context.Channel.SendMessageAsync("Not authorised to run this command."); return;
        }
        else
        {
            string[] currPrinters = File.ReadAllLines("Items/printers.json");

            foreach (var printer in currPrinters)
            {
                count++;
                SSRPItems.Printer p = SSRPItems.ReadFromJsonFile <SSRPItems.Printer>(printer);

                if (p.printerName == printerName)
                {
                    var file = new List <string>(System.IO.File.ReadAllLines("Items/printers.json"));
                    file.RemoveAt(count - 1);
                    File.WriteAllLines("Items/printers.json", file.ToArray());

                    await Context.Channel.SendMessageAsync($"Removed {printerName} printer.");

                    await Utilities.StatusMessage("removeprinter", Context);

                    return;
                }
            }

            await Context.Channel.SendMessageAsync($"Printer not found.");

            await Utilities.StatusMessage("removeprinter", Context);
        }
    }
Esempio n. 2
0
    public async Task AddPrinterAsync(string printerName, string colour, double perSecond, string aliases)
    {
        if (PermissionManager.GetPerms(Context.Message.Author.Id) < PermissionConfig.Admin)
        {
            await Context.Channel.SendMessageAsync("Not authorised to run this command."); return;
        }

        if (printerName == "" | aliases == "")
        {
            return;
        }

        string[]          aliasList  = aliases.Split(',');
        SSRPItems.Printer newPrinter = new SSRPItems.Printer {
            printerName = printerName, perSecond = perSecond, aliases = aliasList, color = colour
        };
        SSRPItems.WriteToJsonFile <SSRPItems.Printer>("Items/printers.json", newPrinter, true);
        SSRPItems.printerList.Add(newPrinter);

        await Context.Channel.SendMessageAsync($"New Printer Has Been Added. Name: {printerName} | Per Second: {perSecond.ToString("#,##0")}");

        await Utilities.StatusMessage("addprinter", Context);
    }
Esempio n. 3
0
    public async Task SendPrinter(string item, int boost = 1, int time = 1)
    {
        if (PermissionManager.GetPerms(Context.Message.Author.Id) < PermissionConfig.User)
        {
            await Context.Channel.SendMessageAsync("Not authorised to run this command."); return;
        }

        SSRPItems.Printer p = await SSRPItems.GetPrinter(item);

        Discord.Color c = new Discord.Color(ColorTranslator.FromHtml($"#{p.color}").R, ColorTranslator.FromHtml($"#{p.color}").G, ColorTranslator.FromHtml($"#{p.color}").B);

        if (p == null)
        {
            await Context.Channel.SendMessageAsync("Printer not found. Please enclose the printer name in quotes: `\"name\"`"); await Utilities.StatusMessage("printer", Context);
        }
        else
        {
            //If loot/gem/uranium
            if (p.printerName == "Uranium" || p.printerName == "Loot" || p.printerName == "Gem")
            {
                //If 1, don't print the plural
                if (time == 1)
                {
                    EmbedBuilder       eb = new EmbedBuilder();
                    EmbedFooterBuilder fb = new EmbedFooterBuilder();

                    fb.WithText($"Called by {Context.Message.Author.Username}");
                    fb.WithIconUrl(Context.Message.Author.GetAvatarUrl());

                    eb.WithTitle($"{p.printerName}");
                    eb.AddField("Per Second", $"{((p.perSecond * boost) * time).ToString("#,##0")}");
                    eb.AddField("Per Minute", $"{(((p.perSecond * 60) * boost) * time).ToString("#,##0")}");
                    eb.AddField("Per Hour", $"{(((p.perSecond * 60) * 60) * boost).ToString("#,##0")}");
                    eb.AddField("With Boost", $"x{boost}");
                    eb.WithColor(c);
                    eb.WithFooter(fb);

                    await ReplyAsync("", false, eb.Build());

                    await Utilities.StatusMessage("printer", Context);
                }
                else
                {
                    EmbedBuilder       eb = new EmbedBuilder();
                    EmbedFooterBuilder fb = new EmbedFooterBuilder();

                    fb.WithText($"Called by {Context.Message.Author.Username}");
                    fb.WithIconUrl(Context.Message.Author.GetAvatarUrl());

                    eb.WithTitle($"{p.printerName}");
                    eb.AddField($"Per {time} Seconds", $"{((p.perSecond * boost) * time).ToString("#,##0")}");
                    eb.AddField($"Per {time} Minutes", $"{(((p.perSecond * 60) * boost) * time).ToString("#,##0")}");
                    eb.AddField($"Per {time} Hours", $"{((((p.perSecond * 60) * 60) * boost) * time).ToString("#,##0")}");
                    eb.AddField($"With Boost", $"x{boost}");
                    eb.WithColor(c);
                    eb.WithFooter(fb);

                    await ReplyAsync("", false, eb.Build());

                    await Utilities.StatusMessage("printer", Context);
                }
            }
            //If normal printer
            else
            {
                //If 1, don't print the plural
                if (time == 1)
                {
                    EmbedBuilder       eb = new EmbedBuilder();
                    EmbedFooterBuilder fb = new EmbedFooterBuilder();

                    fb.WithText($"Called by {Context.Message.Author.Username}");
                    fb.WithIconUrl(Context.Message.Author.GetAvatarUrl());

                    eb.WithTitle($"{p.printerName}");
                    eb.AddField("Per Second", $"${((p.perSecond * boost) * time).ToString("#,##0")}");
                    eb.AddField("Per Minute", $"${(((p.perSecond * 60) * boost) * time).ToString("#,##0")}");
                    eb.AddField("Per Hour", $"${(((p.perSecond * 60) * 60) * boost).ToString("#,##0")}");
                    eb.AddField("With Boost", $"x{boost}");
                    eb.WithColor(c);
                    eb.WithFooter(fb);

                    await ReplyAsync("", false, eb.Build());

                    await Utilities.StatusMessage("printer", Context);
                }
                else
                {
                    EmbedBuilder       eb = new EmbedBuilder();
                    EmbedFooterBuilder fb = new EmbedFooterBuilder();

                    fb.WithText($"Called by {Context.Message.Author.Username}");
                    fb.WithIconUrl(Context.Message.Author.GetAvatarUrl());

                    eb.WithTitle($"{p.printerName}");
                    eb.AddField($"Per {time} Seconds", $"${((p.perSecond * boost) * time).ToString("#,##0")}");
                    eb.AddField($"Per {time} Minutes", $"${(((p.perSecond * 60) * boost) * time).ToString("#,##0")}");
                    eb.AddField($"Per {time} Hours", $"${((((p.perSecond * 60) * 60) * boost)* time).ToString("#,##0")}");
                    eb.AddField($"With Boost", $"x{boost}");
                    eb.WithColor(c);
                    eb.WithFooter(fb);

                    await ReplyAsync("", false, eb.Build());

                    await Utilities.StatusMessage("printer", Context);
                }
            }
        }
    }