From 08d3a9729c43da86d2f5ba9065b27150f556de3e Mon Sep 17 00:00:00 2001 From: Bozhidar Date: Mon, 13 May 2024 11:55:08 +0300 Subject: [PATCH] update --- .../Resources/MinecraftServerResource.php | 7 +++++- .../Minecraft/App/Models/MinecraftServer.php | 25 ++++++++++++++++++- ...aml.blade.php => docker-compose.blade.php} | 2 ++ 3 files changed, 32 insertions(+), 2 deletions(-) rename web/Modules/Minecraft/resources/views/actions/{minecraft-docker-yaml.blade.php => docker-compose.blade.php} (76%) diff --git a/web/Modules/Minecraft/App/Filament/Resources/MinecraftServerResource.php b/web/Modules/Minecraft/App/Filament/Resources/MinecraftServerResource.php index db6d061..6f4f3b9 100644 --- a/web/Modules/Minecraft/App/Filament/Resources/MinecraftServerResource.php +++ b/web/Modules/Minecraft/App/Filament/Resources/MinecraftServerResource.php @@ -25,7 +25,12 @@ class MinecraftServerResource extends Resource { return $form ->schema([ - // + + Forms\Components\TextInput::make('name') + ->label('Name') + ->placeholder('Enter the name of the server'), + + ]); } diff --git a/web/Modules/Minecraft/App/Models/MinecraftServer.php b/web/Modules/Minecraft/App/Models/MinecraftServer.php index f5d0e50..bba64ff 100644 --- a/web/Modules/Minecraft/App/Models/MinecraftServer.php +++ b/web/Modules/Minecraft/App/Models/MinecraftServer.php @@ -14,7 +14,9 @@ class MinecraftServer extends Model /** * The attributes that are mass assignable. */ - protected $fillable = []; + protected $fillable = [ + 'name', + ]; protected static function booted(): void @@ -33,6 +35,27 @@ class MinecraftServer extends Model static::creating(function ($model) { + $minectaftId = 1; + $findLastMinecraftServer = MinecraftServer::orderBy('id', 'desc')->first(); + if ($findLastMinecraftServer) { + $minectaftId = $findLastMinecraftServer->id + 1; + $model->name = 'Server #'.$minectaftId; + } else { + $model->name = 'Server #1'; + } + + $minecraftServersPath = '/home/minecraft/servers'; + $minecraftServerPath = $minecraftServersPath . '/'.$minectaftId; + shell_exec('mkdir -p '.$minecraftServerPath); + + $minecraftServerDocker = view('minecraft::actions.docker-compose', [ + 'id' => $minectaftId + ])->render(); + + file_put_contents($minecraftServerPath.'/docker-compose.yml', $minecraftServerDocker); + $docker = shell_exec('cd '.$minecraftServerPath.' && docker-compose up -d'); + + dd($docker); }); diff --git a/web/Modules/Minecraft/resources/views/actions/minecraft-docker-yaml.blade.php b/web/Modules/Minecraft/resources/views/actions/docker-compose.blade.php similarity index 76% rename from web/Modules/Minecraft/resources/views/actions/minecraft-docker-yaml.blade.php rename to web/Modules/Minecraft/resources/views/actions/docker-compose.blade.php index d8fc544..f8c0ab7 100644 --- a/web/Modules/Minecraft/resources/views/actions/minecraft-docker-yaml.blade.php +++ b/web/Modules/Minecraft/resources/views/actions/docker-compose.blade.php @@ -7,3 +7,5 @@ services: - "25565:25565" environment: EULA: "TRUE" + GAMEMODE: survival + DIFFICULTY: normal