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); } }
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")); }