Beispiel #1
0
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)
Beispiel #2
0
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)