From 1668ce64015eaa056bbbb97d5227be7707033496 Mon Sep 17 00:00:00 2001 From: Yonn Date: Thu, 19 Feb 2026 16:56:05 +0100 Subject: [PATCH 1/3] Add ability to ban players from the players page on Minecraft Java servers --- player-counter/lang/en/query.php | 4 +++ player-counter/plugin.json | 2 +- .../src/Filament/Server/Pages/PlayersPage.php | 25 +++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/player-counter/lang/en/query.php b/player-counter/lang/en/query.php index 54502a4b..84f1ae46 100644 --- a/player-counter/lang/en/query.php +++ b/player-counter/lang/en/query.php @@ -14,6 +14,7 @@ 'unknown' => 'Unknown', 'kick' => 'Kick', + 'ban' => 'Ban', 'whitelisted' => 'Whitelisted', 'add_to_whitelist' => 'Add to whitelist', @@ -38,6 +39,9 @@ 'player_kicked' => 'Player kicked from server', 'player_kick_failed' => 'Could not kick player', + 'player_banned' => 'Player banned from server', + 'player_ban_failed' => 'Could not ban player', + 'player_whitelist_add' => 'Player added to whitelist', 'player_whitelist_remove' => 'Player removed from whitelist', 'player_whitelist_failed' => 'Could not change whitelist', diff --git a/player-counter/plugin.json b/player-counter/plugin.json index 1e8ad72a..6ac9bb4b 100644 --- a/player-counter/plugin.json +++ b/player-counter/plugin.json @@ -2,7 +2,7 @@ "id": "player-counter", "name": "Player Counter", "author": "Boy132", - "version": "1.0.0", + "version": "1.0.1", "description": "Show the amount of connected players to the server", "category": "plugin", "url": "https://github.com/pelican-dev/plugins/tree/main/player-counter", diff --git a/player-counter/src/Filament/Server/Pages/PlayersPage.php b/player-counter/src/Filament/Server/Pages/PlayersPage.php index 279474a7..2fb307e1 100644 --- a/player-counter/src/Filament/Server/Pages/PlayersPage.php +++ b/player-counter/src/Filament/Server/Pages/PlayersPage.php @@ -193,6 +193,31 @@ public function table(Table $table): Table ->send(); } }), + Action::make('exclude_ban') + ->visible(fn () => $isMinecraft) + ->label(trans('player-counter::query.ban')) + ->icon('tabler-hammer') + ->color('danger') + ->action(function (array $record) { + /** @var Server $server */ + $server = Filament::getTenant(); + try { + $server->send('ban ' . $record['name']); + Notification::make() + ->title(trans('player-counter::query.notifications.player_banned')) + ->body($record['name']) + ->success() + ->send(); + $this->refreshPage(); + } catch (Exception $exception) { + report($exception); + Notification::make() + ->title(trans('player-counter::query.notifications.player_ban_failed')) + ->body($exception->getMessage()) + ->danger() + ->send(); + } + }), Action::make('exclude_whitelist') ->visible(fn () => $isMinecraft) ->label(fn (array $record) => in_array($record['name'], $whitelist) ? trans('player-counter::query.remove_from_whitelist') : trans('player-counter::query.add_to_whitelist')) From de1d02ee97b01891d9fb5786b6c7fb4e39d252b5 Mon Sep 17 00:00:00 2001 From: Yonn Date: Thu, 19 Feb 2026 17:13:48 +0100 Subject: [PATCH 2/3] Add confirmation prompt to ban player action --- player-counter/src/Filament/Server/Pages/PlayersPage.php | 1 + 1 file changed, 1 insertion(+) diff --git a/player-counter/src/Filament/Server/Pages/PlayersPage.php b/player-counter/src/Filament/Server/Pages/PlayersPage.php index 2fb307e1..d3423da3 100644 --- a/player-counter/src/Filament/Server/Pages/PlayersPage.php +++ b/player-counter/src/Filament/Server/Pages/PlayersPage.php @@ -198,6 +198,7 @@ public function table(Table $table): Table ->label(trans('player-counter::query.ban')) ->icon('tabler-hammer') ->color('danger') + ->requiresConfirmation() ->action(function (array $record) { /** @var Server $server */ $server = Filament::getTenant(); From fa78b641a31d4e4c3bef4ffe36ef5ccb462f74d3 Mon Sep 17 00:00:00 2001 From: Boy132 Date: Fri, 20 Feb 2026 09:14:49 +0100 Subject: [PATCH 3/3] cleanup --- player-counter/plugin.json | 4 ++-- player-counter/src/Filament/Server/Pages/PlayersPage.php | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/player-counter/plugin.json b/player-counter/plugin.json index 6ac9bb4b..20fedb77 100644 --- a/player-counter/plugin.json +++ b/player-counter/plugin.json @@ -2,7 +2,7 @@ "id": "player-counter", "name": "Player Counter", "author": "Boy132", - "version": "1.0.1", + "version": "1.0.0", "description": "Show the amount of connected players to the server", "category": "plugin", "url": "https://github.com/pelican-dev/plugins/tree/main/player-counter", @@ -18,4 +18,4 @@ "xpaw/php-minecraft-query": "^5.0.0", "xpaw/php-source-query-class": "^5.0.0" } -} \ No newline at end of file +} diff --git a/player-counter/src/Filament/Server/Pages/PlayersPage.php b/player-counter/src/Filament/Server/Pages/PlayersPage.php index d3423da3..b2ed1780 100644 --- a/player-counter/src/Filament/Server/Pages/PlayersPage.php +++ b/player-counter/src/Filament/Server/Pages/PlayersPage.php @@ -202,16 +202,20 @@ public function table(Table $table): Table ->action(function (array $record) { /** @var Server $server */ $server = Filament::getTenant(); + try { $server->send('ban ' . $record['name']); + Notification::make() ->title(trans('player-counter::query.notifications.player_banned')) ->body($record['name']) ->success() ->send(); + $this->refreshPage(); } catch (Exception $exception) { report($exception); + Notification::make() ->title(trans('player-counter::query.notifications.player_ban_failed')) ->body($exception->getMessage())