Skip to content

Commit 0b93673

Browse files
YONN2222Boy132
andauthored
Add ability to ban players on Minecraft Java servers with PlayerCounter plugin (#109)
* Add ability to ban players from the players page on Minecraft Java servers * Add confirmation prompt to ban player action * cleanup --------- Co-authored-by: Boy132 <mail@boy132.de>
1 parent dc4c900 commit 0b93673

File tree

3 files changed

+35
-1
lines changed

3 files changed

+35
-1
lines changed

player-counter/lang/en/query.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
'unknown' => 'Unknown',
1515

1616
'kick' => 'Kick',
17+
'ban' => 'Ban',
1718

1819
'whitelisted' => 'Whitelisted',
1920
'add_to_whitelist' => 'Add to whitelist',
@@ -38,6 +39,9 @@
3839
'player_kicked' => 'Player kicked from server',
3940
'player_kick_failed' => 'Could not kick player',
4041

42+
'player_banned' => 'Player banned from server',
43+
'player_ban_failed' => 'Could not ban player',
44+
4145
'player_whitelist_add' => 'Player added to whitelist',
4246
'player_whitelist_remove' => 'Player removed from whitelist',
4347
'player_whitelist_failed' => 'Could not change whitelist',

player-counter/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
"xpaw/php-minecraft-query": "^5.0.0",
1919
"xpaw/php-source-query-class": "^5.0.0"
2020
}
21-
}
21+
}

player-counter/src/Filament/Server/Pages/PlayersPage.php

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,36 @@ public function table(Table $table): Table
193193
->send();
194194
}
195195
}),
196+
Action::make('exclude_ban')
197+
->visible(fn () => $isMinecraft)
198+
->label(trans('player-counter::query.ban'))
199+
->icon('tabler-hammer')
200+
->color('danger')
201+
->requiresConfirmation()
202+
->action(function (array $record) {
203+
/** @var Server $server */
204+
$server = Filament::getTenant();
205+
206+
try {
207+
$server->send('ban ' . $record['name']);
208+
209+
Notification::make()
210+
->title(trans('player-counter::query.notifications.player_banned'))
211+
->body($record['name'])
212+
->success()
213+
->send();
214+
215+
$this->refreshPage();
216+
} catch (Exception $exception) {
217+
report($exception);
218+
219+
Notification::make()
220+
->title(trans('player-counter::query.notifications.player_ban_failed'))
221+
->body($exception->getMessage())
222+
->danger()
223+
->send();
224+
}
225+
}),
196226
Action::make('exclude_whitelist')
197227
->visible(fn () => $isMinecraft)
198228
->label(fn (array $record) => in_array($record['name'], $whitelist) ? trans('player-counter::query.remove_from_whitelist') : trans('player-counter::query.add_to_whitelist'))

0 commit comments

Comments
 (0)