diff --git a/.gitignore b/.gitignore index 83ff930..3a35247 100644 --- a/.gitignore +++ b/.gitignore @@ -10,8 +10,8 @@ _fresh/ # JAR files in case one shows up **/*.jar -fabric/ -forge/ +./fabric/ +./forge/ vanilla/ server/ diff --git a/Dockerfile b/Dockerfile index bf0d16c..75b7bf4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,4 +19,6 @@ RUN export JAVA_HOME EXPOSE 8000 EXPOSE 25565-25575 +VOLUME [ "/mcgrizz" ] + CMD [ "run", "-A", "main.ts" ] \ No newline at end of file diff --git a/cache/gameVersions.json b/cache/gameVersions.json new file mode 100644 index 0000000..9d4688a --- /dev/null +++ b/cache/gameVersions.json @@ -0,0 +1 @@ +[{"version":"23w40a","version_type":"snapshot","date":"2023-10-04T12:48:53Z","major":false},{"version":"1.20.2","version_type":"release","date":"2023-09-20T09:02:57Z","major":true},{"version":"1.20.2-rc2","version_type":"snapshot","date":"2023-09-18T12:34:57Z","major":false},{"version":"1.20.2-rc1","version_type":"snapshot","date":"2023-09-15T13:10:30Z","major":false},{"version":"1.20.2-pre4","version_type":"snapshot","date":"2023-09-13T15:06:51Z","major":false},{"version":"1.20.2-pre3","version_type":"snapshot","date":"2023-09-12T12:15:08Z","major":false},{"version":"1.20.2-pre2","version_type":"snapshot","date":"2023-09-07T12:42:32Z","major":false},{"version":"1.20.2-pre1","version_type":"snapshot","date":"2023-09-05T12:06:20Z","major":false},{"version":"23w35a","version_type":"snapshot","date":"2023-08-30T11:24:35Z","major":false},{"version":"23w33a","version_type":"snapshot","date":"2023-08-17T11:39:08Z","major":false},{"version":"23w32a","version_type":"snapshot","date":"2023-08-09T12:14:25Z","major":false},{"version":"23w31a","version_type":"snapshot","date":"2023-08-01T10:03:13Z","major":false},{"version":"1.20.1","version_type":"release","date":"2023-06-12T13:25:51Z","major":true},{"version":"1.20.1-rc1","version_type":"snapshot","date":"2023-06-09T14:15:49Z","major":false},{"version":"1.20","version_type":"release","date":"2023-06-02T08:36:17Z","major":true},{"version":"1.20-rc1","version_type":"snapshot","date":"2023-05-31T12:33:33Z","major":false},{"version":"1.20-pre7","version_type":"snapshot","date":"2023-05-29T13:44:34Z","major":false},{"version":"1.20-pre6","version_type":"snapshot","date":"2023-05-25T12:22:00Z","major":false},{"version":"1.20-pre5","version_type":"snapshot","date":"2023-05-23T12:22:52Z","major":false},{"version":"1.20-pre4","version_type":"snapshot","date":"2023-05-19T13:13:45Z","major":false},{"version":"1.20-pre3","version_type":"snapshot","date":"2023-05-19T11:39:46Z","major":false},{"version":"1.20-pre2","version_type":"snapshot","date":"2023-05-16T11:34:54Z","major":false},{"version":"1.20-pre1","version_type":"snapshot","date":"2023-05-10T12:19:34Z","major":false},{"version":"23w18a","version_type":"snapshot","date":"2023-05-03T11:29:26Z","major":false},{"version":"23w17a","version_type":"snapshot","date":"2023-04-26T12:09:48Z","major":false},{"version":"23w16a","version_type":"snapshot","date":"2023-04-20T11:55:19Z","major":false},{"version":"23w14a","version_type":"snapshot","date":"2023-04-05T12:05:17Z","major":false},{"version":"23w13a_or_b","version_type":"snapshot","date":"2023-04-01T12:52:18Z","major":false},{"version":"23w13a","version_type":"snapshot","date":"2023-03-29T13:54:16Z","major":false},{"version":"23w12a","version_type":"snapshot","date":"2023-03-22T13:28:42Z","major":false},{"version":"1.19.4","version_type":"release","date":"2023-03-14T12:56:18Z","major":true},{"version":"1.19.4-rc3","version_type":"snapshot","date":"2023-03-13T10:03:11Z","major":false},{"version":"1.19.4-rc2","version_type":"snapshot","date":"2023-03-10T12:42:54Z","major":false},{"version":"1.19.4-rc1","version_type":"snapshot","date":"2023-03-09T14:35:50Z","major":false},{"version":"1.19.4-pre4","version_type":"snapshot","date":"2023-03-08T13:08:22Z","major":false},{"version":"1.19.4-pre3","version_type":"snapshot","date":"2023-03-01T14:11:05Z","major":false},{"version":"1.19.4-pre2","version_type":"snapshot","date":"2023-02-27T13:38:53Z","major":false},{"version":"1.19.4-pre1","version_type":"snapshot","date":"2023-02-22T16:00:34Z","major":false},{"version":"23w07a","version_type":"snapshot","date":"2023-02-15T14:32:29Z","major":false},{"version":"23w06a","version_type":"snapshot","date":"2023-02-08T15:00:04Z","major":false},{"version":"23w05a","version_type":"snapshot","date":"2023-02-01T14:20:33Z","major":false},{"version":"23w04a","version_type":"snapshot","date":"2023-01-24T15:19:06Z","major":false},{"version":"23w03a","version_type":"snapshot","date":"2023-01-18T13:10:31Z","major":false},{"version":"1.19.3","version_type":"release","date":"2022-12-07T08:17:18Z","major":true},{"version":"1.19.3-rc3","version_type":"snapshot","date":"2022-12-06T10:24:01Z","major":false},{"version":"1.19.3-rc2","version_type":"snapshot","date":"2022-12-05T13:21:34Z","major":false},{"version":"1.19.3-rc1","version_type":"snapshot","date":"2022-12-01T13:45:18Z","major":false},{"version":"1.19.3-pre3","version_type":"snapshot","date":"2022-11-29T14:28:08Z","major":false},{"version":"1.19.3-pre2","version_type":"snapshot","date":"2022-11-23T16:12:25Z","major":false},{"version":"1.19.3-pre1","version_type":"snapshot","date":"2022-11-22T13:59:37Z","major":false},{"version":"22w46a","version_type":"snapshot","date":"2022-11-16T13:32:50Z","major":false},{"version":"22w45a","version_type":"snapshot","date":"2022-11-09T14:30:16Z","major":false},{"version":"22w44a","version_type":"snapshot","date":"2022-11-02T13:15:43Z","major":false},{"version":"22w43a","version_type":"snapshot","date":"2022-10-26T11:55:59Z","major":false},{"version":"22w42a","version_type":"snapshot","date":"2022-10-19T09:34:22Z","major":false},{"version":"1.19.2","version_type":"release","date":"2022-08-05T11:57:05Z","major":true},{"version":"1.19.2-rc2","version_type":"snapshot","date":"2022-08-04T15:19:44Z","major":false},{"version":"1.19.2-rc1","version_type":"snapshot","date":"2022-08-04T10:07:26Z","major":false},{"version":"1.19.1","version_type":"release","date":"2022-07-27T09:25:33Z","major":false},{"version":"1.19.1-rc3","version_type":"snapshot","date":"2022-07-26T15:34:35Z","major":false},{"version":"1.19.1-rc2","version_type":"snapshot","date":"2022-07-21T16:25:50Z","major":false},{"version":"1.19.1-pre6","version_type":"snapshot","date":"2022-07-20T15:49:31Z","major":false},{"version":"1.19.1-pre5","version_type":"snapshot","date":"2022-07-15T11:51:44Z","major":false},{"version":"1.19.1-pre4","version_type":"snapshot","date":"2022-07-08T11:41:59Z","major":false},{"version":"1.19.1-pre3","version_type":"snapshot","date":"2022-07-06T14:50:46Z","major":false},{"version":"1.19.1-pre2","version_type":"snapshot","date":"2022-06-30T15:57:20Z","major":false},{"version":"1.19.1-rc1","version_type":"snapshot","date":"2022-06-23T16:32:41Z","major":false},{"version":"1.19.1-pre1","version_type":"snapshot","date":"2022-06-21T17:13:59Z","major":false},{"version":"22w24a","version_type":"snapshot","date":"2022-06-15T16:21:49Z","major":false},{"version":"1.19","version_type":"release","date":"2022-06-07T09:42:18Z","major":true},{"version":"1.19-rc2","version_type":"snapshot","date":"2022-06-03T11:47:25Z","major":false},{"version":"1.19-rc1","version_type":"snapshot","date":"2022-06-02T12:12:52Z","major":false},{"version":"1.19-pre5","version_type":"snapshot","date":"2022-06-01T10:56:23Z","major":false},{"version":"1.19-pre4","version_type":"snapshot","date":"2022-05-30T14:43:01Z","major":false},{"version":"1.19-pre3","version_type":"snapshot","date":"2022-05-25T09:56:47Z","major":false},{"version":"1.19-pre2","version_type":"snapshot","date":"2022-05-23T14:54:00Z","major":false},{"version":"1.19-pre1","version_type":"snapshot","date":"2022-05-18T13:51:54Z","major":false},{"version":"22w19a","version_type":"snapshot","date":"2022-05-12T15:36:11Z","major":false},{"version":"22w18a","version_type":"snapshot","date":"2022-05-04T14:41:35Z","major":false},{"version":"22w17a","version_type":"snapshot","date":"2022-04-27T15:54:15Z","major":false},{"version":"22w16b","version_type":"snapshot","date":"2022-04-20T17:25:32Z","major":false},{"version":"22w16a","version_type":"snapshot","date":"2022-04-20T14:37:07Z","major":false},{"version":"22w15a","version_type":"snapshot","date":"2022-04-13T15:41:17Z","major":false},{"version":"22w14a","version_type":"snapshot","date":"2022-04-06T13:37:12Z","major":false},{"version":"22w13oneblockatatime","version_type":"snapshot","date":"2022-04-01T11:56:58Z","major":false},{"version":"22w13a","version_type":"snapshot","date":"2022-03-31T14:53:25Z","major":false},{"version":"22w12a","version_type":"snapshot","date":"2022-03-24T16:15:02Z","major":false},{"version":"22w11a","version_type":"snapshot","date":"2022-03-16T15:55:38Z","major":false},{"version":"1.18.2","version_type":"release","date":"2022-02-28T10:42:45Z","major":true},{"version":"1.18.2-rc1","version_type":"snapshot","date":"2022-02-25T13:25:40Z","major":false},{"version":"1.18.2-pre3","version_type":"snapshot","date":"2022-02-23T15:23:12Z","major":false},{"version":"1.18.2-pre2","version_type":"snapshot","date":"2022-02-21T15:26:19Z","major":false},{"version":"1.18.2-pre1","version_type":"snapshot","date":"2022-02-18T16:00:32Z","major":false},{"version":"22w07a","version_type":"snapshot","date":"2022-02-16T16:13:58Z","major":false},{"version":"22w06a","version_type":"snapshot","date":"2022-02-09T16:47:48Z","major":false},{"version":"22w05a","version_type":"snapshot","date":"2022-02-02T16:08:39Z","major":false},{"version":"22w03a","version_type":"snapshot","date":"2022-01-19T16:04:59Z","major":false},{"version":"1.18.1","version_type":"release","date":"2021-12-10T08:23:00Z","major":false},{"version":"1.18.1-rc3","version_type":"snapshot","date":"2021-12-10T03:36:38Z","major":false},{"version":"1.18.1-rc2","version_type":"snapshot","date":"2021-12-08T12:29:36Z","major":false},{"version":"1.18.1-rc1","version_type":"snapshot","date":"2021-12-07T15:52:47Z","major":false},{"version":"1.18.1-pre1","version_type":"snapshot","date":"2021-12-03T13:45:38Z","major":false},{"version":"1.18","version_type":"release","date":"2021-11-30T09:16:29Z","major":false},{"version":"1.18-rc4","version_type":"snapshot","date":"2021-11-29T13:43:42Z","major":false},{"version":"1.18-rc3","version_type":"snapshot","date":"2021-11-26T15:51:56Z","major":false},{"version":"1.18-rc2","version_type":"snapshot","date":"2021-11-26T10:02:04Z","major":false},{"version":"1.18-rc1","version_type":"snapshot","date":"2021-11-25T14:28:49Z","major":false},{"version":"1.18-pre8","version_type":"snapshot","date":"2021-11-24T14:57:32Z","major":false},{"version":"1.18-pre7","version_type":"snapshot","date":"2021-11-23T16:37:41Z","major":false},{"version":"1.18-pre6","version_type":"snapshot","date":"2021-11-22T17:09:05Z","major":false},{"version":"1.18-pre5","version_type":"snapshot","date":"2021-11-19T15:47:09Z","major":false},{"version":"1.18-pre4","version_type":"snapshot","date":"2021-11-17T18:07:56Z","major":false},{"version":"1.18-pre3","version_type":"snapshot","date":"2021-11-17T16:04:25Z","major":false},{"version":"1.18-pre2","version_type":"snapshot","date":"2021-11-16T17:04:48Z","major":false},{"version":"1.18-pre1","version_type":"snapshot","date":"2021-11-11T16:14:06Z","major":false},{"version":"21w44a","version_type":"snapshot","date":"2021-11-03T16:14:34Z","major":false},{"version":"21w43a","version_type":"snapshot","date":"2021-10-27T14:38:55Z","major":false},{"version":"21w42a","version_type":"snapshot","date":"2021-10-20T12:41:25Z","major":false},{"version":"21w41a","version_type":"snapshot","date":"2021-10-13T15:23:23Z","major":false},{"version":"21w40a","version_type":"snapshot","date":"2021-10-07T11:17:50Z","major":false},{"version":"21w39a","version_type":"snapshot","date":"2021-09-29T16:27:05Z","major":false},{"version":"21w38a","version_type":"snapshot","date":"2021-09-23T14:36:06Z","major":false},{"version":"21w37a","version_type":"snapshot","date":"2021-09-15T16:04:30Z","major":false},{"version":"1.17.1","version_type":"release","date":"2021-07-06T12:01:34Z","major":true},{"version":"1.17.1-rc2","version_type":"snapshot","date":"2021-07-05T12:58:01Z","major":false},{"version":"1.17.1-rc1","version_type":"snapshot","date":"2021-07-01T15:23:37Z","major":false},{"version":"1.17.1-pre3","version_type":"snapshot","date":"2021-06-30T15:43:16Z","major":false},{"version":"1.17.1-pre2","version_type":"snapshot","date":"2021-06-29T15:14:12Z","major":false},{"version":"1.17.1-pre1","version_type":"snapshot","date":"2021-06-18T12:24:40Z","major":false},{"version":"1.17","version_type":"release","date":"2021-06-08T11:00:40Z","major":false},{"version":"1.17-rc2","version_type":"snapshot","date":"2021-06-07T11:46:28Z","major":false},{"version":"1.17-rc1","version_type":"snapshot","date":"2021-06-04T13:24:48Z","major":false},{"version":"1.17-pre5","version_type":"snapshot","date":"2021-06-03T17:01:28Z","major":false},{"version":"1.17-pre4","version_type":"snapshot","date":"2021-06-02T16:15:43Z","major":false},{"version":"1.17-pre3","version_type":"snapshot","date":"2021-06-01T15:43:46Z","major":false},{"version":"1.17-pre2","version_type":"snapshot","date":"2021-05-31T15:54:05Z","major":false},{"version":"1.17-pre1","version_type":"snapshot","date":"2021-05-27T09:39:21Z","major":false},{"version":"21w20a","version_type":"snapshot","date":"2021-05-19T15:22:02Z","major":false},{"version":"21w19a","version_type":"snapshot","date":"2021-05-12T11:19:15Z","major":false},{"version":"21w18a","version_type":"snapshot","date":"2021-05-05T15:24:35Z","major":false},{"version":"21w17a","version_type":"snapshot","date":"2021-04-28T13:54:05Z","major":false},{"version":"21w16a","version_type":"snapshot","date":"2021-04-21T16:41:14Z","major":false},{"version":"21w15a","version_type":"snapshot","date":"2021-04-14T13:41:34Z","major":false},{"version":"21w14a","version_type":"snapshot","date":"2021-04-07T14:04:09Z","major":false},{"version":"21w13a","version_type":"snapshot","date":"2021-03-31T16:17:46Z","major":false},{"version":"21w11a","version_type":"snapshot","date":"2021-03-17T15:05:50Z","major":false},{"version":"21w10a","version_type":"snapshot","date":"2021-03-10T15:24:38Z","major":false},{"version":"21w08b","version_type":"snapshot","date":"2021-02-25T11:46:34Z","major":false},{"version":"21w08a","version_type":"snapshot","date":"2021-02-24T14:38:51Z","major":false},{"version":"21w07a","version_type":"snapshot","date":"2021-02-17T16:35:40Z","major":false},{"version":"21w06a","version_type":"snapshot","date":"2021-02-10T17:13:54Z","major":false},{"version":"21w05b","version_type":"snapshot","date":"2021-02-04T15:09:29Z","major":false},{"version":"21w05a","version_type":"snapshot","date":"2021-02-03T15:56:54Z","major":false},{"version":"21w03a","version_type":"snapshot","date":"2021-01-20T14:56:29Z","major":false},{"version":"1.16.5","version_type":"release","date":"2021-01-14T16:05:32Z","major":true},{"version":"1.16.5-rc1","version_type":"snapshot","date":"2021-01-13T15:58:55Z","major":false},{"version":"20w51a","version_type":"snapshot","date":"2020-12-16T16:27:57Z","major":false},{"version":"20w49a","version_type":"snapshot","date":"2020-12-02T16:47:20Z","major":false},{"version":"20w48a","version_type":"snapshot","date":"2020-11-25T15:42:24Z","major":false},{"version":"20w46a","version_type":"snapshot","date":"2020-11-11T15:30:32Z","major":false},{"version":"20w45a","version_type":"snapshot","date":"2020-11-04T16:42:00Z","major":false},{"version":"1.16.4","version_type":"release","date":"2020-10-29T15:49:37Z","major":false},{"version":"1.16.4-rc1","version_type":"snapshot","date":"2020-10-27T16:31:08Z","major":false},{"version":"1.16.4-pre2","version_type":"snapshot","date":"2020-10-22T15:32:17Z","major":false},{"version":"1.16.4-pre1","version_type":"snapshot","date":"2020-10-13T14:36:07Z","major":false},{"version":"1.16.3","version_type":"release","date":"2020-09-10T13:42:37Z","major":false},{"version":"1.16.3-rc1","version_type":"snapshot","date":"2020-09-07T12:34:06Z","major":false},{"version":"1.16.2","version_type":"release","date":"2020-08-11T10:13:46Z","major":false},{"version":"1.16.2-rc2","version_type":"snapshot","date":"2020-08-10T11:43:36Z","major":false},{"version":"1.16.2-rc1","version_type":"snapshot","date":"2020-08-07T14:35:39Z","major":false},{"version":"1.16.2-pre3","version_type":"snapshot","date":"2020-08-06T16:44:52Z","major":false},{"version":"1.16.2-pre2","version_type":"snapshot","date":"2020-08-05T15:30:50Z","major":false},{"version":"1.16.2-pre1","version_type":"snapshot","date":"2020-07-29T13:19:05Z","major":false},{"version":"20w30a","version_type":"snapshot","date":"2020-07-22T15:05:15Z","major":false},{"version":"20w29a","version_type":"snapshot","date":"2020-07-15T14:13:47Z","major":false},{"version":"20w28a","version_type":"snapshot","date":"2020-07-08T15:10:40Z","major":false},{"version":"20w27a","version_type":"snapshot","date":"2020-07-01T15:07:35Z","major":false},{"version":"1.16.1","version_type":"release","date":"2020-06-24T10:31:40Z","major":true},{"version":"1.16","version_type":"release","date":"2020-06-23T16:20:52Z","major":false},{"version":"1.16-rc1","version_type":"snapshot","date":"2020-06-18T12:49:28Z","major":false},{"version":"1.16-pre8","version_type":"snapshot","date":"2020-06-17T14:45:23Z","major":false},{"version":"1.16-pre7","version_type":"snapshot","date":"2020-06-16T15:31:35Z","major":false},{"version":"1.16-pre6","version_type":"snapshot","date":"2020-06-15T16:57:57Z","major":false},{"version":"1.16-pre5","version_type":"snapshot","date":"2020-06-12T14:33:59Z","major":false},{"version":"1.16-pre4","version_type":"snapshot","date":"2020-06-11T15:45:55Z","major":false},{"version":"1.16-pre3","version_type":"snapshot","date":"2020-06-10T14:57:43Z","major":false},{"version":"1.16-pre2","version_type":"snapshot","date":"2020-06-05T10:47:59Z","major":false},{"version":"1.16-pre1","version_type":"snapshot","date":"2020-06-04T18:17:51Z","major":false},{"version":"20w22a","version_type":"snapshot","date":"2020-05-29T11:25:02Z","major":false},{"version":"20w21a","version_type":"snapshot","date":"2020-05-20T12:07:18Z","major":false},{"version":"20w20b","version_type":"snapshot","date":"2020-05-14T08:16:26Z","major":false},{"version":"20w20a","version_type":"snapshot","date":"2020-05-13T15:11:43Z","major":false},{"version":"20w19a","version_type":"snapshot","date":"2020-05-06T16:23:24Z","major":false},{"version":"20w18a","version_type":"snapshot","date":"2020-04-29T15:16:34Z","major":false},{"version":"20w17a","version_type":"snapshot","date":"2020-04-22T13:47:50Z","major":false},{"version":"20w16a","version_type":"snapshot","date":"2020-04-15T14:13:01Z","major":false},{"version":"20w15a","version_type":"snapshot","date":"2020-04-08T12:29:24Z","major":false},{"version":"20w14a","version_type":"snapshot","date":"2020-04-02T14:28:06Z","major":false},{"version":"20w14infinite","version_type":"snapshot","date":"2020-04-01T12:47:08Z","major":false},{"version":"20w13b","version_type":"snapshot","date":"2020-03-26T13:00:34Z","major":false},{"version":"20w13a","version_type":"snapshot","date":"2020-03-25T17:05:33Z","major":false},{"version":"20w12a","version_type":"snapshot","date":"2020-03-18T16:42:06Z","major":false},{"version":"20w11a","version_type":"snapshot","date":"2020-03-11T16:28:27Z","major":false},{"version":"20w10a","version_type":"snapshot","date":"2020-03-04T16:21:41Z","major":false},{"version":"20w09a","version_type":"snapshot","date":"2020-02-26T16:43:08Z","major":false},{"version":"20w08a","version_type":"snapshot","date":"2020-02-19T13:30:09Z","major":false},{"version":"20w07a","version_type":"snapshot","date":"2020-02-14T13:20:49Z","major":false},{"version":"20w06a","version_type":"snapshot","date":"2020-02-05T16:05:22Z","major":false},{"version":"1.15.2","version_type":"release","date":"2020-01-17T10:03:52Z","major":true},{"version":"1.15.2-pre2","version_type":"snapshot","date":"2020-01-16T12:35:57Z","major":false},{"version":"1.15.2-pre1","version_type":"snapshot","date":"2020-01-14T16:19:31Z","major":false},{"version":"1.15.1","version_type":"release","date":"2019-12-16T10:29:47Z","major":false},{"version":"1.15.1-pre1","version_type":"snapshot","date":"2019-12-12T14:02:30Z","major":false},{"version":"1.15","version_type":"release","date":"2019-12-09T13:13:38Z","major":false},{"version":"1.15-pre7","version_type":"snapshot","date":"2019-12-09T12:14:11Z","major":false},{"version":"1.15-pre6","version_type":"snapshot","date":"2019-12-06T12:04:30Z","major":false},{"version":"1.15-pre5","version_type":"snapshot","date":"2019-12-05T13:20:00Z","major":false},{"version":"1.15-pre4","version_type":"snapshot","date":"2019-12-03T12:24:24Z","major":false},{"version":"1.15-pre3","version_type":"snapshot","date":"2019-11-28T17:17:50Z","major":false},{"version":"1.15-pre2","version_type":"snapshot","date":"2019-11-25T18:09:38Z","major":false},{"version":"1.15-pre1","version_type":"snapshot","date":"2019-11-21T17:01:17Z","major":false},{"version":"19w46b","version_type":"snapshot","date":"2019-11-14T13:29:24Z","major":false},{"version":"19w46a","version_type":"snapshot","date":"2019-11-13T16:37:46Z","major":false},{"version":"19w45b","version_type":"snapshot","date":"2019-11-08T12:42:44Z","major":false},{"version":"19w45a","version_type":"snapshot","date":"2019-11-07T16:19:20Z","major":false},{"version":"19w44a","version_type":"snapshot","date":"2019-10-30T15:31:44Z","major":false},{"version":"19w42a","version_type":"snapshot","date":"2019-10-16T15:30:39Z","major":false},{"version":"19w41a","version_type":"snapshot","date":"2019-10-09T15:21:35Z","major":false},{"version":"19w40a","version_type":"snapshot","date":"2019-10-02T13:40:26Z","major":false},{"version":"19w39a","version_type":"snapshot","date":"2019-09-27T10:13:33Z","major":false},{"version":"19w38b","version_type":"snapshot","date":"2019-09-18T14:59:13Z","major":false},{"version":"19w38a","version_type":"snapshot","date":"2019-09-18T10:03:22Z","major":false},{"version":"19w37a","version_type":"snapshot","date":"2019-09-11T11:46:44Z","major":false},{"version":"19w36a","version_type":"snapshot","date":"2019-09-04T11:19:34Z","major":false},{"version":"19w35a","version_type":"snapshot","date":"2019-08-28T15:01:44Z","major":false},{"version":"19w34a","version_type":"snapshot","date":"2019-08-22T12:06:21Z","major":false},{"version":"1.14.4","version_type":"release","date":"2019-07-19T09:25:47Z","major":true},{"version":"1.14.4-pre7","version_type":"snapshot","date":"2019-07-18T11:32:36Z","major":false},{"version":"1.14.4-pre6","version_type":"snapshot","date":"2019-07-15T12:39:49Z","major":false},{"version":"1.14.4-pre5","version_type":"snapshot","date":"2019-07-11T10:52:33Z","major":false},{"version":"1.14.4-pre4","version_type":"snapshot","date":"2019-07-10T12:53:29Z","major":false},{"version":"1.14.4-pre3","version_type":"snapshot","date":"2019-07-08T11:21:42Z","major":false},{"version":"1.14.4-pre2","version_type":"snapshot","date":"2019-07-04T14:41:05Z","major":false},{"version":"1.14.4-pre1","version_type":"snapshot","date":"2019-07-03T13:01:01Z","major":false},{"version":"1.14.3","version_type":"release","date":"2019-06-24T12:52:52Z","major":false},{"version":"1.14.3-pre4","version_type":"snapshot","date":"2019-06-19T11:44:29Z","major":false},{"version":"1.14.3-pre3","version_type":"snapshot","date":"2019-06-14T08:03:33Z","major":false},{"version":"1.14.3-pre2","version_type":"snapshot","date":"2019-06-07T09:11:29Z","major":false},{"version":"1.14.3-pre1","version_type":"snapshot","date":"2019-06-03T14:34:20Z","major":false},{"version":"1.14.2","version_type":"release","date":"2019-05-27T11:48:25Z","major":false},{"version":"1.14.2-pre4","version_type":"snapshot","date":"2019-05-27T07:21:11Z","major":false},{"version":"1.14.2-pre3","version_type":"snapshot","date":"2019-05-22T13:12:51Z","major":false},{"version":"1.14.2-pre2","version_type":"snapshot","date":"2019-05-17T12:21:03Z","major":false},{"version":"1.14.2-pre1","version_type":"snapshot","date":"2019-05-16T15:40:25Z","major":false},{"version":"1.14.1","version_type":"release","date":"2019-05-13T11:10:12Z","major":false},{"version":"1.14.1-pre2","version_type":"snapshot","date":"2019-05-09T14:01:04Z","major":false},{"version":"1.14.1-pre1","version_type":"snapshot","date":"2019-05-07T14:44:42Z","major":false},{"version":"1.14","version_type":"release","date":"2019-04-23T14:52:44Z","major":false},{"version":"1.14-pre5","version_type":"snapshot","date":"2019-04-18T11:05:19Z","major":false},{"version":"1.14-pre4","version_type":"snapshot","date":"2019-04-17T15:31:12Z","major":false},{"version":"1.14-pre3","version_type":"snapshot","date":"2019-04-16T13:57:10Z","major":false},{"version":"1.14-pre2","version_type":"snapshot","date":"2019-04-12T11:38:53Z","major":false},{"version":"1.14-pre1","version_type":"snapshot","date":"2019-04-10T14:24:16Z","major":false},{"version":"19w14b","version_type":"snapshot","date":"2019-04-05T10:33:58Z","major":false},{"version":"19w14a","version_type":"snapshot","date":"2019-04-03T13:45:00Z","major":false},{"version":"3D-Shareware-v1.34","version_type":"snapshot","date":"2019-04-01T11:18:08Z","major":false},{"version":"19w13b","version_type":"snapshot","date":"2019-03-29T16:53:22Z","major":false},{"version":"19w13a","version_type":"snapshot","date":"2019-03-27T15:15:31Z","major":false},{"version":"19w12b","version_type":"snapshot","date":"2019-03-21T15:20:01Z","major":false},{"version":"19w12a","version_type":"snapshot","date":"2019-03-20T16:47:34Z","major":false},{"version":"19w11b","version_type":"snapshot","date":"2019-03-14T14:26:23Z","major":false},{"version":"19w11a","version_type":"snapshot","date":"2019-03-13T13:59:29Z","major":false},{"version":"19w09a","version_type":"snapshot","date":"2019-02-27T14:44:30Z","major":false},{"version":"19w08b","version_type":"snapshot","date":"2019-02-21T13:38:09Z","major":false},{"version":"19w08a","version_type":"snapshot","date":"2019-02-20T14:56:58Z","major":false},{"version":"19w07a","version_type":"snapshot","date":"2019-02-13T16:12:08Z","major":false},{"version":"19w06a","version_type":"snapshot","date":"2019-02-06T16:24:13Z","major":false},{"version":"19w05a","version_type":"snapshot","date":"2019-01-30T15:16:49Z","major":false},{"version":"19w04b","version_type":"snapshot","date":"2019-01-25T12:20:15Z","major":false},{"version":"19w04a","version_type":"snapshot","date":"2019-01-24T15:31:52Z","major":false},{"version":"19w03c","version_type":"snapshot","date":"2019-01-18T11:27:13Z","major":false},{"version":"19w03b","version_type":"snapshot","date":"2019-01-17T16:43:27Z","major":false},{"version":"19w03a","version_type":"snapshot","date":"2019-01-16T16:45:02Z","major":false},{"version":"19w02a","version_type":"snapshot","date":"2019-01-09T15:52:07Z","major":false},{"version":"18w50a","version_type":"snapshot","date":"2018-12-12T14:58:13Z","major":false},{"version":"18w49a","version_type":"snapshot","date":"2018-12-05T12:24:30Z","major":false},{"version":"18w48b","version_type":"snapshot","date":"2018-11-30T10:37:31Z","major":false},{"version":"18w48a","version_type":"snapshot","date":"2018-11-29T13:11:38Z","major":false},{"version":"18w47b","version_type":"snapshot","date":"2018-11-23T10:46:41Z","major":false},{"version":"18w47a","version_type":"snapshot","date":"2018-11-21T15:45:22Z","major":false},{"version":"18w46a","version_type":"snapshot","date":"2018-11-15T13:43:14Z","major":false},{"version":"18w45a","version_type":"snapshot","date":"2018-11-07T14:40:06Z","major":false},{"version":"18w44a","version_type":"snapshot","date":"2018-10-31T15:29:16Z","major":false},{"version":"18w43c","version_type":"snapshot","date":"2018-10-26T08:40:46Z","major":false},{"version":"18w43b","version_type":"snapshot","date":"2018-10-24T15:02:30Z","major":false},{"version":"18w43a","version_type":"snapshot","date":"2018-10-24T10:52:16Z","major":false},{"version":"1.13.2","version_type":"release","date":"2018-10-22T11:41:07Z","major":true},{"version":"1.13.2-pre2","version_type":"snapshot","date":"2018-10-18T14:46:12Z","major":false},{"version":"1.13.2-pre1","version_type":"snapshot","date":"2018-10-16T13:40:58Z","major":false},{"version":"1.13.1","version_type":"release","date":"2018-08-22T14:03:42Z","major":false},{"version":"1.13.1-pre2","version_type":"snapshot","date":"2018-08-20T13:52:09Z","major":false},{"version":"1.13.1-pre1","version_type":"snapshot","date":"2018-08-16T13:08:44Z","major":false},{"version":"18w33a","version_type":"snapshot","date":"2018-08-15T14:28:56Z","major":false},{"version":"18w32a","version_type":"snapshot","date":"2018-08-08T13:16:57Z","major":false},{"version":"18w31a","version_type":"snapshot","date":"2018-08-01T12:54:44Z","major":false},{"version":"18w30b","version_type":"snapshot","date":"2018-07-26T16:06:57Z","major":false},{"version":"18w30a","version_type":"snapshot","date":"2018-07-25T14:29:31Z","major":false},{"version":"1.13","version_type":"release","date":"2018-07-18T15:11:46Z","major":false},{"version":"1.13-pre10","version_type":"snapshot","date":"2018-07-17T14:48:06Z","major":false},{"version":"1.13-pre9","version_type":"snapshot","date":"2018-07-16T14:17:42Z","major":false},{"version":"1.13-pre8","version_type":"snapshot","date":"2018-07-13T11:45:00Z","major":false},{"version":"1.13-pre7","version_type":"snapshot","date":"2018-07-10T14:21:42Z","major":false},{"version":"1.13-pre6","version_type":"snapshot","date":"2018-07-04T12:36:00Z","major":false},{"version":"1.13-pre5","version_type":"snapshot","date":"2018-06-28T13:58:53Z","major":false},{"version":"1.13-pre4","version_type":"snapshot","date":"2018-06-26T13:00:55Z","major":false},{"version":"1.13-pre3","version_type":"snapshot","date":"2018-06-21T12:57:11Z","major":false},{"version":"1.13-pre2","version_type":"snapshot","date":"2018-06-15T09:20:00Z","major":false},{"version":"1.13-pre1","version_type":"snapshot","date":"2018-06-04T15:17:34Z","major":false},{"version":"18w22c","version_type":"snapshot","date":"2018-05-31T13:53:15Z","major":false},{"version":"18w22b","version_type":"snapshot","date":"2018-05-30T13:48:58Z","major":false},{"version":"18w22a","version_type":"snapshot","date":"2018-05-29T13:23:55Z","major":false},{"version":"18w21b","version_type":"snapshot","date":"2018-05-25T10:09:09Z","major":false},{"version":"18w21a","version_type":"snapshot","date":"2018-05-23T13:11:49Z","major":false},{"version":"18w20c","version_type":"snapshot","date":"2018-05-17T14:06:56Z","major":false},{"version":"18w20b","version_type":"snapshot","date":"2018-05-16T14:35:35Z","major":false},{"version":"18w20a","version_type":"snapshot","date":"2018-05-15T14:02:25Z","major":false},{"version":"18w19b","version_type":"snapshot","date":"2018-05-09T10:00:51Z","major":false},{"version":"18w19a","version_type":"snapshot","date":"2018-05-08T13:05:19Z","major":false},{"version":"18w16a","version_type":"snapshot","date":"2018-04-19T14:46:35Z","major":false},{"version":"18w15a","version_type":"snapshot","date":"2018-04-11T14:54:22Z","major":false},{"version":"18w14b","version_type":"snapshot","date":"2018-04-05T14:44:02Z","major":false},{"version":"18w14a","version_type":"snapshot","date":"2018-04-04T14:36:14Z","major":false},{"version":"18w11a","version_type":"snapshot","date":"2018-03-13T15:10:59Z","major":false},{"version":"18w10d","version_type":"snapshot","date":"2018-03-09T15:19:12Z","major":false},{"version":"18w10c","version_type":"snapshot","date":"2018-03-08T15:29:23Z","major":false},{"version":"18w10b","version_type":"snapshot","date":"2018-03-07T15:56:01Z","major":false},{"version":"18w10a","version_type":"snapshot","date":"2018-03-06T15:54:24Z","major":false},{"version":"18w09a","version_type":"snapshot","date":"2018-03-01T14:15:10Z","major":false},{"version":"18w08b","version_type":"snapshot","date":"2018-02-22T15:44:49Z","major":false},{"version":"18w08a","version_type":"snapshot","date":"2018-02-21T14:59:00Z","major":false},{"version":"18w07c","version_type":"snapshot","date":"2018-02-16T13:23:32Z","major":false},{"version":"18w07b","version_type":"snapshot","date":"2018-02-15T14:28:42Z","major":false},{"version":"18w07a","version_type":"snapshot","date":"2018-02-14T17:34:13Z","major":false},{"version":"18w06a","version_type":"snapshot","date":"2018-02-09T12:09:55Z","major":false},{"version":"18w05a","version_type":"snapshot","date":"2018-01-31T13:32:09Z","major":false},{"version":"18w03b","version_type":"snapshot","date":"2018-01-17T15:09:14Z","major":false},{"version":"18w03a","version_type":"snapshot","date":"2018-01-17T14:25:24Z","major":false},{"version":"18w02a","version_type":"snapshot","date":"2018-01-10T11:54:55Z","major":false},{"version":"18w01a","version_type":"snapshot","date":"2018-01-03T13:29:30Z","major":false},{"version":"17w50a","version_type":"snapshot","date":"2017-12-11T15:28:08Z","major":false},{"version":"17w49b","version_type":"snapshot","date":"2017-12-07T15:29:54Z","major":false},{"version":"17w49a","version_type":"snapshot","date":"2017-12-06T14:24:30Z","major":false},{"version":"17w48a","version_type":"snapshot","date":"2017-11-27T15:36:33Z","major":false},{"version":"17w47b","version_type":"snapshot","date":"2017-11-23T15:30:12Z","major":false},{"version":"17w47a","version_type":"snapshot","date":"2017-11-22T12:40:05Z","major":false},{"version":"17w46a","version_type":"snapshot","date":"2017-11-15T15:21:55Z","major":false},{"version":"17w45b","version_type":"snapshot","date":"2017-11-10T10:07:02Z","major":false},{"version":"17w45a","version_type":"snapshot","date":"2017-11-08T15:48:00Z","major":false},{"version":"17w43b","version_type":"snapshot","date":"2017-10-26T13:36:22Z","major":false},{"version":"17w43a","version_type":"snapshot","date":"2017-10-25T14:43:50Z","major":false},{"version":"1.12.2","version_type":"release","date":"2017-09-18T08:39:46Z","major":true},{"version":"1.12.2-pre2","version_type":"snapshot","date":"2017-09-15T08:21:17Z","major":false},{"version":"1.12.2-pre1","version_type":"snapshot","date":"2017-09-13T13:33:31Z","major":false},{"version":"1.12.1","version_type":"release","date":"2017-08-03T12:40:39Z","major":false},{"version":"1.12.1-pre1","version_type":"snapshot","date":"2017-08-02T10:53:55Z","major":false},{"version":"17w31a","version_type":"snapshot","date":"2017-08-01T09:41:23Z","major":false},{"version":"1.12","version_type":"release","date":"2017-06-02T13:50:27Z","major":false},{"version":"1.12-pre7","version_type":"snapshot","date":"2017-05-31T10:56:41Z","major":false},{"version":"1.12-pre6","version_type":"snapshot","date":"2017-05-29T11:45:12Z","major":false},{"version":"1.12-pre5","version_type":"snapshot","date":"2017-05-19T07:43:28Z","major":false},{"version":"1.12-pre4","version_type":"snapshot","date":"2017-05-18T12:28:16Z","major":false},{"version":"1.12-pre3","version_type":"snapshot","date":"2017-05-17T14:09:18Z","major":false},{"version":"1.12-pre2","version_type":"snapshot","date":"2017-05-11T12:11:12Z","major":false},{"version":"1.12-pre1","version_type":"snapshot","date":"2017-05-10T11:37:17Z","major":false},{"version":"17w18b","version_type":"snapshot","date":"2017-05-04T13:40:22Z","major":false},{"version":"17w18a","version_type":"snapshot","date":"2017-05-03T14:50:23Z","major":false},{"version":"17w17b","version_type":"snapshot","date":"2017-04-27T13:24:23Z","major":false},{"version":"17w17a","version_type":"snapshot","date":"2017-04-26T13:48:23Z","major":false},{"version":"17w16b","version_type":"snapshot","date":"2017-04-21T12:02:59Z","major":false},{"version":"17w16a","version_type":"snapshot","date":"2017-04-20T13:58:35Z","major":false},{"version":"17w15a","version_type":"snapshot","date":"2017-04-12T09:30:50Z","major":false},{"version":"17w14a","version_type":"snapshot","date":"2017-04-05T13:58:01Z","major":false},{"version":"17w13b","version_type":"snapshot","date":"2017-03-31T11:06:35Z","major":false},{"version":"17w13a","version_type":"snapshot","date":"2017-03-30T09:32:19Z","major":false},{"version":"17w06a","version_type":"snapshot","date":"2017-02-08T13:16:29Z","major":false},{"version":"1.11.2","version_type":"release","date":"2016-12-21T09:29:12Z","major":true},{"version":"1.11.1","version_type":"release","date":"2016-12-20T14:05:34Z","major":false},{"version":"16w50a","version_type":"snapshot","date":"2016-12-15T14:38:52Z","major":false},{"version":"1.11","version_type":"release","date":"2016-11-14T14:34:40Z","major":false},{"version":"1.11-pre1","version_type":"snapshot","date":"2016-11-08T13:42:50Z","major":false},{"version":"16w44a","version_type":"snapshot","date":"2016-11-03T14:17:11Z","major":false},{"version":"16w43a","version_type":"snapshot","date":"2016-10-27T09:00:51Z","major":false},{"version":"16w42a","version_type":"snapshot","date":"2016-10-19T11:17:47Z","major":false},{"version":"16w41a","version_type":"snapshot","date":"2016-10-13T14:28:35Z","major":false},{"version":"16w40a","version_type":"snapshot","date":"2016-10-06T13:57:59Z","major":false},{"version":"16w39c","version_type":"snapshot","date":"2016-09-30T14:11:48Z","major":false},{"version":"16w39b","version_type":"snapshot","date":"2016-09-29T14:39:39Z","major":false},{"version":"16w39a","version_type":"snapshot","date":"2016-09-28T13:32:06Z","major":false},{"version":"16w38a","version_type":"snapshot","date":"2016-09-20T12:40:49Z","major":false},{"version":"16w36a","version_type":"snapshot","date":"2016-09-08T14:55:10Z","major":false},{"version":"16w35a","version_type":"snapshot","date":"2016-09-01T13:13:38Z","major":false},{"version":"16w33a","version_type":"snapshot","date":"2016-08-17T12:48:57Z","major":false},{"version":"16w32b","version_type":"snapshot","date":"2016-08-11T14:34:29Z","major":false},{"version":"16w32a","version_type":"snapshot","date":"2016-08-10T12:30:10Z","major":false},{"version":"1.10.2","version_type":"release","date":"2016-06-23T09:17:32Z","major":true},{"version":"1.10.1","version_type":"release","date":"2016-06-22T10:13:22Z","major":false},{"version":"1.10","version_type":"release","date":"2016-06-08T13:06:18Z","major":false},{"version":"1.10-pre2","version_type":"snapshot","date":"2016-06-07T14:56:34Z","major":false},{"version":"1.10-pre1","version_type":"snapshot","date":"2016-06-02T14:45:16Z","major":false},{"version":"16w21b","version_type":"snapshot","date":"2016-05-26T12:47:22Z","major":false},{"version":"16w21a","version_type":"snapshot","date":"2016-05-25T13:12:09Z","major":false},{"version":"16w20a","version_type":"snapshot","date":"2016-05-18T12:45:14Z","major":false},{"version":"1.9.4","version_type":"release","date":"2016-05-10T10:17:16Z","major":true},{"version":"1.9.3","version_type":"release","date":"2016-05-10T08:33:35Z","major":false},{"version":"1.9.3-pre3","version_type":"snapshot","date":"2016-05-03T09:28:11Z","major":false},{"version":"1.9.3-pre2","version_type":"snapshot","date":"2016-04-27T13:33:20Z","major":false},{"version":"1.9.3-pre1","version_type":"snapshot","date":"2016-04-21T12:41:42Z","major":false},{"version":"16w15b","version_type":"snapshot","date":"2016-04-13T13:56:41Z","major":false},{"version":"16w15a","version_type":"snapshot","date":"2016-04-11T14:38:28Z","major":false},{"version":"16w14a","version_type":"snapshot","date":"2016-04-07T12:47:51Z","major":false},{"version":"1.RV-Pre1","version_type":"snapshot","date":"2016-03-31T16:18:53Z","major":false},{"version":"1.9.2","version_type":"release","date":"2016-03-30T15:23:55Z","major":false},{"version":"1.9.1","version_type":"release","date":"2016-03-30T13:43:07Z","major":false},{"version":"1.9.1-pre3","version_type":"snapshot","date":"2016-03-11T09:20:36Z","major":false},{"version":"1.9.1-pre2","version_type":"snapshot","date":"2016-03-10T15:06:03Z","major":false},{"version":"1.9.1-pre1","version_type":"snapshot","date":"2016-03-09T16:27:29Z","major":false},{"version":"1.9","version_type":"release","date":"2016-02-29T13:49:54Z","major":false},{"version":"1.9-pre4","version_type":"snapshot","date":"2016-02-26T15:21:11Z","major":false},{"version":"1.9-pre3","version_type":"snapshot","date":"2016-02-24T15:52:36Z","major":false},{"version":"1.9-pre2","version_type":"snapshot","date":"2016-02-18T17:41:00Z","major":false},{"version":"1.9-pre1","version_type":"snapshot","date":"2016-02-17T15:23:19Z","major":false},{"version":"16w07b","version_type":"snapshot","date":"2016-02-16T15:22:39Z","major":false},{"version":"16w07a","version_type":"snapshot","date":"2016-02-15T15:48:46Z","major":false},{"version":"16w06a","version_type":"snapshot","date":"2016-02-10T15:06:41Z","major":false},{"version":"16w05b","version_type":"snapshot","date":"2016-02-04T15:28:02Z","major":false},{"version":"16w05a","version_type":"snapshot","date":"2016-02-03T15:48:38Z","major":false},{"version":"16w04a","version_type":"snapshot","date":"2016-01-28T15:37:24Z","major":false},{"version":"16w03a","version_type":"snapshot","date":"2016-01-20T14:29:24Z","major":false},{"version":"16w02a","version_type":"snapshot","date":"2016-01-13T15:15:16Z","major":false},{"version":"15w51b","version_type":"snapshot","date":"2015-12-17T15:30:41Z","major":false},{"version":"15w51a","version_type":"snapshot","date":"2015-12-17T14:02:37Z","major":false},{"version":"15w50a","version_type":"snapshot","date":"2015-12-09T15:35:57Z","major":false},{"version":"15w49b","version_type":"snapshot","date":"2015-12-03T15:23:22Z","major":false},{"version":"1.8.9","version_type":"release","date":"2015-12-03T09:24:39Z","major":true},{"version":"15w49a","version_type":"snapshot","date":"2015-12-02T15:09:37Z","major":false},{"version":"15w47c","version_type":"snapshot","date":"2015-11-20T12:46:56Z","major":false},{"version":"15w47b","version_type":"snapshot","date":"2015-11-19T14:48:03Z","major":false},{"version":"15w47a","version_type":"snapshot","date":"2015-11-18T15:53:41Z","major":false},{"version":"15w46a","version_type":"snapshot","date":"2015-11-12T12:11:47Z","major":false},{"version":"15w45a","version_type":"snapshot","date":"2015-11-05T13:04:07Z","major":false},{"version":"15w44b","version_type":"snapshot","date":"2015-10-30T11:23:17Z","major":false},{"version":"15w44a","version_type":"snapshot","date":"2015-10-28T15:09:36Z","major":false},{"version":"15w43c","version_type":"snapshot","date":"2015-10-23T15:35:55Z","major":false},{"version":"15w43b","version_type":"snapshot","date":"2015-10-22T14:11:58Z","major":false},{"version":"15w43a","version_type":"snapshot","date":"2015-10-21T15:28:52Z","major":false},{"version":"15w42a","version_type":"snapshot","date":"2015-10-14T13:25:14Z","major":false},{"version":"15w41b","version_type":"snapshot","date":"2015-10-07T14:07:26Z","major":false},{"version":"15w41a","version_type":"snapshot","date":"2015-10-07T13:19:53Z","major":false},{"version":"15w40b","version_type":"snapshot","date":"2015-09-30T14:13:54Z","major":false},{"version":"15w40a","version_type":"snapshot","date":"2015-09-30T13:13:54Z","major":false},{"version":"15w39c","version_type":"snapshot","date":"2015-09-23T13:13:54Z","major":false},{"version":"15w39b","version_type":"snapshot","date":"2015-09-21T15:09:52Z","major":false},{"version":"15w39a","version_type":"snapshot","date":"2015-09-21T13:16:32Z","major":false},{"version":"15w38b","version_type":"snapshot","date":"2015-09-17T14:22:31Z","major":false},{"version":"15w38a","version_type":"snapshot","date":"2015-09-16T14:22:31Z","major":false},{"version":"15w37a","version_type":"snapshot","date":"2015-09-10T14:22:31Z","major":false},{"version":"15w36d","version_type":"snapshot","date":"2015-09-04T14:22:31Z","major":false},{"version":"15w36c","version_type":"snapshot","date":"2015-09-02T16:07:22Z","major":false},{"version":"15w36b","version_type":"snapshot","date":"2015-09-02T15:36:25Z","major":false},{"version":"15w36a","version_type":"snapshot","date":"2015-09-02T14:46:40Z","major":false},{"version":"15w35e","version_type":"snapshot","date":"2015-08-28T18:14:02Z","major":false},{"version":"15w35d","version_type":"snapshot","date":"2015-08-28T16:25:35Z","major":false},{"version":"15w35c","version_type":"snapshot","date":"2015-08-28T11:21:00Z","major":false},{"version":"15w35b","version_type":"snapshot","date":"2015-08-24T15:39:18Z","major":false},{"version":"15w35a","version_type":"snapshot","date":"2015-08-24T14:19:31Z","major":false},{"version":"15w34d","version_type":"snapshot","date":"2015-08-21T15:27:55Z","major":false},{"version":"15w34c","version_type":"snapshot","date":"2015-08-21T12:45:20Z","major":false},{"version":"15w34b","version_type":"snapshot","date":"2015-08-20T14:00:03Z","major":false},{"version":"15w34a","version_type":"snapshot","date":"2015-08-19T12:56:01Z","major":false},{"version":"15w33c","version_type":"snapshot","date":"2015-08-14T13:10:46Z","major":false},{"version":"15w33b","version_type":"snapshot","date":"2015-08-12T15:29:11Z","major":false},{"version":"15w33a","version_type":"snapshot","date":"2015-08-12T14:05:07Z","major":false},{"version":"15w32c","version_type":"snapshot","date":"2015-08-07T14:08:17Z","major":false},{"version":"15w32b","version_type":"snapshot","date":"2015-08-06T13:51:47Z","major":false},{"version":"15w32a","version_type":"snapshot","date":"2015-08-05T12:22:42Z","major":false},{"version":"15w31c","version_type":"snapshot","date":"2015-07-31T13:45:08Z","major":false},{"version":"15w31b","version_type":"snapshot","date":"2015-07-30T13:38:32Z","major":false},{"version":"15w31a","version_type":"snapshot","date":"2015-07-29T13:24:33Z","major":false},{"version":"1.8.8","version_type":"release","date":"2015-07-27T10:31:28Z","major":false},{"version":"1.8.7","version_type":"release","date":"2015-06-05T10:10:44Z","major":false},{"version":"1.8.6","version_type":"release","date":"2015-05-25T10:31:19Z","major":false},{"version":"1.8.5","version_type":"release","date":"2015-05-22T11:15:28Z","major":false},{"version":"1.8.4","version_type":"release","date":"2015-04-17T11:37:50Z","major":false},{"version":"15w14a","version_type":"snapshot","date":"2015-04-01T07:08:00Z","major":false},{"version":"1.8.3","version_type":"release","date":"2015-02-20T14:00:09Z","major":false},{"version":"1.8.2","version_type":"release","date":"2015-02-19T15:47:29Z","major":false},{"version":"1.8.2-pre7","version_type":"snapshot","date":"2015-02-16T13:01:35Z","major":false},{"version":"1.8.2-pre6","version_type":"snapshot","date":"2015-01-30T11:58:24Z","major":false},{"version":"1.8.2-pre5","version_type":"snapshot","date":"2015-01-26T15:03:24Z","major":false},{"version":"1.8.2-pre4","version_type":"snapshot","date":"2015-01-16T14:19:59Z","major":false},{"version":"1.8.2-pre3","version_type":"snapshot","date":"2015-01-15T16:44:33Z","major":false},{"version":"1.8.2-pre2","version_type":"snapshot","date":"2015-01-15T15:07:31Z","major":false},{"version":"1.8.2-pre1","version_type":"snapshot","date":"2014-12-18T11:29:41Z","major":false},{"version":"1.8.1","version_type":"release","date":"2014-11-24T14:13:31Z","major":false},{"version":"1.8.1-pre5","version_type":"snapshot","date":"2014-11-19T14:30:48Z","major":false},{"version":"1.8.1-pre4","version_type":"snapshot","date":"2014-11-06T14:10:50Z","major":false},{"version":"1.8.1-pre3","version_type":"snapshot","date":"2014-10-23T12:59:42Z","major":false},{"version":"1.8.1-pre2","version_type":"snapshot","date":"2014-10-16T14:19:27Z","major":false},{"version":"1.8.1-pre1","version_type":"snapshot","date":"2014-10-15T13:25:11Z","major":false},{"version":"1.8","version_type":"release","date":"2014-09-02T08:24:35Z","major":false},{"version":"1.8-pre3","version_type":"snapshot","date":"2014-08-28T09:40:54Z","major":false},{"version":"1.8-pre2","version_type":"snapshot","date":"2014-08-25T14:52:18Z","major":false},{"version":"1.8-pre1","version_type":"snapshot","date":"2014-08-21T13:56:26Z","major":false},{"version":"14w34d","version_type":"snapshot","date":"2014-08-20T12:46:59Z","major":false},{"version":"14w34c","version_type":"snapshot","date":"2014-08-19T15:31:24Z","major":false},{"version":"14w34b","version_type":"snapshot","date":"2014-08-18T15:14:28Z","major":false},{"version":"14w34a","version_type":"snapshot","date":"2014-08-18T14:14:11Z","major":false},{"version":"14w33c","version_type":"snapshot","date":"2014-08-15T18:00:26Z","major":false},{"version":"14w33b","version_type":"snapshot","date":"2014-08-15T16:23:51Z","major":false},{"version":"14w33a","version_type":"snapshot","date":"2014-08-13T15:08:14Z","major":false},{"version":"14w32d","version_type":"snapshot","date":"2014-08-08T15:13:41Z","major":false},{"version":"14w32c","version_type":"snapshot","date":"2014-08-08T14:11:20Z","major":false},{"version":"14w32b","version_type":"snapshot","date":"2014-08-07T14:45:17Z","major":false},{"version":"14w32a","version_type":"snapshot","date":"2014-08-06T14:01:16Z","major":false},{"version":"14w31a","version_type":"snapshot","date":"2014-07-30T15:38:05Z","major":false},{"version":"14w30c","version_type":"snapshot","date":"2014-07-24T14:39:09Z","major":false},{"version":"14w30b","version_type":"snapshot","date":"2014-07-23T15:03:03Z","major":false},{"version":"14w30a","version_type":"snapshot","date":"2014-07-23T13:15:42Z","major":false},{"version":"14w29b","version_type":"snapshot","date":"2014-07-16T17:27:40Z","major":false},{"version":"14w29a","version_type":"snapshot","date":"2014-07-16T15:18:17Z","major":false},{"version":"14w28b","version_type":"snapshot","date":"2014-07-10T14:28:48Z","major":false},{"version":"14w28a","version_type":"snapshot","date":"2014-07-09T15:42:36Z","major":false},{"version":"14w27b","version_type":"snapshot","date":"2014-07-02T18:34:56Z","major":false},{"version":"14w27a","version_type":"snapshot","date":"2014-07-02T16:07:20Z","major":false},{"version":"14w26c","version_type":"snapshot","date":"2014-06-26T15:05:03Z","major":false},{"version":"14w26b","version_type":"snapshot","date":"2014-06-25T15:08:39Z","major":false},{"version":"14w26a","version_type":"snapshot","date":"2014-06-25T13:59:27Z","major":false},{"version":"14w25b","version_type":"snapshot","date":"2014-06-19T12:29:48Z","major":false},{"version":"14w25a","version_type":"snapshot","date":"2014-06-18T15:52:28Z","major":false},{"version":"14w21b","version_type":"snapshot","date":"2014-05-22T15:17:55Z","major":false},{"version":"14w21a","version_type":"snapshot","date":"2014-05-22T14:44:33Z","major":false},{"version":"14w20b","version_type":"snapshot","date":"2014-05-15T16:47:21Z","major":false},{"version":"14w20a","version_type":"snapshot","date":"2014-05-15T14:01:20Z","major":false},{"version":"1.7.10","version_type":"release","date":"2014-05-14T17:29:23Z","major":true},{"version":"1.7.10-pre4","version_type":"snapshot","date":"2014-05-14T16:29:23Z","major":false},{"version":"1.7.10-pre3","version_type":"snapshot","date":"2014-05-14T15:29:23Z","major":false},{"version":"1.7.10-pre2","version_type":"snapshot","date":"2014-05-14T14:29:23Z","major":false},{"version":"1.7.10-pre1","version_type":"snapshot","date":"2014-05-14T13:29:23Z","major":false},{"version":"14w19a","version_type":"snapshot","date":"2014-05-08T14:24:19Z","major":false},{"version":"14w18b","version_type":"snapshot","date":"2014-05-02T11:38:17Z","major":false},{"version":"14w18a","version_type":"snapshot","date":"2014-04-30T10:25:35Z","major":false},{"version":"14w17a","version_type":"snapshot","date":"2014-04-24T15:44:49Z","major":false},{"version":"14w11b","version_type":"snapshot","date":"2014-04-14T14:36:19Z","major":false},{"version":"1.7.9","version_type":"release","date":"2014-04-14T13:29:23Z","major":false},{"version":"1.7.8","version_type":"release","date":"2014-04-09T07:58:16Z","major":false},{"version":"1.7.7","version_type":"release","date":"2014-04-09T07:52:16Z","major":false},{"version":"1.7.6","version_type":"release","date":"2014-04-09T07:52:06Z","major":false},{"version":"14w11a","version_type":"snapshot","date":"2014-03-13T14:02:50Z","major":false},{"version":"1.7.6-pre2","version_type":"snapshot","date":"2014-03-08T11:00:01Z","major":false},{"version":"1.7.6-pre1","version_type":"snapshot","date":"2014-03-08T11:00:00Z","major":false},{"version":"14w10c","version_type":"snapshot","date":"2014-03-07T13:49:55Z","major":false},{"version":"14w10b","version_type":"snapshot","date":"2014-03-06T16:25:39Z","major":false},{"version":"14w10a","version_type":"snapshot","date":"2014-03-06T14:23:04Z","major":false},{"version":"14w08a","version_type":"snapshot","date":"2014-02-26T17:00:00Z","major":false},{"version":"1.7.5","version_type":"release","date":"2014-02-26T09:22:17Z","major":false},{"version":"14w07a","version_type":"snapshot","date":"2014-02-14T11:05:07Z","major":false},{"version":"14w06b","version_type":"snapshot","date":"2014-02-06T17:30:42Z","major":false},{"version":"14w06a","version_type":"snapshot","date":"2014-02-06T14:30:17Z","major":false},{"version":"14w05b","version_type":"snapshot","date":"2014-01-31T14:05:50Z","major":false},{"version":"14w05a","version_type":"snapshot","date":"2014-01-30T15:32:41Z","major":false},{"version":"14w04b","version_type":"snapshot","date":"2014-01-24T15:48:46Z","major":false},{"version":"14w04a","version_type":"snapshot","date":"2014-01-23T15:26:13Z","major":false},{"version":"14w03b","version_type":"snapshot","date":"2014-01-16T16:36:19Z","major":false},{"version":"14w03a","version_type":"snapshot","date":"2014-01-16T14:45:13Z","major":false},{"version":"14w02c","version_type":"snapshot","date":"2014-01-10T15:42:36Z","major":false},{"version":"14w02b","version_type":"snapshot","date":"2014-01-09T15:45:55Z","major":false},{"version":"14w02a","version_type":"snapshot","date":"2014-01-09T14:44:41Z","major":false},{"version":"1.7.4","version_type":"release","date":"2013-12-09T12:28:10Z","major":false},{"version":"1.7.3","version_type":"release","date":"2013-12-06T13:55:34Z","major":false},{"version":"13w49a","version_type":"snapshot","date":"2013-12-05T14:34:41Z","major":false},{"version":"13w48b","version_type":"snapshot","date":"2013-11-26T18:36:08Z","major":false},{"version":"13w48a","version_type":"snapshot","date":"2013-11-25T16:53:39Z","major":false},{"version":"13w47e","version_type":"snapshot","date":"2013-11-22T15:16:38Z","major":false},{"version":"13w47d","version_type":"snapshot","date":"2013-11-22T13:51:15Z","major":false},{"version":"13w47c","version_type":"snapshot","date":"2013-11-21T17:10:33Z","major":false},{"version":"13w47b","version_type":"snapshot","date":"2013-11-21T16:57:41Z","major":false},{"version":"13w47a","version_type":"snapshot","date":"2013-11-21T15:59:58Z","major":false},{"version":"1.7.2","version_type":"release","date":"2013-10-25T13:00:00Z","major":false},{"version":"1.7.1","version_type":"snapshot","date":"2013-10-23T12:01:07Z","major":false},{"version":"1.7","version_type":"snapshot","date":"2013-10-22T15:04:05Z","major":false},{"version":"13w43a","version_type":"snapshot","date":"2013-10-21T16:34:47Z","major":false},{"version":"13w42b","version_type":"snapshot","date":"2013-10-18T16:34:08Z","major":false},{"version":"13w42a","version_type":"snapshot","date":"2013-10-17T18:33:05Z","major":false},{"version":"13w41b","version_type":"snapshot","date":"2013-10-11T15:09:17Z","major":false},{"version":"13w41a","version_type":"snapshot","date":"2013-10-10T14:21:43Z","major":false},{"version":"13w39b","version_type":"snapshot","date":"2013-09-27T12:15:58Z","major":false},{"version":"13w39a","version_type":"snapshot","date":"2013-09-26T15:11:19Z","major":false},{"version":"13w38c","version_type":"snapshot","date":"2013-09-20T15:11:34Z","major":false},{"version":"13w38b","version_type":"snapshot","date":"2013-09-20T13:45:40Z","major":false},{"version":"13w38a","version_type":"snapshot","date":"2013-09-19T16:34:21Z","major":false},{"version":"1.6.4","version_type":"release","date":"2013-09-19T15:52:37Z","major":true},{"version":"13w37b","version_type":"snapshot","date":"2013-09-13T10:54:42Z","major":false},{"version":"1.6.3","version_type":"snapshot","date":"2013-09-13T10:54:41Z","major":false},{"version":"13w37a","version_type":"snapshot","date":"2013-09-12T14:23:14Z","major":false},{"version":"13w36b","version_type":"snapshot","date":"2013-09-06T12:31:58Z","major":false},{"version":"13w36a","version_type":"snapshot","date":"2013-09-05T13:05:40Z","major":false},{"version":"1.6.2","version_type":"release","date":"2013-07-05T13:09:02Z","major":false},{"version":"1.6.1","version_type":"release","date":"2013-06-28T14:48:41Z","major":false},{"version":"1.6","version_type":"snapshot","date":"2013-06-25T13:08:56Z","major":false},{"version":"13w26a","version_type":"snapshot","date":"2013-06-24T16:06:06Z","major":false},{"version":"13w25c","version_type":"snapshot","date":"2013-06-20T15:23:37Z","major":false},{"version":"13w25b","version_type":"snapshot","date":"2013-06-18T15:13:27Z","major":false},{"version":"13w25a","version_type":"snapshot","date":"2013-06-17T14:08:06Z","major":false},{"version":"13w24b","version_type":"snapshot","date":"2013-06-14T12:19:13Z","major":false},{"version":"13w24a","version_type":"snapshot","date":"2013-06-13T15:32:23Z","major":false},{"version":"13w23b","version_type":"snapshot","date":"2013-06-08T00:32:01Z","major":false},{"version":"13w23a","version_type":"snapshot","date":"2013-06-07T16:04:20Z","major":false},{"version":"13w22a","version_type":"snapshot","date":"2013-05-30T14:38:40Z","major":false},{"version":"13w21b","version_type":"snapshot","date":"2013-05-27T08:50:42Z","major":false},{"version":"13w21a","version_type":"snapshot","date":"2013-05-23T15:38:28Z","major":false},{"version":"13w19a","version_type":"snapshot","date":"2013-05-10T14:48:02Z","major":false},{"version":"13w18c","version_type":"snapshot","date":"2013-05-03T09:19:35Z","major":false},{"version":"13w18b","version_type":"snapshot","date":"2013-05-02T17:12:25Z","major":false},{"version":"13w18a","version_type":"snapshot","date":"2013-05-02T15:45:59Z","major":false},{"version":"13w17a","version_type":"snapshot","date":"2013-04-25T15:50:00Z","major":false},{"version":"1.5.2","version_type":"release","date":"2013-04-25T15:45:00Z","major":true},{"version":"13w16b","version_type":"snapshot","date":"2013-04-23T21:51:22Z","major":false},{"version":"13w16a","version_type":"snapshot","date":"2013-04-21T12:49:30Z","major":false},{"version":"1.5.1","version_type":"release","date":"2013-03-20T10:00:00Z","major":false},{"version":"1.5","version_type":"snapshot","date":"2013-03-06T22:00:00Z","major":false},{"version":"1.4.7","version_type":"release","date":"2012-12-27T22:00:00Z","major":true},{"version":"1.4.6","version_type":"release","date":"2012-12-19T22:00:01Z","major":false},{"version":"1.4.5","version_type":"release","date":"2012-12-19T22:00:00Z","major":false},{"version":"1.4.4","version_type":"release","date":"2012-12-13T22:00:00Z","major":false},{"version":"1.4.3","version_type":"snapshot","date":"2012-11-30T22:00:00Z","major":false},{"version":"1.4.2","version_type":"release","date":"2012-11-24T22:00:00Z","major":false},{"version":"1.4.1","version_type":"snapshot","date":"2012-11-22T22:00:00Z","major":false},{"version":"1.4","version_type":"snapshot","date":"2012-11-18T22:00:00Z","major":false},{"version":"1.3.2","version_type":"release","date":"2012-08-15T22:00:00Z","major":true},{"version":"1.3.1","version_type":"release","date":"2012-07-31T22:00:00Z","major":false},{"version":"1.3","version_type":"snapshot","date":"2012-07-25T22:00:00Z","major":false},{"version":"1.2.5","version_type":"release","date":"2012-03-29T22:00:00Z","major":true},{"version":"1.2.4","version_type":"release","date":"2012-03-21T22:00:00Z","major":false},{"version":"1.2.3","version_type":"release","date":"2012-03-01T22:00:00Z","major":false},{"version":"1.2.2","version_type":"release","date":"2012-02-29T22:00:01Z","major":false},{"version":"1.2.1","version_type":"release","date":"2012-02-29T22:00:00Z","major":false},{"version":"1.1","version_type":"release","date":"2012-01-11T22:00:00Z","major":true},{"version":"1.0","version_type":"release","date":"2011-11-17T22:00:00Z","major":false},{"version":"b1.8.1","version_type":"beta","date":"2011-09-18T22:00:00Z","major":false},{"version":"b1.8","version_type":"beta","date":"2011-09-14T22:00:00Z","major":false},{"version":"b1.7.3","version_type":"beta","date":"2011-07-07T22:00:00Z","major":true},{"version":"b1.7.2","version_type":"beta","date":"2011-06-30T22:00:00Z","major":false},{"version":"b1.7","version_type":"beta","date":"2011-06-29T22:00:00Z","major":false},{"version":"b1.6.6","version_type":"beta","date":"2011-05-30T22:00:00Z","major":false},{"version":"b1.6.5","version_type":"beta","date":"2011-05-27T22:00:00Z","major":false},{"version":"b1.6.4","version_type":"beta","date":"2011-05-25T22:00:04Z","major":false},{"version":"b1.6.3","version_type":"beta","date":"2011-05-25T22:00:03Z","major":false},{"version":"b1.6.2","version_type":"beta","date":"2011-05-25T22:00:02Z","major":false},{"version":"b1.6.1","version_type":"beta","date":"2011-05-25T22:00:01Z","major":false},{"version":"b1.6","version_type":"beta","date":"2011-05-25T22:00:00Z","major":false},{"version":"b1.5_01","version_type":"beta","date":"2011-04-19T22:00:00Z","major":false},{"version":"b1.5","version_type":"beta","date":"2011-04-18T22:00:00Z","major":false},{"version":"b1.4_01","version_type":"beta","date":"2011-04-04T22:00:00Z","major":false},{"version":"b1.4","version_type":"beta","date":"2011-03-30T22:00:00Z","major":false},{"version":"b1.3_01","version_type":"beta","date":"2011-02-22T22:00:00Z","major":false},{"version":"b1.3b","version_type":"beta","date":"2011-02-21T22:00:00Z","major":false},{"version":"b1.2_02","version_type":"beta","date":"2011-01-20T22:00:00Z","major":false},{"version":"b1.2_01","version_type":"beta","date":"2011-01-13T22:00:00Z","major":false},{"version":"b1.2","version_type":"beta","date":"2011-01-12T22:00:00Z","major":false},{"version":"b1.1_02","version_type":"beta","date":"2010-12-21T22:00:01Z","major":false},{"version":"b1.1_01","version_type":"beta","date":"2010-12-21T22:00:00Z","major":false},{"version":"b1.0.2","version_type":"beta","date":"2010-12-20T22:00:00Z","major":false},{"version":"b1.0_01","version_type":"beta","date":"2010-12-19T22:00:01Z","major":false},{"version":"b1.0","version_type":"beta","date":"2010-12-19T22:00:00Z","major":false},{"version":"a1.2.6","version_type":"alpha","date":"2010-12-02T22:00:00Z","major":false},{"version":"a1.2.5","version_type":"alpha","date":"2010-11-30T22:00:00Z","major":false},{"version":"a1.2.4_01","version_type":"alpha","date":"2010-11-29T22:00:00Z","major":false},{"version":"a1.2.3_04","version_type":"alpha","date":"2010-11-25T22:00:00Z","major":false},{"version":"a1.2.3_02","version_type":"alpha","date":"2010-11-24T22:00:00Z","major":false},{"version":"a1.2.3_01","version_type":"alpha","date":"2010-11-23T22:00:01Z","major":false},{"version":"a1.2.3","version_type":"alpha","date":"2010-11-23T22:00:00Z","major":false},{"version":"a1.2.2b","version_type":"alpha","date":"2010-11-09T22:00:01Z","major":false},{"version":"a1.2.2a","version_type":"alpha","date":"2010-11-09T22:00:00Z","major":false},{"version":"a1.2.1_01","version_type":"alpha","date":"2010-11-04T22:00:01Z","major":false},{"version":"a1.2.1","version_type":"alpha","date":"2010-11-04T22:00:00Z","major":false},{"version":"a1.2.0_02","version_type":"alpha","date":"2010-11-03T22:00:00Z","major":false},{"version":"a1.2.0_01","version_type":"alpha","date":"2010-10-30T22:00:00Z","major":false},{"version":"a1.2.0","version_type":"alpha","date":"2010-10-29T22:00:00Z","major":false},{"version":"a1.1.2_01","version_type":"alpha","date":"2010-09-22T22:00:00Z","major":false},{"version":"a1.1.2","version_type":"alpha","date":"2010-09-19T22:00:00Z","major":false},{"version":"a1.1.0","version_type":"alpha","date":"2010-09-12T22:00:00Z","major":false},{"version":"a1.0.17_04","version_type":"alpha","date":"2010-08-22T22:00:00Z","major":false},{"version":"a1.0.17_02","version_type":"alpha","date":"2010-08-19T22:00:00Z","major":false},{"version":"a1.0.16","version_type":"alpha","date":"2010-08-11T22:00:00Z","major":false},{"version":"a1.0.15","version_type":"alpha","date":"2010-08-03T22:00:00Z","major":false},{"version":"a1.0.14","version_type":"alpha","date":"2010-07-29T22:00:00Z","major":false},{"version":"a1.0.11","version_type":"alpha","date":"2010-07-22T22:00:00Z","major":false},{"version":"a1.0.5_01","version_type":"alpha","date":"2010-07-12T22:00:00Z","major":false},{"version":"a1.0.4","version_type":"alpha","date":"2010-07-08T22:00:00Z","major":false},{"version":"inf-20100618","version_type":"alpha","date":"2010-06-15T22:00:00Z","major":false},{"version":"c0.30_01c","version_type":"alpha","date":"2009-12-21T22:00:00Z","major":false},{"version":"c0.0.13a","version_type":"alpha","date":"2009-05-30T22:00:00Z","major":false},{"version":"c0.0.13a_03","version_type":"alpha","date":"2009-05-21T22:00:00Z","major":false},{"version":"c0.0.11a","version_type":"alpha","date":"2009-05-16T22:00:00Z","major":false},{"version":"rd-161348","version_type":"alpha","date":"2009-05-16T11:48:00Z","major":false},{"version":"rd-160052","version_type":"alpha","date":"2009-05-15T22:52:00Z","major":false},{"version":"rd-20090515","version_type":"alpha","date":"2009-05-14T22:00:00Z","major":false},{"version":"rd-132328","version_type":"alpha","date":"2009-05-13T21:28:00Z","major":false},{"version":"rd-132211","version_type":"alpha","date":"2009-05-13T20:11:00Z","major":false}] \ No newline at end of file diff --git a/deno.json b/deno.json index 57057c1..6640b63 100644 --- a/deno.json +++ b/deno.json @@ -6,7 +6,7 @@ "build": "deno run -A dev.ts build", "preview": "deno run -A main.ts", "update": "deno run -A -r https://fresh.deno.dev/update .", - "clean": "rm -rf ./server && rm ./players.cache.json && rm ./mcgrizz.json" + "clean": "rm -rf ./server && rm ./mcgrizz.json && rm ./players.cache.json" }, "lint": { "rules": { @@ -33,7 +33,8 @@ "@preact/signals-core": "https://esm.sh/*@preact/signals-core@1.2.3", "$std/": "https://deno.land/std@0.193.0/", "puppet": "https://deno.land/x/sockpuppet@0.6.1/mod.ts", - "puppet/client": "https://deno.land/x/sockpuppet@0.6.1/client/mod.ts" + "puppet/client": "https://deno.land/x/sockpuppet@0.6.1/client/mod.ts", + "jsdom": "https://esm.sh/jsdom" }, "compilerOptions": { "jsx": "react-jsx", diff --git a/fabric/versions/game.json b/fabric/versions/game.json new file mode 100644 index 0000000..3a7d8ba --- /dev/null +++ b/fabric/versions/game.json @@ -0,0 +1,1238 @@ +[ + { + "version": "23w40a", + "stable": false + }, + { + "version": "1.20.2", + "stable": true + }, + { + "version": "1.20.2-rc2", + "stable": false + }, + { + "version": "1.20.2-rc1", + "stable": false + }, + { + "version": "1.20.2-pre4", + "stable": false + }, + { + "version": "1.20.2-pre3", + "stable": false + }, + { + "version": "1.20.2-pre2", + "stable": false + }, + { + "version": "1.20.2-pre1", + "stable": false + }, + { + "version": "23w35a", + "stable": false + }, + { + "version": "23w33a", + "stable": false + }, + { + "version": "23w32a", + "stable": false + }, + { + "version": "23w31a", + "stable": false + }, + { + "version": "1.20.1", + "stable": true + }, + { + "version": "1.20.1-rc1", + "stable": false + }, + { + "version": "1.20", + "stable": true + }, + { + "version": "1.20-rc1", + "stable": false + }, + { + "version": "1.20-pre7", + "stable": false + }, + { + "version": "1.20-pre6", + "stable": false + }, + { + "version": "1.20-pre5", + "stable": false + }, + { + "version": "1.20-pre4", + "stable": false + }, + { + "version": "1.20-pre3", + "stable": false + }, + { + "version": "1.20-pre2", + "stable": false + }, + { + "version": "1.20-pre1", + "stable": false + }, + { + "version": "23w18a", + "stable": false + }, + { + "version": "23w17a", + "stable": false + }, + { + "version": "23w16a", + "stable": false + }, + { + "version": "23w14a", + "stable": false + }, + { + "version": "23w13a_or_b", + "stable": false + }, + { + "version": "23w13a_or_b_original", + "stable": false + }, + { + "version": "23w13a", + "stable": false + }, + { + "version": "23w12a", + "stable": false + }, + { + "version": "1.19.4", + "stable": true + }, + { + "version": "1.19.4-rc3", + "stable": false + }, + { + "version": "1.19.4-rc2", + "stable": false + }, + { + "version": "1.19.4-rc1", + "stable": false + }, + { + "version": "1.19.4-pre4", + "stable": false + }, + { + "version": "1.19.4-pre3", + "stable": false + }, + { + "version": "1.19.4-pre2", + "stable": false + }, + { + "version": "1.19.4-pre1", + "stable": false + }, + { + "version": "23w07a", + "stable": false + }, + { + "version": "23w06a", + "stable": false + }, + { + "version": "23w05a", + "stable": false + }, + { + "version": "23w04a", + "stable": false + }, + { + "version": "23w03a", + "stable": false + }, + { + "version": "1.19.3", + "stable": true + }, + { + "version": "1.19.3-rc3", + "stable": false + }, + { + "version": "1.19.3-rc2", + "stable": false + }, + { + "version": "1.19.3-rc1", + "stable": false + }, + { + "version": "1.19.3-pre3", + "stable": false + }, + { + "version": "1.19.3-pre2", + "stable": false + }, + { + "version": "1.19.3-pre1", + "stable": false + }, + { + "version": "22w46a", + "stable": false + }, + { + "version": "22w45a", + "stable": false + }, + { + "version": "22w44a", + "stable": false + }, + { + "version": "22w43a", + "stable": false + }, + { + "version": "22w42a", + "stable": false + }, + { + "version": "1.19.2", + "stable": true + }, + { + "version": "1.19.2-rc2", + "stable": false + }, + { + "version": "1.19.2-rc1", + "stable": false + }, + { + "version": "1.19.1", + "stable": true + }, + { + "version": "1.19.1-rc3", + "stable": false + }, + { + "version": "1.19.1-rc2", + "stable": false + }, + { + "version": "1.19.1-pre6", + "stable": false + }, + { + "version": "1.19.1-pre5", + "stable": false + }, + { + "version": "1.19.1-pre4", + "stable": false + }, + { + "version": "1.19.1-pre3", + "stable": false + }, + { + "version": "1.19.1-pre2", + "stable": false + }, + { + "version": "1.19.1-rc1", + "stable": false + }, + { + "version": "1.19.1-pre1", + "stable": false + }, + { + "version": "22w24a", + "stable": false + }, + { + "version": "1.19", + "stable": true + }, + { + "version": "1.19-rc2", + "stable": false + }, + { + "version": "1.19-rc1", + "stable": false + }, + { + "version": "1.19-pre5", + "stable": false + }, + { + "version": "1.19-pre4", + "stable": false + }, + { + "version": "1.19-pre3", + "stable": false + }, + { + "version": "1.19-pre2", + "stable": false + }, + { + "version": "1.19-pre1", + "stable": false + }, + { + "version": "22w19a", + "stable": false + }, + { + "version": "22w18a", + "stable": false + }, + { + "version": "22w17a", + "stable": false + }, + { + "version": "22w16b", + "stable": false + }, + { + "version": "22w16a", + "stable": false + }, + { + "version": "22w15a", + "stable": false + }, + { + "version": "22w14a", + "stable": false + }, + { + "version": "22w13oneblockatatime", + "stable": false + }, + { + "version": "22w13a", + "stable": false + }, + { + "version": "22w12a", + "stable": false + }, + { + "version": "22w11a", + "stable": false + }, + { + "version": "1.18.2", + "stable": true + }, + { + "version": "1.18.2-rc1", + "stable": false + }, + { + "version": "1.18.2-pre3", + "stable": false + }, + { + "version": "1.18.2-pre2", + "stable": false + }, + { + "version": "1.18.2-pre1", + "stable": false + }, + { + "version": "1.19_deep_dark_experimental_snapshot-1", + "stable": false + }, + { + "version": "22w07a", + "stable": false + }, + { + "version": "22w06a", + "stable": false + }, + { + "version": "22w05a", + "stable": false + }, + { + "version": "22w03a", + "stable": false + }, + { + "version": "1.18.1", + "stable": true + }, + { + "version": "1.18.1-rc3", + "stable": false + }, + { + "version": "1.18.1-rc2", + "stable": false + }, + { + "version": "1.18.1-rc1", + "stable": false + }, + { + "version": "1.18.1-pre1", + "stable": false + }, + { + "version": "1.18", + "stable": true + }, + { + "version": "1.18-rc4", + "stable": false + }, + { + "version": "1.18-rc3", + "stable": false + }, + { + "version": "1.18-rc2", + "stable": false + }, + { + "version": "1.18-rc1", + "stable": false + }, + { + "version": "1.18-pre8", + "stable": false + }, + { + "version": "1.18-pre7", + "stable": false + }, + { + "version": "1.18-pre6", + "stable": false + }, + { + "version": "1.18-pre5", + "stable": false + }, + { + "version": "1.18-pre4", + "stable": false + }, + { + "version": "1.18-pre3", + "stable": false + }, + { + "version": "1.18-pre2", + "stable": false + }, + { + "version": "1.18-pre1", + "stable": false + }, + { + "version": "21w44a", + "stable": false + }, + { + "version": "21w43a", + "stable": false + }, + { + "version": "21w42a", + "stable": false + }, + { + "version": "21w41a", + "stable": false + }, + { + "version": "21w40a", + "stable": false + }, + { + "version": "21w39a", + "stable": false + }, + { + "version": "21w38a", + "stable": false + }, + { + "version": "21w37a", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-7", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-6", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-5", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-4", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-3", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-2", + "stable": false + }, + { + "version": "1.18_experimental-snapshot-1", + "stable": false + }, + { + "version": "1.17.1", + "stable": true + }, + { + "version": "1.17.1-rc2", + "stable": false + }, + { + "version": "1.17.1-rc1", + "stable": false + }, + { + "version": "1.17.1-pre3", + "stable": false + }, + { + "version": "1.17.1-pre2", + "stable": false + }, + { + "version": "1.17.1-pre1", + "stable": false + }, + { + "version": "1.17", + "stable": true + }, + { + "version": "1.17-rc2", + "stable": false + }, + { + "version": "1.17-rc1", + "stable": false + }, + { + "version": "1.17-pre5", + "stable": false + }, + { + "version": "1.17-pre4", + "stable": false + }, + { + "version": "1.17-pre3", + "stable": false + }, + { + "version": "1.17-pre2", + "stable": false + }, + { + "version": "1.17-pre1", + "stable": false + }, + { + "version": "21w20a", + "stable": false + }, + { + "version": "21w19a", + "stable": false + }, + { + "version": "21w18a", + "stable": false + }, + { + "version": "21w17a", + "stable": false + }, + { + "version": "21w16a", + "stable": false + }, + { + "version": "21w15a", + "stable": false + }, + { + "version": "21w14a", + "stable": false + }, + { + "version": "21w13a", + "stable": false + }, + { + "version": "21w11a", + "stable": false + }, + { + "version": "21w10a", + "stable": false + }, + { + "version": "21w08b", + "stable": false + }, + { + "version": "21w08a", + "stable": false + }, + { + "version": "21w07a", + "stable": false + }, + { + "version": "21w06a", + "stable": false + }, + { + "version": "21w05b", + "stable": false + }, + { + "version": "21w05a", + "stable": false + }, + { + "version": "21w03a", + "stable": false + }, + { + "version": "1.16.5", + "stable": true + }, + { + "version": "1.16.5-rc1", + "stable": false + }, + { + "version": "20w51a", + "stable": false + }, + { + "version": "20w49a", + "stable": false + }, + { + "version": "20w48a", + "stable": false + }, + { + "version": "20w46a", + "stable": false + }, + { + "version": "20w45a", + "stable": false + }, + { + "version": "1.16.4", + "stable": true + }, + { + "version": "1.16.4-rc1", + "stable": false + }, + { + "version": "1.16.4-pre2", + "stable": false + }, + { + "version": "1.16.4-pre1", + "stable": false + }, + { + "version": "1.16.3", + "stable": true + }, + { + "version": "1.16.3-rc1", + "stable": false + }, + { + "version": "1.16_combat-3", + "stable": false + }, + { + "version": "1.16.2", + "stable": true + }, + { + "version": "1.16.2-rc2", + "stable": false + }, + { + "version": "1.16.2-rc1", + "stable": false + }, + { + "version": "1.16.2-pre3", + "stable": false + }, + { + "version": "1.16.2-pre2", + "stable": false + }, + { + "version": "1.16.2-pre1", + "stable": false + }, + { + "version": "20w30a", + "stable": false + }, + { + "version": "20w29a", + "stable": false + }, + { + "version": "20w28a", + "stable": false + }, + { + "version": "20w27a", + "stable": false + }, + { + "version": "1.16.1", + "stable": true + }, + { + "version": "1.16", + "stable": true + }, + { + "version": "1.16-rc1", + "stable": false + }, + { + "version": "1.16-pre8", + "stable": false + }, + { + "version": "1.16-pre7", + "stable": false + }, + { + "version": "1.16-pre6", + "stable": false + }, + { + "version": "1.16-pre5", + "stable": false + }, + { + "version": "1.16-pre4", + "stable": false + }, + { + "version": "1.16-pre3", + "stable": false + }, + { + "version": "1.16-pre2", + "stable": false + }, + { + "version": "1.16-pre1", + "stable": false + }, + { + "version": "20w22a", + "stable": false + }, + { + "version": "20w21a", + "stable": false + }, + { + "version": "20w20b", + "stable": false + }, + { + "version": "20w20a", + "stable": false + }, + { + "version": "20w19a", + "stable": false + }, + { + "version": "20w18a", + "stable": false + }, + { + "version": "20w17a", + "stable": false + }, + { + "version": "20w16a", + "stable": false + }, + { + "version": "20w15a", + "stable": false + }, + { + "version": "20w14a", + "stable": false + }, + { + "version": "20w14infinite", + "stable": false + }, + { + "version": "20w13b", + "stable": false + }, + { + "version": "20w13a", + "stable": false + }, + { + "version": "20w12a", + "stable": false + }, + { + "version": "20w11a", + "stable": false + }, + { + "version": "20w10a", + "stable": false + }, + { + "version": "20w09a", + "stable": false + }, + { + "version": "20w08a", + "stable": false + }, + { + "version": "20w07a", + "stable": false + }, + { + "version": "20w06a", + "stable": false + }, + { + "version": "1.15.2", + "stable": true + }, + { + "version": "1.15.2-pre2", + "stable": false + }, + { + "version": "1.15.2-pre1", + "stable": false + }, + { + "version": "1.15.1", + "stable": true + }, + { + "version": "1.15.1-pre1", + "stable": false + }, + { + "version": "1.15", + "stable": true + }, + { + "version": "1.15-pre7", + "stable": false + }, + { + "version": "1.15-pre6", + "stable": false + }, + { + "version": "1.15-pre5", + "stable": false + }, + { + "version": "1.15-pre4", + "stable": false + }, + { + "version": "1.15_combat-1", + "stable": false + }, + { + "version": "1.15-pre3", + "stable": false + }, + { + "version": "1.15-pre2", + "stable": false + }, + { + "version": "1.15-pre1", + "stable": false + }, + { + "version": "19w46b", + "stable": false + }, + { + "version": "19w46a", + "stable": false + }, + { + "version": "19w45b", + "stable": false + }, + { + "version": "19w45a", + "stable": false + }, + { + "version": "1.14_combat-3", + "stable": false + }, + { + "version": "19w44a", + "stable": false + }, + { + "version": "19w42a", + "stable": false + }, + { + "version": "19w41a", + "stable": false + }, + { + "version": "19w40a", + "stable": false + }, + { + "version": "19w39a", + "stable": false + }, + { + "version": "19w38b", + "stable": false + }, + { + "version": "19w38a", + "stable": false + }, + { + "version": "19w37a", + "stable": false + }, + { + "version": "19w36a", + "stable": false + }, + { + "version": "19w35a", + "stable": false + }, + { + "version": "19w34a", + "stable": false + }, + { + "version": "1.14_combat-0", + "stable": false + }, + { + "version": "1.14.4", + "stable": true + }, + { + "version": "1.14.4-pre7", + "stable": false + }, + { + "version": "1.14.4-pre6", + "stable": false + }, + { + "version": "1.14.4-pre5", + "stable": false + }, + { + "version": "1.14.4-pre4", + "stable": false + }, + { + "version": "1.14.4-pre3", + "stable": false + }, + { + "version": "1.14.4-pre2", + "stable": false + }, + { + "version": "1.14.4-pre1", + "stable": false + }, + { + "version": "1.14.3", + "stable": true + }, + { + "version": "1.14_combat-212796", + "stable": false + }, + { + "version": "1.14.3-pre4", + "stable": false + }, + { + "version": "1.14.3-pre3", + "stable": false + }, + { + "version": "1.14.3-pre2", + "stable": false + }, + { + "version": "1.14.3-pre1", + "stable": false + }, + { + "version": "1.14.2", + "stable": true + }, + { + "version": "1.14.2 Pre-Release 4", + "stable": false + }, + { + "version": "1.14.2 Pre-Release 3", + "stable": false + }, + { + "version": "1.14.2 Pre-Release 2", + "stable": false + }, + { + "version": "1.14.2 Pre-Release 1", + "stable": false + }, + { + "version": "1.14.1", + "stable": true + }, + { + "version": "1.14.1 Pre-Release 2", + "stable": false + }, + { + "version": "1.14.1 Pre-Release 1", + "stable": false + }, + { + "version": "1.14", + "stable": true + }, + { + "version": "1.14 Pre-Release 5", + "stable": false + }, + { + "version": "1.14 Pre-Release 4", + "stable": false + }, + { + "version": "1.14 Pre-Release 3", + "stable": false + }, + { + "version": "1.14 Pre-Release 2", + "stable": false + }, + { + "version": "1.14 Pre-Release 1", + "stable": false + }, + { + "version": "19w14b", + "stable": false + }, + { + "version": "19w14a", + "stable": false + }, + { + "version": "3D Shareware v1.34", + "stable": false + }, + { + "version": "19w13b", + "stable": false + }, + { + "version": "19w13a", + "stable": false + }, + { + "version": "19w12b", + "stable": false + }, + { + "version": "19w12a", + "stable": false + }, + { + "version": "19w11b", + "stable": false + }, + { + "version": "19w11a", + "stable": false + }, + { + "version": "19w09a", + "stable": false + }, + { + "version": "19w08b", + "stable": false + }, + { + "version": "19w08a", + "stable": false + }, + { + "version": "19w07a", + "stable": false + }, + { + "version": "19w06a", + "stable": false + }, + { + "version": "19w05a", + "stable": false + }, + { + "version": "19w04b", + "stable": false + }, + { + "version": "19w04a", + "stable": false + }, + { + "version": "19w03c", + "stable": false + }, + { + "version": "19w03b", + "stable": false + }, + { + "version": "19w03a", + "stable": false + }, + { + "version": "19w02a", + "stable": false + }, + { + "version": "18w50a", + "stable": false + }, + { + "version": "18w49a", + "stable": false + }, + { + "version": "18w48b", + "stable": false + }, + { + "version": "18w48a", + "stable": false + }, + { + "version": "18w47b", + "stable": false + }, + { + "version": "18w47a", + "stable": false + }, + { + "version": "18w46a", + "stable": false + }, + { + "version": "18w45a", + "stable": false + }, + { + "version": "18w44a", + "stable": false + }, + { + "version": "18w43c", + "stable": false + }, + { + "version": "18w43b", + "stable": false + } +] \ No newline at end of file diff --git a/fabric/versions/installer.json b/fabric/versions/installer.json new file mode 100644 index 0000000..a974c00 --- /dev/null +++ b/fabric/versions/installer.json @@ -0,0 +1,362 @@ +[ + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.11.2/fabric-installer-0.11.2.jar", + "maven": "net.fabricmc:fabric-installer:0.11.2", + "version": "0.11.2", + "stable": true + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.11.1/fabric-installer-0.11.1.jar", + "maven": "net.fabricmc:fabric-installer:0.11.1", + "version": "0.11.1", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.11.0/fabric-installer-0.11.0.jar", + "maven": "net.fabricmc:fabric-installer:0.11.0", + "version": "0.11.0", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.10.2/fabric-installer-0.10.2.jar", + "maven": "net.fabricmc:fabric-installer:0.10.2", + "version": "0.10.2", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.10.1/fabric-installer-0.10.1.jar", + "maven": "net.fabricmc:fabric-installer:0.10.1", + "version": "0.10.1", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.10.0/fabric-installer-0.10.0.jar", + "maven": "net.fabricmc:fabric-installer:0.10.0", + "version": "0.10.0", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.9.1/fabric-installer-0.9.1.jar", + "maven": "net.fabricmc:fabric-installer:0.9.1", + "version": "0.9.1", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.9.0/fabric-installer-0.9.0.jar", + "maven": "net.fabricmc:fabric-installer:0.9.0", + "version": "0.9.0", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.8.3/fabric-installer-0.8.3.jar", + "maven": "net.fabricmc:fabric-installer:0.8.3", + "version": "0.8.3", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.8.2/fabric-installer-0.8.2.jar", + "maven": "net.fabricmc:fabric-installer:0.8.2", + "version": "0.8.2", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.8.1/fabric-installer-0.8.1.jar", + "maven": "net.fabricmc:fabric-installer:0.8.1", + "version": "0.8.1", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.8.0/fabric-installer-0.8.0.jar", + "maven": "net.fabricmc:fabric-installer:0.8.0", + "version": "0.8.0", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.7.4/fabric-installer-0.7.4.jar", + "maven": "net.fabricmc:fabric-installer:0.7.4", + "version": "0.7.4", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.7.3/fabric-installer-0.7.3.jar", + "maven": "net.fabricmc:fabric-installer:0.7.3", + "version": "0.7.3", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.7.2/fabric-installer-0.7.2.jar", + "maven": "net.fabricmc:fabric-installer:0.7.2", + "version": "0.7.2", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.7.1/fabric-installer-0.7.1.jar", + "maven": "net.fabricmc:fabric-installer:0.7.1", + "version": "0.7.1", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.51/fabric-installer-0.6.1.51.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.51", + "version": "0.6.1.51", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.50/fabric-installer-0.6.1.50.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.50", + "version": "0.6.1.50", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.49/fabric-installer-0.6.1.49.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.49", + "version": "0.6.1.49", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.48/fabric-installer-0.6.1.48.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.48", + "version": "0.6.1.48", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.47/fabric-installer-0.6.1.47.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.47", + "version": "0.6.1.47", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.46/fabric-installer-0.6.1.46.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.46", + "version": "0.6.1.46", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.45/fabric-installer-0.6.1.45.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.45", + "version": "0.6.1.45", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.1.44/fabric-installer-0.6.1.44.jar", + "maven": "net.fabricmc:fabric-installer:0.6.1.44", + "version": "0.6.1.44", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.0.43/fabric-installer-0.6.0.43.jar", + "maven": "net.fabricmc:fabric-installer:0.6.0.43", + "version": "0.6.0.43", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.0.42/fabric-installer-0.6.0.42.jar", + "maven": "net.fabricmc:fabric-installer:0.6.0.42", + "version": "0.6.0.42", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.6.0.41/fabric-installer-0.6.0.41.jar", + "maven": "net.fabricmc:fabric-installer:0.6.0.41", + "version": "0.6.0.41", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.2.40/fabric-installer-0.5.2.40.jar", + "maven": "net.fabricmc:fabric-installer:0.5.2.40", + "version": "0.5.2.40", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.2.39/fabric-installer-0.5.2.39.jar", + "maven": "net.fabricmc:fabric-installer:0.5.2.39", + "version": "0.5.2.39", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.2.38/fabric-installer-0.5.2.38.jar", + "maven": "net.fabricmc:fabric-installer:0.5.2.38", + "version": "0.5.2.38", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.1.37/fabric-installer-0.5.1.37.jar", + "maven": "net.fabricmc:fabric-installer:0.5.1.37", + "version": "0.5.1.37", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.1.36/fabric-installer-0.5.1.36.jar", + "maven": "net.fabricmc:fabric-installer:0.5.1.36", + "version": "0.5.1.36", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.35/fabric-installer-0.5.0.35.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.35", + "version": "0.5.0.35", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.34/fabric-installer-0.5.0.34.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.34", + "version": "0.5.0.34", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.33/fabric-installer-0.5.0.33.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.33", + "version": "0.5.0.33", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.32/fabric-installer-0.5.0.32.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.32", + "version": "0.5.0.32", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.31/fabric-installer-0.5.0.31.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.31", + "version": "0.5.0.31", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.30/fabric-installer-0.5.0.30.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.30", + "version": "0.5.0.30", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.5.0.29/fabric-installer-0.5.0.29.jar", + "maven": "net.fabricmc:fabric-installer:0.5.0.29", + "version": "0.5.0.29", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.28/fabric-installer-0.4.2.28.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.28", + "version": "0.4.2.28", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.27/fabric-installer-0.4.2.27.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.27", + "version": "0.4.2.27", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.26/fabric-installer-0.4.2.26.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.26", + "version": "0.4.2.26", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.25/fabric-installer-0.4.2.25.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.25", + "version": "0.4.2.25", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.24/fabric-installer-0.4.2.24.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.24", + "version": "0.4.2.24", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.2.23/fabric-installer-0.4.2.23.jar", + "maven": "net.fabricmc:fabric-installer:0.4.2.23", + "version": "0.4.2.23", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.1.22/fabric-installer-0.4.1.22.jar", + "maven": "net.fabricmc:fabric-installer:0.4.1.22", + "version": "0.4.1.22", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.0.21/fabric-installer-0.4.0.21.jar", + "maven": "net.fabricmc:fabric-installer:0.4.0.21", + "version": "0.4.0.21", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.0.20/fabric-installer-0.4.0.20.jar", + "maven": "net.fabricmc:fabric-installer:0.4.0.20", + "version": "0.4.0.20", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.0.19/fabric-installer-0.4.0.19.jar", + "maven": "net.fabricmc:fabric-installer:0.4.0.19", + "version": "0.4.0.19", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.4.0.18/fabric-installer-0.4.0.18.jar", + "maven": "net.fabricmc:fabric-installer:0.4.0.18", + "version": "0.4.0.18", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.3.0.17/fabric-installer-0.3.0.17.jar", + "maven": "net.fabricmc:fabric-installer:0.3.0.17", + "version": "0.3.0.17", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.3.0.16/fabric-installer-0.3.0.16.jar", + "maven": "net.fabricmc:fabric-installer:0.3.0.16", + "version": "0.3.0.16", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.3.0.15/fabric-installer-0.3.0.15.jar", + "maven": "net.fabricmc:fabric-installer:0.3.0.15", + "version": "0.3.0.15", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.4.14/fabric-installer-0.2.4.14.jar", + "maven": "net.fabricmc:fabric-installer:0.2.4.14", + "version": "0.2.4.14", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.3.12/fabric-installer-0.2.3.12.jar", + "maven": "net.fabricmc:fabric-installer:0.2.3.12", + "version": "0.2.3.12", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.2.11/fabric-installer-0.2.2.11.jar", + "maven": "net.fabricmc:fabric-installer:0.2.2.11", + "version": "0.2.2.11", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.2.10/fabric-installer-0.2.2.10.jar", + "maven": "net.fabricmc:fabric-installer:0.2.2.10", + "version": "0.2.2.10", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.1.9/fabric-installer-0.2.1.9.jar", + "maven": "net.fabricmc:fabric-installer:0.2.1.9", + "version": "0.2.1.9", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.1.8/fabric-installer-0.2.1.8.jar", + "maven": "net.fabricmc:fabric-installer:0.2.1.8", + "version": "0.2.1.8", + "stable": false + }, + { + "url": "https://maven.fabricmc.net/net/fabricmc/fabric-installer/0.2.0.7/fabric-installer-0.2.0.7.jar", + "maven": "net.fabricmc:fabric-installer:0.2.0.7", + "version": "0.2.0.7", + "stable": false + } +] \ No newline at end of file diff --git a/fabric/versions/loader.json b/fabric/versions/loader.json new file mode 100644 index 0000000..45863d9 --- /dev/null +++ b/fabric/versions/loader.json @@ -0,0 +1,1451 @@ +[ + { + "separator": ".", + "build": 23, + "maven": "net.fabricmc:fabric-loader:0.14.23", + "version": "0.14.23", + "stable": false + }, + { + "separator": ".", + "build": 22, + "maven": "net.fabricmc:fabric-loader:0.14.22", + "version": "0.14.22", + "stable": true + }, + { + "separator": ".", + "build": 21, + "maven": "net.fabricmc:fabric-loader:0.14.21", + "version": "0.14.21", + "stable": false + }, + { + "separator": ".", + "build": 20, + "maven": "net.fabricmc:fabric-loader:0.14.20", + "version": "0.14.20", + "stable": false + }, + { + "separator": ".", + "build": 19, + "maven": "net.fabricmc:fabric-loader:0.14.19", + "version": "0.14.19", + "stable": false + }, + { + "separator": ".", + "build": 18, + "maven": "net.fabricmc:fabric-loader:0.14.18", + "version": "0.14.18", + "stable": false + }, + { + "separator": ".", + "build": 17, + "maven": "net.fabricmc:fabric-loader:0.14.17", + "version": "0.14.17", + "stable": false + }, + { + "separator": ".", + "build": 16, + "maven": "net.fabricmc:fabric-loader:0.14.16", + "version": "0.14.16", + "stable": false + }, + { + "separator": ".", + "build": 15, + "maven": "net.fabricmc:fabric-loader:0.14.15", + "version": "0.14.15", + "stable": false + }, + { + "separator": ".", + "build": 14, + "maven": "net.fabricmc:fabric-loader:0.14.14", + "version": "0.14.14", + "stable": false + }, + { + "separator": ".", + "build": 13, + "maven": "net.fabricmc:fabric-loader:0.14.13", + "version": "0.14.13", + "stable": false + }, + { + "separator": ".", + "build": 12, + "maven": "net.fabricmc:fabric-loader:0.14.12", + "version": "0.14.12", + "stable": false + }, + { + "separator": ".", + "build": 11, + "maven": "net.fabricmc:fabric-loader:0.14.11", + "version": "0.14.11", + "stable": false + }, + { + "separator": ".", + "build": 10, + "maven": "net.fabricmc:fabric-loader:0.14.10", + "version": "0.14.10", + "stable": false + }, + { + "separator": ".", + "build": 9, + "maven": "net.fabricmc:fabric-loader:0.14.9", + "version": "0.14.9", + "stable": false + }, + { + "separator": ".", + "build": 8, + "maven": "net.fabricmc:fabric-loader:0.14.8", + "version": "0.14.8", + "stable": false + }, + { + "separator": ".", + "build": 7, + "maven": "net.fabricmc:fabric-loader:0.14.7", + "version": "0.14.7", + "stable": false + }, + { + "separator": ".", + "build": 6, + "maven": "net.fabricmc:fabric-loader:0.14.6", + "version": "0.14.6", + "stable": false + }, + { + "separator": ".", + "build": 5, + "maven": "net.fabricmc:fabric-loader:0.14.5", + "version": "0.14.5", + "stable": false + }, + { + "separator": ".", + "build": 4, + "maven": "net.fabricmc:fabric-loader:0.14.4", + "version": "0.14.4", + "stable": false + }, + { + "separator": ".", + "build": 3, + "maven": "net.fabricmc:fabric-loader:0.14.3", + "version": "0.14.3", + "stable": false + }, + { + "separator": ".", + "build": 2, + "maven": "net.fabricmc:fabric-loader:0.14.2", + "version": "0.14.2", + "stable": false + }, + { + "separator": ".", + "build": 1, + "maven": "net.fabricmc:fabric-loader:0.14.1", + "version": "0.14.1", + "stable": false + }, + { + "separator": ".", + "build": 0, + "maven": "net.fabricmc:fabric-loader:0.14.0", + "version": "0.14.0", + "stable": false + }, + { + "separator": ".", + "build": 3, + "maven": "net.fabricmc:fabric-loader:0.13.3", + "version": "0.13.3", + "stable": false + }, + { + "separator": ".", + "build": 2, + "maven": "net.fabricmc:fabric-loader:0.13.2", + "version": "0.13.2", + "stable": false + }, + { + "separator": ".", + "build": 1, + "maven": "net.fabricmc:fabric-loader:0.13.1", + "version": "0.13.1", + "stable": false + }, + { + "separator": ".", + "build": 0, + "maven": "net.fabricmc:fabric-loader:0.13.0", + "version": "0.13.0", + "stable": false + }, + { + "separator": ".", + "build": 12, + "maven": "net.fabricmc:fabric-loader:0.12.12", + "version": "0.12.12", + "stable": false + }, + { + "separator": ".", + "build": 11, + "maven": "net.fabricmc:fabric-loader:0.12.11", + "version": "0.12.11", + "stable": false + }, + { + "separator": ".", + "build": 10, + "maven": "net.fabricmc:fabric-loader:0.12.10", + "version": "0.12.10", + "stable": false + }, + { + "separator": ".", + "build": 9, + "maven": "net.fabricmc:fabric-loader:0.12.9", + "version": "0.12.9", + "stable": false + }, + { + "separator": ".", + "build": 8, + "maven": "net.fabricmc:fabric-loader:0.12.8", + "version": "0.12.8", + "stable": false + }, + { + "separator": ".", + "build": 7, + "maven": "net.fabricmc:fabric-loader:0.12.7", + "version": "0.12.7", + "stable": false + }, + { + "separator": ".", + "build": 6, + "maven": "net.fabricmc:fabric-loader:0.12.6", + "version": "0.12.6", + "stable": false + }, + { + "separator": ".", + "build": 5, + "maven": "net.fabricmc:fabric-loader:0.12.5", + "version": "0.12.5", + "stable": false + }, + { + "separator": ".", + "build": 4, + "maven": "net.fabricmc:fabric-loader:0.12.4", + "version": "0.12.4", + "stable": false + }, + { + "separator": ".", + "build": 3, + "maven": "net.fabricmc:fabric-loader:0.12.3", + "version": "0.12.3", + "stable": false + }, + { + "separator": ".", + "build": 2, + "maven": "net.fabricmc:fabric-loader:0.12.2", + "version": "0.12.2", + "stable": false + }, + { + "separator": ".", + "build": 1, + "maven": "net.fabricmc:fabric-loader:0.12.1", + "version": "0.12.1", + "stable": false + }, + { + "separator": ".", + "build": 0, + "maven": "net.fabricmc:fabric-loader:0.12.0", + "version": "0.12.0", + "stable": false + }, + { + "separator": ".", + "build": 7, + "maven": "net.fabricmc:fabric-loader:0.11.7", + "version": "0.11.7", + "stable": false + }, + { + "separator": ".", + "build": 6, + "maven": "net.fabricmc:fabric-loader:0.11.6", + "version": "0.11.6", + "stable": false + }, + { + "separator": ".", + "build": 5, + "maven": "net.fabricmc:fabric-loader:0.11.5", + "version": "0.11.5", + "stable": false + }, + { + "separator": ".", + "build": 3, + "maven": "net.fabricmc:fabric-loader:0.11.3", + "version": "0.11.3", + "stable": false + }, + { + "separator": ".", + "build": 2, + "maven": "net.fabricmc:fabric-loader:0.11.2", + "version": "0.11.2", + "stable": false + }, + { + "separator": ".", + "build": 1, + "maven": "net.fabricmc:fabric-loader:0.11.1", + "version": "0.11.1", + "stable": false + }, + { + "separator": ".", + "build": 0, + "maven": "net.fabricmc:fabric-loader:0.11.0", + "version": "0.11.0", + "stable": false + }, + { + "separator": ".", + "build": 8, + "maven": "net.fabricmc:fabric-loader:0.10.8", + "version": "0.10.8", + "stable": false + }, + { + "separator": ".", + "build": 7, + "maven": "net.fabricmc:fabric-loader:0.10.7", + "version": "0.10.7", + "stable": false + }, + { + "separator": "+build.", + "build": 214, + "maven": "net.fabricmc:fabric-loader:0.10.6+build.214", + "version": "0.10.6+build.214", + "stable": false + }, + { + "separator": "+build.", + "build": 213, + "maven": "net.fabricmc:fabric-loader:0.10.5+build.213", + "version": "0.10.5+build.213", + "stable": false + }, + { + "separator": "+build.", + "build": 212, + "maven": "net.fabricmc:fabric-loader:0.10.4+build.212", + "version": "0.10.4+build.212", + "stable": false + }, + { + "separator": "+build.", + "build": 211, + "maven": "net.fabricmc:fabric-loader:0.10.3+build.211", + "version": "0.10.3+build.211", + "stable": false + }, + { + "separator": "+build.", + "build": 210, + "maven": "net.fabricmc:fabric-loader:0.10.2+build.210", + "version": "0.10.2+build.210", + "stable": false + }, + { + "separator": "+build.", + "build": 209, + "maven": "net.fabricmc:fabric-loader:0.10.1+build.209", + "version": "0.10.1+build.209", + "stable": false + }, + { + "separator": "+build.", + "build": 208, + "maven": "net.fabricmc:fabric-loader:0.10.0+build.208", + "version": "0.10.0+build.208", + "stable": false + }, + { + "separator": "+build.", + "build": 207, + "maven": "net.fabricmc:fabric-loader:0.9.3+build.207", + "version": "0.9.3+build.207", + "stable": false + }, + { + "separator": "+build.", + "build": 206, + "maven": "net.fabricmc:fabric-loader:0.9.2+build.206", + "version": "0.9.2+build.206", + "stable": false + }, + { + "separator": "+build.", + "build": 205, + "maven": "net.fabricmc:fabric-loader:0.9.1+build.205", + "version": "0.9.1+build.205", + "stable": false + }, + { + "separator": "+build.", + "build": 204, + "maven": "net.fabricmc:fabric-loader:0.9.0+build.204", + "version": "0.9.0+build.204", + "stable": false + }, + { + "separator": "+build.", + "build": 203, + "maven": "net.fabricmc:fabric-loader:0.8.9+build.203", + "version": "0.8.9+build.203", + "stable": false + }, + { + "separator": "+build.", + "build": 202, + "maven": "net.fabricmc:fabric-loader:0.8.8+build.202", + "version": "0.8.8+build.202", + "stable": false + }, + { + "separator": "+build.", + "build": 201, + "maven": "net.fabricmc:fabric-loader:0.8.7+build.201", + "version": "0.8.7+build.201", + "stable": false + }, + { + "separator": "+build.", + "build": 200, + "maven": "net.fabricmc:fabric-loader:0.8.6+build.200", + "version": "0.8.6+build.200", + "stable": false + }, + { + "separator": "+build.", + "build": 199, + "maven": "net.fabricmc:fabric-loader:0.8.5+build.199", + "version": "0.8.5+build.199", + "stable": false + }, + { + "separator": "+build.", + "build": 198, + "maven": "net.fabricmc:fabric-loader:0.8.4+build.198", + "version": "0.8.4+build.198", + "stable": false + }, + { + "separator": "+build.", + "build": 196, + "maven": "net.fabricmc:fabric-loader:0.8.3+build.196", + "version": "0.8.3+build.196", + "stable": false + }, + { + "separator": "+build.", + "build": 194, + "maven": "net.fabricmc:fabric-loader:0.8.2+build.194", + "version": "0.8.2+build.194", + "stable": false + }, + { + "separator": "+build.", + "build": 193, + "maven": "net.fabricmc:fabric-loader:0.8.1+build.193", + "version": "0.8.1+build.193", + "stable": false + }, + { + "separator": "+build.", + "build": 192, + "maven": "net.fabricmc:fabric-loader:0.8.0+build.192", + "version": "0.8.0+build.192", + "stable": false + }, + { + "separator": "+build.", + "build": 191, + "maven": "net.fabricmc:fabric-loader:0.7.10+build.191", + "version": "0.7.10+build.191", + "stable": false + }, + { + "separator": "+build.", + "build": 190, + "maven": "net.fabricmc:fabric-loader:0.7.9+build.190", + "version": "0.7.9+build.190", + "stable": false + }, + { + "separator": "+build.", + "build": 189, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.189", + "version": "0.7.8+build.189", + "stable": false + }, + { + "separator": "+build.", + "build": 188, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.188", + "version": "0.7.8+build.188", + "stable": false + }, + { + "separator": "+build.", + "build": 187, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.187", + "version": "0.7.8+build.187", + "stable": false + }, + { + "separator": "+build.", + "build": 186, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.186", + "version": "0.7.8+build.186", + "stable": false + }, + { + "separator": "+build.", + "build": 185, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.185", + "version": "0.7.8+build.185", + "stable": false + }, + { + "separator": "+build.", + "build": 184, + "maven": "net.fabricmc:fabric-loader:0.7.8+build.184", + "version": "0.7.8+build.184", + "stable": false + }, + { + "separator": "+build.", + "build": 183, + "maven": "net.fabricmc:fabric-loader:0.7.7+build.183", + "version": "0.7.7+build.183", + "stable": false + }, + { + "separator": "+build.", + "build": 182, + "maven": "net.fabricmc:fabric-loader:0.7.7+build.182", + "version": "0.7.7+build.182", + "stable": false + }, + { + "separator": "+build.", + "build": 181, + "maven": "net.fabricmc:fabric-loader:0.7.6+build.181", + "version": "0.7.6+build.181", + "stable": false + }, + { + "separator": "+build.", + "build": 180, + "maven": "net.fabricmc:fabric-loader:0.7.6+build.180", + "version": "0.7.6+build.180", + "stable": false + }, + { + "separator": "+build.", + "build": 179, + "maven": "net.fabricmc:fabric-loader:0.7.6+build.179", + "version": "0.7.6+build.179", + "stable": false + }, + { + "separator": "+build.", + "build": 178, + "maven": "net.fabricmc:fabric-loader:0.7.5+build.178", + "version": "0.7.5+build.178", + "stable": false + }, + { + "separator": "+build.", + "build": 177, + "maven": "net.fabricmc:fabric-loader:0.7.4+build.177", + "version": "0.7.4+build.177", + "stable": false + }, + { + "separator": "+build.", + "build": 176, + "maven": "net.fabricmc:fabric-loader:0.7.3+build.176", + "version": "0.7.3+build.176", + "stable": false + }, + { + "separator": "+build.", + "build": 175, + "maven": "net.fabricmc:fabric-loader:0.7.2+build.175", + "version": "0.7.2+build.175", + "stable": false + }, + { + "separator": "+build.", + "build": 174, + "maven": "net.fabricmc:fabric-loader:0.7.2+build.174", + "version": "0.7.2+build.174", + "stable": false + }, + { + "separator": "+build.", + "build": 173, + "maven": "net.fabricmc:fabric-loader:0.7.1+build.173", + "version": "0.7.1+build.173", + "stable": false + }, + { + "separator": "+build.", + "build": 172, + "maven": "net.fabricmc:fabric-loader:0.7.0+build.172", + "version": "0.7.0+build.172", + "stable": false + }, + { + "separator": "+build.", + "build": 171, + "maven": "net.fabricmc:fabric-loader:0.7.0+build.171", + "version": "0.7.0+build.171", + "stable": false + }, + { + "separator": "+build.", + "build": 170, + "maven": "net.fabricmc:fabric-loader:0.6.4+build.170", + "version": "0.6.4+build.170", + "stable": false + }, + { + "separator": "+build.", + "build": 169, + "maven": "net.fabricmc:fabric-loader:0.6.4+build.169", + "version": "0.6.4+build.169", + "stable": false + }, + { + "separator": "+build.", + "build": 168, + "maven": "net.fabricmc:fabric-loader:0.6.3+build.168", + "version": "0.6.3+build.168", + "stable": false + }, + { + "separator": "+build.", + "build": 167, + "maven": "net.fabricmc:fabric-loader:0.6.3+build.167", + "version": "0.6.3+build.167", + "stable": false + }, + { + "separator": "+build.", + "build": 166, + "maven": "net.fabricmc:fabric-loader:0.6.2+build.166", + "version": "0.6.2+build.166", + "stable": false + }, + { + "separator": "+build.", + "build": 165, + "maven": "net.fabricmc:fabric-loader:0.6.1+build.165", + "version": "0.6.1+build.165", + "stable": false + }, + { + "separator": "+build.", + "build": 164, + "maven": "net.fabricmc:fabric-loader:0.6.1+build.164", + "version": "0.6.1+build.164", + "stable": false + }, + { + "separator": "+build.", + "build": 163, + "maven": "net.fabricmc:fabric-loader:0.6.0+build.163", + "version": "0.6.0+build.163", + "stable": false + }, + { + "separator": "+build.", + "build": 162, + "maven": "net.fabricmc:fabric-loader:0.5.0+build.162", + "version": "0.5.0+build.162", + "stable": false + }, + { + "separator": "+build.", + "build": 161, + "maven": "net.fabricmc:fabric-loader:0.4.9+build.161", + "version": "0.4.9+build.161", + "stable": false + }, + { + "separator": "+build.", + "build": 160, + "maven": "net.fabricmc:fabric-loader:0.4.9+build.160", + "version": "0.4.9+build.160", + "stable": false + }, + { + "separator": "+build.", + "build": 159, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.159", + "version": "0.4.8+build.159", + "stable": false + }, + { + "separator": "+build.", + "build": 158, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.158", + "version": "0.4.8+build.158", + "stable": false + }, + { + "separator": "+build.", + "build": 157, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.157", + "version": "0.4.8+build.157", + "stable": false + }, + { + "separator": "+build.", + "build": 156, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.156", + "version": "0.4.8+build.156", + "stable": false + }, + { + "separator": "+build.", + "build": 155, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.155", + "version": "0.4.8+build.155", + "stable": false + }, + { + "separator": "+build.", + "build": 154, + "maven": "net.fabricmc:fabric-loader:0.4.8+build.154", + "version": "0.4.8+build.154", + "stable": false + }, + { + "separator": "+build.", + "build": 153, + "maven": "net.fabricmc:fabric-loader:0.4.7+build.153", + "version": "0.4.7+build.153", + "stable": false + }, + { + "separator": "+build.", + "build": 152, + "maven": "net.fabricmc:fabric-loader:0.4.7+build.152", + "version": "0.4.7+build.152", + "stable": false + }, + { + "separator": "+build.", + "build": 148, + "maven": "net.fabricmc:fabric-loader:0.4.7+build.148", + "version": "0.4.7+build.148", + "stable": false + }, + { + "separator": "+build.", + "build": 147, + "maven": "net.fabricmc:fabric-loader:0.4.7+build.147", + "version": "0.4.7+build.147", + "stable": false + }, + { + "separator": "+build.", + "build": 146, + "maven": "net.fabricmc:fabric-loader:0.4.7+build.146", + "version": "0.4.7+build.146", + "stable": false + }, + { + "separator": "+build.", + "build": 145, + "maven": "net.fabricmc:fabric-loader:0.4.6+build.145", + "version": "0.4.6+build.145", + "stable": false + }, + { + "separator": "+build.", + "build": 144, + "maven": "net.fabricmc:fabric-loader:0.4.6+build.144", + "version": "0.4.6+build.144", + "stable": false + }, + { + "separator": "+build.", + "build": 143, + "maven": "net.fabricmc:fabric-loader:0.4.6+build.143", + "version": "0.4.6+build.143", + "stable": false + }, + { + "separator": "+build.", + "build": 142, + "maven": "net.fabricmc:fabric-loader:0.4.6+build.142", + "version": "0.4.6+build.142", + "stable": false + }, + { + "separator": "+build.", + "build": 141, + "maven": "net.fabricmc:fabric-loader:0.4.6+build.141", + "version": "0.4.6+build.141", + "stable": false + }, + { + "separator": "+build.", + "build": 140, + "maven": "net.fabricmc:fabric-loader:0.4.5+build.140", + "version": "0.4.5+build.140", + "stable": false + }, + { + "separator": "+build.", + "build": 139, + "maven": "net.fabricmc:fabric-loader:0.4.4+build.139", + "version": "0.4.4+build.139", + "stable": false + }, + { + "separator": "+build.", + "build": 138, + "maven": "net.fabricmc:fabric-loader:0.4.4+build.138", + "version": "0.4.4+build.138", + "stable": false + }, + { + "separator": "+build.", + "build": 137, + "maven": "net.fabricmc:fabric-loader:0.4.4+build.137", + "version": "0.4.4+build.137", + "stable": false + }, + { + "separator": "+build.", + "build": 136, + "maven": "net.fabricmc:fabric-loader:0.4.4+build.136", + "version": "0.4.4+build.136", + "stable": false + }, + { + "separator": "+build.", + "build": 135, + "maven": "net.fabricmc:fabric-loader:0.4.3+build.135", + "version": "0.4.3+build.135", + "stable": false + }, + { + "separator": "+build.", + "build": 134, + "maven": "net.fabricmc:fabric-loader:0.4.3+build.134", + "version": "0.4.3+build.134", + "stable": false + }, + { + "separator": "+build.", + "build": 133, + "maven": "net.fabricmc:fabric-loader:0.4.3+build.133", + "version": "0.4.3+build.133", + "stable": false + }, + { + "separator": "+build.", + "build": 132, + "maven": "net.fabricmc:fabric-loader:0.4.2+build.132", + "version": "0.4.2+build.132", + "stable": false + }, + { + "separator": "+build.", + "build": 131, + "maven": "net.fabricmc:fabric-loader:0.4.2+build.131", + "version": "0.4.2+build.131", + "stable": false + }, + { + "separator": "+build.", + "build": 130, + "maven": "net.fabricmc:fabric-loader:0.4.2+build.130", + "version": "0.4.2+build.130", + "stable": false + }, + { + "separator": "+build.", + "build": 129, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.129", + "version": "0.4.1+build.129", + "stable": false + }, + { + "separator": "+build.", + "build": 128, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.128", + "version": "0.4.1+build.128", + "stable": false + }, + { + "separator": "+build.", + "build": 127, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.127", + "version": "0.4.1+build.127", + "stable": false + }, + { + "separator": "+build.", + "build": 126, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.126", + "version": "0.4.1+build.126", + "stable": false + }, + { + "separator": "+build.", + "build": 125, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.125", + "version": "0.4.1+build.125", + "stable": false + }, + { + "separator": "+build.", + "build": 124, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.124", + "version": "0.4.1+build.124", + "stable": false + }, + { + "separator": "+build.", + "build": 123, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.123", + "version": "0.4.1+build.123", + "stable": false + }, + { + "separator": "+build.", + "build": 122, + "maven": "net.fabricmc:fabric-loader:0.4.1+build.122", + "version": "0.4.1+build.122", + "stable": false + }, + { + "separator": "+build.", + "build": 121, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.121", + "version": "0.4.0+build.121", + "stable": false + }, + { + "separator": "+build.", + "build": 120, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.120", + "version": "0.4.0+build.120", + "stable": false + }, + { + "separator": "+build.", + "build": 119, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.119", + "version": "0.4.0+build.119", + "stable": false + }, + { + "separator": "+build.", + "build": 118, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.118", + "version": "0.4.0+build.118", + "stable": false + }, + { + "separator": "+build.", + "build": 117, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.117", + "version": "0.4.0+build.117", + "stable": false + }, + { + "separator": "+build.", + "build": 116, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.116", + "version": "0.4.0+build.116", + "stable": false + }, + { + "separator": "+build.", + "build": 115, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.115", + "version": "0.4.0+build.115", + "stable": false + }, + { + "separator": "+build.", + "build": 114, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.114", + "version": "0.4.0+build.114", + "stable": false + }, + { + "separator": "+build.", + "build": 113, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.113", + "version": "0.4.0+build.113", + "stable": false + }, + { + "separator": "+build.", + "build": 112, + "maven": "net.fabricmc:fabric-loader:0.4.0+build.112", + "version": "0.4.0+build.112", + "stable": false + }, + { + "separator": ".", + "build": 111, + "maven": "net.fabricmc:fabric-loader:0.3.7.111", + "version": "0.3.7.111", + "stable": false + }, + { + "separator": ".", + "build": 110, + "maven": "net.fabricmc:fabric-loader:0.3.7.110", + "version": "0.3.7.110", + "stable": false + }, + { + "separator": ".", + "build": 109, + "maven": "net.fabricmc:fabric-loader:0.3.7.109", + "version": "0.3.7.109", + "stable": false + }, + { + "separator": ".", + "build": 108, + "maven": "net.fabricmc:fabric-loader:0.3.7.108", + "version": "0.3.7.108", + "stable": false + }, + { + "separator": ".", + "build": 107, + "maven": "net.fabricmc:fabric-loader:0.3.6.107", + "version": "0.3.6.107", + "stable": false + }, + { + "separator": ".", + "build": 106, + "maven": "net.fabricmc:fabric-loader:0.3.5.106", + "version": "0.3.5.106", + "stable": false + }, + { + "separator": ".", + "build": 105, + "maven": "net.fabricmc:fabric-loader:0.3.4.105", + "version": "0.3.4.105", + "stable": false + }, + { + "separator": ".", + "build": 104, + "maven": "net.fabricmc:fabric-loader:0.3.4.104", + "version": "0.3.4.104", + "stable": false + }, + { + "separator": ".", + "build": 103, + "maven": "net.fabricmc:fabric-loader:0.3.4.103", + "version": "0.3.4.103", + "stable": false + }, + { + "separator": ".", + "build": 102, + "maven": "net.fabricmc:fabric-loader:0.3.3.102", + "version": "0.3.3.102", + "stable": false + }, + { + "separator": ".", + "build": 101, + "maven": "net.fabricmc:fabric-loader:0.3.3.101", + "version": "0.3.3.101", + "stable": false + }, + { + "separator": ".", + "build": 100, + "maven": "net.fabricmc:fabric-loader:0.3.3.100", + "version": "0.3.3.100", + "stable": false + }, + { + "separator": ".", + "build": 99, + "maven": "net.fabricmc:fabric-loader:0.3.3.99", + "version": "0.3.3.99", + "stable": false + }, + { + "separator": ".", + "build": 98, + "maven": "net.fabricmc:fabric-loader:0.3.3.98", + "version": "0.3.3.98", + "stable": false + }, + { + "separator": ".", + "build": 97, + "maven": "net.fabricmc:fabric-loader:0.3.3.97", + "version": "0.3.3.97", + "stable": false + }, + { + "separator": ".", + "build": 96, + "maven": "net.fabricmc:fabric-loader:0.3.2.96", + "version": "0.3.2.96", + "stable": false + }, + { + "separator": ".", + "build": 95, + "maven": "net.fabricmc:fabric-loader:0.3.2.95", + "version": "0.3.2.95", + "stable": false + }, + { + "separator": ".", + "build": 94, + "maven": "net.fabricmc:fabric-loader:0.3.2.94", + "version": "0.3.2.94", + "stable": false + }, + { + "separator": ".", + "build": 93, + "maven": "net.fabricmc:fabric-loader:0.3.2.93", + "version": "0.3.2.93", + "stable": false + }, + { + "separator": ".", + "build": 92, + "maven": "net.fabricmc:fabric-loader:0.3.2.92", + "version": "0.3.2.92", + "stable": false + }, + { + "separator": ".", + "build": 91, + "maven": "net.fabricmc:fabric-loader:0.3.2.91", + "version": "0.3.2.91", + "stable": false + }, + { + "separator": ".", + "build": 90, + "maven": "net.fabricmc:fabric-loader:0.3.2.90", + "version": "0.3.2.90", + "stable": false + }, + { + "separator": ".", + "build": 87, + "maven": "net.fabricmc:fabric-loader:0.3.2.87", + "version": "0.3.2.87", + "stable": false + }, + { + "separator": ".", + "build": 86, + "maven": "net.fabricmc:fabric-loader:0.3.2.86", + "version": "0.3.2.86", + "stable": false + }, + { + "separator": ".", + "build": 85, + "maven": "net.fabricmc:fabric-loader:0.3.1.85", + "version": "0.3.1.85", + "stable": false + }, + { + "separator": ".", + "build": 84, + "maven": "net.fabricmc:fabric-loader:0.3.1.84", + "version": "0.3.1.84", + "stable": false + }, + { + "separator": ".", + "build": 82, + "maven": "net.fabricmc:fabric-loader:0.3.1.82", + "version": "0.3.1.82", + "stable": false + }, + { + "separator": ".", + "build": 81, + "maven": "net.fabricmc:fabric-loader:0.3.1.81", + "version": "0.3.1.81", + "stable": false + }, + { + "separator": ".", + "build": 80, + "maven": "net.fabricmc:fabric-loader:0.3.1.80", + "version": "0.3.1.80", + "stable": false + }, + { + "separator": ".", + "build": 77, + "maven": "net.fabricmc:fabric-loader:0.3.0.77", + "version": "0.3.0.77", + "stable": false + }, + { + "separator": ".", + "build": 76, + "maven": "net.fabricmc:fabric-loader:0.3.0.76", + "version": "0.3.0.76", + "stable": false + }, + { + "separator": ".", + "build": 75, + "maven": "net.fabricmc:fabric-loader:0.3.0.75", + "version": "0.3.0.75", + "stable": false + }, + { + "separator": ".", + "build": 74, + "maven": "net.fabricmc:fabric-loader:0.3.0.74", + "version": "0.3.0.74", + "stable": false + }, + { + "separator": ".", + "build": 73, + "maven": "net.fabricmc:fabric-loader:0.3.0.73", + "version": "0.3.0.73", + "stable": false + }, + { + "separator": ".", + "build": 72, + "maven": "net.fabricmc:fabric-loader:0.3.0.72", + "version": "0.3.0.72", + "stable": false + }, + { + "separator": ".", + "build": 71, + "maven": "net.fabricmc:fabric-loader:0.2.0.71", + "version": "0.2.0.71", + "stable": false + }, + { + "separator": ".", + "build": 70, + "maven": "net.fabricmc:fabric-loader:0.2.0.70", + "version": "0.2.0.70", + "stable": false + }, + { + "separator": ".", + "build": 69, + "maven": "net.fabricmc:fabric-loader:0.2.0.69", + "version": "0.2.0.69", + "stable": false + }, + { + "separator": ".", + "build": 68, + "maven": "net.fabricmc:fabric-loader:0.2.0.68", + "version": "0.2.0.68", + "stable": false + }, + { + "separator": ".", + "build": 67, + "maven": "net.fabricmc:fabric-loader:0.2.0.67", + "version": "0.2.0.67", + "stable": false + }, + { + "separator": ".", + "build": 66, + "maven": "net.fabricmc:fabric-loader:0.2.0.66", + "version": "0.2.0.66", + "stable": false + }, + { + "separator": ".", + "build": 65, + "maven": "net.fabricmc:fabric-loader:0.2.0.65", + "version": "0.2.0.65", + "stable": false + }, + { + "separator": ".", + "build": 64, + "maven": "net.fabricmc:fabric-loader:0.2.0.64", + "version": "0.2.0.64", + "stable": false + }, + { + "separator": ".", + "build": 63, + "maven": "net.fabricmc:fabric-loader:0.2.0.63", + "version": "0.2.0.63", + "stable": false + }, + { + "separator": ".", + "build": 62, + "maven": "net.fabricmc:fabric-loader:0.2.0.62", + "version": "0.2.0.62", + "stable": false + }, + { + "separator": ".", + "build": 61, + "maven": "net.fabricmc:fabric-loader:0.2.0.61", + "version": "0.2.0.61", + "stable": false + }, + { + "separator": ".", + "build": 60, + "maven": "net.fabricmc:fabric-loader:0.2.0.60", + "version": "0.2.0.60", + "stable": false + }, + { + "separator": ".", + "build": 59, + "maven": "net.fabricmc:fabric-loader:0.2.0.59", + "version": "0.2.0.59", + "stable": false + }, + { + "separator": ".", + "build": 58, + "maven": "net.fabricmc:fabric-loader:0.2.0.58", + "version": "0.2.0.58", + "stable": false + }, + { + "separator": ".", + "build": 57, + "maven": "net.fabricmc:fabric-loader:0.2.0.57", + "version": "0.2.0.57", + "stable": false + }, + { + "separator": ".", + "build": 56, + "maven": "net.fabricmc:fabric-loader:0.2.0.56", + "version": "0.2.0.56", + "stable": false + }, + { + "separator": ".", + "build": 55, + "maven": "net.fabricmc:fabric-loader:0.2.0.55", + "version": "0.2.0.55", + "stable": false + }, + { + "separator": ".", + "build": 54, + "maven": "net.fabricmc:fabric-loader:0.2.0.54", + "version": "0.2.0.54", + "stable": false + }, + { + "separator": ".", + "build": 53, + "maven": "net.fabricmc:fabric-loader:0.2.0.53", + "version": "0.2.0.53", + "stable": false + }, + { + "separator": ".", + "build": 52, + "maven": "net.fabricmc:fabric-loader:0.1.0.52", + "version": "0.1.0.52", + "stable": false + }, + { + "separator": ".", + "build": 51, + "maven": "net.fabricmc:fabric-loader:0.1.0.51", + "version": "0.1.0.51", + "stable": false + }, + { + "separator": ".", + "build": 50, + "maven": "net.fabricmc:fabric-loader:0.1.0.50", + "version": "0.1.0.50", + "stable": false + }, + { + "separator": ".", + "build": 49, + "maven": "net.fabricmc:fabric-loader:0.1.0.49", + "version": "0.1.0.49", + "stable": false + }, + { + "separator": ".", + "build": 48, + "maven": "net.fabricmc:fabric-loader:0.1.0.48", + "version": "0.1.0.48", + "stable": false + } +] \ No newline at end of file diff --git a/fresh.gen.ts b/fresh.gen.ts index b842a45..bc753c3 100644 --- a/fresh.gen.ts +++ b/fresh.gen.ts @@ -5,46 +5,52 @@ import * as $0 from "./routes/_404.tsx"; import * as $1 from "./routes/_app.tsx"; import * as $2 from "./routes/api/fabric/index.ts"; -import * as $3 from "./routes/api/manage.ts"; -import * as $4 from "./routes/api/players.ts"; -import * as $5 from "./routes/index.tsx"; -import * as $6 from "./routes/mods/index.tsx"; -import * as $7 from "./routes/players.tsx"; -import * as $8 from "./routes/properties.tsx"; -import * as $9 from "./routes/setup/eula.tsx"; -import * as $10 from "./routes/setup/fabric.tsx"; -import * as $11 from "./routes/setup/index.tsx"; -import * as $12 from "./routes/terminal.tsx"; -import * as $13 from "./routes/upload.ts"; +import * as $3 from "./routes/api/forge/index.ts"; +import * as $4 from "./routes/api/manage.ts"; +import * as $5 from "./routes/api/players.ts"; +import * as $6 from "./routes/index.tsx"; +import * as $7 from "./routes/mods/index.tsx"; +import * as $8 from "./routes/players.tsx"; +import * as $9 from "./routes/properties.tsx"; +import * as $10 from "./routes/setup/eula.tsx"; +import * as $11 from "./routes/setup/fabric.tsx"; +import * as $12 from "./routes/setup/forge.tsx"; +import * as $13 from "./routes/setup/index.tsx"; +import * as $14 from "./routes/terminal.tsx"; +import * as $15 from "./routes/upload.ts"; import * as $$0 from "./islands/fabricVersions.tsx"; import * as $$1 from "./islands/fileUploader.tsx"; -import * as $$2 from "./islands/players.tsx"; -import * as $$3 from "./islands/statusManager.tsx"; -import * as $$4 from "./islands/terminal.tsx"; +import * as $$2 from "./islands/forgeVersions.tsx"; +import * as $$3 from "./islands/players.tsx"; +import * as $$4 from "./islands/statusManager.tsx"; +import * as $$5 from "./islands/terminal.tsx"; const manifest = { routes: { "./routes/_404.tsx": $0, "./routes/_app.tsx": $1, "./routes/api/fabric/index.ts": $2, - "./routes/api/manage.ts": $3, - "./routes/api/players.ts": $4, - "./routes/index.tsx": $5, - "./routes/mods/index.tsx": $6, - "./routes/players.tsx": $7, - "./routes/properties.tsx": $8, - "./routes/setup/eula.tsx": $9, - "./routes/setup/fabric.tsx": $10, - "./routes/setup/index.tsx": $11, - "./routes/terminal.tsx": $12, - "./routes/upload.ts": $13, + "./routes/api/forge/index.ts": $3, + "./routes/api/manage.ts": $4, + "./routes/api/players.ts": $5, + "./routes/index.tsx": $6, + "./routes/mods/index.tsx": $7, + "./routes/players.tsx": $8, + "./routes/properties.tsx": $9, + "./routes/setup/eula.tsx": $10, + "./routes/setup/fabric.tsx": $11, + "./routes/setup/forge.tsx": $12, + "./routes/setup/index.tsx": $13, + "./routes/terminal.tsx": $14, + "./routes/upload.ts": $15, }, islands: { "./islands/fabricVersions.tsx": $$0, "./islands/fileUploader.tsx": $$1, - "./islands/players.tsx": $$2, - "./islands/statusManager.tsx": $$3, - "./islands/terminal.tsx": $$4, + "./islands/forgeVersions.tsx": $$2, + "./islands/players.tsx": $$3, + "./islands/statusManager.tsx": $$4, + "./islands/terminal.tsx": $$5, }, baseUrl: import.meta.url, }; diff --git a/islands/forgeVersions.tsx b/islands/forgeVersions.tsx new file mode 100644 index 0000000..07ab771 --- /dev/null +++ b/islands/forgeVersions.tsx @@ -0,0 +1,60 @@ +import { useEffect, useState } from "preact/hooks"; +import { Loader } from "../components/Loader.tsx"; +import { Button } from "../components/Button.tsx"; +import { ModrinthGameVersion } from "../lib/modrinth.ts"; + +export function ForgeVersions() { + const [game, setGame] = useState([]); + const [isLoading, setIsLoading] = useState(true); + + const [includeSnapshots, setIncludeSnapshots] = useState(false); + + useEffect(() => { + let poll: number; + if (isLoading) { + poll = setInterval(async () => { + const res = await fetch("/api/forge"); + if (res.status !== 200) return; + const json: { + gameVersions: ModrinthGameVersion[]; + } = await res.json(); + setGame(json.gameVersions); + setIsLoading(false); + }, 500); + } + + return () => clearInterval(poll); + }, [isLoading]); + + return isLoading ? : ( +
+
+
+ + +
+ +
+
+
+ +
+
+ ); +} diff --git a/islands/statusManager.tsx b/islands/statusManager.tsx index 2462f1e..ad94bac 100644 --- a/islands/statusManager.tsx +++ b/islands/statusManager.tsx @@ -57,6 +57,13 @@ export function StatusManager( > Restart + ); diff --git a/lib/modrinth.ts b/lib/modrinth.ts index d971264..8e6b071 100644 --- a/lib/modrinth.ts +++ b/lib/modrinth.ts @@ -74,6 +74,13 @@ export type ModrinthProject = { monetization_status: string; }; +export type ModrinthGameVersion = { + version: string; + version_type: string; + data: string; + major: boolean; +} + export class Modrinth { static apiRoot = "https://api.modrinth.com/v2"; @@ -109,4 +116,9 @@ export class Modrinth { const res = await fetch(this.apiRoot + "/project/" + id); return await res.json() as ModrinthProject; } + + static async getGameVersions() { + const res = await fetch(this.apiRoot + '/tag/game_version'); + return await res.json() as ModrinthGameVersion[]; + } } diff --git a/routes/api/fabric/index.ts b/routes/api/fabric/index.ts new file mode 100644 index 0000000..fcf8244 --- /dev/null +++ b/routes/api/fabric/index.ts @@ -0,0 +1,43 @@ +import { Handler, Handlers } from "$fresh/server.ts"; +import { SERVER_STATE } from "../../../state/serverState.ts"; +import { downloadFile } from "../../../util/download.ts"; + +export const handler: Handlers = { + async GET(_req, _ctx) { + const gameVersions = JSON.parse( + await Deno.readTextFile("./fabric/versions/game.json"), + ); + const installerVersions = JSON.parse( + await Deno.readTextFile("./fabric/versions/installer.json"), + ); + const loaderVersions = JSON.parse( + await Deno.readTextFile("./fabric/versions/loader.json"), + ); + + return new Response(JSON.stringify({ + gameVersions, + installerVersions, + loaderVersions, + })); + }, + async POST(req, _ctx) { + try { + const data = await req.formData(); + const game = data.get("game"); + const installer = data.get("installer"); + const loader = data.get("loader"); + + await downloadFile(`https://meta.fabricmc.net/v2/versions/loader/${game}/${loader}/${installer}/server/jar`, './server/server.jar') + + SERVER_STATE.serverType = 'fabric'; + SERVER_STATE.startMCServer(); + + const url = new URL(req.url); + + return Response.redirect(url.origin + "/setup/eula", 303); + } catch (e) { + console.log(e) + return new Response("Something bad happened", { status: 500 }); + } + }, +}; diff --git a/routes/api/forge/index.ts b/routes/api/forge/index.ts new file mode 100644 index 0000000..a6d3ceb --- /dev/null +++ b/routes/api/forge/index.ts @@ -0,0 +1,78 @@ +import { Handlers } from "$fresh/server.ts"; +import { SERVER_STATE } from "../../../state/serverState.ts"; +import { downloadFile } from "../../../util/download.ts"; +import { getForgeDownload } from "../../../util/forge.ts"; +import { getGameVersions } from "../../../util/gameVersions.ts"; + +export const handler: Handlers = { + async GET(_req, _ctx) { + const gameVersions = await getGameVersions(); + + return new Response(JSON.stringify({ + gameVersions, + })); + }, + async POST(req, _ctx) { + try { + const data = await req.formData(); + + // TODO: update for instances + await downloadFile( + await getForgeDownload(data.get("game") as string || "1.20.1"), + "./server/installer.jar", + ); + + const installer = new Deno.Command("java", { + args: [ + "-Xmx2G", + "-jar", + "./installer.jar", + "--installServer", + ], + stderr: "piped", + stdout: "piped", + cwd: "./server", + }); + + // const process = installer.spawn(); + // process.stderr.pipeTo(Deno.stderr.writable); + // process.stdout.pipeTo(Deno.stdout.writable); + + const { success } = await installer.output(); + + if (!success) throw "failed to install forge server"; + + const argFile = "./server/user_jvm_args.txt"; + const jvmArgs = await Deno.readTextFile(argFile); + const memArgRx = /^(#\s)?(-Xmx)(.+)$/m; + await Deno.writeTextFile( + argFile, + jvmArgs.replace( + memArgRx, + jvmArgs.match(memArgRx)?.at(0)?.replace(/#\s?/, "") || "-Xmx4G", + ), + ); + + const runFiles = ["./server/run.sh", "./server/run.bat"]; + + for (const runFile of runFiles) { + const file = (await Deno.readTextFile(runFile)) + .replace("_args.txt", (e) => e + " nogui"); + + await Deno.writeTextFile(runFile, file); + } + + SERVER_STATE.serverType = "forge"; + + await SERVER_STATE.startMCServer(); + + const url = new URL(req.url); + + return Response.redirect(url.origin + "/setup/eula", 303); + // return Response.redirect(url.origin + "/terminal", 303); + } catch (e) { + console.log(e); + return new Response("Something bad happened", { status: 500 }); + } + }, +}; diff --git a/routes/api/manage.ts b/routes/api/manage.ts index dd9f204..a6a3752 100644 --- a/routes/api/manage.ts +++ b/routes/api/manage.ts @@ -5,6 +5,7 @@ export enum ManageAction { start = "start", stop = "stop", restart = "restart", + kill="kill" } export const handler: Handlers = { @@ -17,6 +18,9 @@ export const handler: Handlers = { case ManageAction.stop: SERVER_STATE.gracefullyStopMCServer(); return new Response("stopped"); + case ManageAction.kill: + SERVER_STATE.forceStopMCServer(); + return new Response("stopped"); case ManageAction.restart: SERVER_STATE.restartMCServer(); return new Response("restarted"); diff --git a/routes/mods/index.tsx b/routes/mods/index.tsx index c7b5f59..ea64840 100644 --- a/routes/mods/index.tsx +++ b/routes/mods/index.tsx @@ -40,27 +40,38 @@ export const handler: Handlers = { return Response.redirect(req.url); }, + async GET(_, ctx) { + const activeMods: string[] = []; + const disabledMods: string[] = []; + if ( + SERVER_STATE.serverType !== "unset" && + SERVER_STATE.serverType !== "vanilla" + ) { + for await (const fileEntry of Deno.readDir("./server/mods")) { + if (fileEntry.isFile) { + activeMods.push(fileEntry.name); + } + } + await ensureDir("./server/disabled-mods"); + for await (const fileEntry of Deno.readDir("./server/disabled-mods")) { + if (fileEntry.isFile) { + disabledMods.push(fileEntry.name); + } + } + } + + return ctx.render({ + activeMods, + disabledMods, + }); + }, }; -export default async function ModsFolder({ url }: PageProps) { - const activeMods: string[] = []; - const disabledMods: string[] = []; - if ( - SERVER_STATE.serverType !== "unset" && SERVER_STATE.serverType !== "vanilla" - ) { - for await (const fileEntry of Deno.readDir("./server/mods")) { - if (fileEntry.isFile) { - activeMods.push(fileEntry.name); - } - } - ensureDir("./server/disabled-mods"); - for await (const fileEntry of Deno.readDir("./server/disabled-mods")) { - if (fileEntry.isFile) { - disabledMods.push(fileEntry.name); - } - } - } - +export default function ModsFolder( + { url, data: { activeMods, disabledMods } }: PageProps< + { activeMods: string[]; disabledMods: string[] } + >, +) { return (
diff --git a/routes/setup/forge.tsx b/routes/setup/forge.tsx new file mode 100644 index 0000000..807b9d5 --- /dev/null +++ b/routes/setup/forge.tsx @@ -0,0 +1,14 @@ +import { Content } from "../../components/Content.tsx"; +import { ForgeVersions } from "../../islands/forgeVersions.tsx"; + +export default function ForgeSetup() { + return ( +
+ +

Forge Setup

+

Select the game version you wish to create a server for.

+ +
+
+ ); +} diff --git a/serverConfigs/start.ts b/serverConfigs/start.ts new file mode 100644 index 0000000..248ad07 --- /dev/null +++ b/serverConfigs/start.ts @@ -0,0 +1,36 @@ +import { Loader } from "../types/mcgrizzconf.ts"; + +export const getServerStartCommands = ( + loader: Loader, + instance = "server", +): Deno.Command => { + switch (loader) { + case "forge": + return new Deno.Command( + Deno.build.os === "windows" ? "./run.bat" : "./run.sh", + // "pwd", + { + args: [ + "nogui", + ], + stdin: "piped", + stdout: "piped", + cwd: "./" + instance, + }, + ); + case "vanilla": + case "unset": + case "fabric": + return new Deno.Command("java", { + args: [ + "-Xmx8G", + "-jar", + "./server.jar", + "nogui", + ], + cwd: "./" + instance, + stdin: "piped", + stdout: "piped", + }); + } +}; diff --git a/state/serverState.ts b/state/serverState.ts index 07096d3..0e2fc0d 100644 --- a/state/serverState.ts +++ b/state/serverState.ts @@ -3,15 +3,26 @@ import { acceptEULA, checkEULA } from "../util/EULA.ts"; import { Loader } from "../types/mcgrizzconf.ts"; import { getConfFile, updateConfFile } from "../util/confFile.ts"; import { IS_BROWSER } from "$fresh/runtime.ts"; +import { getServerStartCommands } from "../serverConfigs/start.ts"; type MCServerEvent = "message"; type MCServerEventCallback = (msg: string) => void; +type status = "running" | "stopped"; + class ServerState { - private _status: "running" | "stopped" = "stopped"; + private _status: status = "stopped"; public get status() { return this._status; } + private set status(s: status) { + this._status = s; + + const statusEvent = new CustomEvent("serverstatuschange", { + detail: this._status, + }); + globalThis.dispatchEvent(statusEvent); + } private command!: Deno.Command; private process!: Deno.ChildProcess; @@ -48,7 +59,7 @@ class ServerState { constructor() { this._channelId = crypto.randomUUID(); - + const conf = getConfFile(); this._serverType = conf.loader; this._serverVersion = conf.version; @@ -68,7 +79,7 @@ class ServerState { 1; } } else { - console.log(msg) + console.log(msg); this.sendStdIn(msg); } }); @@ -89,102 +100,78 @@ class ServerState { } // "instance" should be moved to a private member once multi-instance support is implemented - public startMCServer(instance = "server") { - this.command = new Deno.Command("java", { - args: [ - "-Xmx2G", - "-jar", - "./server.jar", - "nogui", - ], - cwd: "./" + instance, - stdin: "piped", - stdout: "piped", - }); + public async startMCServer(instance = "server") { + this.command = getServerStartCommands(this._serverType, instance); + + this.channel?.send("clear"); - - this.channel?.send('clear'); - this.process = this.command.spawn(); - + const { readable, writable } = new TransformStream(); readable.pipeTo(this.process.stdin); this.stdin = writable.getWriter(); - - this._status = "running"; - const statusEvent = new CustomEvent('serverstatuschange', {detail: this._status}); - - globalThis.dispatchEvent(statusEvent); + + this.status = "running"; + this.startStream(); - // this.process.status.then(() => { - // this._status = "stopped"; - // }); + await this.process.status; + this.status = 'stopped'; } private async startStream() { - const stream = this.process.stdout.getReader(); - const decoder = new TextDecoder(); + // const stream = this.process.stdout.getReader(); + // const decoder = new TextDecoder(); - while (true) { - const { done, value } = await stream.read(); - if (value) { - const line = decoder.decode(value); - this.channel?.send(line); - const stdoutMsg = new CustomEvent('stdoutmsg', { - detail: line - }) - globalThis.dispatchEvent(stdoutMsg); - } - if (done) break; - } + // while (true) { + // const { done, value } = await stream.read(); + // if (value) { + // const line = decoder.decode(value); + // this.channel?.send(line); + // const stdoutMsg = new CustomEvent("stdoutmsg", { + // detail: line, + // }); + // globalThis.dispatchEvent(stdoutMsg); + // } + // if (done) break; + // } - // await this.process.stdout.pipeThrough(new TextDecoderStream()).pipeTo( - // new WritableStream({ - // write: (chunk) => { - // this.channel?.send(chunk); - // const stdoutMsg = new CustomEvent("stdoutmsg", { - // detail: chunk, - // }); - // globalThis.dispatchEvent(stdoutMsg); - // }, - // }), - // ); + await this.process.stdout.pipeThrough(new TextDecoderStream()).pipeTo( + new WritableStream({ + write: (chunk) => { + this.channel?.send(chunk); + const stdoutMsg = new CustomEvent("stdoutmsg", { + detail: chunk, + }); + globalThis.dispatchEvent(stdoutMsg); + }, + }), + ); } public gracefullyStopMCServer() { - this._status = "stopped"; + this.status = "stopped"; this.sendStdIn("stop"); - const statusEvent = new CustomEvent('serverstatuschange', {detail: this._status}); - - globalThis.dispatchEvent(statusEvent); - } public forceStopMCServer() { - this._status = "stopped"; + this.status = "stopped"; this.process.kill(); - const statusEvent = new CustomEvent('serverstatuschange', {detail: this._status}); - - globalThis.dispatchEvent(statusEvent); - } public async restartMCServer() { if (this.status === "running") { await this.sendStdIn("stop"); - const statusEvent = new CustomEvent('serverstatuschange', {detail: 'restarting'}); - + const statusEvent = new CustomEvent("serverstatuschange", { + detail: "restarting", + }); + globalThis.dispatchEvent(statusEvent); - + // while (true) { await this.process.status; // } } - const statusEvent = new CustomEvent('serverstatuschange', {detail: this._status}); - - globalThis.dispatchEvent(statusEvent); - this.startMCServer(); } diff --git a/util/download.ts b/util/download.ts index 7cbffe4..b0d3ee4 100644 --- a/util/download.ts +++ b/util/download.ts @@ -1,35 +1,41 @@ import { ensureFile } from "$std/fs/ensure_file.ts"; /** - * * @param src url of file * @param dest destination file. If `useFileName` is true, this should be the destination directory * @param [useFileName] whether to use the inferred file name from `src` */ -export async function downloadFile(src: string, dest: string, useFileName?:boolean) { +export async function downloadFile( + src: string, + dest: string, + useFileName?: boolean, +) { if (!(src.startsWith("http://") || src.startsWith("https://"))) { throw new TypeError("URL must start with be http:// or https://"); } - const fileName = src.split('/').at(-1); - - const resp = await fetch(src); - if (!resp.ok) { + const fileName = src.split("/").at(-1); + + const res = await fetch(src); + if (!res.ok) { throw new Deno.errors.BadResource( - `Request failed with status ${resp.status}`, + `Request failed with status ${res.status}`, ); - } else if (!resp.body) { + } else if (!res.body) { throw new Deno.errors.UnexpectedEof( `The download url ${src} doesn't contain a file to download`, ); - } else if (resp.status === 404) { + } else if (res.status === 404) { throw new Deno.errors.NotFound( `The requested url "${src}" could not be found`, ); } + const blob = await res.blob(); + const buffer = await blob.arrayBuffer(); + const uint8array = new Uint8Array(buffer); + await ensureFile(useFileName ? dest + fileName : dest); - const file = await Deno.open(dest, { truncate: true, write: true }); - resp.body.pipeTo(file.writable); -} \ No newline at end of file + await Deno.writeFile(dest, uint8array); +} diff --git a/util/forge.ts b/util/forge.ts new file mode 100644 index 0000000..a81be32 --- /dev/null +++ b/util/forge.ts @@ -0,0 +1,15 @@ +export const getForgeDownload = async (version: string, latest?: boolean) => { + const res = await fetch( + `https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json`, + ); + + const { promos } = await res.json(); + + // https://maven.minecraftforge.net/net/minecraftforge/forge/1.20.1-47.2.1/forge-1.20.1-47.2.1-installer.jar + + let loaderVersion = promos[`${version}-${latest ? "latest" : "recommended"}`]; + + if (!loaderVersion) loaderVersion = promos[`${version}-latest`]; + + return `https://maven.minecraftforge.net/net/minecraftforge/forge/${version}-${loaderVersion}/forge-${version}-${loaderVersion}-installer.jar`; +}; diff --git a/util/gameVersions.ts b/util/gameVersions.ts new file mode 100644 index 0000000..2c4d5c2 --- /dev/null +++ b/util/gameVersions.ts @@ -0,0 +1,18 @@ +import { ensureFile } from "$std/fs/ensure_file.ts"; +import { Modrinth, ModrinthGameVersion } from "../lib/modrinth.ts"; + +export const getGameVersions = async (releaseOnly?: boolean) => { + const cacheFile = "./cache/gameVersions.json"; + await ensureFile(cacheFile); + + let versions: ModrinthGameVersion[] = JSON.parse( + await Deno.readTextFile(cacheFile) || "[]", + ); + + if (!versions.length) { + versions = await Modrinth.getGameVersions(); + await Deno.writeTextFile(cacheFile, JSON.stringify(versions)); + } + + return versions.filter(v => !releaseOnly || v.major); +};