Files
battle_royale_sim/bot.py
Crystal 0221d8f9cc typo
2025-07-23 23:55:30 +02:00

65 lines
2.4 KiB
Python

import asyncio
import datetime
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, filters, ContextTypes
import bot_syms as _botsyms
import main as _brsim
async def loop_game(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
chat_id = update.effective_chat.id
if 'arena' in context.application.bot_data:
pass
else:
print('Arena non trovata')
await update.message.reply_text('Che e\' successo? un Guarino ha rubato l\'arena, avvia una nuova partita con /start')
async def bot_start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(_botsyms.START_MSG)
chat_id = update.effective_chat.id
print(f'{chat_id}: Sto costruendo il mondo di gioco...')
Arena= _brsim.init_arena()
players= Arena.players
weapons= Arena.weapons
print(f'Ecco il mondo di gioco, questi sono i giocatori: {players}')
print(f'Ecco le armi disponibili nel mondo: {weapons}')
await update.message.reply_text('Ho creato il mondo di gioco')
await update.message.reply_text(f'Ecco la lista degli sfortunati avventurieri:\n{players}')
await update.message.reply_text(f'Queste le armi che avranno a disposizione nell\'arena:\n{weapons}')
context.application.bot_data['arena'] = Arena
context.job_queue.run_daily(
loop_game,
time=datetime.time(hour=0, minute=0, second=5, tzinfo=datetime.timezone.utc),
chat_id=chat_id,
name=str(chat_id)
)
print(f'Job giornaliero creato per la chat {chat_id}')
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
testo_ricevuto = update.message.text
await update.message.reply_text(_botsyms.WIP_MSG)
async def add_player(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
player= 'XXX' #XXX implement me, get from user request
print(f'sto aggiungendo il giocatore {player} all\'arena')
_brsim.BrSimArena
Arena= context.application.bot_data['arena']
Arena.add_player(player)
print(f'Giocatori: {Arena.get_players()}')
def main():
application = Application.builder().token(_botsyms.TOKEN).build()
application.add_handler(CommandHandler('start', bot_start))
application.add_handler(CommandHandler('addplayer', add_player))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
print('Bot in esecuzione...')
application.run_polling()
if __name__ == '__main__':
main()