示例#1
0
        public async Task TF2Item(CommandContext ctx,
                                  [Description("Item to find in the TF2 schema")][RemainingText] string query = "The Scattergun")
        {
            var item = TeamFortressService.GetSchemaItem(query);

            if (item is null)
            {
                await BotServices.SendEmbedAsync(ctx, Resources.NOT_FOUND_GENERIC, EmbedType.Missing).ConfigureAwait(false);
            }
            else
            {
                var textInfo = new CultureInfo("en-US", false).TextInfo;
                var output   = new DiscordEmbedBuilder()
                               .WithTitle(item.ItemName)
                               .WithDescription(item.ItemDescription ?? string.Empty)
                               .WithImageUrl(item.ImageUrlLarge ?? item.ImageUrl)
                               .WithUrl("https://wiki.teamfortress.com/wiki/" + item.ItemName.Replace(' ', '_'))
                               .WithFooter("ID: " + item.DefIndex)
                               .WithColor(new DiscordColor("#E7B53B"));

                var classes = new StringBuilder();
                foreach (var className in item.UsedByClasses)
                {
                    classes.Append(className).Append(!className.Equals(item.UsedByClasses.Last()) ? ", " : string.Empty);
                }
                output.AddField("Used by:", classes.ToString() ?? "Unknown", true);
                output.AddField("Item Slot:", textInfo.ToTitleCase(item.ItemSlot) ?? "Unknown", true);
                output.AddField("Item Type:", item.ItemTypeName ?? "Unknown", true);
                output.AddField("Giftable:", (item.Capabilities.CanGiftWrap == true) ? "Yes" : "No", true);
                output.AddField("Nameable:", (item.Capabilities.Nameable) ? "Yes" : "No", true);
                output.AddField("Restriction:", item.HolidayRestriction ?? "None", true);
                await ctx.RespondAsync(embed : output.Build()).ConfigureAwait(false);
            }
        }
示例#2
0
        public async Task Tf2Schema(CommandContext ctx,
                                    [Description("Item to find in the TF2 schema")][RemainingText]
                                    string query = "The Scattergun")
        {
            await ctx.TriggerTypingAsync();

            var item = TeamFortressService.GetSchemaItem(query);

            if (item is null)
            {
                await BotServices.SendResponseAsync(ctx, Resources.NOT_FOUND_COMMON, ResponseType.Missing)
                .ConfigureAwait(false);

                return;
            }

            var textInfo = new CultureInfo("en-US", false).TextInfo;
            var output   = new DiscordEmbedBuilder()
                           .WithTitle(item.ItemName)
                           .WithDescription(item.ItemDescription ?? string.Empty)
                           .AddField("Item Slot:", textInfo.ToTitleCase(item.ItemSlot) ?? "Unknown", true)
                           .AddField("Giftable:", item.Capabilities.CanGiftWrap == true ? "Yes" : "No", true)
                           .AddField("Nameable:", item.Capabilities.Nameable ? "Yes" : "No", true)
                           .WithThumbnail(item.ImageUrlLarge ?? item.ImageUrl)
                           .WithUrl(string.Format(Resources.URL_TF2Wiki, item.ItemName.Replace(' ', '_')))
                           .WithFooter("ID: " + item.DefIndex)
                           .WithColor(new DiscordColor("#E7B53B"));

            if (item.UsedByClasses != null)
            {
                var classes = new StringBuilder();
                foreach (var className in item.UsedByClasses)
                {
                    classes.Append(className)
                    .Append(!className.Equals(item.UsedByClasses.Last()) ? ", " : string.Empty);
                }
                output.AddField("Used by:", classes.ToString() ?? "Unknown");
            }
            else
            {
                output.AddField("Used by:", "All-Classes");
            }

            await ctx.RespondAsync(output.Build()).ConfigureAwait(false);
        }
 public void GetSchemaItem()
 {
     Assert.IsNotNull(TeamFortressService.GetSchemaItem("scattergun"));
     Assert.IsNull(TeamFortressService.GetSchemaItem("shattergun"));
 }