diff --git a/tests/Unit/Client/CurseForgeAPIClientTest.php b/tests/Unit/Client/CurseForgeAPIClientTest.php
index 3520e7c..29252b3 100644
--- a/tests/Unit/Client/CurseForgeAPIClientTest.php
+++ b/tests/Unit/Client/CurseForgeAPIClientTest.php
@@ -4,15 +4,19 @@
use Aternos\CurseForgeApi\ApiException;
use Aternos\CurseForgeApi\Client\Category;
+use Aternos\CurseForgeApi\Client\File;
use Aternos\CurseForgeApi\Client\Game;
use Aternos\CurseForgeApi\Client\GameVersionType;
use Aternos\CurseForgeApi\Client\Mod;
+use Aternos\CurseForgeApi\Client\Options\ModFilesOptions;
use Aternos\CurseForgeApi\Client\Options\ModSearchOptions;
use Aternos\CurseForgeApi\Configuration;
+use Aternos\CurseForgeApi\Model\FileReleaseType;
use Aternos\CurseForgeApi\Model\GameVersion;
use Aternos\CurseForgeApi\Model\GameVersionsByTypeV2;
use Aternos\CurseForgeApi\Model\ModLoaderType;
use Aternos\CurseForgeApi\Model\ModSearchSortField;
+use Aternos\CurseForgeApi\Model\PlatformType;
use Aternos\CurseForgeApi\Model\PremiumType;
use Aternos\CurseForgeApi\Model\SortOrder;
use GuzzleHttp\Client;
@@ -435,4 +439,140 @@ public function testGetModDescriptionWithLanguage(): void
$this->assertGetRequest("/v1/mods/420561/description", ["lang" => "de"]);
}
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFiles(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFiles.json"))]);
+
+ $files = $client->getModFiles(new ModFilesOptions(420561));
+
+ $this->assertGetRequest("/v1/mods/420561/files", ["index" => "0", "pageSize" => "50"]);
+ $this->assertSame(["index", "pageSize"], array_keys($this->getQuery()));
+ $this->assertCount(2, $files);
+ $this->assertContainsOnlyInstancesOf(File::class, $files->getResults());
+ $this->assertSame(117, $files->getPagination()->getTotalCount());
+ $this->assertSame("mclogs-neoforge-26.1-3.3.4.jar", $files[0]->getData()->getFileName());
+ $this->assertSame("mclogs-fabric-26.1-3.3.4.jar", $files[1]->getData()->getFileName());
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFilesSendsAllOptions(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFiles.json"))]);
+ $options = (new ModFilesOptions(420561, 10, 20))
+ ->setGameVersion("1.21.1")
+ ->setModLoaderType(ModLoaderType::FABRIC)
+ ->setGameVersionTypeId(77784)
+ ->setOlderThanProjectFileId(8946029)
+ ->setReleaseTypes([FileReleaseType::RELEASE, FileReleaseType::BETA])
+ ->setPlatformType(PlatformType::WINDOWS)
+ ->setClientCompatible(true);
+
+ $client->getModFiles($options);
+
+ $this->assertGetRequest("/v1/mods/420561/files", [
+ "index" => "10",
+ "pageSize" => "20",
+ "gameVersion" => "1.21.1",
+ "modLoaderType" => "4",
+ "gameVersionTypeId" => "77784",
+ "olderThanProjectFileId" => "8946029",
+ "releaseTypes" => ["1", "2"],
+ "platformType" => "1",
+ "clientCompatible" => "true",
+ ]);
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFilesNextPageKeepsOptions(): void
+ {
+ $client = $this->createClient([
+ new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFiles.json")),
+ new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFiles.json")),
+ ]);
+
+ $files = $client->getModFiles((new ModFilesOptions(420561, 0, 2))->setGameVersion("1.21.1"));
+ $files->getNextPage();
+
+ $this->assertGetRequest("/v1/mods/420561/files", ["index" => "2", "pageSize" => "2", "gameVersion" => "1.21.1"], 1);
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFile(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFile.json"))]);
+
+ $file = $client->getModFile(420561, 8946029);
+
+ $this->assertGetRequest("/v1/mods/420561/files/8946029");
+ $this->assertSame(8946029, $file->getData()->getId());
+ $this->assertSame(420561, $file->getData()->getModId());
+ $this->assertSame("mclogs-integration 3.3.4", $file->getData()->getDisplayName());
+ $this->assertSame("mclogs-neoforge-26.1-3.3.4.jar", $file->getData()->getFileName());
+ $this->assertSame(FileReleaseType::RELEASE, $file->getData()->getReleaseType());
+ $this->assertSame(317339, $file->getData()->getFileLength());
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetFiles(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getFiles.json"))]);
+
+ $files = $client->getFiles([8946029, 8946028]);
+
+ $this->assertPostRequest("/v1/mods/files", ["fileIds" => [8946029, 8946028]]);
+ $this->assertCount(2, $files);
+ $this->assertContainsOnlyInstancesOf(File::class, $files);
+ $this->assertSame([8946029, 8946028], array_map(fn(File $file) => $file->getData()->getId(), $files));
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFileChangelog(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFileChangelog.json"))]);
+
+ $changelog = $client->getModFileChangelog(420561, 8946029);
+
+ $this->assertGetRequest("/v1/mods/420561/files/8946029/changelog");
+ $this->assertSame([], $this->getQuery());
+ $this->assertSame("
\n", $changelog);
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFileChangelogWithOptions(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFileChangelog.json"))]);
+
+ $client->getModFileChangelog(420561, 8946029, true, false, true);
+
+ $this->assertGetRequest("/v1/mods/420561/files/8946029/changelog", ["raw" => "true", "stripped" => "false", "markup" => "true"]);
+ }
+
+ /**
+ * @throws ApiException
+ */
+ public function testGetModFileDownloadURL(): void
+ {
+ $client = $this->createClient([new Response(200, [], file_get_contents(__DIR__ . "/Fixtures/getModFileDownloadURL.json"))]);
+
+ $url = $client->getModFileDownloadURL(420561, 8946029);
+
+ $this->assertGetRequest("/v1/mods/420561/files/8946029/download-url");
+ $this->assertSame("https://edge.forgecdn.net/files/8946/29/mclogs-neoforge-26.1-3.3.4.jar", $url);
+ }
}
diff --git a/tests/Unit/Client/Fixtures/getFiles.json b/tests/Unit/Client/Fixtures/getFiles.json
new file mode 100644
index 0000000..600e20f
--- /dev/null
+++ b/tests/Unit/Client/Fixtures/getFiles.json
@@ -0,0 +1,243 @@
+{
+ "data": [
+ {
+ "id": 8946029,
+ "gameId": 432,
+ "modId": 420561,
+ "isAvailable": true,
+ "displayName": "mclogs-integration 3.3.4",
+ "fileName": "mclogs-neoforge-26.1-3.3.4.jar",
+ "releaseType": 1,
+ "fileStatus": 4,
+ "hashes": [
+ {
+ "value": "8b7833e7a63352c697bceac5ca29a80bf2ffbb31",
+ "algo": 1
+ },
+ {
+ "value": "c5b26ce87cbcb04c0eae7e5d6e153e92",
+ "algo": 2
+ }
+ ],
+ "fileDate": "2026-09-22T09:44:53.913Z",
+ "fileLength": 317339,
+ "downloadCount": 8,
+ "fileSizeOnDisk": 440958,
+ "downloadUrl": "https://edge.forgecdn.net/files/8946/29/mclogs-neoforge-26.1-3.3.4.jar",
+ "gameVersions": [
+ "Client",
+ "NeoForge",
+ "Server",
+ "26.1",
+ "26.1.1",
+ "26.1.2",
+ "26.2",
+ "26.3"
+ ],
+ "sortableGameVersions": [
+ {
+ "gameVersionName": "Client",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "NeoForge",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2023-07-25T00:00:00Z",
+ "gameVersionTypeId": 68441
+ },
+ {
+ "gameVersionName": "Server",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "26.1",
+ "gameVersionPadded": "0000000026.0000000001",
+ "gameVersion": "26.1",
+ "gameVersionReleaseDate": "2026-03-24T16:40:19.29Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.1",
+ "gameVersionPadded": "0000000026.0000000001.0000000001",
+ "gameVersion": "26.1.1",
+ "gameVersionReleaseDate": "2026-04-01T11:40:06.78Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.2",
+ "gameVersionPadded": "0000000026.0000000001.0000000002",
+ "gameVersion": "26.1.2",
+ "gameVersionReleaseDate": "2026-04-09T11:39:54.243Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.2",
+ "gameVersionPadded": "0000000026.0000000002",
+ "gameVersion": "26.2",
+ "gameVersionReleaseDate": "2026-06-16T15:39:22.26Z",
+ "gameVersionTypeId": 86297
+ },
+ {
+ "gameVersionName": "26.3",
+ "gameVersionPadded": "0000000026.0000000003",
+ "gameVersion": "26.3",
+ "gameVersionReleaseDate": "2026-09-15T15:46:48.187Z",
+ "gameVersionTypeId": 88556
+ }
+ ],
+ "dependencies": [],
+ "alternateFileId": 0,
+ "isServerPack": false,
+ "fileFingerprint": 3750113338,
+ "modules": [
+ {
+ "name": "META-INF",
+ "fingerprint": 4071606703
+ },
+ {
+ "name": "gs",
+ "fingerprint": 3870032045
+ },
+ {
+ "name": "pack.mcmeta",
+ "fingerprint": 845577715
+ },
+ {
+ "name": "assets",
+ "fingerprint": 2304246846
+ }
+ ]
+ },
+ {
+ "id": 8946028,
+ "gameId": 432,
+ "modId": 420561,
+ "isAvailable": true,
+ "displayName": "mclogs-integration 3.3.4",
+ "fileName": "mclogs-fabric-26.1-3.3.4.jar",
+ "releaseType": 1,
+ "fileStatus": 4,
+ "hashes": [
+ {
+ "value": "2d8e1836174d52dd3d985a2ceb672750578f8ee6",
+ "algo": 1
+ },
+ {
+ "value": "f64758f2e909f77b632672b98e802fd6",
+ "algo": 2
+ }
+ ],
+ "fileDate": "2026-09-22T09:44:53.427Z",
+ "fileLength": 697989,
+ "downloadCount": 12,
+ "fileSizeOnDisk": 873760,
+ "downloadUrl": "https://edge.forgecdn.net/files/8946/28/mclogs-fabric-26.1-3.3.4.jar",
+ "gameVersions": [
+ "Client",
+ "Fabric",
+ "Server",
+ "26.1",
+ "26.1.1",
+ "26.1.2",
+ "26.2",
+ "26.3"
+ ],
+ "sortableGameVersions": [
+ {
+ "gameVersionName": "Client",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "Fabric",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-09-01T00:00:00Z",
+ "gameVersionTypeId": 68441
+ },
+ {
+ "gameVersionName": "Server",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "26.1",
+ "gameVersionPadded": "0000000026.0000000001",
+ "gameVersion": "26.1",
+ "gameVersionReleaseDate": "2026-03-24T16:40:19.29Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.1",
+ "gameVersionPadded": "0000000026.0000000001.0000000001",
+ "gameVersion": "26.1.1",
+ "gameVersionReleaseDate": "2026-04-01T11:40:06.78Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.2",
+ "gameVersionPadded": "0000000026.0000000001.0000000002",
+ "gameVersion": "26.1.2",
+ "gameVersionReleaseDate": "2026-04-09T11:39:54.243Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.2",
+ "gameVersionPadded": "0000000026.0000000002",
+ "gameVersion": "26.2",
+ "gameVersionReleaseDate": "2026-06-16T15:39:22.26Z",
+ "gameVersionTypeId": 86297
+ },
+ {
+ "gameVersionName": "26.3",
+ "gameVersionPadded": "0000000026.0000000003",
+ "gameVersion": "26.3",
+ "gameVersionReleaseDate": "2026-09-15T15:46:48.187Z",
+ "gameVersionTypeId": 88556
+ }
+ ],
+ "dependencies": [
+ {
+ "modId": 306612,
+ "relationType": 3
+ }
+ ],
+ "alternateFileId": 0,
+ "isServerPack": false,
+ "fileFingerprint": 2407613531,
+ "modules": [
+ {
+ "name": "META-INF",
+ "fingerprint": 191245894
+ },
+ {
+ "name": "gs",
+ "fingerprint": 3759374645
+ },
+ {
+ "name": "fabric.mod.json",
+ "fingerprint": 1077561078
+ },
+ {
+ "name": "pack.mcmeta",
+ "fingerprint": 845577715
+ },
+ {
+ "name": "assets",
+ "fingerprint": 2304246846
+ }
+ ]
+ }
+ ]
+}
diff --git a/tests/Unit/Client/Fixtures/getModFile.json b/tests/Unit/Client/Fixtures/getModFile.json
new file mode 100644
index 0000000..7344b94
--- /dev/null
+++ b/tests/Unit/Client/Fixtures/getModFile.json
@@ -0,0 +1,117 @@
+{
+ "data": {
+ "id": 8946029,
+ "gameId": 432,
+ "modId": 420561,
+ "isAvailable": true,
+ "displayName": "mclogs-integration 3.3.4",
+ "fileName": "mclogs-neoforge-26.1-3.3.4.jar",
+ "releaseType": 1,
+ "fileStatus": 4,
+ "hashes": [
+ {
+ "value": "8b7833e7a63352c697bceac5ca29a80bf2ffbb31",
+ "algo": 1
+ },
+ {
+ "value": "c5b26ce87cbcb04c0eae7e5d6e153e92",
+ "algo": 2
+ }
+ ],
+ "fileDate": "2026-09-22T09:44:53.913Z",
+ "fileLength": 317339,
+ "downloadCount": 8,
+ "fileSizeOnDisk": 440958,
+ "downloadUrl": "https://edge.forgecdn.net/files/8946/29/mclogs-neoforge-26.1-3.3.4.jar",
+ "gameVersions": [
+ "Client",
+ "NeoForge",
+ "Server",
+ "26.1",
+ "26.1.1",
+ "26.1.2",
+ "26.2",
+ "26.3"
+ ],
+ "sortableGameVersions": [
+ {
+ "gameVersionName": "Client",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "NeoForge",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2023-07-25T00:00:00Z",
+ "gameVersionTypeId": 68441
+ },
+ {
+ "gameVersionName": "Server",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "26.1",
+ "gameVersionPadded": "0000000026.0000000001",
+ "gameVersion": "26.1",
+ "gameVersionReleaseDate": "2026-03-24T16:40:19.29Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.1",
+ "gameVersionPadded": "0000000026.0000000001.0000000001",
+ "gameVersion": "26.1.1",
+ "gameVersionReleaseDate": "2026-04-01T11:40:06.78Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.2",
+ "gameVersionPadded": "0000000026.0000000001.0000000002",
+ "gameVersion": "26.1.2",
+ "gameVersionReleaseDate": "2026-04-09T11:39:54.243Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.2",
+ "gameVersionPadded": "0000000026.0000000002",
+ "gameVersion": "26.2",
+ "gameVersionReleaseDate": "2026-06-16T15:39:22.26Z",
+ "gameVersionTypeId": 86297
+ },
+ {
+ "gameVersionName": "26.3",
+ "gameVersionPadded": "0000000026.0000000003",
+ "gameVersion": "26.3",
+ "gameVersionReleaseDate": "2026-09-15T15:46:48.187Z",
+ "gameVersionTypeId": 88556
+ }
+ ],
+ "dependencies": [],
+ "alternateFileId": 0,
+ "isServerPack": false,
+ "fileFingerprint": 3750113338,
+ "modules": [
+ {
+ "name": "META-INF",
+ "fingerprint": 4071606703
+ },
+ {
+ "name": "gs",
+ "fingerprint": 3870032045
+ },
+ {
+ "name": "pack.mcmeta",
+ "fingerprint": 845577715
+ },
+ {
+ "name": "assets",
+ "fingerprint": 2304246846
+ }
+ ]
+ }
+}
diff --git a/tests/Unit/Client/Fixtures/getModFileChangelog.json b/tests/Unit/Client/Fixtures/getModFileChangelog.json
new file mode 100644
index 0000000..62dbd84
--- /dev/null
+++ b/tests/Unit/Client/Fixtures/getModFileChangelog.json
@@ -0,0 +1,3 @@
+{
+ "data": "\n"
+}
diff --git a/tests/Unit/Client/Fixtures/getModFileDownloadURL.json b/tests/Unit/Client/Fixtures/getModFileDownloadURL.json
new file mode 100644
index 0000000..5a0d395
--- /dev/null
+++ b/tests/Unit/Client/Fixtures/getModFileDownloadURL.json
@@ -0,0 +1,3 @@
+{
+ "data": "https://edge.forgecdn.net/files/8946/29/mclogs-neoforge-26.1-3.3.4.jar"
+}
diff --git a/tests/Unit/Client/Fixtures/getModFiles.json b/tests/Unit/Client/Fixtures/getModFiles.json
new file mode 100644
index 0000000..8be316e
--- /dev/null
+++ b/tests/Unit/Client/Fixtures/getModFiles.json
@@ -0,0 +1,249 @@
+{
+ "data": [
+ {
+ "id": 8946029,
+ "gameId": 432,
+ "modId": 420561,
+ "isAvailable": true,
+ "displayName": "mclogs-integration 3.3.4",
+ "fileName": "mclogs-neoforge-26.1-3.3.4.jar",
+ "releaseType": 1,
+ "fileStatus": 4,
+ "hashes": [
+ {
+ "value": "8b7833e7a63352c697bceac5ca29a80bf2ffbb31",
+ "algo": 1
+ },
+ {
+ "value": "c5b26ce87cbcb04c0eae7e5d6e153e92",
+ "algo": 2
+ }
+ ],
+ "fileDate": "2026-09-22T09:44:53.913Z",
+ "fileLength": 317339,
+ "downloadCount": 8,
+ "fileSizeOnDisk": 440958,
+ "downloadUrl": "https://edge.forgecdn.net/files/8946/29/mclogs-neoforge-26.1-3.3.4.jar",
+ "gameVersions": [
+ "Client",
+ "NeoForge",
+ "Server",
+ "26.1",
+ "26.1.1",
+ "26.1.2",
+ "26.2",
+ "26.3"
+ ],
+ "sortableGameVersions": [
+ {
+ "gameVersionName": "Client",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "NeoForge",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2023-07-25T00:00:00Z",
+ "gameVersionTypeId": 68441
+ },
+ {
+ "gameVersionName": "Server",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "26.1",
+ "gameVersionPadded": "0000000026.0000000001",
+ "gameVersion": "26.1",
+ "gameVersionReleaseDate": "2026-03-24T16:40:19.29Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.1",
+ "gameVersionPadded": "0000000026.0000000001.0000000001",
+ "gameVersion": "26.1.1",
+ "gameVersionReleaseDate": "2026-04-01T11:40:06.78Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.2",
+ "gameVersionPadded": "0000000026.0000000001.0000000002",
+ "gameVersion": "26.1.2",
+ "gameVersionReleaseDate": "2026-04-09T11:39:54.243Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.2",
+ "gameVersionPadded": "0000000026.0000000002",
+ "gameVersion": "26.2",
+ "gameVersionReleaseDate": "2026-06-16T15:39:22.26Z",
+ "gameVersionTypeId": 86297
+ },
+ {
+ "gameVersionName": "26.3",
+ "gameVersionPadded": "0000000026.0000000003",
+ "gameVersion": "26.3",
+ "gameVersionReleaseDate": "2026-09-15T15:46:48.187Z",
+ "gameVersionTypeId": 88556
+ }
+ ],
+ "dependencies": [],
+ "alternateFileId": 0,
+ "isServerPack": false,
+ "fileFingerprint": 3750113338,
+ "modules": [
+ {
+ "name": "META-INF",
+ "fingerprint": 4071606703
+ },
+ {
+ "name": "gs",
+ "fingerprint": 3870032045
+ },
+ {
+ "name": "pack.mcmeta",
+ "fingerprint": 845577715
+ },
+ {
+ "name": "assets",
+ "fingerprint": 2304246846
+ }
+ ]
+ },
+ {
+ "id": 8946028,
+ "gameId": 432,
+ "modId": 420561,
+ "isAvailable": true,
+ "displayName": "mclogs-integration 3.3.4",
+ "fileName": "mclogs-fabric-26.1-3.3.4.jar",
+ "releaseType": 1,
+ "fileStatus": 4,
+ "hashes": [
+ {
+ "value": "2d8e1836174d52dd3d985a2ceb672750578f8ee6",
+ "algo": 1
+ },
+ {
+ "value": "f64758f2e909f77b632672b98e802fd6",
+ "algo": 2
+ }
+ ],
+ "fileDate": "2026-09-22T09:44:53.427Z",
+ "fileLength": 697989,
+ "downloadCount": 12,
+ "fileSizeOnDisk": 873760,
+ "downloadUrl": "https://edge.forgecdn.net/files/8946/28/mclogs-fabric-26.1-3.3.4.jar",
+ "gameVersions": [
+ "Client",
+ "Fabric",
+ "Server",
+ "26.1",
+ "26.1.1",
+ "26.1.2",
+ "26.2",
+ "26.3"
+ ],
+ "sortableGameVersions": [
+ {
+ "gameVersionName": "Client",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "Fabric",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-09-01T00:00:00Z",
+ "gameVersionTypeId": 68441
+ },
+ {
+ "gameVersionName": "Server",
+ "gameVersionPadded": "0",
+ "gameVersion": "",
+ "gameVersionReleaseDate": "2022-12-08T00:00:00Z",
+ "gameVersionTypeId": 75208
+ },
+ {
+ "gameVersionName": "26.1",
+ "gameVersionPadded": "0000000026.0000000001",
+ "gameVersion": "26.1",
+ "gameVersionReleaseDate": "2026-03-24T16:40:19.29Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.1",
+ "gameVersionPadded": "0000000026.0000000001.0000000001",
+ "gameVersion": "26.1.1",
+ "gameVersionReleaseDate": "2026-04-01T11:40:06.78Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.1.2",
+ "gameVersionPadded": "0000000026.0000000001.0000000002",
+ "gameVersion": "26.1.2",
+ "gameVersionReleaseDate": "2026-04-09T11:39:54.243Z",
+ "gameVersionTypeId": 83806
+ },
+ {
+ "gameVersionName": "26.2",
+ "gameVersionPadded": "0000000026.0000000002",
+ "gameVersion": "26.2",
+ "gameVersionReleaseDate": "2026-06-16T15:39:22.26Z",
+ "gameVersionTypeId": 86297
+ },
+ {
+ "gameVersionName": "26.3",
+ "gameVersionPadded": "0000000026.0000000003",
+ "gameVersion": "26.3",
+ "gameVersionReleaseDate": "2026-09-15T15:46:48.187Z",
+ "gameVersionTypeId": 88556
+ }
+ ],
+ "dependencies": [
+ {
+ "modId": 306612,
+ "relationType": 3
+ }
+ ],
+ "alternateFileId": 0,
+ "isServerPack": false,
+ "fileFingerprint": 2407613531,
+ "modules": [
+ {
+ "name": "META-INF",
+ "fingerprint": 191245894
+ },
+ {
+ "name": "gs",
+ "fingerprint": 3759374645
+ },
+ {
+ "name": "fabric.mod.json",
+ "fingerprint": 1077561078
+ },
+ {
+ "name": "pack.mcmeta",
+ "fingerprint": 845577715
+ },
+ {
+ "name": "assets",
+ "fingerprint": 2304246846
+ }
+ ]
+ }
+ ],
+ "pagination": {
+ "index": 0,
+ "pageSize": 2,
+ "resultCount": 2,
+ "totalCount": 117
+ }
+}