diff --git a/src/Analysis/Information/Vanilla/VanillaVersionInformation.php b/src/Analysis/Information/Vanilla/VanillaVersionInformation.php index 52a1f28..2cd5a50 100644 --- a/src/Analysis/Information/Vanilla/VanillaVersionInformation.php +++ b/src/Analysis/Information/Vanilla/VanillaVersionInformation.php @@ -6,7 +6,7 @@ class VanillaVersionInformation extends VanillaInformation { - protected static string $vanillaVersionPattern = '[0-9\.w]+(?:[a-z]|-(?:pre|rc)\d+)?'; + protected static string $vanillaVersionPattern = '[0-9\.w]+(?:[a-z]|(?:-|\s)?(?:pre|rc|Pre-Release|Release Candidate)\s?\d+)?'; /** * @inheritDoc @@ -33,4 +33,4 @@ public function __construct() { $this->label = Translator::getInstance()->getTranslation("minecraft-version"); } -} \ No newline at end of file +} diff --git a/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.json b/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.json new file mode 100644 index 0000000..76cdf14 --- /dev/null +++ b/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.json @@ -0,0 +1,686 @@ +{ + "id": "vanilla\/crash-report", + "name": "Vanilla", + "type": "Crash Report", + "version": "1.21.10 Release Candidate 1", + "title": "Vanilla 1.21.10 Release Candidate 1 Crash Report", + "entries": [ + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 1, + "content": "---- Minecraft Crash Report ----" + } + ] + }, + { + "level": 9, + "time": null, + "prefix": null, + "lines": [ + { + "number": 2, + "content": "\/\/ You're mean." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 3, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Time:", + "lines": [ + { + "number": 4, + "content": "Time: 2025-11-20 12:15:09" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Description:", + "lines": [ + { + "number": 5, + "content": "Description: Exception in server tick loop" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 6, + "content": "" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 7, + "content": "java.lang.IllegalStateException: Failed to initialize server" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 8, + "content": "\tat net.minecraft.server.MinecraftServer.C(SourceFile:797)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 9, + "content": "\tat net.minecraft.server.MinecraftServer.a(SourceFile:297)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 10, + "content": "\tat java.base\/java.lang.Thread.run(Thread.java:1583)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 11, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 12, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 13, + "content": "A detailed walkthrough of the error, its code path and all known details is as follows:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 14, + "content": "---------------------------------------------------------------------------------------" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 15, + "content": "" + } + ] + }, + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 16, + "content": "-- System Details --" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Details:", + "lines": [ + { + "number": 17, + "content": "Details:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version:", + "lines": [ + { + "number": 18, + "content": "\tMinecraft Version: 1.21.10 Release Candidate 1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version ID:", + "lines": [ + { + "number": 19, + "content": "\tMinecraft Version ID: 1.21.10-rc1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tOperating System:", + "lines": [ + { + "number": 20, + "content": "\tOperating System: Linux (amd64) version 6.17.8-300.fc43.x86_64" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJava Version:", + "lines": [ + { + "number": 21, + "content": "\tJava Version: 21.0.9, Red Hat, Inc." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJava VM Version:", + "lines": [ + { + "number": 22, + "content": "\tJava VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Red Hat, Inc." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMemory:", + "lines": [ + { + "number": 23, + "content": "\tMemory: 176958856 bytes (168 MiB) \/ 394264576 bytes (376 MiB) up to 16768827392 bytes (15992 MiB)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tCPUs:", + "lines": [ + { + "number": 24, + "content": "\tCPUs: 20" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tProcessor Vendor:", + "lines": [ + { + "number": 25, + "content": "\tProcessor Vendor: GenuineIntel" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tProcessor Name:", + "lines": [ + { + "number": 26, + "content": "\tProcessor Name: 12th Gen Intel(R) Core(TM) i9-12900HK" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tIdentifier:", + "lines": [ + { + "number": 27, + "content": "\tIdentifier: Intel64 Family 6 Model 154 Stepping 3" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMicroarchitecture:", + "lines": [ + { + "number": 28, + "content": "\tMicroarchitecture: Alder Lake" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tFrequency (GHz):", + "lines": [ + { + "number": 29, + "content": "\tFrequency (GHz): -0.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of physical packages:", + "lines": [ + { + "number": 30, + "content": "\tNumber of physical packages: 1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of physical CPUs:", + "lines": [ + { + "number": 31, + "content": "\tNumber of physical CPUs: 14" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of logical CPUs:", + "lines": [ + { + "number": 32, + "content": "\tNumber of logical CPUs: 20" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 name:", + "lines": [ + { + "number": 33, + "content": "\tGraphics card #0 name: Alder Lake-P GT2 [Iris Xe Graphics]" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 vendor:", + "lines": [ + { + "number": 34, + "content": "\tGraphics card #0 vendor: Intel Corporation (0x8086)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 VRAM (MiB):", + "lines": [ + { + "number": 35, + "content": "\tGraphics card #0 VRAM (MiB): 256.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 deviceId:", + "lines": [ + { + "number": 36, + "content": "\tGraphics card #0 deviceId: 0x46a6" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 versionInfo:", + "lines": [ + { + "number": 37, + "content": "\tGraphics card #0 versionInfo: unknown" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tVirtual memory max (MiB):", + "lines": [ + { + "number": 38, + "content": "\tVirtual memory max (MiB): 40171.74" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tVirtual memory used (MiB):", + "lines": [ + { + "number": 39, + "content": "\tVirtual memory used (MiB): 34314.96" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSwap memory total (MiB):", + "lines": [ + { + "number": 40, + "content": "\tSwap memory total (MiB): 8192.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSwap memory used (MiB):", + "lines": [ + { + "number": 41, + "content": "\tSwap memory used (MiB): 3294.29" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for jna.tmpdir (MiB):", + "lines": [ + { + "number": 42, + "content": "\tSpace in storage for jna.tmpdir (MiB): " + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB):", + "lines": [ + { + "number": 43, + "content": "\tSpace in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): " + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for io.netty.native.workdir (MiB):", + "lines": [ + { + "number": 44, + "content": "\tSpace in storage for io.netty.native.workdir (MiB): " + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for java.io.tmpdir (MiB):", + "lines": [ + { + "number": 45, + "content": "\tSpace in storage for java.io.tmpdir (MiB): available: 31472.88, total: 31979.74" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for workdir (MiB):", + "lines": [ + { + "number": 46, + "content": "\tSpace in storage for workdir (MiB): available: 180826.39, total: 975121.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJVM Flags:", + "lines": [ + { + "number": 47, + "content": "\tJVM Flags: 0 total;" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tDebug Flags:", + "lines": [ + { + "number": 48, + "content": "\tDebug Flags: 0 total;" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tServer Running:", + "lines": [ + { + "number": 49, + "content": "\tServer Running: true" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tActive Data Packs:", + "lines": [ + { + "number": 50, + "content": "\tActive Data Packs: vanilla" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tAvailable Data Packs:", + "lines": [ + { + "number": 51, + "content": "\tAvailable Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tEnabled Feature Flags:", + "lines": [ + { + "number": 52, + "content": "\tEnabled Feature Flags: minecraft:vanilla" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tWorld Generation:", + "lines": [ + { + "number": 53, + "content": "\tWorld Generation: Stable" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tWorld Seed:", + "lines": [ + { + "number": 54, + "content": "\tWorld Seed: 7807144395007356937" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSuppressed Exceptions:", + "lines": [ + { + "number": 55, + "content": "\tSuppressed Exceptions: ~~NONE~~" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tIs Modded:", + "lines": [ + { + "number": 56, + "content": "\tIs Modded: Probably not. Server jar signature and brand is untouched" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tType:", + "lines": [ + { + "number": 57, + "content": "\tType: Dedicated Server (map_server.txt)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 58, + "content": "" + } + ] + } + ], + "analysis": { + "problems": [], + "information": [ + { + "message": "Minecraft version: 1.21.10 Release Candidate 1", + "counter": 1, + "entry": { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version:", + "lines": [ + { + "number": 18, + "content": "\tMinecraft Version: 1.21.10 Release Candidate 1" + } + ] + }, + "label": "Minecraft version", + "value": "1.21.10 Release Candidate 1" + }, + { + "message": "Java version: 21.0.9", + "counter": 1, + "entry": { + "level": 6, + "time": null, + "prefix": "\tJava Version:", + "lines": [ + { + "number": 21, + "content": "\tJava Version: 21.0.9, Red Hat, Inc." + } + ] + }, + "label": "Java version", + "value": "21.0.9" + } + ] + } +} \ No newline at end of file diff --git a/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.log b/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.log new file mode 100644 index 0000000..af8c8e4 --- /dev/null +++ b/test/data/Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.log @@ -0,0 +1,57 @@ +---- Minecraft Crash Report ---- +// You're mean. + +Time: 2025-11-20 12:15:09 +Description: Exception in server tick loop + +java.lang.IllegalStateException: Failed to initialize server + at net.minecraft.server.MinecraftServer.C(SourceFile:797) + at net.minecraft.server.MinecraftServer.a(SourceFile:297) + at java.base/java.lang.Thread.run(Thread.java:1583) + + +A detailed walkthrough of the error, its code path and all known details is as follows: +--------------------------------------------------------------------------------------- + +-- System Details -- +Details: + Minecraft Version: 1.21.10 Release Candidate 1 + Minecraft Version ID: 1.21.10-rc1 + Operating System: Linux (amd64) version 6.17.8-300.fc43.x86_64 + Java Version: 21.0.9, Red Hat, Inc. + Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Red Hat, Inc. + Memory: 176958856 bytes (168 MiB) / 394264576 bytes (376 MiB) up to 16768827392 bytes (15992 MiB) + CPUs: 20 + Processor Vendor: GenuineIntel + Processor Name: 12th Gen Intel(R) Core(TM) i9-12900HK + Identifier: Intel64 Family 6 Model 154 Stepping 3 + Microarchitecture: Alder Lake + Frequency (GHz): -0.00 + Number of physical packages: 1 + Number of physical CPUs: 14 + Number of logical CPUs: 20 + Graphics card #0 name: Alder Lake-P GT2 [Iris Xe Graphics] + Graphics card #0 vendor: Intel Corporation (0x8086) + Graphics card #0 VRAM (MiB): 256.00 + Graphics card #0 deviceId: 0x46a6 + Graphics card #0 versionInfo: unknown + Virtual memory max (MiB): 40171.74 + Virtual memory used (MiB): 34314.96 + Swap memory total (MiB): 8192.00 + Swap memory used (MiB): 3294.29 + Space in storage for jna.tmpdir (MiB): + Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): + Space in storage for io.netty.native.workdir (MiB): + Space in storage for java.io.tmpdir (MiB): available: 31472.88, total: 31979.74 + Space in storage for workdir (MiB): available: 180826.39, total: 975121.00 + JVM Flags: 0 total; + Debug Flags: 0 total; + Server Running: true + Active Data Packs: vanilla + Available Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla + Enabled Feature Flags: minecraft:vanilla + World Generation: Stable + World Seed: 7807144395007356937 + Suppressed Exceptions: ~~NONE~~ + Is Modded: Probably not. Server jar signature and brand is untouched + Type: Dedicated Server (map_server.txt) diff --git a/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.json b/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.json new file mode 100644 index 0000000..1fd452d --- /dev/null +++ b/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.json @@ -0,0 +1,1115 @@ +{ + "id": "vanilla\/crash-report", + "name": "Vanilla", + "type": "Crash Report", + "version": "1.21.11 Pre-Release 1", + "title": "Vanilla 1.21.11 Pre-Release 1 Crash Report", + "entries": [ + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 1, + "content": "---- Minecraft Crash Report ----" + } + ] + }, + { + "level": 9, + "time": null, + "prefix": null, + "lines": [ + { + "number": 2, + "content": "\/\/ This doesn't make any sense!" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 3, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Time:", + "lines": [ + { + "number": 4, + "content": "Time: 2025-11-19 13:22:30" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Description:", + "lines": [ + { + "number": 5, + "content": "Description: Initializing game" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 6, + "content": "" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 7, + "content": "java.lang.NullPointerException: Cannot invoke \"hoh.p()\" because \"gfj.V().e\" is null" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 8, + "content": "\tat gfo.b(SourceFile:1635)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 9, + "content": "\tat gfn.a(SourceFile:154)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 10, + "content": "\tat gfb.a(SourceFile:113)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 11, + "content": "\tat gfb.a(SourceFile:66)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 12, + "content": "\tat gfo.a(SourceFile:210)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 13, + "content": "\tat gfj.(SourceFile:537)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 14, + "content": "\tat net.minecraft.client.main.Main.main(SourceFile:234)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 15, + "content": "\tat java.base\/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 16, + "content": "\tat java.base\/java.lang.reflect.Method.invoke(Unknown Source)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 17, + "content": "\tat com.modrinth.theseus.MinecraftLaunch.relaunch(MinecraftLaunch.java:63)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 18, + "content": "\tat com.modrinth.theseus.MinecraftLaunch.main(MinecraftLaunch.java:28)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 19, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 20, + "content": "" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 21, + "content": "A detailed walkthrough of the error, its code path and all known details is as follows:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 22, + "content": "---------------------------------------------------------------------------------------" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 23, + "content": "" + } + ] + }, + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 24, + "content": "-- Head --" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Thread:", + "lines": [ + { + "number": 25, + "content": "Thread: Render thread" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Stacktrace:", + "lines": [ + { + "number": 26, + "content": "Stacktrace:" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 27, + "content": "\tat gfo.b(SourceFile:1635)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 28, + "content": "\tat gfn.a(SourceFile:154)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 29, + "content": "\tat gfb.a(SourceFile:113)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 30, + "content": "\tat gfb.a(SourceFile:66)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 31, + "content": "\tat gfo.a(SourceFile:210)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 32, + "content": "\tat gfj.(SourceFile:537)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 33, + "content": "" + } + ] + }, + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 34, + "content": "-- Initialization --" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Details:", + "lines": [ + { + "number": 35, + "content": "Details:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tModules:", + "lines": [ + { + "number": 36, + "content": "\tModules:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Stacktrace:", + "lines": [ + { + "number": 37, + "content": "Stacktrace:" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 38, + "content": "\tat net.minecraft.client.main.Main.main(SourceFile:234)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 39, + "content": "\tat java.base\/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 40, + "content": "\tat java.base\/java.lang.reflect.Method.invoke(Unknown Source)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 41, + "content": "\tat com.modrinth.theseus.MinecraftLaunch.relaunch(MinecraftLaunch.java:63)" + } + ] + }, + { + "level": 10, + "time": null, + "prefix": null, + "lines": [ + { + "number": 42, + "content": "\tat com.modrinth.theseus.MinecraftLaunch.main(MinecraftLaunch.java:28)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 43, + "content": "" + } + ] + }, + { + "level": 8, + "time": null, + "prefix": null, + "lines": [ + { + "number": 44, + "content": "-- System Details --" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "Details:", + "lines": [ + { + "number": 45, + "content": "Details:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version:", + "lines": [ + { + "number": 46, + "content": "\tMinecraft Version: 1.21.11 Pre-Release 1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version ID:", + "lines": [ + { + "number": 47, + "content": "\tMinecraft Version ID: 1.21.11-pre1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tOperating System:", + "lines": [ + { + "number": 48, + "content": "\tOperating System: Linux (amd64) version 6.17.8-300.fc43.x86_64" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJava Version:", + "lines": [ + { + "number": 49, + "content": "\tJava Version: 21.0.8, Azul Systems, Inc." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJava VM Version:", + "lines": [ + { + "number": 50, + "content": "\tJava VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Azul Systems, Inc." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMemory:", + "lines": [ + { + "number": 51, + "content": "\tMemory: 205622888 bytes (196 MiB) \/ 455081984 bytes (434 MiB) up to 2147483648 bytes (2048 MiB)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tCPUs:", + "lines": [ + { + "number": 52, + "content": "\tCPUs: 20" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tProcessor Vendor:", + "lines": [ + { + "number": 53, + "content": "\tProcessor Vendor: GenuineIntel" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tProcessor Name:", + "lines": [ + { + "number": 54, + "content": "\tProcessor Name: 12th Gen Intel(R) Core(TM) i9-12900HK" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tIdentifier:", + "lines": [ + { + "number": 55, + "content": "\tIdentifier: Intel64 Family 6 Model 154 Stepping 3" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tMicroarchitecture:", + "lines": [ + { + "number": 56, + "content": "\tMicroarchitecture: Alder Lake" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tFrequency (GHz):", + "lines": [ + { + "number": 57, + "content": "\tFrequency (GHz): -0.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of physical packages:", + "lines": [ + { + "number": 58, + "content": "\tNumber of physical packages: 1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of physical CPUs:", + "lines": [ + { + "number": 59, + "content": "\tNumber of physical CPUs: 14" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tNumber of logical CPUs:", + "lines": [ + { + "number": 60, + "content": "\tNumber of logical CPUs: 20" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 name:", + "lines": [ + { + "number": 61, + "content": "\tGraphics card #0 name: Alder Lake-P GT2 [Iris Xe Graphics]" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 vendor:", + "lines": [ + { + "number": 62, + "content": "\tGraphics card #0 vendor: Intel Corporation (0x8086)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 VRAM (MiB):", + "lines": [ + { + "number": 63, + "content": "\tGraphics card #0 VRAM (MiB): 256.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 deviceId:", + "lines": [ + { + "number": 64, + "content": "\tGraphics card #0 deviceId: 0x46a6" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #0 versionInfo:", + "lines": [ + { + "number": 65, + "content": "\tGraphics card #0 versionInfo: unknown" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #1 name:", + "lines": [ + { + "number": 66, + "content": "\tGraphics card #1 name: GA107M [GeForce RTX 3050 Ti Mobile]" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #1 vendor:", + "lines": [ + { + "number": 67, + "content": "\tGraphics card #1 vendor: NVIDIA Corporation (0x10de)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #1 VRAM (MiB):", + "lines": [ + { + "number": 68, + "content": "\tGraphics card #1 VRAM (MiB): 4128.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #1 deviceId:", + "lines": [ + { + "number": 69, + "content": "\tGraphics card #1 deviceId: 0x25a0" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGraphics card #1 versionInfo:", + "lines": [ + { + "number": 70, + "content": "\tGraphics card #1 versionInfo: unknown" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tVirtual memory max (MiB):", + "lines": [ + { + "number": 71, + "content": "\tVirtual memory max (MiB): 40171.74" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tVirtual memory used (MiB):", + "lines": [ + { + "number": 72, + "content": "\tVirtual memory used (MiB): 25404.43" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSwap memory total (MiB):", + "lines": [ + { + "number": 73, + "content": "\tSwap memory total (MiB): 8192.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSwap memory used (MiB):", + "lines": [ + { + "number": 74, + "content": "\tSwap memory used (MiB): 0.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for jna.tmpdir (MiB):", + "lines": [ + { + "number": 75, + "content": "\tSpace in storage for jna.tmpdir (MiB): available: 185838.28, total: 975121.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB):", + "lines": [ + { + "number": 76, + "content": "\tSpace in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 185838.28, total: 975121.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for io.netty.native.workdir (MiB):", + "lines": [ + { + "number": 77, + "content": "\tSpace in storage for io.netty.native.workdir (MiB): available: 185838.28, total: 975121.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for java.io.tmpdir (MiB):", + "lines": [ + { + "number": 78, + "content": "\tSpace in storage for java.io.tmpdir (MiB): available: 6395.06, total: 6395.95" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSpace in storage for workdir (MiB):", + "lines": [ + { + "number": 79, + "content": "\tSpace in storage for workdir (MiB): available: 185838.28, total: 975121.00" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tJVM Flags:", + "lines": [ + { + "number": 80, + "content": "\tJVM Flags: 1 total; -Xmx2048M" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tDebug Flags:", + "lines": [ + { + "number": 81, + "content": "\tDebug Flags: 0 total;" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tLaunched Version:", + "lines": [ + { + "number": 82, + "content": "\tLaunched Version: 1.21.11-pre1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tLauncher name:", + "lines": [ + { + "number": 83, + "content": "\tLauncher name: theseus" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tBackend library:", + "lines": [ + { + "number": 84, + "content": "\tBackend library: LWJGL version 3.3.3+5" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tBackend API:", + "lines": [ + { + "number": 85, + "content": "\tBackend API: Mesa Intel(R) Iris(R) Xe Graphics (ADL GT2) GL version 4.6 (Core Profile) Mesa 25.2.6 (git-3f12436d80), Intel" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tWindow size:", + "lines": [ + { + "number": 86, + "content": "\tWindow size: " + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGFLW Platform:", + "lines": [ + { + "number": 87, + "content": "\tGFLW Platform: x11" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tRender Extensions:", + "lines": [ + { + "number": 88, + "content": "\tRender Extensions: GL_ARB_buffer_storage, GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access, GL_EXT_texture_filter_anisotropic" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tGL debug messages:", + "lines": [ + { + "number": 89, + "content": "\tGL debug messages:" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tIs Modded:", + "lines": [ + { + "number": 90, + "content": "\tIs Modded: Probably not. Client jar signature and brand is untouched" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tUniverse:", + "lines": [ + { + "number": 91, + "content": "\tUniverse: 404" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tType:", + "lines": [ + { + "number": 92, + "content": "\tType: Client (map_client.txt)" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tLocale:", + "lines": [ + { + "number": 93, + "content": "\tLocale: en_US" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tSystem encoding:", + "lines": [ + { + "number": 94, + "content": "\tSystem encoding: UTF-8" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tFile encoding:", + "lines": [ + { + "number": 95, + "content": "\tFile encoding: UTF-8" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "\tCPU:", + "lines": [ + { + "number": 96, + "content": "\tCPU: 20x 12th Gen Intel(R) Core(TM) i9-12900HK" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": null, + "lines": [ + { + "number": 97, + "content": "" + } + ] + } + ], + "analysis": { + "problems": [], + "information": [ + { + "message": "Minecraft version: 1.21.11 Pre-Release 1", + "counter": 1, + "entry": { + "level": 6, + "time": null, + "prefix": "\tMinecraft Version:", + "lines": [ + { + "number": 46, + "content": "\tMinecraft Version: 1.21.11 Pre-Release 1" + } + ] + }, + "label": "Minecraft version", + "value": "1.21.11 Pre-Release 1" + }, + { + "message": "Java version: 21.0.8", + "counter": 1, + "entry": { + "level": 6, + "time": null, + "prefix": "\tJava Version:", + "lines": [ + { + "number": 49, + "content": "\tJava Version: 21.0.8, Azul Systems, Inc." + } + ] + }, + "label": "Java version", + "value": "21.0.8" + } + ] + } +} \ No newline at end of file diff --git a/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.log b/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.log new file mode 100644 index 0000000..e9f7640 --- /dev/null +++ b/test/data/Vanilla/vanilla-crash-report-1-21-11-pre-release-1.log @@ -0,0 +1,96 @@ +---- Minecraft Crash Report ---- +// This doesn't make any sense! + +Time: 2025-11-19 13:22:30 +Description: Initializing game + +java.lang.NullPointerException: Cannot invoke "hoh.p()" because "gfj.V().e" is null + at gfo.b(SourceFile:1635) + at gfn.a(SourceFile:154) + at gfb.a(SourceFile:113) + at gfb.a(SourceFile:66) + at gfo.a(SourceFile:210) + at gfj.(SourceFile:537) + at net.minecraft.client.main.Main.main(SourceFile:234) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) + at java.base/java.lang.reflect.Method.invoke(Unknown Source) + at com.modrinth.theseus.MinecraftLaunch.relaunch(MinecraftLaunch.java:63) + at com.modrinth.theseus.MinecraftLaunch.main(MinecraftLaunch.java:28) + + +A detailed walkthrough of the error, its code path and all known details is as follows: +--------------------------------------------------------------------------------------- + +-- Head -- +Thread: Render thread +Stacktrace: + at gfo.b(SourceFile:1635) + at gfn.a(SourceFile:154) + at gfb.a(SourceFile:113) + at gfb.a(SourceFile:66) + at gfo.a(SourceFile:210) + at gfj.(SourceFile:537) + +-- Initialization -- +Details: + Modules: +Stacktrace: + at net.minecraft.client.main.Main.main(SourceFile:234) + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) + at java.base/java.lang.reflect.Method.invoke(Unknown Source) + at com.modrinth.theseus.MinecraftLaunch.relaunch(MinecraftLaunch.java:63) + at com.modrinth.theseus.MinecraftLaunch.main(MinecraftLaunch.java:28) + +-- System Details -- +Details: + Minecraft Version: 1.21.11 Pre-Release 1 + Minecraft Version ID: 1.21.11-pre1 + Operating System: Linux (amd64) version 6.17.8-300.fc43.x86_64 + Java Version: 21.0.8, Azul Systems, Inc. + Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Azul Systems, Inc. + Memory: 205622888 bytes (196 MiB) / 455081984 bytes (434 MiB) up to 2147483648 bytes (2048 MiB) + CPUs: 20 + Processor Vendor: GenuineIntel + Processor Name: 12th Gen Intel(R) Core(TM) i9-12900HK + Identifier: Intel64 Family 6 Model 154 Stepping 3 + Microarchitecture: Alder Lake + Frequency (GHz): -0.00 + Number of physical packages: 1 + Number of physical CPUs: 14 + Number of logical CPUs: 20 + Graphics card #0 name: Alder Lake-P GT2 [Iris Xe Graphics] + Graphics card #0 vendor: Intel Corporation (0x8086) + Graphics card #0 VRAM (MiB): 256.00 + Graphics card #0 deviceId: 0x46a6 + Graphics card #0 versionInfo: unknown + Graphics card #1 name: GA107M [GeForce RTX 3050 Ti Mobile] + Graphics card #1 vendor: NVIDIA Corporation (0x10de) + Graphics card #1 VRAM (MiB): 4128.00 + Graphics card #1 deviceId: 0x25a0 + Graphics card #1 versionInfo: unknown + Virtual memory max (MiB): 40171.74 + Virtual memory used (MiB): 25404.43 + Swap memory total (MiB): 8192.00 + Swap memory used (MiB): 0.00 + Space in storage for jna.tmpdir (MiB): available: 185838.28, total: 975121.00 + Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): available: 185838.28, total: 975121.00 + Space in storage for io.netty.native.workdir (MiB): available: 185838.28, total: 975121.00 + Space in storage for java.io.tmpdir (MiB): available: 6395.06, total: 6395.95 + Space in storage for workdir (MiB): available: 185838.28, total: 975121.00 + JVM Flags: 1 total; -Xmx2048M + Debug Flags: 0 total; + Launched Version: 1.21.11-pre1 + Launcher name: theseus + Backend library: LWJGL version 3.3.3+5 + Backend API: Mesa Intel(R) Iris(R) Xe Graphics (ADL GT2) GL version 4.6 (Core Profile) Mesa 25.2.6 (git-3f12436d80), Intel + Window size: + GFLW Platform: x11 + Render Extensions: GL_ARB_buffer_storage, GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access, GL_EXT_texture_filter_anisotropic + GL debug messages: + Is Modded: Probably not. Client jar signature and brand is untouched + Universe: 404 + Type: Client (map_client.txt) + Locale: en_US + System encoding: UTF-8 + File encoding: UTF-8 + CPU: 20x 12th Gen Intel(R) Core(TM) i9-12900HK diff --git a/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.json b/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.json new file mode 100644 index 0000000..341f1b8 --- /dev/null +++ b/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.json @@ -0,0 +1,420 @@ +{ + "id": "vanilla\/server", + "name": "Vanilla", + "type": "Server Log", + "version": "1.21.11 Pre-Release 1", + "title": "Vanilla 1.21.11 Pre-Release 1 Server Log", + "entries": [ + { + "level": 6, + "time": null, + "prefix": "[11:00:16] [ServerMain\/INFO]:", + "lines": [ + { + "number": 1, + "content": "[11:00:16] [ServerMain\/INFO]: Environment: Environment[sessionHost=https:\/\/sessionserver.mojang.com, servicesHost=https:\/\/api.minecraftservices.com, profilesHost=https:\/\/api.mojang.com, name=PROD]" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [ServerMain\/INFO]:", + "lines": [ + { + "number": 2, + "content": "[11:00:17] [ServerMain\/INFO]: No existing world data, creating new world" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [ServerMain\/INFO]:", + "lines": [ + { + "number": 3, + "content": "[11:00:17] [ServerMain\/INFO]: Loaded 1470 recipes" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [ServerMain\/INFO]:", + "lines": [ + { + "number": 4, + "content": "[11:00:17] [ServerMain\/INFO]: Loaded 1584 advancements" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 5, + "content": "[11:00:17] [Server thread\/INFO]: Starting json RPC server on 0.0.0.0:9900" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 6, + "content": "[11:00:17] [Server thread\/INFO]: Json-RPC Management connection listening on 0.0.0.0:9900" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 7, + "content": "[11:00:17] [Server thread\/INFO]: Starting minecraft server version 1.21.11 Pre-Release 1" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 8, + "content": "[11:00:17] [Server thread\/INFO]: Loading properties" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 9, + "content": "[11:00:17] [Server thread\/INFO]: Default game type: SURVIVAL" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 10, + "content": "[11:00:17] [Server thread\/INFO]: Generating keypair" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 11, + "content": "[11:00:17] [Server thread\/INFO]: Starting Minecraft server on *:49877" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 12, + "content": "[11:00:17] [Server thread\/INFO]: Preparing level \"world\"" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 13, + "content": "[11:00:17] [Server thread\/INFO]: Selecting global world spawn..." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Management server IO #1\/INFO]:", + "lines": [ + { + "number": 14, + "content": "[11:00:17] [Management server IO #1\/INFO]: RPC Connection #1: Management connection opened for \/**.**.**.**:10874" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 15, + "content": "[11:00:18] [Server thread\/INFO]: Loading 0 persistent chunks..." + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 16, + "content": "[11:00:18] [Server thread\/INFO]: Preparing spawn area: 100%" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 17, + "content": "[11:00:18] [Server thread\/INFO]: Time elapsed: 1320 ms" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 18, + "content": "[11:00:18] [Server thread\/INFO]: Done (1.430s)! For help, type \"help\"" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 19, + "content": "[11:00:18] [Server thread\/INFO]: Starting GS4 status listener" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 20, + "content": "[11:00:18] [Server thread\/INFO]: Thread Query Listener started" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Query Listener #1\/INFO]:", + "lines": [ + { + "number": 21, + "content": "[11:00:18] [Query Listener #1\/INFO]: Query running on 0.0.0.0:9898" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:18] [Server thread\/INFO]:", + "lines": [ + { + "number": 22, + "content": "[11:00:18] [Server thread\/INFO]: JMX monitoring enabled" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 23, + "content": "[11:00:23] [Server thread\/INFO]: Stopping the server" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 24, + "content": "[11:00:23] [Server thread\/INFO]: Stopping server" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 25, + "content": "[11:00:23] [Server thread\/INFO]: Saving players" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 26, + "content": "[11:00:23] [Server thread\/INFO]: Saving worlds" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 27, + "content": "[11:00:23] [Server thread\/INFO]: Saving chunks for level 'ServerLevel[world]'\/minecraft:overworld" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 28, + "content": "[11:00:23] [Server thread\/INFO]: Saving chunks for level 'ServerLevel[world]'\/minecraft:the_nether" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 29, + "content": "[11:00:23] [Server thread\/INFO]: Saving chunks for level 'ServerLevel[world]'\/minecraft:the_end" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 30, + "content": "[11:00:23] [Server thread\/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 31, + "content": "[11:00:23] [Server thread\/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 32, + "content": "[11:00:23] [Server thread\/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 33, + "content": "[11:00:23] [Server thread\/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Server thread\/INFO]:", + "lines": [ + { + "number": 34, + "content": "[11:00:23] [Server thread\/INFO]: Thread Query Listener stopped" + } + ] + }, + { + "level": 6, + "time": null, + "prefix": "[11:00:23] [Management server IO #1\/INFO]:", + "lines": [ + { + "number": 35, + "content": "[11:00:23] [Management server IO #1\/INFO]: RPC Connection #1: Management connection closed for \/**.**.**.**:10874" + }, + { + "number": 36, + "content": "" + } + ] + } + ], + "analysis": { + "problems": [], + "information": [ + { + "message": "Minecraft version: 1.21.11 Pre-Release 1", + "counter": 1, + "entry": { + "level": 6, + "time": null, + "prefix": "[11:00:17] [Server thread\/INFO]:", + "lines": [ + { + "number": 7, + "content": "[11:00:17] [Server thread\/INFO]: Starting minecraft server version 1.21.11 Pre-Release 1" + } + ] + }, + "label": "Minecraft version", + "value": "1.21.11 Pre-Release 1" + } + ] + } +} \ No newline at end of file diff --git a/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.log b/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.log new file mode 100644 index 0000000..73a77d8 --- /dev/null +++ b/test/data/Vanilla/vanilla-start-1-21-11-pre-release-1.log @@ -0,0 +1,35 @@ +[11:00:16] [ServerMain/INFO]: Environment: Environment[sessionHost=https://sessionserver.mojang.com, servicesHost=https://api.minecraftservices.com, profilesHost=https://api.mojang.com, name=PROD] +[11:00:17] [ServerMain/INFO]: No existing world data, creating new world +[11:00:17] [ServerMain/INFO]: Loaded 1470 recipes +[11:00:17] [ServerMain/INFO]: Loaded 1584 advancements +[11:00:17] [Server thread/INFO]: Starting json RPC server on 0.0.0.0:9900 +[11:00:17] [Server thread/INFO]: Json-RPC Management connection listening on 0.0.0.0:9900 +[11:00:17] [Server thread/INFO]: Starting minecraft server version 1.21.11 Pre-Release 1 +[11:00:17] [Server thread/INFO]: Loading properties +[11:00:17] [Server thread/INFO]: Default game type: SURVIVAL +[11:00:17] [Server thread/INFO]: Generating keypair +[11:00:17] [Server thread/INFO]: Starting Minecraft server on *:49877 +[11:00:17] [Server thread/INFO]: Preparing level "world" +[11:00:17] [Server thread/INFO]: Selecting global world spawn... +[11:00:17] [Management server IO #1/INFO]: RPC Connection #1: Management connection opened for /**.**.**.**:10874 +[11:00:18] [Server thread/INFO]: Loading 0 persistent chunks... +[11:00:18] [Server thread/INFO]: Preparing spawn area: 100% +[11:00:18] [Server thread/INFO]: Time elapsed: 1320 ms +[11:00:18] [Server thread/INFO]: Done (1.430s)! For help, type "help" +[11:00:18] [Server thread/INFO]: Starting GS4 status listener +[11:00:18] [Server thread/INFO]: Thread Query Listener started +[11:00:18] [Query Listener #1/INFO]: Query running on 0.0.0.0:9898 +[11:00:18] [Server thread/INFO]: JMX monitoring enabled +[11:00:23] [Server thread/INFO]: Stopping the server +[11:00:23] [Server thread/INFO]: Stopping server +[11:00:23] [Server thread/INFO]: Saving players +[11:00:23] [Server thread/INFO]: Saving worlds +[11:00:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:overworld +[11:00:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_nether +[11:00:23] [Server thread/INFO]: Saving chunks for level 'ServerLevel[world]'/minecraft:the_end +[11:00:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (world): All chunks are saved +[11:00:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM-1): All chunks are saved +[11:00:23] [Server thread/INFO]: ThreadedAnvilChunkStorage (DIM1): All chunks are saved +[11:00:23] [Server thread/INFO]: ThreadedAnvilChunkStorage: All dimensions are saved +[11:00:23] [Server thread/INFO]: Thread Query Listener stopped +[11:00:23] [Management server IO #1/INFO]: RPC Connection #1: Management connection closed for /**.**.**.**:10874 diff --git a/test/tests/Logs/AutoLogsTest.php b/test/tests/Logs/AutoLogsTest.php index f748e23..06939a4 100644 --- a/test/tests/Logs/AutoLogsTest.php +++ b/test/tests/Logs/AutoLogsTest.php @@ -1764,6 +1764,26 @@ public function test_vanilla_code_of_conduct(): void $this->assertStringEqualsFile($log->getExpectedPath(), $log->getOutput(), $log->getLogPath()); } + /** + * @return void + * @throws Exception + */ + public function test_vanilla_crash_report_1_21_10_release_candidate_1(): void + { + $log = new TestLog('Vanilla/vanilla-crash-report-1-21-10-release-candidate-1.log'); + $this->assertStringEqualsFile($log->getExpectedPath(), $log->getOutput(), $log->getLogPath()); + } + + /** + * @return void + * @throws Exception + */ + public function test_vanilla_crash_report_1_21_11_pre_release_1(): void + { + $log = new TestLog('Vanilla/vanilla-crash-report-1-21-11-pre-release-1.log'); + $this->assertStringEqualsFile($log->getExpectedPath(), $log->getOutput(), $log->getLogPath()); + } + /** * @return void * @throws Exception @@ -1834,6 +1854,16 @@ public function test_vanilla_snapshot_21w05b(): void $this->assertStringEqualsFile($log->getExpectedPath(), $log->getOutput(), $log->getLogPath()); } + /** + * @return void + * @throws Exception + */ + public function test_vanilla_start_1_21_11_pre_release_1(): void + { + $log = new TestLog('Vanilla/vanilla-start-1-21-11-pre-release-1.log'); + $this->assertStringEqualsFile($log->getExpectedPath(), $log->getOutput(), $log->getLogPath()); + } + /** * @return void * @throws Exception