fix coin accrual
This commit is contained in:
@ -2,6 +2,8 @@ from datetime import datetime
|
|||||||
from app.db.database import users_collection, sessions_collection
|
from app.db.database import users_collection, sessions_collection
|
||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
|
|
||||||
|
MAX_MINUTES_PER_UPDATE = 120
|
||||||
|
|
||||||
class CoinsService:
|
class CoinsService:
|
||||||
async def update_player_coins(self, player_id: str, player_name: str, online_time: int, server_ip: str):
|
async def update_player_coins(self, player_id: str, player_name: str, online_time: int, server_ip: str):
|
||||||
"""Обновляет монеты игрока на основе времени онлайн"""
|
"""Обновляет монеты игрока на основе времени онлайн"""
|
||||||
@ -33,6 +35,7 @@ class CoinsService:
|
|||||||
# Если прошло меньше минуты, пропускаем
|
# Если прошло меньше минуты, пропускаем
|
||||||
if minutes_to_reward < 1:
|
if minutes_to_reward < 1:
|
||||||
return
|
return
|
||||||
|
minutes_to_reward = min(minutes_to_reward, MAX_MINUTES_PER_UPDATE)
|
||||||
else:
|
else:
|
||||||
# Первое обновление (ограничиваем для безопасности)
|
# Первое обновление (ограничиваем для безопасности)
|
||||||
minutes_to_reward = min(online_time // 60, 5)
|
minutes_to_reward = min(online_time // 60, 5)
|
||||||
|
|||||||
@ -284,7 +284,7 @@ class EventService:
|
|||||||
})
|
})
|
||||||
|
|
||||||
# Начисляем коины за время игры
|
# Начисляем коины за время игры
|
||||||
coins_service = CoinsService()
|
# coins_service = CoinsService()
|
||||||
await coins_service.update_player_coins(player_id, player_name, duration, server_ip)
|
# await coins_service.update_player_coins(player_id, player_name, duration, server_ip)
|
||||||
|
|
||||||
print(f"[{datetime.now()}] Сессия игрока {player_name} завершена, длительность: {duration} сек.")
|
print(f"[{datetime.now()}] Сессия игрока {player_name} завершена, длительность: {duration} сек.")
|
||||||
|
|||||||
Reference in New Issue
Block a user