therandomlabs / changeloggenerator Goto Github PK
View Code? Open in Web Editor NEWGenerates changelogs for CurseForge modpacks.
License: MIT License
Generates changelogs for CurseForge modpacks.
License: MIT License
Ok, coming along nicely. Not sure where this fits in. In the attached files Bewitchment comes up way too much, although for each it is doing only 5 lines like I set it too.
json | gist link |
---|---|
new.json | https://gist.github.com/0bcae2ac7a0b2c65f87f3328de9172ab |
old.json | https://gist.github.com/cf6c8bf0347f8fb1f9d2911d7f975a71 |
The actual command line:
java -jar ChangelogGenerator-2.0.0-pre7.jar --lines=5 -o=Svet+Draku-1.1.2/manifest.json -n=Svet\ Draku-1.2.3/manifest.json -m
So I was testing the program out on two different manifest JSONs. Of the same modpack. But from the different versions.
It seems to download all the file data just fine.
And then there's a couple of errors for some mods when it tries to download the changelog data.
But it still seems to keep going. Except for when it reaches ActuallyAdditions.
Here's the full CMD log: TXEsgW6B
I've also attached with both the manifest's and the bat file I've used to run this, in the .zip file.
generateLog.zip
I even tried running it as admin. And still wouldn't generate any files. Just stops with the same error.
So I'm guessing it might be caused by ActuallyEdditions?
But why would it stop at that error, and not the others?
Edit:
Forgot to mention. I'm on the latest release. I just downloaded it today.
On 1.12.4.
Hey o/
I just thought I'd let you know that since the Curseforge website update, project IDs seem to have shifted somehow, or possibly the API to access them? Either way, I have not been able to get the ChangelogGenerator to work.
Exert of stacktrace:
com.therandomlabs.curseapi.project.InvalidProjectIDException: Project with ID 314002 not found
at com.therandomlabs.curseapi.CurseForge.lambda$fromIDNoValidation$1(CurseForge.java:240)
at com.therandomlabs.curseapi.CurseAPI.actuallyDoWithRetries(CurseAPI.java:159)
at com.therandomlabs.curseapi.CurseAPI.doWithRetries(CurseAPI.java:140)
at com.therandomlabs.curseapi.CurseForge.fromIDNoValidation(CurseForge.java:235)
at com.therandomlabs.curseapi.CurseForge.fromID(CurseForge.java:213)
at com.therandomlabs.curseapi.project.CurseProject.<init>(CurseProject.java:142)
at com.therandomlabs.curseapi.project.CurseProject.fromID(CurseProject.java:860)
at com.therandomlabs.curseapi.minecraft.modpack.Mod.title(Mod.java:97)
at com.therandomlabs.curseapi.minecraft.modpack.comparison.ModListComparison.lambda$loadModInfo$0(ModListCompari
Hey o/
sing 2.0.0-pre2 on Enigmatica 4 between versions 0.4.9 and 0.4.10 results in an exception:
https://gist.github.com/NillerMedDild/cd2f478c4887e17c7e2e5b93ca49a7e4
The release version 1.6.3 does not have a jar file attached https://github.com/TheRandomLabs/ChangelogGenerator/releases
Thank you for responding to #33, what I'm seeing is very impressive https://gist.github.com/kreezxil/b6c1ecaaa64564bd582a889187559b20
I'd like to see either a config or command-line arguments to limit how much of a mod's changelog is pulled in as lines for example -l 5
which would mean pull in 5 lines.
A toggle for mod links would be nice too, for example --modLinks
if it exists the source URL to the mod is listed below the mod name or on the level with it.
Granted by itself it's awesome and I'm feeling compelled to send you some kind of incentive. Do you have a Patreon?
Using some simple Batch File Language i created a bat script to make the Changelog works with less inputs.
Running the bat file with these 4 lines
@echo off
set /p ch1="Old Manifest: "
set /p ch2="New Manifest: "
java -jar ChangelogGenerator.jar %ch1% %ch2%
pretty much what you do is put your 2 manifest in the directory of the jar and batch file. Then running the bat will ask for the old manifest file aka your old version, You can type your version or tab it, and then the new manifest. Then the batch script will use your inputs as variables and automatically compile it. Then copy your Shortchangelog file or the normal changelog to curseforge
When i ran it it split out a missing Id error. I googled the id and found that its a deleted mod from curse. Can you fix. I know it might be hard. Temporary fix was to delete it from the manifest
I can no longer make changelogs due to this error
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
java.lang.RuntimeException: java.lang.RuntimeException: com.therandomlabs.curseapi.CurseException: Failed to execute request: Request{method=GET, url=https://addons-ecs.forgesvc.net/api/v2/addon/347635, tags={class retrofit2.Invocation=com.therandomlabs.curseapi.forgesvc.ForgeSvc.getProject() [347635]}}
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480)
at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:605)
at java.base/java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:683)
at java.base/java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:742)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(ReduceOps.java:919)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:233)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at com.therandomlabs.curseapi.CurseAPI.parallelMap(CurseAPI.java:575)
at com.therandomlabs.curseapi.file.CurseFiles.parallelMap(CurseFiles.java:182)
at com.therandomlabs.changeloggenerator.MarkdownChangelogGenerator.appendFiles(MarkdownChangelogGenerator.java:94)
at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.generate(BasicChangelogGenerator.java:94)
at com.therandomlabs.changeloggenerator.Main.run(Main.java:131)
at com.therandomlabs.changeloggenerator.ChangelogGeneratorOptions.call(ChangelogGeneratorOptions.java:105)
at com.therandomlabs.changeloggenerator.ChangelogGeneratorOptions.call(ChangelogGeneratorOptions.java:35)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine.execute(CommandLine.java:2078)
at com.therandomlabs.changeloggenerator.Main.main(Main.java:58)
Caused by: java.lang.RuntimeException: com.therandomlabs.curseapi.CurseException: Failed to execute request: Request{method=GET, url=https://addons-ecs.forgesvc.net/api/v2/addon/347635, tags={class retrofit2.Invocation=com.therandomlabs.curseapi.forgesvc.ForgeSvc.getProject() [347635]}}
at com.therandomlabs.curseapi.CurseAPI.callCheckedFunction(CurseAPI.java:696)
at com.therandomlabs.curseapi.CurseAPI.lambda$parallelMap$17(CurseAPI.java:574)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.TreeMap$KeySpliterator.forEachRemaining(TreeMap.java:3062)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:952)
at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(ReduceOps.java:926)
at java.base/java.util.stream.AbstractTask.compute(AbstractTask.java:327)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:295)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1016)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1665)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1598)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: com.therandomlabs.curseapi.CurseException: Failed to execute request: Request{method=GET, url=https://addons-ecs.forgesvc.net/api/v2/addon/347635, tags={class retrofit2.Invocation=com.therandomlabs.curseapi.forgesvc.ForgeSvc.getProject() [347635]}}
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:119)
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.project(ForgeSvcProvider.java:82)
at com.therandomlabs.curseapi.CurseAPI.lambda$project$0(CurseAPI.java:119)
at com.therandomlabs.curseapi.CurseAPI.get(CurseAPI.java:679)
at com.therandomlabs.curseapi.CurseAPI.project(CurseAPI.java:119)
at com.therandomlabs.curseapi.file.BasicCurseFile$Immutable.project(BasicCurseFile.java:84)
at com.therandomlabs.changeloggenerator.MarkdownChangelogGenerator.lambda$appendFiles$1(MarkdownChangelogGenerator.java:95)
at com.therandomlabs.curseapi.CurseAPI.callCheckedFunction(CurseAPI.java:694)
... 14 more
Caused by: java.net.SocketTimeoutException: timeout
at okhttp3.internal.http2.Http2Stream$StreamTimeout.newTimeoutException(Http2Stream.java:678)
at okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut(Http2Stream.java:686)
at okhttp3.internal.http2.Http2Stream.takeHeaders(Http2Stream.java:154)
at okhttp3.internal.http2.Http2ExchangeCodec.readResponseHeaders(Http2ExchangeCodec.java:136)
at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.java:115)
at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.java:94)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:43)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)
at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)
at okhttp3.RealCall.execute(RealCall.java:81)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:204)
at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114)
at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:99)
at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137)
at io.vavr.control.Try.of(Try.java:75)
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:98)
... 21 more
Hi, it's me again.
This time I've ran into another issue. I updated to the latest version.
And while it worked for that update of the pack. Now I'm running into another problem trying to update the pack once again.
Here's the full changelog: https://pastebin.com/kbZpKxsM
And here's the files: Changelog Generator.zip
While I understand that the old version should be older than a new version.
It shouldn't crash. And not produce any changelogs at all. Right?
Getting this error on the latest jar build.
Exception in thread "main" java.lang.NullPointerException
at com.therandomlabs.curseapi.minecraft.modpack.MinecraftInfo.forgeVersion(MinecraftInfo.java:62)
at com.therandomlabs.curseapi.minecraft.modpack.ExMPManifest.forgeVersion(ExMPManifest.java:155)
at com.therandomlabs.curseapi.minecraft.modpack.MPManifest.modList(MPManifest.java:207)
at com.therandomlabs.curseapi.minecraft.modpack.ExMPManifest.universalFiles(ExMPManifest.java:105)
at com.therandomlabs.curseapi.minecraft.modpack.MPManifest.getAllFiles(MPManifest.java:106)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.run(ChangelogGenerator.java:107)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.main(ChangelogGenerator.java:74)
Hey!
I'm getting this error when using the script to check between update 1.18 and 1.19 of Enigmatica 2: Expert:
https://gist.github.com/NillerMedDild/6198b74773ee0b7764c95f4d003abe89
Thanks for this great tool, it has made my life a lot easier :)
Pardon my extremely rudimentary question but, how do you use this? I attempted to just execute the jar (both from my initial download directory and from my MC mods directory), but that didn't seem to have any effect. Having it in the /mods/
folder and starting up the game doesn't seem to have generated any files that I could see in mods
, config
, logs
, or the primary minecraft directory.
I did check the readme a few times but either I'm missing something simple (which is extremely possible), or it doesn't explicitly say. In any case, I am out of ideas, haha. Thank you very much for your time!
I would like to keep using this tool for All The Mods pack changelog augmentation, but I also feel it's important to credit you and your tool. I can just copy/paste a line in every time but I thought I'd ask if that's something you might want to put in by default, something even as simple as: Generated using https://github.com/TheRandomLabs/ChangelogGenerator
perhaps?
Either way, thank you for this tool, I think it really is pretty great.
Doesn't generate change logs when it encounters some issue with forge version.
log
Was comparing jsons from those 2 packs:
atm3 5.9.1 and atm3 5.9.2
I'm using the latest version, and the program fails to load
com.therandomlabs.curseapi.CurseException: Failed to read JSON: old.json
at com.therandomlabs.curseapi.util.MoshiUtils.fromJSON(MoshiUtils.java:88)
at com.therandomlabs.curseapi.minecraft.modpack.CurseModpack.fromJSON(CurseModpack.java:183)
at com.therandomlabs.changeloggenerator.Main.run(Main.java:127)
at com.therandomlabs.changeloggenerator.ChangelogGeneratorOptions.call(ChangelogGeneratorOptions.java:105)
at com.therandomlabs.changeloggenerator.ChangelogGeneratorOptions.call(ChangelogGeneratorOptions.java:35)
at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
at picocli.CommandLine.access$1300(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2352)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2346)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2311)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
at picocli.CommandLine.execute(CommandLine.java:2078)
at com.therandomlabs.changeloggenerator.Main.main(Main.java:58)
Caused by: java.nio.file.NoSuchFileException: old.json
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:235)
at java.base/java.nio.file.Files.newByteChannel(Files.java:371)
at java.base/java.nio.file.Files.newByteChannel(Files.java:422)
at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
at java.base/java.nio.file.Files.newInputStream(Files.java:156)
at okio.Okio.source(Okio.java:182)
at com.therandomlabs.curseapi.util.MoshiUtils.fromJSON(MoshiUtils.java:85)
... 12 more
C:\Users\Admin>java -jar ChangelogGenerator-2.0.0-pre3.jar old.json new.json
Exception in thread "main" com.squareup.moshi.JsonDataException: com.squareup.moshi.JsonDataException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at $.attachments[0].thumbnailUrl
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
at java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
at java.util.concurrent.ForkJoinTask.invoke(Unknown Source)
at java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source)
at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
at java.util.stream.ReferencePipeline.collect(Unknown Source)
at com.therandomlabs.curseapi.CurseAPI.parallelMap(CurseAPI.java:575)
at com.therandomlabs.curseapi.file.CurseFiles.parallelMap(CurseFiles.java:181)
at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.appendFiles(BasicChangelogGenerator.java:162)
at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.generate(BasicChangelogGenerator.java:79)
at com.therandomlabs.changeloggenerator.Main.main(Main.java:48)
Caused by: com.squareup.moshi.JsonDataException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found at $.attachments[0].thumbnailUrl
at com.squareup.moshi.AdapterMethodsFactory$1.fromJson(AdapterMethodsFactory.java:94)
at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:204)
at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:166)
at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
at com.squareup.moshi.CollectionJsonAdapter.fromJson(CollectionJsonAdapter.java:76)
at com.squareup.moshi.CollectionJsonAdapter$3.fromJson(CollectionJsonAdapter.java:63)
at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
at com.squareup.moshi.ClassJsonAdapter$FieldBinding.read(ClassJsonAdapter.java:204)
at com.squareup.moshi.ClassJsonAdapter.fromJson(ClassJsonAdapter.java:166)
at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:40)
at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:45)
at retrofit2.converter.moshi.MoshiResponseBodyConverter.convert(MoshiResponseBodyConverter.java:27)
at retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:225)
at retrofit2.OkHttpCall.execute(OkHttpCall.java:188)
at io.github.resilience4j.retrofit.RetrofitCircuitBreaker$CircuitBreakingCall.execute(RetrofitCircuitBreaker.java:114)
at com.therandomlabs.curseapi.util.RetrofitUtils.lambda$execute$39f5113e$1(RetrofitUtils.java:98)
at io.github.resilience4j.retry.Retry.lambda$decorateCheckedSupplier$3f69f149$1(Retry.java:137)
at io.vavr.control.Try.of(Try.java:75)
at com.therandomlabs.curseapi.util.RetrofitUtils.execute(RetrofitUtils.java:97)
at com.therandomlabs.curseapi.forgesvc.ForgeSvcProvider.project(ForgeSvcProvider.java:78)
at com.therandomlabs.curseapi.CurseAPI.lambda$project$0(CurseAPI.java:119)
at com.therandomlabs.curseapi.CurseAPI.get(CurseAPI.java:679)
at com.therandomlabs.curseapi.CurseAPI.project(CurseAPI.java:119)
at com.therandomlabs.curseapi.file.BasicCurseFile$Immutable.project(BasicCurseFile.java:84)
at com.therandomlabs.changeloggenerator.BasicChangelogGenerator.lambda$appendFiles$0(BasicChangelogGenerator.java:163)
at com.therandomlabs.curseapi.CurseAPI.callCheckedFunction(CurseAPI.java:694)
at com.therandomlabs.curseapi.CurseAPI.lambda$parallelMap$17(CurseAPI.java:574)
at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
at java.util.TreeMap$KeySpliterator.forEachRemaining(Unknown Source)
at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
at java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
at java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source)
at java.util.stream.AbstractTask.compute(Unknown Source)
at java.util.concurrent.CountedCompleter.exec(Unknown Source)
at java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(Unknown Source)
at java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
at java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no colon was found
at okhttp3.HttpUrl$Builder.parse(HttpUrl.java:1332)
at okhttp3.HttpUrl.get(HttpUrl.java:917)
at com.therandomlabs.curseapi.util.HttpUrlAdapter.fromJSON(HttpUrlAdapter.java:60)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.squareup.moshi.AdapterMethodsFactory$AdapterMethod.invoke(AdapterMethodsFactory.java:335)
at com.squareup.moshi.AdapterMethodsFactory$5.fromJson(AdapterMethodsFactory.java:257)
at com.squareup.moshi.AdapterMethodsFactory$1.fromJson(AdapterMethodsFactory.java:90)
... 38 more
It probably doesn't belong in CurseAPI-Minecraft anyway.
ByteCodeViewer shows that your internal changelog says this was last updated for 1.12.2. Which might be part of the problem as I generated this with 1.16.4 manifests.
file | gist |
---|---|
new.json | https://gist.github.com/cc847fd01f1911ffc84d5ccbbc524f15 |
old.json | https://gist.github.com/7c765a3339e374178bb9ce701b9d1de0 |
$ java -jar ChangelogGenerator.jar
Exception in thread "main" java.lang.NullPointerException
at com.therandomlabs.curseapi.minecraft.modpack.MinecraftInfo.forgeVersion(MinecraftInfo.java:62)
at com.therandomlabs.curseapi.minecraft.modpack.ExMPManifest.forgeVersion(ExMPManifest.java:155)
at com.therandomlabs.curseapi.minecraft.modpack.MPManifest.modList(MPManifest.java:207)
at com.therandomlabs.curseapi.minecraft.modpack.ExMPManifest.universalFiles(ExMPManifest.java:105)
at com.therandomlabs.curseapi.minecraft.modpack.MPManifest.getAllFiles(MPManifest.java:106)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.run(ChangelogGenerator.java:107)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.main(ChangelogGenerator.java:74)
$ java -version
openjdk version "1.8.0_265"
OpenJDK Runtime Environment (build 1.8.0_265-b01)
OpenJDK 64-Bit Server VM (build 25.265-b01, mixed mode)
$ ls *.json
new.json old.json
System Information:
Operating System: Manjaro Linux
KDE Plasma Version: 5.20.4
KDE Frameworks Version: 5.77.0
Qt Version: 5.15.2
Kernel Version: 5.10.2-2-MANJARO
OS Type: 64-bit
Processors: 8 ร AMD FX(tm)-8350 Eight-Core Processor
Memory: 23.5 GiB of RAM
Graphics Processor: GeForce GTX 750 Ti/PCIe/SSE2
Hey o/ I was wondering if you would allow me to include the ChangelogGenerator jar in my ModpackUploader project?
It's an automation tool for modpack makers, and automated mod changelogs would be cool to add to it.
My project is also under the MIT license, if that makes a difference.
everything else works great!
This is with using 1.11.1
Came across this error when making a changelog between these two:
new.txt
old.txt
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at com.therandomlabs.changeloggenerator.IC2Handler.getChangelog(IC2Handler.java:36)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogs(VersionChange.java:228)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogsQuietly(VersionChange.java:186)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogs(VersionChange.java:354)
at com.therandomlabs.curseapi.minecraft.comparison.ModListComparison.getUpdatedChangelogs(ModListComparison.java:114)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.getChangelog(ChangelogGenerator.java:220)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.run(ChangelogGenerator.java:114)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.main(ChangelogGenerator.java:60)
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at com.therandomlabs.changeloggenerator.IC2Handler.getChangelog(IC2Handler.java:36)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogs(VersionChange.java:228)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogsQuietly(VersionChange.java:186)
at com.therandomlabs.curseapi.minecraft.comparison.VersionChange.getChangelogs(VersionChange.java:354)
at com.therandomlabs.curseapi.minecraft.comparison.ModListComparison.getUpdatedChangelogs(ModListComparison.java:114)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.getChangelog(ChangelogGenerator.java:220)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.run(ChangelogGenerator.java:118)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.main(ChangelogGenerator.java:60)
Hey! Would you consider making a utility tool similar to ChangelogGenerator, that combines and/or compares changelogs from modpacks? A user of mine asked for a smarter way to view all the changelogs from any version to the latest, and I thought that might be up your alley to make :)
Maybe just missing it, but it doesn't look like there is a jar file for 1.14?
Using the Changelog Generator by you guys, and it spits this error
com.therandomlabs.curseapi.minecraft.forge.InvalidForgeVersionException: Invalid Forge version: 1.12.2-14.23.4.2766
Im assumbing the bot stoped working because its not picking up a thing
Hey o/
I have a new bug for you:
https://gist.github.com/NillerMedDild/48b575943e27cbbf9b8901211185724f
Just fyi, I removed 7 mods between the updates it's generating a log for, I thought that might help.
I seem to be having a similar issue to #15
However, on my end it doesn't seem to download any of the data - it immediately begins with errors and continues to throw them through the whole process. I'm not sure how to get the whole log to print to a file, but here's an excerpt I copied: https://pastebin.com/zxqfMsib
My batch file is quite simple, just
java -jar ChangelogGenerator.jar
pause
I'd previously tried using the "oldmanifest.json manifest.json" method you recommended to me, but I changed it after there was no output.
My manifests are from two different versions of the same modpack. Minecraft 1.12.2, but different forge versions (downgrading from 2846 to 2838). I'm not sure if that's relevant, but please let me know if there's any additional information you need. :) Thanks in advance!
Script in bat file:
java -jar ChangelogGenerator.jar Technocratica
Pause
when doing this, it generates the following error for me:
https://gist.github.com/Wxrlds/34267376c951c31c34843fc5f48e8868
Edit changed link because the old one seems broken
not even a feature request because this exists at least for Linux.
https://stackoverflow.com/a/18841
aka pandoc
pandoc -f markdown changelog.md > changelog.html
turns the markdown into html.
You could recommend that or turn this into a feature request. :)
Thank you for this great tool!
i've this error after different progresses of compairing
old version
new version
Exception in thread "main" java.lang.NullPointerException
at com.therandomlabs.curseapi.minecraft.Mod.title(Mod.java:67)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.getChangelog(ChangelogGenerator.java:153)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.run(ChangelogGenerator.java:64)
at com.therandomlabs.changeloggenerator.ChangelogGenerator.main(ChangelogGenerator.java:40)
Title says it all.
Script in bat file:
java -jar ChangelogGenerator-2.0.0-pre.jar Technocratica
Pause
Error: https://gist.github.com/Wxrlds/cdcf5a4a25923744e7d9188fe63130ca
Using release from Jan 19th
Trying to generate log from ATM3 5.7 to 5.8 and the program closes but with the changelog full and short both completely empty.
I have the command window output as well as both old and new jsons I am using if it helps:
If there could be a option to remove the section that shows the mod changelogs and only show what has been updated.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.