Пример #1
0
def shuffle_players(message):
    session = session_manager.active_chat_session(message.chat.id)
    if not session:
        return
    if session.id not in session_manager.get_player_sessions(
            message.from_user.id):
        return

    if user_session_manager.shuffle_players(session):
        show_players(message)
    else:
        bot.reply_to(message, 'Failed to shuffle: there is no one to shuffle')
Пример #2
0
def stop_session(message):
    session = session_manager.active_chat_session(message.chat.id)
    if not session:
        return
    if session.id not in session_manager.get_player_sessions(
            message.from_user.id):
        return

    if session_manager.stop(session.id):
        bot.reply_to(message, 'Session was stopped')
    else:
        bot.reply_to(message, 'There is nothing to stop')
Пример #3
0
def start_session(message):
    session = session_manager.active_chat_session(message.chat.id)
    if not session or session.status:
        return
    if session.id not in session_manager.get_player_sessions(
            message.from_user.id):
        return

    if session_manager.start(session.id):
        bot.reply_to(message, 'Strike the earth!')
    else:
        bot.reply_to(message, 'You are not prepared for a journey!')
Пример #4
0
def close_round(message):
    shuffle = ' '.join(message.text.split(maxsplit=1)[1:]).strip() or None
    session = session_manager.active_chat_session(message.chat.id)
    if not session:
        return
    if session.id not in session_manager.get_player_sessions(
            message.from_user.id):
        return

    if user_session_manager.round(session.id, shuffle):
        bot.reply_to(message, 'Round was added')
    else:
        bot.reply_to(message, 'Cant make round')
Пример #5
0
def skip_player(message):
    session = session_manager.active_chat_session(message.chat.id)
    if not session or session.id not in session_manager.get_player_sessions(
            message.from_user.id):
        return

    old, new = user_session_manager.step(session)
    if old:
        bot.send_message(old.user, 'Sorry! Your step was skipped!')
        bot.send_message(session.chat, 'Current player is skipped!')
    if new:
        save_id = user_session_manager.write_from_prev(old)
        if save_id:
            bot.send_message(
                new.user, 'Your turn!\nDownload the save: ' +
                google_docs.get_link(save_id))
        else:
            bot.send_message(new.user, 'Your turn!\nYou are the first!')
    else:
        bot.send_message(session.chat, 'The round of game is end.')
Пример #6
0
def add_player(message):
    session = session_manager.active_chat_session(message.chat.id)
    if not session:
        return

    if session.id in session_manager.get_player_sessions(message.from_user.id):
        if message.reply_to_message:
            reply = message.reply_to_message
            if reply.from_user.is_bot:
                return
            to_add = user_manager.get(reply.from_user.id)
            if not to_add:
                bot.reply_to(message, 'Player must do /auth before adding!')
                return
            if user_session_manager.toggle_player(user_id=to_add,
                                                  session_id=session,
                                                  force_add=True):
                bot.reply_to(message, 'Player was added!')
            else:
                bot.reply_to(message, 'Something went wrong')
        else:
            bot.reply_to(message,
                         'You must reply to the id message for add that id!')