feat: auto delete server if it is inactive for more than 5 minutes, minor fix
This commit is contained in:
@ -101,11 +101,18 @@ class EventService:
|
||||
"port": 25565, # Стандартный порт Minecraft
|
||||
"description": f"Minecraft server {server_ip}",
|
||||
"max_players": 100,
|
||||
"registered_at": datetime.utcnow()
|
||||
"registered_at": datetime.utcnow(),
|
||||
"last_activity": datetime.utcnow() # Добавляем поле last_activity
|
||||
}
|
||||
|
||||
await game_servers_collection.insert_one(server_data)
|
||||
print(f"[{datetime.utcnow()}] Зарегистрирован новый сервер: {server_ip}")
|
||||
else:
|
||||
# Обновляем активность существующего сервера
|
||||
await game_servers_collection.update_one(
|
||||
{"ip": server_ip},
|
||||
{"$set": {"last_activity": datetime.utcnow()}}
|
||||
)
|
||||
|
||||
return existing_server or await game_servers_collection.find_one({"ip": server_ip})
|
||||
|
||||
@ -114,11 +121,18 @@ class EventService:
|
||||
from app.db.database import db
|
||||
|
||||
online_players_collection = db.online_players
|
||||
game_servers_collection = db.game_servers
|
||||
|
||||
# Получаем ID сервера
|
||||
server = await self._register_server(server_ip, {})
|
||||
server_id = server["id"]
|
||||
|
||||
# Обновляем время активности сервера
|
||||
await game_servers_collection.update_one(
|
||||
{"id": server_id},
|
||||
{"$set": {"last_activity": datetime.utcnow()}}
|
||||
)
|
||||
|
||||
# Помечаем всех игроков как оффлайн на этом сервере
|
||||
await online_players_collection.update_many(
|
||||
{"server_id": server_id},
|
||||
|
Reference in New Issue
Block a user