コード例 #1
0
        public async Task ImpersonateAsync(string name)
        {
            var eb          = new EmbedBuilder();
            var heldenliste = await Helden_software_API.GetHeroBasics(name);

            if (!heldenliste.Any())
            {
                await ReplyAsync("helden-software ist zurzeit offline. es wird auf ein Backup zugegriffen.");

                heldenliste = await DBService.GetHeldenIDUndName(name.ToLower());
            }
            if (heldenliste.Count > 1)
            {
                string tmp   = "";
                int    count = 0;
                foreach (var entry in heldenliste)
                {
                    tmp += entry.Value;
                    count++;
                    if (count < heldenliste.Count)
                    {
                        tmp += ", ";
                    }
                }
                var embed = eb.AddField("Fehler", "Es fangen **" + heldenliste.Count + "** Helden mit \"" + name + "\" an (" + tmp + "), " +
                                        "bitte sei etwas genauer wessen Rolle du übernehmen möchtest.")
                            .WithColor(Color.Red)
                            .Build();
                await ReplyAsync(null, false, embed);
            }
            else if (heldenliste.Count < 1)
            {
                var embed = eb.AddField("Fehler", "Leider habe ich keinen Helden namens \"" + name + "\" gefunden, " +
                                        "gebe **!list** für eine Liste aller Helden die im Moment online sind ein.")
                            .WithColor(Color.Red)
                            .Build();
                await ReplyAsync(null, false, embed);
            }
            else
            {
                await DBService.UpdateDsaLink(Context.User.Id, heldenliste.Keys.First());

                await DBService.UpdateHeroName(heldenliste.Keys.First(), heldenliste.Values.First());

                var embed = eb.AddField(Context.User.Username, "Du übernimmst jetzt die Werte von: **" + heldenliste.Values.First() + "**.")
                            .WithColor(Color.Green)
                            .Build();
                await ReplyAsync(null, false, embed);
            }
        }