moved pokedex into its own cog
This commit is contained in:
parent
84ee8f11d6
commit
90acde7e28
2 changed files with 9 additions and 58 deletions
|
|
@ -2,6 +2,10 @@ from discord.ext import commands
|
||||||
import discord
|
import discord
|
||||||
|
|
||||||
class Pokedex(commands.Cog):
|
class Pokedex(commands.Cog):
|
||||||
|
|
||||||
|
def __init__(self, bot) -> None:
|
||||||
|
self.bot = bot
|
||||||
|
|
||||||
async def get_json(self, url):
|
async def get_json(self, url):
|
||||||
async with self.bot.http_session.get(url) as resp:
|
async with self.bot.http_session.get(url) as resp:
|
||||||
json_data = await resp.json()
|
json_data = await resp.json()
|
||||||
|
|
@ -60,6 +64,7 @@ class Pokedex(commands.Cog):
|
||||||
embed.set_footer(text=footer)
|
embed.set_footer(text=footer)
|
||||||
await ctx.send(embed=embed)
|
await ctx.send(embed=embed)
|
||||||
except:
|
except:
|
||||||
|
self.bot.logger.exception("Something went wrong in pokedex")
|
||||||
message = "No data for " + str(pokemon)
|
message = "No data for " + str(pokemon)
|
||||||
await ctx.channel.send(message)
|
await ctx.channel.send(message)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,9 @@ import json
|
||||||
import math
|
import math
|
||||||
import time
|
import time
|
||||||
|
|
||||||
|
class Pokemon:
|
||||||
|
pass
|
||||||
|
|
||||||
class PokemonGame(commands.Cog):
|
class PokemonGame(commands.Cog):
|
||||||
|
|
||||||
def __init__(self, bot):
|
def __init__(self, bot):
|
||||||
|
|
@ -231,66 +234,9 @@ class PokemonGame(commands.Cog):
|
||||||
async def on_message(self, message: discord.Message):
|
async def on_message(self, message: discord.Message):
|
||||||
await self.pkmn_msg(message.author.id)
|
await self.pkmn_msg(message.author.id)
|
||||||
|
|
||||||
|
|
||||||
@commands.command(
|
|
||||||
description="Pokedex",
|
|
||||||
help="Get information on pokemon",
|
|
||||||
brief="Pokedex",
|
|
||||||
aliases=['pdex'],
|
|
||||||
hidden=False
|
|
||||||
)
|
|
||||||
async def pokedex(self, ctx):
|
|
||||||
pokemon = ctx.message.content.split(" ", maxsplit=1)[1]
|
|
||||||
try:
|
|
||||||
shiny = False
|
|
||||||
if 'shiny ' in pokemon:
|
|
||||||
shiny = True
|
|
||||||
pokemon = pokemon.replace('shiny ', '')
|
|
||||||
url = "https://pokeapi.co/api/v2/pokemon/" + pokemon
|
|
||||||
dex_url = "https://pokeapi.co/api/v2/pokemon-species/" + pokemon
|
|
||||||
data = await self.get_json(url)
|
|
||||||
name = data['name']
|
|
||||||
height_str = str(int(data['height'])/10) + 'm'
|
|
||||||
weight_str = str(int(data['weight'])/10) + 'kg'
|
|
||||||
type1 = data['types'][0]['type']['name']
|
|
||||||
try:
|
|
||||||
type2 = data['types'][1]['type']['name']
|
|
||||||
type_str = type1.capitalize() + ', ' + type2.capitalize()
|
|
||||||
except:
|
|
||||||
type2 = "None"
|
|
||||||
type_str = type1.capitalize()
|
|
||||||
sprite = data["sprites"]["front_default"]
|
|
||||||
if shiny:
|
|
||||||
sprite = data["sprites"]["front_shiny"]
|
|
||||||
dex_data = await self.get_json(dex_url)
|
|
||||||
generation = dex_data['generation']['name'].upper().replace("GENERATION","Generation")
|
|
||||||
for entry in dex_data['flavor_text_entries']:
|
|
||||||
if entry['language']['name'] == 'en':
|
|
||||||
dex_desc = entry['flavor_text'].replace("\u000c", '\n')
|
|
||||||
dex_desc_game = entry['version']['name'].capitalize()
|
|
||||||
break
|
|
||||||
for entry in dex_data['genera']:
|
|
||||||
if entry['language']['name'] == 'en':
|
|
||||||
genus = entry['genus']
|
|
||||||
break
|
|
||||||
footer = generation + ' | Pokédex entry from Pokémon ' + dex_desc_game
|
|
||||||
dex_num = dex_data['pokedex_numbers'][0]['entry_number']
|
|
||||||
embed=discord.Embed(title=name.capitalize())
|
|
||||||
embed.set_image(url=sprite)
|
|
||||||
embed.add_field(name="Number", value=dex_num, inline=False)
|
|
||||||
embed.add_field(name=genus, value=dex_desc, inline=False)
|
|
||||||
embed.add_field(name="Weight", value=weight_str , inline=True)
|
|
||||||
embed.add_field(name="Height", value=height_str, inline=True)
|
|
||||||
embed.add_field(name="Types", value=type_str, inline=True)
|
|
||||||
embed.set_footer(text=footer)
|
|
||||||
await ctx.send(embed=embed)
|
|
||||||
except:
|
|
||||||
message = "No data for " + str(pokemon)
|
|
||||||
await ctx.channel.send(message)
|
|
||||||
|
|
||||||
async def setup(bot):
|
async def setup(bot):
|
||||||
try:
|
try:
|
||||||
await bot.add_cog(PokemonGame(bot))
|
await bot.add_cog(PokemonGame(bot))
|
||||||
bot.logger.info("Successfully added PokemonGame Cog")
|
bot.logger.info("Successfully added PokemonGame Cog")
|
||||||
except:
|
except:
|
||||||
bot.logger.info("Failed to load PokemonGame Cog")
|
bot.logger.exception("Failed to load PokemonGame Cog")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue