async def METHOD_NAME(self, ctx, user: FetchUserConverter, *, arg: str):
    """Give a pokémon."""
    shiny = False
    if arg.lower().startswith("shiny"):
        shiny = True
        arg = arg.lower().replace("shiny", "").strip()
    species = self.bot.data.species_by_name(arg)
    if species is None:
        return await ctx.send(f"Could not find a pokemon matching `{arg}`.")
    ivs = [mongo.random_iv() for i in range(6)]
    await self.bot.mongo.db.pokemon.insert_one(
        {
            "owner_id": user.id,
            "owned_by": "user",
            "species_id": species.id,
            "level": 1,
            "xp": 0,
            "nature": mongo.random_nature(),
            "iv_hp": ivs[0],
            "iv_atk": ivs[1],
            "iv_defn": ivs[2],
            "iv_satk": ivs[3],
            "iv_sdef": ivs[4],
            "iv_spd": ivs[5],
            "iv_total": sum(ivs),
            "shiny": shiny,
            "idx": await self.bot.mongo.fetch_next_idx(user),
        }
    )
    await ctx.send(f"Gave **{user}** a {species}.")