mirror of
https://github.com/Deathgarden-Rebirth/Deathgarden_Rebirth-Rewrite.git
synced 2026-09-08 19:25:10 -05:00
Added new Admin Tool page to manage the different versions we need to control. These are:
- launcher version (updating launcher) - game version - content version (for catalog) - catalog version Also added checks that when the wrong content version you dont get a catalog until you update tha game. And added another check when queuing when using the wrong game version you dont get queued. (so that hunters on the wrong version cannot block the matchmaking)
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Http\Controllers\Api\Catalog;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Admin\Versioning\CurrentCatalogVersion;
|
||||
use App\Models\Game\CatalogItem;
|
||||
use Auth;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
@@ -16,6 +17,9 @@ class CatalogController extends Controller
|
||||
|
||||
public function getCatalog(string $catalogVersion): string
|
||||
{
|
||||
if($catalogVersion !== CurrentCatalogVersion::get()?->catalogVersion)
|
||||
abort(404);
|
||||
|
||||
return Storage::disk('local')->get('/catalog/catalog.json');
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
use App\Http\Responses\Api\Matchmaking\QueueResponse;
|
||||
use App\Models\Admin\Archive\ArchivedGame;
|
||||
use App\Models\Admin\Archive\ArchivedPlayerProgression;
|
||||
use App\Models\Admin\Versioning\CurrentGameVersion;
|
||||
use App\Models\Game\Matchmaking\Game;
|
||||
use App\Models\Game\Matchmaking\QueuedPlayer;
|
||||
use App\Models\User\User;
|
||||
@@ -37,6 +38,9 @@ public function getRegions()
|
||||
|
||||
public function queue(QueueRequest $request)
|
||||
{
|
||||
if($request->category !== CurrentGameVersion::get()?->gameVersion)
|
||||
abort(403, 'Too old mod version');
|
||||
|
||||
if($request->checkOnly)
|
||||
return json_encode($this->checkQueueStatus($request));
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Responses\Api\Statistics\OnlinePlayersResponse;
|
||||
use App\Models\Admin\LauncherMessage;
|
||||
use App\Models\Admin\Versioning\LauncherVersion;
|
||||
use App\Models\Game\Matchmaking\Game;
|
||||
use App\Models\Game\Matchmaking\QueuedPlayer;
|
||||
use DB;
|
||||
@@ -37,7 +38,7 @@ public function getOnlinePlayers() {
|
||||
}
|
||||
|
||||
public function getLauncherVersion(): ?string {
|
||||
return json_encode(config('app.launcher_version'));
|
||||
return json_encode(LauncherVersion::get()?->launcherVersion);
|
||||
}
|
||||
|
||||
public function getLauncherMessage(): ?string {
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Responses\TexResponse;
|
||||
use App\Models\Admin\Versioning\CurrentCatalogVersion;
|
||||
use App\Models\Admin\Versioning\CurrentContentVersion;
|
||||
use App\Models\Admin\Versioning\CurrentGameVersion;
|
||||
use Illuminate\Support\Facades\Request;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
@@ -37,15 +40,10 @@ public function getLatestClientData()
|
||||
|
||||
public function getLatestContentVersion(string $version)
|
||||
{
|
||||
$supportedVersion = match($version) {
|
||||
'0' => 'dev030',
|
||||
'2.0' => 'dev020',
|
||||
'2.2' => 'te-23ebf96c-27498-ue4-7172a3f5',
|
||||
'2.5' => 'te-40131b9e-33193-ue4-fbccc218',
|
||||
'3.0' => 'dev030',
|
||||
default => 'te-18f25613-36778-ue4-374f864b'
|
||||
};
|
||||
$currentVersion = CurrentContentVersion::get()?->contentVersion;
|
||||
if($currentVersion === $version)
|
||||
return ['LatestSupportedVersion' => CurrentCatalogVersion::get()?->catalogVersion];
|
||||
|
||||
return ['LatestSupportedVersion' => $supportedVersion];
|
||||
abort(404);
|
||||
}
|
||||
}
|
||||
@@ -30,6 +30,7 @@ final public static function getAllTools(): array
|
||||
return [
|
||||
GameNewsController::class,
|
||||
FileManagerController::class,
|
||||
VersioningController::class,
|
||||
LauncherMessageController::class,
|
||||
LogViewerController::class,
|
||||
UsersController::class,
|
||||
|
||||
66
dist/app/Http/Controllers/Web/Admin/Tools/VersioningController.php
vendored
Normal file
66
dist/app/Http/Controllers/Web/Admin/Tools/VersioningController.php
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web\Admin\Tools;
|
||||
|
||||
use App\Enums\Auth\Permissions;
|
||||
use App\Http\Requests\Api\Admin\Tools\SaveLauncherMessageRequest;
|
||||
use App\Http\Requests\Api\Admin\Tools\SaveVersioningRequest;
|
||||
use App\Models\Admin\LauncherMessage;
|
||||
use App\Models\Admin\Versioning\CurrentCatalogVersion;
|
||||
use App\Models\Admin\Versioning\CurrentContentVersion;
|
||||
use App\Models\Admin\Versioning\CurrentGameVersion;
|
||||
use App\Models\Admin\Versioning\LauncherVersion;
|
||||
use Session;
|
||||
|
||||
class VersioningController extends AdminToolController
|
||||
{
|
||||
protected static string $name = 'Versioning';
|
||||
|
||||
protected static string $description = 'Manage the Launcher & Game Versions.';
|
||||
protected static string $iconComponent = 'icons.arrow-left-right';
|
||||
|
||||
protected static Permissions $neededPermission = Permissions::FILE_UPLOAD;
|
||||
|
||||
public function index()
|
||||
{
|
||||
return view('admin.tools.versioning', [
|
||||
'message' => LauncherMessage::getMessage(),
|
||||
]);
|
||||
}
|
||||
|
||||
public function save(SaveVersioningRequest $request) {
|
||||
$errorMessage = '';
|
||||
$successMessage= '';
|
||||
|
||||
$success = (new CurrentGameVersion($request->gameVersion))->save();
|
||||
if($success === true)
|
||||
$successMessage .= "Game version saved\n\n";
|
||||
else
|
||||
$errorMessage .= "Game version saving failed: ' . $success\n\n";
|
||||
|
||||
$success = (new CurrentContentVersion($request->contentVersion))->save();
|
||||
if($success === true)
|
||||
$successMessage .= "Content version saved\n\n";
|
||||
else
|
||||
$errorMessage .= "Content version saving failed: ' . $success\n\n";
|
||||
|
||||
(new CurrentCatalogVersion($request->catalogVersion))->save();
|
||||
if($success === true)
|
||||
$successMessage .= "Catalog version saved\n\n";
|
||||
else
|
||||
$errorMessage .= "Catalog version saving failed: ' . $success\n\n";
|
||||
|
||||
(new LauncherVersion($request->launcherVersion))->save();
|
||||
if($success === true)
|
||||
$successMessage .= "Launcher version saved\n\n";
|
||||
else
|
||||
$errorMessage .= "Launcher version saving failed: ' . $success\n\n";
|
||||
|
||||
if($success !== '')
|
||||
Session::flash('alert-success', nl2br(trim($successMessage)));
|
||||
if($errorMessage !== '')
|
||||
Session::flash('alert-error', nl2br(trim($errorMessage)));
|
||||
|
||||
return back();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user