From 6fdb083809dfb2891a2d4c23226186329dc31566 Mon Sep 17 00:00:00 2001 From: xboard Date: Wed, 16 Jul 2025 00:08:30 +0800 Subject: [PATCH] feat(plugin hook): add client.subscribe.unavailable hook --- .../Controllers/V1/Client/ClientController.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/V1/Client/ClientController.php b/app/Http/Controllers/V1/Client/ClientController.php index 7bd810d..8747cac 100644 --- a/app/Http/Controllers/V1/Client/ClientController.php +++ b/app/Http/Controllers/V1/Client/ClientController.php @@ -44,7 +44,18 @@ class ClientController extends Controller $userService = new UserService(); if (!$userService->isAvailable($user)) { - return response()->json(['message' => 'Account unavailable'], 403); + HookManager::call('client.subscribe.unavailable'); + return response('', 200, ['Content-Type' => 'text/plain']); + } + + return $this->doSubscribe($request, $user); + } + + public function doSubscribe(Request $request, $user, $servers = null) + { + if ($servers === null) { + $servers = ServerService::getAvailableServers($user); + $servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request); } $clientInfo = $this->getClientInfo($request); @@ -55,9 +66,6 @@ class ClientController extends Controller $protocolClassName = app('protocols.manager')->matchProtocolClassName($clientInfo['flag']) ?? General::class; - $servers = ServerService::getAvailableServers($user); - $servers = HookManager::filter('client.subscribe.servers', $servers, $user, $request); - $serversFiltered = $this->filterServers( servers: $servers, allowedTypes: $requestedTypes,