misc_pterodactyl-panel/database/Seeders/NestSeeder.php
2022-10-23 20:15:11 -04:00

101 lines
3 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Pterodactyl\Models\Nest;
use Pterodactyl\Services\Nests\NestCreationService;
class NestSeeder extends Seeder
{
/**
* @var \Pterodactyl\Services\Nests\NestCreationService
*/
private $creationService;
/**
* NestSeeder constructor.
*/
public function __construct(NestCreationService $creationService)
{
$this->creationService = $creationService;
}
/**
* Run the seeder to add missing nests to the Panel.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
public function run()
{
$items = Nest::query()
->where('author', 'support@pterodactyl.io')
->get()
->keyBy('name')->toArray();
$this->createMinecraftNest(array_get($items, 'Minecraft'));
$this->createSourceEngineNest(array_get($items, 'Source Engine'));
$this->createVoiceServersNest(array_get($items, 'Voice Servers'));
$this->createRustNest(array_get($items, 'Rust'));
}
/**
* Create the Minecraft nest to be used later on.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
private function createMinecraftNest(array $nest = null)
{
if (is_null($nest)) {
$this->creationService->handle([
'name' => 'Minecraft',
'description' => 'Minecraft - the classic game from Mojang. With support for Vanilla MC, Spigot, and many others!',
], 'support@pterodactyl.io');
}
}
/**
* Create the Source Engine Games nest to be used later on.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
private function createSourceEngineNest(array $nest = null)
{
if (is_null($nest)) {
$this->creationService->handle([
'name' => 'Source Engine',
'description' => 'Includes support for most Source Dedicated Server games.',
], 'support@pterodactyl.io');
}
}
/**
* Create the Voice Servers nest to be used later on.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
private function createVoiceServersNest(array $nest = null)
{
if (is_null($nest)) {
$this->creationService->handle([
'name' => 'Voice Servers',
'description' => 'Voice servers such as Mumble and Teamspeak 3.',
], 'support@pterodactyl.io');
}
}
/**
* Create the Rust nest to be used later on.
*
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
*/
private function createRustNest(array $nest = null)
{
if (is_null($nest)) {
$this->creationService->handle([
'name' => 'Rust',
'description' => 'Rust - A game where you must fight to survive.',
], 'support@pterodactyl.io');
}
}
}