88use Pterodactyl \Models \Server ;
99use Illuminate \Http \JsonResponse ;
1010use GuzzleHttp \Exception \TransferException ;
11+ use Pterodactyl \Repositories \Wings \DaemonFileRepository ;
1112use Pterodactyl \Transformers \Daemon \FileObjectTransformer ;
1213use Illuminate \Contracts \Cache \Repository as CacheRepository ;
13- use Illuminate \Contracts \Config \Repository as ConfigRepository ;
1414use Pterodactyl \Http \Controllers \Api \Client \ClientApiController ;
15- use Pterodactyl \Contracts \Repository \Daemon \FileRepositoryInterface ;
1615use Pterodactyl \Exceptions \Http \Connection \DaemonConnectionException ;
1716use Pterodactyl \Http \Requests \Api \Client \Servers \Files \CopyFileRequest ;
1817use Pterodactyl \Http \Requests \Api \Client \Servers \Files \ListFilesRequest ;
@@ -31,44 +30,38 @@ class FileController extends ClientApiController
3130 private $ cache ;
3231
3332 /**
34- * @var \Illuminate\Contracts\Config\Repository
35- */
36- private $ config ;
37-
38- /**
39- * @var \Pterodactyl\Contracts\Repository\Daemon\FileRepositoryInterface
33+ * @var \Pterodactyl\Repositories\Wings\DaemonFileRepository
4034 */
4135 private $ fileRepository ;
4236
4337 /**
4438 * FileController constructor.
4539 *
46- * @param \Illuminate\Contracts\Config\Repository $config
47- * @param \Pterodactyl\Contracts\Repository\Daemon\FileRepositoryInterface $fileRepository
40+ * @param \Pterodactyl\Repositories\Wings\DaemonFileRepository $fileRepository
4841 * @param \Illuminate\Contracts\Cache\Repository $cache
4942 */
50- public function __construct (ConfigRepository $ config , FileRepositoryInterface $ fileRepository , CacheRepository $ cache )
43+ public function __construct (DaemonFileRepository $ fileRepository , CacheRepository $ cache )
5144 {
5245 parent ::__construct ();
5346
5447 $ this ->cache = $ cache ;
55- $ this ->config = $ config ;
5648 $ this ->fileRepository = $ fileRepository ;
5749 }
5850
5951 /**
6052 * Returns a listing of files in a given directory.
6153 *
6254 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\ListFilesRequest $request
55+ * @param \Pterodactyl\Models\Server $server
6356 * @return array
6457 *
6558 * @throws \Pterodactyl\Exceptions\Http\Connection\DaemonConnectionException
6659 */
67- public function listDirectory (ListFilesRequest $ request ): array
60+ public function listDirectory (ListFilesRequest $ request, Server $ server ): array
6861 {
6962 try {
7063 $ contents = $ this ->fileRepository
71- ->setServer ($ request -> getModel (Server::class) )
64+ ->setServer ($ server )
7265 ->getDirectory ($ request ->get ('directory ' ) ?? '/ ' );
7366 } catch (TransferException $ exception ) {
7467 throw new DaemonConnectionException ($ exception , true );
@@ -83,13 +76,15 @@ public function listDirectory(ListFilesRequest $request): array
8376 * Return the contents of a specified file for the user.
8477 *
8578 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\GetFileContentsRequest $request
79+ * @param \Pterodactyl\Models\Server $server
8680 * @return \Illuminate\Http\Response
81+ * @throws \Pterodactyl\Exceptions\Http\Server\FileSizeTooLargeException
8782 */
88- public function getFileContents (GetFileContentsRequest $ request ): Response
83+ public function getFileContents (GetFileContentsRequest $ request, Server $ server ): Response
8984 {
9085 return Response::create (
91- $ this ->fileRepository ->setServer ($ request -> getModel (Server::class) )->getContent (
92- $ request ->get ('file ' ), $ this -> config -> get ('pterodactyl.files.max_edit_size ' )
86+ $ this ->fileRepository ->setServer ($ server )->getContent (
87+ $ request ->get ('file ' ), config ('pterodactyl.files.max_edit_size ' )
9388 )
9489 );
9590 }
@@ -98,11 +93,12 @@ public function getFileContents(GetFileContentsRequest $request): Response
9893 * Writes the contents of the specified file to the server.
9994 *
10095 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\WriteFileContentRequest $request
96+ * @param \Pterodactyl\Models\Server $server
10197 * @return \Illuminate\Http\Response
10298 */
103- public function writeFileContents (WriteFileContentRequest $ request ): Response
99+ public function writeFileContents (WriteFileContentRequest $ request, Server $ server ): Response
104100 {
105- $ this ->fileRepository ->setServer ($ request -> getModel (Server::class) )->putContent (
101+ $ this ->fileRepository ->setServer ($ server )->putContent (
106102 $ request ->get ('file ' ),
107103 $ request ->getContent ()
108104 );
@@ -114,12 +110,13 @@ public function writeFileContents(WriteFileContentRequest $request): Response
114110 * Creates a new folder on the server.
115111 *
116112 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\CreateFolderRequest $request
113+ * @param \Pterodactyl\Models\Server $server
117114 * @return \Illuminate\Http\Response
118115 */
119- public function createFolder (CreateFolderRequest $ request ): Response
116+ public function createFolder (CreateFolderRequest $ request, Server $ server ): Response
120117 {
121118 $ this ->fileRepository
122- ->setServer ($ request -> getModel (Server::class) )
119+ ->setServer ($ server )
123120 ->createDirectory ($ request ->input ('name ' ), $ request ->input ('directory ' , '/ ' ));
124121
125122 return Response::create ('' , Response::HTTP_NO_CONTENT );
@@ -129,12 +126,13 @@ public function createFolder(CreateFolderRequest $request): Response
129126 * Renames a file on the remote machine.
130127 *
131128 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\RenameFileRequest $request
129+ * @param \Pterodactyl\Models\Server $server
132130 * @return \Illuminate\Http\Response
133131 */
134- public function renameFile (RenameFileRequest $ request ): Response
132+ public function renameFile (RenameFileRequest $ request, Server $ server ): Response
135133 {
136134 $ this ->fileRepository
137- ->setServer ($ request -> getModel (Server::class) )
135+ ->setServer ($ server )
138136 ->renameFile ($ request ->input ('rename_from ' ), $ request ->input ('rename_to ' ));
139137
140138 return Response::create ('' , Response::HTTP_NO_CONTENT );
@@ -144,12 +142,13 @@ public function renameFile(RenameFileRequest $request): Response
144142 * Copies a file on the server.
145143 *
146144 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\CopyFileRequest $request
145+ * @param \Pterodactyl\Models\Server $server
147146 * @return \Illuminate\Http\Response
148147 */
149- public function copyFile (CopyFileRequest $ request ): Response
148+ public function copyFile (CopyFileRequest $ request, Server $ server ): Response
150149 {
151150 $ this ->fileRepository
152- ->setServer ($ request -> getModel (Server::class) )
151+ ->setServer ($ server )
153152 ->copyFile ($ request ->input ('location ' ));
154153
155154 return Response::create ('' , Response::HTTP_NO_CONTENT );
@@ -159,12 +158,13 @@ public function copyFile(CopyFileRequest $request): Response
159158 * Deletes a file or folder from the server.
160159 *
161160 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\DeleteFileRequest $request
161+ * @param \Pterodactyl\Models\Server $server
162162 * @return \Illuminate\Http\Response
163163 */
164- public function delete (DeleteFileRequest $ request ): Response
164+ public function delete (DeleteFileRequest $ request, Server $ server ): Response
165165 {
166166 $ this ->fileRepository
167- ->setServer ($ request -> getModel (Server::class) )
167+ ->setServer ($ server )
168168 ->deleteFile ($ request ->input ('location ' ));
169169
170170 return Response::create ('' , Response::HTTP_NO_CONTENT );
@@ -178,13 +178,12 @@ public function delete(DeleteFileRequest $request): Response
178178 * Returns the token that needs to be used when downloading the file.
179179 *
180180 * @param \Pterodactyl\Http\Requests\Api\Client\Servers\Files\DownloadFileRequest $request
181+ * @param \Pterodactyl\Models\Server $server
181182 * @return \Illuminate\Http\JsonResponse
182183 * @throws \Exception
183184 */
184- public function download (DownloadFileRequest $ request ): JsonResponse
185+ public function download (DownloadFileRequest $ request, Server $ server ): JsonResponse
185186 {
186- /** @var \Pterodactyl\Models\Server $server */
187- $ server = $ request ->getModel (Server::class);
188187 $ token = Uuid::uuid4 ()->toString ();
189188
190189 $ this ->cache ->put (
0 commit comments