Skip to content

Commit c4a315c

Browse files
committed
Add support for other modloaders
1 parent ece00b8 commit c4a315c

File tree

3 files changed

+18
-7
lines changed

3 files changed

+18
-7
lines changed

README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,16 @@ Will output to standard output something in the form of:
5959

6060
Entries are sorted by file upload date.
6161

62+
By default, mods for the Forge modloader will be fetched, but any other modloader can be fetched as follows:
63+
64+
```bash
65+
$ forge-update-generator cyclops-core NeoForge
66+
```
67+
68+
```bash
69+
$ forge-update-generator cyclops-core Fabric
70+
```
71+
6272
### Experimental: Generate update file and fetch changelogs
6373

6474
If you pass the `-c` option, changelogs will be fetched from their respective CurseForge page.

bin/generate.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ import { ForgeUpdateJsonCreator } from '../lib/ForgeUpdateJsonCreator';
88

99
// Process CLI args
1010
const args = minimist(process.argv.slice(2));
11-
if (args.help || args._.length !== 1) {
12-
process.stdout.write(`forge-update-generator Detects new Cyclops mod versions
11+
if (args.help || !(args._.length === 1 || args._.length === 2)) {
12+
process.stdout.write(`forge-update-generator Detects new mod versions
1313
Usage:
14-
forge-update-generator modname
14+
forge-update-generator modname [modloader]
1515
Options:
1616
-c if changelogs should be fetched from CurseForge via HTML scraping
1717
--help print this help message
@@ -20,12 +20,13 @@ Options:
2020
}
2121

2222
async function run(): Promise<void> {
23+
const modLoader = args._[1];
2324
const dataCurseforge = await new CurseforgeLoader().load(args._[0]);
2425
const changelogLoader = args.c ? new CurseforgeChangelogLoader() : new DeferredChangelogLoader();
2526
if ('initialize' in changelogLoader) {
2627
await changelogLoader.initialize();
2728
}
28-
const dataForge = await new ForgeUpdateJsonCreator(changelogLoader).generate(dataCurseforge);
29+
const dataForge = await new ForgeUpdateJsonCreator(changelogLoader).generate(dataCurseforge, modLoader);
2930
if ('deinitialize' in changelogLoader) {
3031
await changelogLoader.deinitialize();
3132
}

lib/ForgeUpdateJsonCreator.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export class ForgeUpdateJsonCreator {
1111
this.changelogLoader = changelogLoader;
1212
}
1313

14-
public async generate(dataCurseforge: ICurseforgeData): Promise<IForgeUpdateData> {
14+
public async generate(dataCurseforge: ICurseforgeData, modLoader?: string): Promise<IForgeUpdateData> {
1515
const dataForge: IForgeUpdateData = {
1616
homepage: dataCurseforge.urls.curseforge,
1717
promos: {},
@@ -21,9 +21,9 @@ export class ForgeUpdateJsonCreator {
2121
const latestMcVersions: Record<string, string> = {};
2222
const recommendedMcVersions: Record<string, string> = {};
2323
for (const file of dataCurseforge.files) {
24-
if (file.versions.includes('Forge')) {
24+
if (file.versions.includes(modLoader || 'Forge')) {
2525
// Determine MC and mod version
26-
const mcVersion = file.version;
26+
const mcVersion: string = file.versions.find(version => version.includes('.'))!;
2727
const match = /-([^-]*)\.jar/u.exec(file.name);
2828
if (!match) {
2929
continue;

0 commit comments

Comments
 (0)