Ejemplo n.º 1
0
    async def on_message(self, message):
        channel = message.channel
        content = message.content
        content = re.sub(r'297', '', content)
        if not await self.config.channel(channel).enabled():
            return
        if message.guild is None:  # dms
            return
        if message.author == self.bot.user:  # dont reply to self
            return
        if await self.is_command(message):  # skip commands
            return
        dbcog = self.bot.get_cog("DBCog")
        if dbcog is None:
            await channel.send(
                "Error: DBCog Cog not loaded. Please alert a bot owner.")
            return
        if re.search(r'\b\d{3}[ -,]{0,2}\d{3}[ -,]{0,2}\d{3}\b',
                     content):  # friend code
            return
        if "+" in content or "plus" in content:
            return
        if re.search(r'\b\d{3,4}\b', content):
            matches = re.findall(r'\b\d{3,4}\b', content)
            ret = ""
            for i in matches:
                if i == "100":  # skip when people say "is 100 mp or over" ~~and ryan's posts~~
                    continue
                m: "MonsterModel" = dbcog.get_monster(int(i))
                if m is None:  # monster not found
                    continue
                dbcog.database.graph: "MonsterGraph"
                if m.sell_mp < 100:
                    tradeable_text = ''
                else:
                    evo_gem_text = ''
                    if m.evo_gem_id is not None:
                        evo_gem: "MonsterModel" = dbcog.get_monster(
                            m.evo_gem_id)
                        if evo_gem.sell_mp < 100:
                            evo_gem_text = ', but it has a tradable evo gem!'
                        else:
                            evo_gem_text = ', and its evo gem is also not tradable'

                    tradeable_text = " (untradable{})".format(evo_gem_text)

                ret += "{}{}\n".format(MonsterHeader.text_with_emoji(m),
                                       tradeable_text)
            if ret != "":
                await channel.send(ret)
Ejemplo n.º 2
0
def invalid_monster_text(query: str, monster: "MonsterModel",
                         append_text: str):
    monster_name = MonsterHeader.text_with_emoji(monster)
    return f'Your query `{query}` found {monster_name}{append_text}.'
Ejemplo n.º 3
0
 async def _send_tradeable_message(ctx, monster: "MonsterModel", msg: str):
     await ctx.send("{}\n{}".format(MonsterHeader.text_with_emoji(monster),
                                    msg))