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)
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)
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)
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)
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)
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)
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)
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)
def from_dic(cls, data): """gets data as dictionary""" return cls(int(data['id']), Trainer(data['trainerid']))