Add support for seeding nests and eggs
This commit is contained in:
parent
99aceaca38
commit
f8c89f8331
21 changed files with 862 additions and 18 deletions
99
database/seeds/NestSeeder.php
Normal file
99
database/seeds/NestSeeder.php
Normal file
|
@ -0,0 +1,99 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use Pterodactyl\Services\Nests\NestCreationService;
|
||||
use Pterodactyl\Contracts\Repository\NestRepositoryInterface;
|
||||
|
||||
class NestSeeder extends Seeder
|
||||
{
|
||||
/**
|
||||
* @var \Pterodactyl\Services\Nests\NestCreationService
|
||||
*/
|
||||
private $creationService;
|
||||
|
||||
/**
|
||||
* @var \Pterodactyl\Contracts\Repository\NestRepositoryInterface
|
||||
*/
|
||||
private $repository;
|
||||
|
||||
/**
|
||||
* MinecraftNestSeeder constructor.
|
||||
*
|
||||
* @param \Pterodactyl\Services\Nests\NestCreationService $creationService
|
||||
* @param \Pterodactyl\Contracts\Repository\NestRepositoryInterface $repository
|
||||
*/
|
||||
public function __construct(
|
||||
NestCreationService $creationService,
|
||||
NestRepositoryInterface $repository
|
||||
) {
|
||||
$this->creationService = $creationService;
|
||||
$this->repository = $repository;
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the seeder to add missing nests to the Panel.
|
||||
*
|
||||
* @throws \Pterodactyl\Exceptions\Model\DataValidationException
|
||||
*/
|
||||
public function run()
|
||||
{
|
||||
$items = $this->repository->findWhere([
|
||||
'author' => 'support@pterodactyl.io',
|
||||
])->keyBy('name')->toArray();
|
||||
|
||||
$this->createMinecraftNest(array_get($items, 'Minecraft'));
|
||||
$this->createSourceEngineNest(array_get($items, 'Source Engine'));
|
||||
$this->createVoiceServersNest(array_get($items, 'Voice Servers'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the Minecraft nest to be used later on.
|
||||
*
|
||||
* @param array|null $nest
|
||||
*
|
||||
* @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!',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the Source Engine Games nest to be used later on.
|
||||
*
|
||||
* @param array|null $nest
|
||||
*
|
||||
* @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.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the Source Engine Games nest to be used later on.
|
||||
*
|
||||
* @param array|null $nest
|
||||
*
|
||||
* @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.',
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
Reference in a new issue