def build_msg_trade(bot, chat_id, player_id=None): if player_id is None: MessageHelper.build_choose_friend_message( bot=bot, chat_id=chat_id, mode=Constants.CHOOSE_FRIEND_MODE.TRADE) return else: player = DBAccessor.get_player(chat_id) friend = DBAccessor.get_player(int(player_id)) if player.trade is not None: bot.send_message(chat_id=player.chat_id, text='You are currently trading with {}'.format( DBAccessor.get_player( int(player.trade.partner_id)).username)) return if friend.trade is not None: bot.send_message( chat_id=player.chat_id, text='Your friend is currently trading with somebody else') return keys = [[ InlineKeyboardButton( text='Yes', callback_data=Constants.CALLBACK.TRADE_IVITE_CONFIRM( player.chat_id)), InlineKeyboardButton( text='No', callback_data=Constants.CALLBACK.TRADE_INVITE_DENY( player.chat_id)) ]] reply_keyboard = InlineKeyboardMarkup(inline_keyboard=keys) invite_msg = bot.send_message(chat_id=player_id, text='Your friend ' + str(player.username) + ' wants to trade. Are you interested?', reply_markup=reply_keyboard) friend.messages_to_delete.append( Message.Message(_id=invite_msg.message_id, _title=Constants.MESSAGE_TYPES.TRADE_INVITE_MSG, _time_sent=time.time())) query_friend = DBAccessor.get_update_query_player( messages_to_delete=friend.messages_to_delete) DBAccessor.update_player(_id=friend.chat_id, update=query_friend) player.trade = Trade(partner_id=friend.chat_id) query_player = DBAccessor.get_update_query_player(trade=player.trade) DBAccessor.update_player(_id=player.chat_id, update=query_player) msg = bot.send_message(chat_id=chat_id, text='Choose your Pokemon to trade:') MessageHelper.append_message_to_player( player.chat_id, message_id=msg.message_id, type=Constants.MESSAGE_TYPES.BAG_MSG) BagMessageBuilder.build_msg_bag(bot=bot, chat_id=player.chat_id, page_number=0, trade_mode=True)
def notify_partner(bot, chat_id, partner_id): msg_ping = bot.send_message( chat_id=partner_id, text= 'Your trading-partner is waiting for a response and is getting impatient.' ) MessageHelper.append_message_to_player( partner_id, message_id=msg_ping.message_id, type=Constants.MESSAGE_TYPES.TRADE_STATUS_MSG) trade_status(bot, partner_id)
def send_lang_menu(bot, chat_id): MessageHelper.delete_messages_by_type(bot, chat_id, Constants.MESSAGE_TYPES.LANG_MENU) keys = [] for lang in EichState.string_dicts.keys(): keys.append([ InlineKeyboardButton( text=lang, callback_data=Constants.CALLBACK.CHANGE_LANGUAGE(lang)) ]) reply_markup = InlineKeyboardMarkup(inline_keyboard=keys) msg = bot.send_message(chat_id=chat_id, text='Choose your preferred language:', reply_markup=reply_markup) MessageHelper.append_message_to_player(chat_id, msg.message_id, Constants.MESSAGE_TYPES.LANG_MENU)
def notify_opponent(bot, chat_id, duel_id): duel = DBAccessor.get_duel_by_id(int(duel_id)) if duel is None: bot.send_message( chat_id=duel.get_counterpart_by_id(chat_id).player_id, text='The fight is over, go home\n(or start a new one)') MessageHelper.delete_messages_by_type( bot, chat_id, Constants.MESSAGE_TYPES.DUEL_STATUS_MSG) msg_ping = bot.send_message( chat_id=duel.get_counterpart_by_id(chat_id).player_id, text='Your opponent for you to take action and is getting impatient.') MessageHelper.append_message_to_player( duel.get_counterpart_by_id(chat_id).player_id, message_id=msg_ping.message_id, type=Constants.MESSAGE_TYPES.DUEL_CHOOSE_MSG) build_msg_duel_active(bot, duel.get_counterpart_by_id(chat_id).player_id, duel_id)
def send_settings_menu(bot, update): player = DBAccessor.get_player(update.message.chat_id) if player is not None: MessageHelper.delete_messages_by_type( bot=bot, chat_id=update.message.chat_id, type=Constants.MESSAGE_TYPES.SETTINGS_MSG) else: msg = bot.send_message( chat_id=update.message.chat_id, text= 'I do not know you yet. To be recognized next time, update your /username or type /catch\n' 'Latter will enable encounters as well.') return text, reply_markup = build_msg_settings_menu() msg = bot.send_message(chat_id=update.message.chat_id, text=text, reply_markup=reply_markup) MessageHelper.append_message_to_player( player.chat_id, msg.message_id, Constants.MESSAGE_TYPES.SETTINGS_MSG)
def send_menu_message(bot, update): player = DBAccessor.get_player(update.message.chat_id) if player is not None: MessageHelper.delete_messages_by_type( bot=bot, chat_id=update.message.chat_id, type=Constants.MESSAGE_TYPES.MENU_MSG) else: msg = bot.send_message( chat_id=update.message.chat_id, text= 'I do not know you yet. To be recognized next time, type /catch\n' 'This will enable encounters as well.') return text, reply_markup = build_msg_menu( player.chat_id, player.encounters if player is not None else False, trade=player.trade, duels=player.duels) msg = bot.send_message(chat_id=update.message.chat_id, text=text, reply_markup=reply_markup) if player is None: new_player = Player.Player( update.message.chat_id, messages_to_delete=[ Message.Message(_id=msg.message_id, _title=Constants.MESSAGE_TYPES.MENU_MSG, _time_sent=time.time()) ], encounters=False) DBAccessor.insert_new_player(new_player) else: MessageHelper.append_message_to_player( player.chat_id, msg.message_id, Constants.MESSAGE_TYPES.MENU_MSG)