Added Credits page

This commit is contained in:
Vari
2024-08-24 23:20:27 +02:00
parent 5fc42a92d7
commit 54df6c63d6
9 changed files with 284 additions and 4 deletions

View File

@@ -4,6 +4,7 @@
use App\Http\Controllers\Controller;
use App\Models\GameFile;
use App\Models\User\User;
use Illuminate\Contracts\View\Factory;
use Illuminate\Contracts\View\View;
use Illuminate\Foundation\Application;
@@ -36,6 +37,12 @@ public function eula(): Factory|Application|View|\Illuminate\Contracts\Foundatio
return view('web.eula');
}
public function credits(): Factory|Application|View|\Illuminate\Contracts\Foundation\Application
{
static::setTitle('Deathgarden Rebirth | Credits');
return view('web.credits');
}
protected static function setTitle(string $title)
{
CompView::share('title', $title);

View File

@@ -23,7 +23,7 @@ public function __construct(
$this->profileUrl = 'https://steamcommunity.com/profiles/'.$user->steam_id;
}
public function avatarFull(): string
public function avatarFull(): ?string
{
return $this->user->avatar_full ?? $this->user->avatar_medium ?? $this->user->avatar_small;
}

View File

@@ -0,0 +1,34 @@
<?php
namespace App\View\Components\Web;
use App\Models\User\User;
use Closure;
use Illuminate\Contracts\View\View;
use Illuminate\View\Component;
class CreditsUser extends Component
{
public ?User $user = null;
/**
* Create a new component instance.
*/
public function __construct(
public int $userSteamId,
public string $headline = '',
public ?string $usernameOverride = null,
public ?string $avatarOverride = null,
)
{
$this->user = User::whereSteamId($this->userSteamId)->first(['last_known_username', 'avatar_medium']);
}
/**
* Get the view / contents that represent the component.
*/
public function render(): View|Closure|string
{
return view('components.web.credits-user');
}
}

190
dist/composer.lock generated vendored
View File

@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "c186cdac93b31b3043f2895b5e14e451",
"content-hash": "6432a6be066cf93e16ee61c034c1a7ae",
"packages": [
{
"name": "brick/math",
@@ -1235,6 +1235,58 @@
],
"time": "2023-10-27T10:59:02+00:00"
},
{
"name": "jaybizzle/crawler-detect",
"version": "v1.2.119",
"source": {
"type": "git",
"url": "https://github.com/JayBizzle/Crawler-Detect.git",
"reference": "275002e22b0333c15a7c6792fdae5d5deefc9ef0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/275002e22b0333c15a7c6792fdae5d5deefc9ef0",
"reference": "275002e22b0333c15a7c6792fdae5d5deefc9ef0",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "^4.8|^5.5|^6.5|^9.4"
},
"type": "library",
"autoload": {
"psr-4": {
"Jaybizzle\\CrawlerDetect\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Mark Beech",
"email": "m@rkbee.ch",
"role": "Developer"
}
],
"description": "CrawlerDetect is a PHP class for detecting bots/crawlers/spiders via the user agent",
"homepage": "https://github.com/JayBizzle/Crawler-Detect/",
"keywords": [
"crawler",
"crawler detect",
"crawler detector",
"crawlerdetect",
"php crawler detect"
],
"support": {
"issues": "https://github.com/JayBizzle/Crawler-Detect/issues",
"source": "https://github.com/JayBizzle/Crawler-Detect/tree/v1.2.119"
},
"time": "2024-06-07T07:58:43+00:00"
},
{
"name": "laminas/laminas-diactoros",
"version": "3.3.1",
@@ -2326,6 +2378,68 @@
},
"time": "2022-04-15T14:02:14+00:00"
},
{
"name": "mobiledetect/mobiledetectlib",
"version": "2.8.45",
"source": {
"type": "git",
"url": "https://github.com/serbanghita/Mobile-Detect.git",
"reference": "96aaebcf4f50d3d2692ab81d2c5132e425bca266"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/96aaebcf4f50d3d2692ab81d2c5132e425bca266",
"reference": "96aaebcf4f50d3d2692ab81d2c5132e425bca266",
"shasum": ""
},
"require": {
"php": ">=5.0.0"
},
"require-dev": {
"phpunit/phpunit": "~4.8.36"
},
"type": "library",
"autoload": {
"psr-0": {
"Detection": "namespaced/"
},
"classmap": [
"Mobile_Detect.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Serban Ghita",
"email": "serbanghita@gmail.com",
"homepage": "http://mobiledetect.net",
"role": "Developer"
}
],
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
"homepage": "https://github.com/serbanghita/Mobile-Detect",
"keywords": [
"detect mobile devices",
"mobile",
"mobile detect",
"mobile detector",
"php mobile detect"
],
"support": {
"issues": "https://github.com/serbanghita/Mobile-Detect/issues",
"source": "https://github.com/serbanghita/Mobile-Detect/tree/2.8.45"
},
"funding": [
{
"url": "https://github.com/serbanghita",
"type": "github"
}
],
"time": "2023-11-07T21:57:25+00:00"
},
{
"name": "monolog/monolog",
"version": "3.7.0",
@@ -3084,6 +3198,80 @@
},
"time": "2020-10-15T08:29:30+00:00"
},
{
"name": "phattarachai/laravel-mobile-detect",
"version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/phattarachai/laravel-mobile-detect.git",
"reference": "defbaf39dd5a514e6c7c15c11224e5d197e86dd2"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phattarachai/laravel-mobile-detect/zipball/defbaf39dd5a514e6c7c15c11224e5d197e86dd2",
"reference": "defbaf39dd5a514e6c7c15c11224e5d197e86dd2",
"shasum": ""
},
"require": {
"jaybizzle/crawler-detect": "^1.2",
"mobiledetect/mobiledetectlib": "^2.8.37",
"php": "^7.4|^8.0"
},
"require-dev": {
"php-coveralls/php-coveralls": "^v2.5.2",
"phpunit/phpunit": "^9.5.13"
},
"suggest": {
"illuminate/support": "Required for laravel service providers"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.0-dev"
},
"laravel": {
"providers": [
"Phattarachai\\LaravelMobileDetect\\AgentServiceProvider"
],
"aliases": {
"Agent": "Phattarachai\\LaravelMobileDetect\\Facades\\Agent"
}
}
},
"autoload": {
"psr-4": {
"Phattarachai\\LaravelMobileDetect\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Phattarachai Chaiimongkol",
"homepage": "https://phattarachai.dev"
}
],
"description": "Desktop/mobile user agent parser with support for Laravel, based on MobileDetect",
"homepage": "https://github.com/phattarachai/laravel-moibile-detect",
"keywords": [
"Agent",
"browser",
"desktop",
"laravel",
"mobile",
"platform",
"user agent",
"useragent"
],
"support": {
"issues": "https://github.com/phattarachai/laravel-mobile-detect/issues",
"source": "https://github.com/phattarachai/laravel-mobile-detect/tree/v1.0.2"
},
"abandoned": true,
"time": "2023-03-06T20:11:02+00:00"
},
{
"name": "phpoption/phpoption",
"version": "1.9.3",

View File

@@ -18,7 +18,7 @@ services:
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
IGNITION_LOCAL_SITES_PATH: '${PWD}'
PHP_IDE_CONFIG: 'serverName=Docker'
SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=frankenphp --host=0.0.0.0 --admin-port=2019 --port=80"
SUPERVISOR_PHP_COMMAND: "/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan octane:start --server=frankenphp --watch --host=0.0.0.0 --admin-port=2019 --port=80"
XDG_CONFIG_HOME: /var/www/html/config
XDG_DATA_HOME: /var/www/html/data
volumes:

View File

@@ -0,0 +1,22 @@
@php
/**
* @var ?\App\Models\User\User $user
* @var int $userSteamid
* @var string $headline
* @var ?string $usernameOverride
* @var ?string $avatarOverride
*/
@endphp
<div {{ $attributes->merge(['class' => 'bg-gray-900 px-4 py-4 rounded border border-gray-800 flex gap-4 items-start']) }}>
<div class="">
<img src="{{ $avatarOverride ?? $user?->avatar_medium }}" alt="Avatar" class="rounded-md mx-1">
</div>
<div>
<x-web.headline class="!mt-0">
{{ $usernameOverride ?? $user?->last_known_username }} - {{ $headline }}
</x-web.headline>
{{ $slot }}
</div>
</div>

View File

@@ -65,7 +65,7 @@ class="bg-slate-700 mx-4 p-2 rounded gap-4 flex justify-center outline outline-1
<span class="font-bold">EULA</span>
</x-web.sidebar.button>
<x-web.sidebar.button >
<x-web.sidebar.button href="{{ route('credits') }}">
<span class="font-bold">Credits</span>
</x-web.sidebar.button>

View File

@@ -0,0 +1,28 @@
<x-layouts.web>
<x-web.headline>
Credits
</x-web.headline>
<x-web.credits-user :userSteamId="76561198241289194" headline="Lead Programmer" class="my-4" />
<x-web.credits-user :userSteamId="76561198099304757" headline="Launcher Programmer" class="my-4" />
<x-web.credits-user :userSteamId="76561198197425749" headline="Project Manager" class="my-4" />
<x-web.credits-user :userSteamId="0" usernameOverride="ZKWolf" headline="Project Rebirth Founder" class="my-4">
<x-web.text>
Project Rebirth is not affiliated with Deathgarden Rebirth.<br>
Project Rebirths base code helped during the development of Deathgarden: Rebirth.
</x-web.text>
</x-web.credits-user>
<x-web.credits-user :userSteamId="76561198129051713" headline="Community Lead + Game Designer" class="my-4" />
<x-web.credits-user :userSteamId="76561198055429489" headline="Graphic Designer + Moderator" class="my-4" />
<x-web.credits-user :userSteamId="0" usernameOverride="RealDrSalt" headline="Moderator">
<x-web.text>
Special message
</x-web.text>
</x-web.credits-user>
<x-web.credits-user :userSteamId="76561198819204778" headline="Mod Manager + Moderator" class="my-4" />
<x-web.credits-user :userSteamId="76561198367459871" headline="Moderator" class="my-4" />
<x-web.credits-user :userSteamId="76561198808246076" headline="Moderator" class="my-4" />
</x-layouts.web>

1
dist/routes/web.php vendored
View File

@@ -38,6 +38,7 @@
Route::get('download', [HomepageController::class, 'download'])->name('download');
Route::get('how-to-play', [HomepageController::class, 'howToPlay'])->name('how-to-play');
Route::get('eula', [HomepageController::class, 'eula'])->name('eula');
Route::get('credits', [HomepageController::class, 'credits'])->name('credits');
Route::get('/', [HomepageController::class, 'index'])->name('homepage');
Route::middleware('verify_migration_key')->get('/migrate-database', function () {