示例#1
0
    def start(self, bot: Bot, update: Update, trainer: Trainer,
              database: Database):
        """Start cmd"""
        id = update.message.from_user.id

        name = update.message.from_user.first_name
        data = update.message.text
        invcode = data[7:]

        if trainer.does_exist(database):
            if data.find("fancycode") != -1:
                self.daily_code(bot, update, trainer, database)
            else:
                self.already_registered(bot, update, trainer)

        else:
            if invcode != None and invcode != " " and invcode != "" and int(
                    invcode) != id:
                inviter = Trainer(int(invcode))
                if inviter.does_exist(database):
                    self.invite_code(bot, update, trainer, inviter, database)
                else:
                    self.invalid_invitation(bot, update, trainer, database)
            else:
                Trainer.create_new(database, id, name, 800)

            self.register_user(bot, update, trainer, database)
示例#2
0
def textcb(bot, update):
    # Get Data
    d = get_database()
    try:
        cid = update.message.from_user.id
        trainer = Trainer(cid)
        trainer.get_values(d, "id, menu_id")

        if trainer.menu_id == 2:
            renamestarter(bot, update, d, trainer)
    finally:
        free_database(d)
示例#3
0
    def set_attribute(self, name, value):
        """
        sets attribute
        :param name: Name of the attribute
        :param value: Value of the attribute
        """
        if name == "id":
            self.species = value
        elif name == "trainerid":
            self.trainer = Trainer(value)

        else:
            setattr(self, name, value)
示例#4
0
 def handle(bot_p: Bot, update: Update, _cmd_handlers):
     with Database() as database:
         trainer = Trainer(update.message.from_user.id)
         menu_id = None
         if trainer.does_exist(database):
             trainer.load_values(values="menu_id", database=database)
             menu_id = trainer.menu_id
         if menu_id not in _cmd_handlers:
             return
         func = _cmd_handlers[menu_id]
         use_db = self.uses_db(func)
         if use_db:
             func(bot_p, update, trainer, database)
     if not use_db:
         func(bot_p, update, trainer)
示例#5
0
def comcb(bot, update):
    d = get_database()
    try:
        query = update.callback_query
        data = query.data
        cid = query.from_user.id
        if data.find('box') != -1:
            result = "B O X \n====================\n"
            trainer = Trainer(cid)
            #trainer.load_values(d, "id")
            pokes = trainer.get_all_pkmn(
                d,
                "id, name, level, currenthp, gender, hp_exp, hp_dv, species_id, current_status"
            )  #all_pkmn
            id = 1
            if pokes == []:
                result += "Nothing here...\n"
            for poke in pokes:  #[startval:startval+19]:
                #poke.load_values(d, "name, level, currenthp, gender, hp_exp, hp_dv, species_id, current_status")
                result += """ ({0}) {1} [{5}] Lv. {2} \n    HP: {3}/{4}\n""".format(
                    id, poke.name, poke.level, poke.currenthp,
                    poke.calculate_max_hp(), poke.gender)
                id += 1
            result += """====================\n
/binfo <boxnumber> 
  to get more information 
  about your Pokémon
  in the box
/tinfo <boxnumber> 
  to get more information 
  about your Pokémon
  in tyour team
/box2team <box id>
  move a pokemon from 
  your box to your team
/team2box <team idr>
  move a pokemon from 
  your team to your box
/change <from> <to>
  change the team id 
  of your Pokémon
/release <box id>
  release a pokemon
/trade <box id> <user id>
  trade pokemon"""
            bot.send_message(cid, result)
    finally:
        free_database(d)
示例#6
0
        def button_handle(bot_p: Bot, update: Update):
            id = ButtonId.from_string(update.callback_query.data)
            if id not in self.buttonHandlers:
                return
            bttn_handlers = self.buttonHandlers[id]
            with Database() as database:
                trainer = Trainer(update.callback_query.from_user.id)

                menu_id = None
                if trainer.does_exist(database):
                    trainer.load_values(values="menu_id", database=database)
                    menu_id = trainer.menu_id
                if menu_id not in bttn_handlers:
                    return
                func = bttn_handlers[menu_id]
                use_db = self.uses_db(func)
                if use_db:
                    func(bot_p, update, trainer, database)
            if not use_db:
                func(bot_p, update, trainer)
示例#7
0
def com(bot, update):
    """
    if menu_id==3:
    Ask the player if the trainer wants to heal his Pokemonteam and prints the time the pokemon need to heal.
    Gets id and teamnr from database.
    Yes = menu_id -> 11

    :param bot: bot-param
    :param update: update-param
    :return: nothing
    """
    d = get_database()
    try:
        id = update.message.from_user.id
        trainer = Trainer(id)
        trainer.load_values(d, "menu_id")
        if trainer.menu_id == 3:
            center_buttons = [[
                InlineKeyboardButton("Heal, please!", callback_data='heal_y'),
                InlineKeyboardButton("Nope.", callback_data='heal_n')
            ]]

            center_keys = InlineKeyboardMarkup(center_buttons)
            bot.send_message(id, """B E E P  b o O o p  B e E P...""")
            bot.send_message(id, """.  .  .""")
            bot.send_message(id, """W E L C O M E!""")
            box_buttons = [
                [InlineKeyboardButton("Open Box", callback_data='center_box')],
                [
                    InlineKeyboardButton("Phone with Oak",
                                         callback_data='center_oak')
                ],
            ]
            box_keys = InlineKeyboardMarkup(box_buttons)
            bot.send_message(id,
                             """C O M P U T E R   M E N U""",
                             reply_markup=box_keys)
            pass

    finally:
        free_database(d)
示例#8
0
def tinfo(bot, update):
    """

        :param bot:
        :param update:
        :return:
        """
    d = get_database()
    try:
        data = update.message.text
        id = update.message.from_user.id
        trainer = Trainer(id)
        trainer.load_values(d, "menu_id")
        if trainer.menu_id == 3:
            pokes = trainer.get_team(
                d,
                "id, name, level, currenthp, gender, hp_exp, hp_dv, species_id, current_status"
            )
            show_poke_info(bot, id, data, pokes)
    finally:
        free_database(d)
示例#9
0
 def from_dic(cls, data):
     """gets data as dictionary"""
     return cls(int(data['id']), Trainer(data['trainerid']))