mirror of
https://github.com/DerTyp7/docker_minecraft_server_auto_starter.git
synced 2025-10-29 12:42:09 +01:00
Update Dockerfile, settings.json, utils.py, nginx-example.conf, docker-compose.yml, and app.py
This commit is contained in:
53
app/minecraftServerHandler.py
Normal file
53
app/minecraftServerHandler.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import logging
|
||||
from typing import Dict, Optional
|
||||
from nginxHandler import NginxHandler
|
||||
from dockerHandler import DockerHandler
|
||||
from objects.minecraftServer import MinecraftServer
|
||||
|
||||
|
||||
class MinecraftServerHandler:
|
||||
def __init__(self, docker_handler: DockerHandler, nginx_handler: NginxHandler):
|
||||
logging.info(
|
||||
'[MinecraftServerHandler] initializing minecraft server handler...')
|
||||
self.minecraft_servers: Dict[str, MinecraftServer] = {}
|
||||
self.docker_handler: DockerHandler = docker_handler
|
||||
self.nginx_handler: NginxHandler = nginx_handler
|
||||
|
||||
self.active_service_name: str | None = None
|
||||
logging.info(
|
||||
'[MinecraftServerHandler] minecraft server handler initialized')
|
||||
|
||||
def add_server(self, service_name: str) -> None:
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] adding server {service_name}')
|
||||
self.minecraft_servers[service_name] = MinecraftServer(
|
||||
self.docker_handler, service_name)
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] added server {service_name}')
|
||||
|
||||
def get_server(self, service_name: str) -> MinecraftServer | None:
|
||||
logging.info(f'[MinecraftServerHandler] getting server {service_name}')
|
||||
return self.minecraft_servers.get(service_name)
|
||||
|
||||
def stop_all_servers(self, exclude_service_name: Optional[str] = None) -> None:
|
||||
logging.info(f'[MinecraftServerHandler] stopping all servers')
|
||||
for service_name, server in self.minecraft_servers.items():
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] stopping server {service_name}')
|
||||
server.stop()
|
||||
|
||||
def start_server(self, service_name: str) -> None:
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] starting server {service_name}')
|
||||
self.stop_all_servers()
|
||||
server = self.get_server(service_name)
|
||||
if server:
|
||||
server.start()
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] started server {service_name}')
|
||||
self.nginx_handler.update_config_file(
|
||||
self.docker_handler)
|
||||
self.nginx_handler.print_config()
|
||||
else:
|
||||
logging.info(
|
||||
f'[MinecraftServerHandler] No server found with service name {service_name}')
|
||||
Reference in New Issue
Block a user