2025-07-26 20:58:35 +02:00
from utils import logs as _log
from bot_libs import player_handling as _bot_player
from bot_libs import simulation as _bot_simulation
from bot_libs import repeating as _bot_repeat
### parse user input
async def get_name_from_input ( context , update , chat_id , text ) :
2025-07-26 21:25:38 +02:00
_log . log_info ( f ' bot_command: { chat_id } - Collected Player Name { text } ' )
2025-07-26 20:58:35 +02:00
if ' ask_name ' in context . application . bot_data :
del ( context . application . bot_data [ ' ask_name ' ] )
players = text . split ( ' , ' )
for player in players :
2025-07-26 21:25:38 +02:00
await _bot_player . add_player ( update , context , chat_id , player . strip ( ) )
2025-07-26 20:58:35 +02:00
elif text == ' Add random Players ' :
2025-07-26 21:25:38 +02:00
await _bot_player . add_random_players ( update , context , chat_id , colors_names = False )
2025-07-26 20:58:35 +02:00
elif text == ' Add random color Players ' :
2025-07-26 21:25:38 +02:00
await _bot_player . add_random_players ( update , context , chat_id , colors_names = True )
2025-07-26 20:58:35 +02:00
Arena = context . application . bot_data [ ' arena ' ]
players = [ p . get_name_and_stats ( ) for p in Arena . get_players ( ) ]
players_str = ' \n ' . join ( players )
return await update . message . reply_text ( f ' Ecco i { len ( players ) } giocatori presenti nel mondo do gioco: \n { players_str } ' )
async def get_seconds_from_input ( context , update , chat_id , text ) :
2025-07-26 21:25:38 +02:00
_log . log_info ( f ' bot_command: { chat_id } - User Wants to auto-run the game every { text } seconds ' )
2025-07-26 20:58:35 +02:00
try : text = int ( text )
except : return
seconds = max ( 1 , text )
return await _bot_repeat . start_loop_game ( update , context , seconds )
### basic commands handling
async def bot_command_add_player ( context , update , chat_id ) :
context . application . bot_data [ ' ask_name ' ] = 1
if ' ask_seconds ' in context . application . bot_data :
del ( context . application . bot_data [ ' ask_seconds ' ] )
return await update . message . reply_text ( ' Inserisci il Nome del giocatore (o piu \' nomi separati da virgola) ' )
async def bot_command_get_players ( context , update , chat_id ) :
2025-07-26 21:25:38 +02:00
return await _bot_player . get_players ( update , context , chat_id )
2025-07-26 20:58:35 +02:00
async def bot_command_get_alive_players ( context , update , chat_id ) :
2025-07-26 21:25:38 +02:00
return await _bot_player . get_alive_players ( update , context , chat_id )
2025-07-26 20:58:35 +02:00
async def bot_command_get_death_players ( context , update , chat_id ) :
2025-07-26 21:25:38 +02:00
return await _bot_player . get_death_players ( update , context , chat_id )
2025-07-26 20:58:35 +02:00
async def bot_command_get_ranking_players ( context , update , chat_id ) :
2025-07-26 21:25:38 +02:00
return await _bot_player . get_ranking_players ( update , context , chat_id )
2025-07-26 20:58:35 +02:00
async def bot_command_simulate_day ( context , update , chat_id ) :
return await _bot_simulation . simulate_day ( context , chat_id )
async def bot_command_simulate_day_cron ( context , update , chat_id ) :
context . application . bot_data [ ' ask_seconds ' ] = 1
if ' ask_name ' in context . application . bot_data :
del ( context . application . bot_data [ ' ask_name ' ] )
return await update . message . reply_text ( ' Inserisci il numero di secondi, ad esempio \n (60 = 1 minuto)(600 = 10 minuti) \n (3600 = 1 ora) \n (86400 = 1 giorno) ' )