import discord, json from discord.ext import commands from discord_slash import cog_ext from discord_slash import SlashCommandOptionType as scot from funcs import spellFunc, monsterFunc, cap from utils import Options with open("resources/slashParameters.json", "r") as f: params = json.load(f) options = Options() if options.testing: for p in params: params[p]["guild_ids"] = options.guildIds class LookupCog(commands.Cog): def __init__(self,client): """Runs lookup commands.""" self.client = client # Looks up a spell @cog_ext.cog_slash(**params["spell"]) async def spell(self, ctx, query): spell = spellFunc(cap(query)) if len(spell) > 2000: await ctx.send(spell[:2000]) await ctx.send(spell[2000:]) else: await ctx.send(spell) # Looks up a monster @cog_ext.cog_slash(**params["monster"]) async def monster(self, ctx, query): title, text1, text2, text3, text4, text5 = monsterFunc(cap(query)) em1 = discord.Embed(title = title, description = text1, colour=0xDEADBF) # Sends the received information. Separates into separate messages if # there is too much text await ctx.send(embed = em1) if text2 != "": if len(text2) < 2048: em2 = discord.Embed(title = "Special Abilities", description = text2, colour=0xDEADBF) await ctx.send(embed = em2) else: em2 = discord.Embed(title = "Special Abilities", description = text2[:2048], colour=0xDEADBF) await ctx.send(embed = em2) em2_2 = discord.Embed(title = "", description = text2[2048:], colour=0xDEADBF) await ctx.send(embed = em2_2) if text3 != "": if len(text3) < 2048: em3 = discord.Embed(title = "Actions", description = text3, colour=0xDEADBF) await ctx.send(embed = em3) else: em3 = discord.Embed(title = "Actions", description = text3[:2048], colour=0xDEADBF) await ctx.send(embed = em3) em3_2 = discord.Embed(title = "", description = text3[2048:], colour=0xDEADBF) await ctx.send(embed = em3_2) if text4 != "": if len(text4) < 2048: em4 = discord.Embed(title = "Reactions", description = text4, colour=0xDEADBF) await ctx.send(embed = em4) else: em4 = discord.Embed(title = "Reactions", description = text4[:2048], colour=0xDEADBF) await ctx.send(embed = em4) em4_2 = discord.Embed(title = "", description = text4[2048:], colour=0xDEADBF) await ctx.send(embed = em4_2) if text5 != "": if len(text5) < 2048: em5 = discord.Embed(title = "Legendary Actions", description = text5, colour=0xDEADBF) await ctx.send(embed = em5) else: em5 = discord.Embed(title = "Legendary Actions", description = text5[:2048], colour=0xDEADBF) await ctx.send(embed = em5) em5_2 = discord.Embed(title = "", description = text5[2048:], colour=0xDEADBF) await ctx.send(embed = em5_2) def setup(client): client.add_cog(LookupCog(client))