Skip to content

Commit 0381a15

Browse files
committed
add setting to enable mclogs uploader only for minecraft eggs
closes #51
1 parent 63fbf12 commit 0381a15

File tree

4 files changed

+49
-1
lines changed

4 files changed

+49
-1
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?php
2+
3+
return [
4+
'only_minecraft_eggs' => env('MCLOGS_UPLOADER_ONLY_MINECRAFT_EGGS', false),
5+
];

mclogs-uploader/lang/en/upload.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,11 @@
44
'upload_logs' => 'Upload logs',
55
'uploaded' => 'Console logs uploaded',
66
'upload_failed' => 'Could not upload logs',
7+
8+
'only_minecraft_eggs' => 'Only for Minecraft eggs?',
9+
'only_minecraft_eggs_hint' => 'If enabled the button to upload logs will only be displayed on eggs that have the "minecraft" tag.',
10+
11+
'notifications' => [
12+
'settings_saved' => 'Settings saved',
13+
],
714
];

mclogs-uploader/src/Filament/Components/Actions/UploadLogsAction.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,12 @@ protected function setUp(): void
2525
/** @var Server $server */
2626
$server = Filament::getTenant();
2727

28+
if (config('mclogs-uploader.only_minecraft_eggs')) {
29+
if (!in_array('minecraft', $server->egg->tags ?? [])) {
30+
return true;
31+
}
32+
}
33+
2834
return $server->retrieveStatus()->isOffline();
2935
});
3036

mclogs-uploader/src/MclogsUploaderPlugin.php

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,17 @@
22

33
namespace Boy132\MclogsUploader;
44

5+
use App\Contracts\Plugins\HasPluginSettings;
6+
use App\Traits\EnvironmentWriterTrait;
57
use Filament\Contracts\Plugin;
8+
use Filament\Forms\Components\Toggle;
9+
use Filament\Notifications\Notification;
610
use Filament\Panel;
711

8-
class MclogsUploaderPlugin implements Plugin
12+
class MclogsUploaderPlugin implements HasPluginSettings, Plugin
913
{
14+
use EnvironmentWriterTrait;
15+
1016
public function getId(): string
1117
{
1218
return 'mclogs-uploader';
@@ -15,4 +21,28 @@ public function getId(): string
1521
public function register(Panel $panel): void {}
1622

1723
public function boot(Panel $panel): void {}
24+
25+
public function getSettingsForm(): array
26+
{
27+
return [
28+
Toggle::make('only_minecraft_eggs')
29+
->label(trans('mclogs-uploader::upload.only_minecraft_eggs'))
30+
->hintIcon('tabler-question-mark')
31+
->hintIconTooltip(trans('mclogs-uploader::upload.only_minecraft_eggs_hint'))
32+
->inline(false)
33+
->default(fn () => config('mclogs-uploader.only_minecraft_eggs')),
34+
];
35+
}
36+
37+
public function saveSettings(array $data): void
38+
{
39+
$this->writeToEnvironment([
40+
'MCLOGS_UPLOADER_ONLY_MINECRAFT_EGGS' => $data['only_minecraft_eggs'],
41+
]);
42+
43+
Notification::make()
44+
->title(trans('mclogs-uploader::upload.notifications.settings_saved'))
45+
->success()
46+
->send();
47+
}
1848
}

0 commit comments

Comments
 (0)