diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d6265c702..9a9934f7a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,4 +35,4 @@ jobs: if: always() with: name: Client Test Screenshots - path: minecraft/minecraft-test/run/screenshots \ No newline at end of file + path: minecraft/minecraft-test/run/screenshots diff --git a/build.gradle b/build.gradle index 238aa59e7..11c2e9cfa 100644 --- a/build.gradle +++ b/build.gradle @@ -15,8 +15,8 @@ plugins { id 'maven-publish' id 'checkstyle' id 'com.diffplug.spotless' version "6.22.0" - id 'fabric-loom' version '1.4-SNAPSHOT' apply false - id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'fabric-loom' version '1.7-SNAPSHOT' apply false + id 'com.gradleup.shadow' version '8.3.2' id 'me.modmuss50.remotesign' version "0.4.0" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ac72c34e8..0aaefbcaf 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/minecraft/minecraft-test/.gitignore b/minecraft/minecraft-test/.gitignore index 31ecb6570..1e5b0b79d 100644 --- a/minecraft/minecraft-test/.gitignore +++ b/minecraft/minecraft-test/.gitignore @@ -1,6 +1,8 @@ -# Ignore everything -/* +/.gradle +/build +/run -!/src -!/build.gradle -!/.gitignore +versions/build +versions/*/build +versions/*/.gradle +versions/*/run \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/1.12.2/meta.json b/minecraft/minecraft-test/versions/1.12.2/meta.json new file mode 100644 index 000000000..a6477a0fb --- /dev/null +++ b/minecraft/minecraft-test/versions/1.12.2/meta.json @@ -0,0 +1,5 @@ +{ + "minecraftVersion": "1.12.2", + "javaVersion": 8, + "hasIntermediary": false +} \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/1.16.5/meta.json b/minecraft/minecraft-test/versions/1.16.5/meta.json new file mode 100644 index 000000000..859e91f1a --- /dev/null +++ b/minecraft/minecraft-test/versions/1.16.5/meta.json @@ -0,0 +1,4 @@ +{ + "minecraftVersion": "1.16.5", + "javaVersion": 8 +} \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/1.2.5/meta.json b/minecraft/minecraft-test/versions/1.2.5/meta.json new file mode 100644 index 000000000..a817346e9 --- /dev/null +++ b/minecraft/minecraft-test/versions/1.2.5/meta.json @@ -0,0 +1,6 @@ +{ + "minecraftVersion": "1.2.5", + "javaVersion": 8, + "hasIntermediary": false, + "mergedJars": false +} \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/1.20.1/meta.json b/minecraft/minecraft-test/versions/1.20.1/meta.json new file mode 100644 index 000000000..25120a153 --- /dev/null +++ b/minecraft/minecraft-test/versions/1.20.1/meta.json @@ -0,0 +1,423 @@ +{ + "minecraftVersion": "1.20.1", + "javaVersion": 17, + "_": "A tweaked list of mods from AOF 7", + "modpack": "curse.maven:aof7-899572:5686089", + "mods": [ + "curse.maven:accelerated-decay-699872:4863305", + "curse.maven:ad-astra-635042:5116772", + "curse.maven:ad-astra-giselle-addon-714958:5607996", + "curse.maven:additional-lanterns-501590:5275403", + "curse.maven:advanced-netherite-fabric-547881:5401036", + "curse.maven:advancement-plaques-fabric-514882:4658636", + "curse.maven:adventurez-390991:5043014", + "curse.maven:ae2-mousetweaks-fix-955991:5086122", + "curse.maven:alloy-forgery-438718:4944647", + "curse.maven:almost-unified-633823:5517425", + "curse.maven:ambientsounds-254284:5670555", + "curse.maven:amecs-324564:4782283", + "curse.maven:animal-feeding-trough-445838:5305053", + "curse.maven:another-furniture-610492:4815126", + "curse.maven:antighost-273279:4613757", + "curse.maven:anvil-repairing-889205:5439815", + "curse.maven:appleskin-248787:4770825", + "curse.maven:applied-botanics-addon-610632:4904184", + "curse.maven:applied-energistics-2-223794:5588163", + "curse.maven:applied-energistics-2-wireless-terminals-459929:4936436", + "curse.maven:archers-932359:5514012", + "curse.maven:architectury-api-419699:5137936", + "curse.maven:argonauts-845833:5263581", + "curse.maven:arrp-463113:5018841", + "curse.maven:artifacts-312353:5424363", + "curse.maven:async-locator-625069:4603345", + "curse.maven:athena-841890:5176880", + "curse.maven:attributefix-280510:4911083", + "curse.maven:auth-me-356643:4629826", + "curse.maven:auto-config-updated-api-373261:3668220", + "curse.maven:auto-workstations-fabric-623678:4976004", + "curse.maven:axolotl-bucket-fix-495453:4582736", + "curse.maven:azurelib-armor-912767:5500371", + "curse.maven:badpackets-615134:4784394", + "curse.maven:balm-fabric-500525:5644969", + "curse.maven:bank-storage-916710:5284659", + "curse.maven:beaconoverhaul-430382:4715716", + "curse.maven:beautify-refabricated-809311:5405529", + "curse.maven:bed-benefits-377051:5057449", + "curse.maven:befixment-844235:5161378", + "curse.maven:bellsandwhistles-905040:4894378", + "curse.maven:besmirchment-2-542196:5213810", + "curse.maven:better-archeology-835687:5647780", + "curse.maven:better-ping-display-fabric-406343:4592448", + "curse.maven:better-stats-667464:5607266", + "curse.maven:better-than-bunnies-fabric-822685:5477566", + "curse.maven:better-than-llamas-fabric-822688:5477569", + "curse.maven:better-trims-821752:5641583", + "curse.maven:bettersmithingtable-875744:4676755", + "curse.maven:bewitchment-394915:5205373", + "curse.maven:bisecthosting-server-integration-menu-fabric-585548:4743117", + "curse.maven:blockus-312289:5638955", + "curse.maven:blur-fabric-393563:4578291", + "curse.maven:bone-zone-690176:5368366", + "curse.maven:bookshelf-228525:5423988", + "curse.maven:bosses-of-mass-destruction-438365:4993305", + "curse.maven:botania-fabric-421839:5594996", + "curse.maven:botarium-704113:5486071", + "curse.maven:brewin-and-chewin-fabric-807512:5467339", + "curse.maven:building-wands-363392:5654679", + "curse.maven:builtin-servers-473131:4716368", + "curse.maven:bushier-flowers-682644:4582654", + "curse.maven:cadmus-845832:5263335", + "curse.maven:calibrated-823331:5176066", + "curse.maven:cardinal-components-api-318449:4681153", + "curse.maven:catalogue-fabric-667377:4766089", + "curse.maven:cc-tweaked-282001:5644985", + "curse.maven:charm-of-undying-316873:5159191", + "curse.maven:chat-heads-407206:5634315", + "curse.maven:chefs-delight-fabric-736986:4751399", + "curse.maven:cherished-worlds-308240:5161387", + "curse.maven:chipped-456956:5270040", + "curse.maven:choicetheorems-overhauled-village-623908:5532168", + "curse.maven:chunky-pregenerator-433175:5320021", + "curse.maven:clean-tooltips-855017:4703393", + "curse.maven:cloth-config-348521:4973440", + "curse.maven:clumps-256717:5278537", + "curse.maven:colorful-hearts-854213:5631919", + "curse.maven:colytra-280200:4814397", + "curse.maven:complementary-reimagined-627557:5507475", + "curse.maven:complementary-unbound-385587:5507479", + "curse.maven:completeconfig-381257:4933324", + "curse.maven:compressed-blocks-for-fabric-364762:4810096", + "curse.maven:connected-glass-383129:5657171", + "curse.maven:connectiblechains-415681:4615622", + "curse.maven:convenient-decor-794452:5517730", + "curse.maven:cooking-for-blockheads-fabric-634546:5396008", + "curse.maven:copycats-968398:5593244", + "curse.maven:couplings-311120:4643086", + "curse.maven:coxinha-utilities-576449:5021524", + "curse.maven:crafting-tweaks-fabric-502516:5623638", + "curse.maven:crawl-314579:4652648", + "curse.maven:create-deco-fabric-739872:5293979", + "curse.maven:create-enchantment-industry-fabric-876129:5170120", + "curse.maven:create-fabric-624165:5245234", + "curse.maven:create-food-959439:5641692", + "curse.maven:create-jetpack-655608:5184594", + "curse.maven:create-steam-n-rails-688231:5331298", + "curse.maven:createaddition-439890:5460454", + "curse.maven:creativecore-257814:5568299", + "curse.maven:creeper-overhaul-561625:5125712", + "curse.maven:croptopia-415438:4997461", + "curse.maven:ctov-chefs-delight-compat-834282:4602230", + "curse.maven:custom-portals-409341:5509682", + "curse.maven:dark-loading-screen-365727:4557703", + "curse.maven:dark-mode-everywhere-fabric-696205:4716033", + "curse.maven:dark-utilities-242195:4834331", + "curse.maven:decorative-blocks-362528:5089408", + "curse.maven:deep-mob-learning-refabricated-398614:5305092", + "curse.maven:deepslatecutting-504899:4671077", + "curse.maven:default-options-fabric-547694:4635875", + "curse.maven:diet-443570:4813902", + "curse.maven:distracting-trims-862201:5368403", + "curse.maven:do-api-864599:5468180", + "curse.maven:dragonloot-424480:4656260", + "curse.maven:duckling-597248:4620539", + "curse.maven:ducky-periphs-832658:4709585", + "curse.maven:dungeon-now-loading-638535:5340133", + "curse.maven:ecologics-570463:4857271", + "curse.maven:elytra-slot-317716:5560277", + "curse.maven:embeddium-908741:5522040", + "curse.maven:enchantment-descriptions-250419:5598370", + "curse.maven:enderman-overhaul-574409:5019622", + "curse.maven:ends-delight-662675:5567428", + "curse.maven:enhanced-workbenches-857513:5483648", + "curse.maven:entangled-301034:5656243", + "curse.maven:epherolib-885449:4949797", + "curse.maven:equipment-compare-fabric-541329:4940609", + "curse.maven:ex-pattern-provider-892005:5407904", + "curse.maven:exposure-871755:5637331", + "curse.maven:extra-sponges-457043:4576290", + "curse.maven:fabric-api-306612:5383715", + "curse.maven:fabric-language-kotlin-308769:5655463", + "curse.maven:fabric-waystones-410902:4950461", + "curse.maven:fakerlib-853197:5503724", + "curse.maven:fancymenu-367706:5340223", + "curse.maven:farmers-delight-refabricated-993166:5684645", + "curse.maven:farmers-knives-628972:5281259", + "curse.maven:farmers-respite-fabric-811003:5252387", + "curse.maven:farming-for-blockheads-fabric-554586:4749358", + "curse.maven:fast-paintings-883287:5324823", + "curse.maven:ferritecore-fabric-459857:4810977", + "curse.maven:findme-291936:5074612", + "curse.maven:forge-config-api-port-fabric-547434:4583000", + "curse.maven:formations-915115:4862075", + "curse.maven:formations-nether-918840:5550420", + "curse.maven:framework-fabric-667391:4718252", + "curse.maven:friendly-fire-255105:5368434", + "curse.maven:frights-delight-927591:5671923", + "curse.maven:ftb-library-fabric-438495:5567590", + "curse.maven:ftb-ultimine-fabric-448231:5363344", + "curse.maven:fullstack-watchdog-849817:4488547", + "curse.maven:fusion-connected-textures-854949:5129312", + "curse.maven:gag-694962:5175793", + "curse.maven:gazebos-865298:4819337", + "curse.maven:geckolib-388172:5675212", + "curse.maven:geode-plus-620784:5407756", + "curse.maven:glassential-fabric-320778:5109352", + "curse.maven:go-fish-431135:4991432", + "curse.maven:guard-villagers-fabric-571503:4942394", + "curse.maven:handcrafted-538214:5118730", + "curse.maven:harmonia-1001446:5436579", + "curse.maven:hephaestus-fabric-667894:5536226", + "curse.maven:hephaestusplus-942224:5054938", + "curse.maven:heracles-845831:5406937", + "curse.maven:hopo-better-ruined-portals-632624:4828147", + "curse.maven:iceberg-fabric-539382:4953470", + "curse.maven:ichunutil-229060:5477557", + "curse.maven:immediatelyfast-686911:5672336", + "curse.maven:immersive-armors-580681:4664263", + "curse.maven:immersive-melodies-904471:5496452", + "curse.maven:industrial-revolution-391708:5254377", + "curse.maven:industrialreborn-941523:5265767", + "curse.maven:interiors-906239:5253013", + "curse.maven:inventory-sorting-325471:4597704", + "curse.maven:invocations-spell-engine-910516:5443065", + "curse.maven:irisshaders-455508:5485649", + "curse.maven:iron-jetpacks-fabric-386892:4594926", + "curse.maven:ironchests-498794:4638050", + "curse.maven:item-collectors-395620:5273025", + "curse.maven:itemfavorites-832021:4597740", + "curse.maven:jamlib-623764:4662529", + "curse.maven:javd-370890:4803994", + "curse.maven:jewelry-910706:5672344", + "curse.maven:joy-of-painting-350727:5592163", + "curse.maven:jumpoverfences-353641:4714524", + "curse.maven:justenoughbreeding-899386:5682438", + "curse.maven:kibe-388832:4648536", + "curse.maven:kibe-compat-1010815:5300866", + "curse.maven:konkrete-fabric-416797:5142502", + "curse.maven:kubejs-238086:5454838", + "curse.maven:lazydfu-433518:3821870", + "curse.maven:legendary-tooltips-fabric-542478:4940615", + "curse.maven:let-sleeping-dogs-lie-for-fabric-822698:5477593", + "curse.maven:lets-do-addon-compat-992333:5396033", + "curse.maven:lets-do-addon-structures-967867:5209706", + "curse.maven:lets-do-bakery-886559:5567134", + "curse.maven:lets-do-beachparty-858691:5320667", + "curse.maven:lets-do-bloomingnature-962885:5620885", + "curse.maven:lets-do-brewery-971636:5427505", + "curse.maven:lets-do-herbal-brews-951221:5400096", + "curse.maven:lets-do-meadow-821483:5567209", + "curse.maven:lets-do-nethervinery-930072:5467443", + "curse.maven:lets-do-vinery-704465:5623697", + "curse.maven:level-text-fix-840817:4714762", + "curse.maven:libz-841617:4873296", + "curse.maven:light-overlay-325492:4573177", + "curse.maven:lithium-360438:4765724", + "curse.maven:lithostitched-936015:5570159", + "curse.maven:lmft-656346:4662635", + "curse.maven:lodestone-616457:5609062", + "curse.maven:log-begone-623560:4582965", + "curse.maven:lootjs-570630:5404564", + "curse.maven:lootr-fabric-615106:5639247", + "curse.maven:macaws-bridges-351725:5240495", + "curse.maven:macaws-doors-378646:5439185", + "curse.maven:macaws-fences-and-walls-453925:5442191", + "curse.maven:macaws-lights-and-lamps-502372:5473587", + "curse.maven:macaws-paths-and-pavings-629153:5341073", + "curse.maven:macaws-roofs-352039:5554929", + "curse.maven:macaws-trapdoors-400933:5352742", + "curse.maven:macaws-windows-363569:5589335", + "curse.maven:malum-484064:5580947", + "curse.maven:max-health-fix-492246:5378285", + "curse.maven:measurements-478559:4586848", + "curse.maven:mega-cells-622112:5310782", + "curse.maven:megane-408118:5174184", + "curse.maven:melody-938643:5139711", + "curse.maven:menulogue-682371:4620803", + "curse.maven:merequester-688367:4719291", + "curse.maven:midnightlib-488090:4576371", + "curse.maven:mighty-mail-fabric-904097:4750271", + "curse.maven:minecells-618790:5429097", + "curse.maven:minerally-887708:5378804", + "curse.maven:mining-dimensions-fabric-442921:5329807", + "curse.maven:mmmmmmmmmmmm-225738:5621040", + "curse.maven:modern-dynamics-552758:4760048", + "curse.maven:modern-industrialization-405388:5562363", + "curse.maven:modern-industrialization-sound-addon-910125:4845484", + "curse.maven:modernfix-790626:5676012", + "curse.maven:modonomicon-538392:5675085", + "curse.maven:mooblooms-333946:4793377", + "curse.maven:more-armor-trims-876103:5418389", + "curse.maven:more-chest-variants-lieonlion-858032:5476602", + "curse.maven:more-mob-variants-695107:5588775", + "curse.maven:more-villagers-fabric-486080:4857288", + "curse.maven:mouse-tweaks-60089:5230279", + "curse.maven:mythic-lib-1014057:5513046", + "curse.maven:mythic-upgrades-663567:5621816", + "curse.maven:mythicmetals-410127:5418365", + "curse.maven:naturalist-627986:4847007", + "curse.maven:natures-compass-252848:4712188", + "curse.maven:nears-482621:4758678", + "curse.maven:nether-depths-upgrade-670011:5340331", + "curse.maven:netherportalfix-fabric-547696:4939732", + "curse.maven:nethers-delight-refabricated-998782:5336735", + "curse.maven:no-chat-reports-634062:4610472", + "curse.maven:notenoughrecipebook-738663:4742681", + "curse.maven:numismatic-overhaul-568316:5113697", + "curse.maven:open-loader-354339:5368593", + "curse.maven:owo-lib-532610:4749199", + "curse.maven:packed-up-backpacks-361867:5653583", + "curse.maven:packet-fixer-689467:5416165", + "curse.maven:paginated-advancements-618770:4618277", + "curse.maven:pal-359522:4565744", + "curse.maven:patchouli-fabric-393236:4966124", + "curse.maven:pehkui-319596:5419266", + "curse.maven:perfect-birbs-1057248:5526853", + "curse.maven:perfect-plushies-867232:5622596", + "curse.maven:peripheralium-621088:5647716", + "curse.maven:phantasm-565254:5673977", + "curse.maven:piercingpaxels-656453:4677686", + "curse.maven:pig-pen-cipher-396234:4714774", + "curse.maven:playdate-577629:4721788", + "curse.maven:playeranimator-658587:4587215", + "curse.maven:pling-365521:5429935", + "curse.maven:polymorph-388800:5372399", + "curse.maven:polymorphic-energistics-941096:5227384", + "curse.maven:portable-tables-544671:4627023", + "curse.maven:porting-lib-696251:5273147", + "curse.maven:powah-rearchitected-633483:5604169", + "curse.maven:prism-fabric-665526:4650327", + "curse.maven:projectile-damage-attribute-643780:5251047", + "curse.maven:prometheus-845834:5220300", + "curse.maven:quad-932715:5475732", + "curse.maven:ranged-weapon-api-962162:5655499", + "curse.maven:rare-ice-373774:4594971", + "curse.maven:reacharound-648781:5451185", + "curse.maven:reborncore-237903:4708961", + "curse.maven:rechiseled-558998:5286340", + "curse.maven:rechiseled-create-888624:5286401", + "curse.maven:regions-unexplored-659110:5558172", + "curse.maven:repurposed-structures-better-desert-temples-compat-640296:4783915", + "curse.maven:repurposed-structures-better-dungeons-datapack-554329:4749248", + "curse.maven:repurposed-structures-better-jungle-temples-compat-917314:4999733", + "curse.maven:repurposed-structures-better-ocean-monuments-690393:4750077", + "curse.maven:repurposed-structures-better-strongholds-datapack-547822:4749247", + "curse.maven:repurposed-structures-better-witch-huts-compat-634440:4749246", + "curse.maven:repurposed-structures-bygone-nether-compat-844259:4994531", + "curse.maven:repurposed-structures-chefs-delight-compat-825227:4752782", + "curse.maven:repurposed-structures-fabric-391366:5331402", + "curse.maven:repurposed-structures-farmers-delight-datapack-554331:4708516", + "curse.maven:repurposed-structures-gazebo-compat-904898:4714404", + "curse.maven:repurposed-structures-villagerplus-compat-datapack-825234:4874112", + "curse.maven:repurposed-structures-wizards-compat-datapack-821708:4708547", + "curse.maven:resourceful-config-714059:5020442", + "curse.maven:resourceful-lib-570073:5659872", + "curse.maven:resourceful-lootbags-687082:4588368", + "curse.maven:respawnable-pets-319582:4584710", + "curse.maven:respite-creators-fabric-901711:5533043", + "curse.maven:revelationary-656526:5454121", + "curse.maven:rhino-416294:5655835", + "curse.maven:ribbits-622967:5425425", + "curse.maven:rightclickharvest-452834:4690489", + "curse.maven:river-redux-380548:4587198", + "curse.maven:roughly-enough-items-310111:5554252", + "curse.maven:roughly-enough-professions-rep-597988:4806285", + "curse.maven:roughly-enough-resources-325625:4721545", + "curse.maven:rune-crafting-775518:5446151", + "curse.maven:runelic-393149:4714778", + "curse.maven:searchables-858542:5284014", + "curse.maven:selene-499980:5666908", + "curse.maven:show-me-what-you-got-564941:4631405", + "curse.maven:sihywtcamd-460652:4704156", + "curse.maven:simple-discord-rich-presence-334853:4964549", + "curse.maven:simple-magnets-394140:5272903", + "curse.maven:simple-voice-chat-416089:5605431", + "curse.maven:simply-swords-659887:5639522", + "curse.maven:skeletal-remains-845863:5659312", + "curse.maven:slice-and-dice-659674:5526212", + "curse.maven:sophisticated-backpacks-unofficial-fabric-port-979322:5450748", + "curse.maven:sophisticated-core-unofficial-fabric-port-979317:5450729", + "curse.maven:sophisticated-storage-unofficial-fabric-port-979326:5450763", + "curse.maven:spark-361579:4738953", + "curse.maven:spectral-decorations-990498:5435566", + "curse.maven:spectral-utilities-976584:5129301", + "curse.maven:spectrum-556967:5628619", + "curse.maven:spectrum-jetpacks-824498:4998052", + "curse.maven:spell-engine-807653:5672385", + "curse.maven:spell-power-771265:5672350", + "curse.maven:status-effect-bars-615459:4585394", + "curse.maven:storage-delight-fabric-978786:5559572", + "curse.maven:strange-berries-450646:4692219", + "curse.maven:stronger-snowballs-377548:4714784", + "curse.maven:structure-pool-api-927915:4818011", + "curse.maven:styled-chat-493348:4746244", + "curse.maven:styled-player-list-442282:4599484", + "curse.maven:supermartijn642s-config-lib-438332:4785838", + "curse.maven:supermartijn642s-core-lib-454372:5668908", + "curse.maven:supplementaries-412082:5676066", + "curse.maven:tamago-688418:5292049", + "curse.maven:tank-storage-1032670:5593269", + "curse.maven:tcdcommons-711539:5604689", + "curse.maven:techreborn-233564:4708962", + "curse.maven:techreborn-player-ability-lib-compat-1005560:5275410", + "curse.maven:tempad-514923:5515065", + "curse.maven:terrablender-fabric-565956:5378181", + "curse.maven:tesseract-379232:4720195", + "curse.maven:thaumon-926511:5492066", + "curse.maven:the-bumblezone-fabric-363949:5656068", + "curse.maven:the-graveyard-fabric-514468:5113229", + "curse.maven:theobsidianboat-510648:5076276", + "curse.maven:timeoutout-fabric-557746:3903067", + "curse.maven:tiny-coal-395272:5249439", + "curse.maven:tips-306549:5547512", + "curse.maven:tool-kit-324888:4843361", + "curse.maven:tool-stats-377109:5136222", + "curse.maven:towers-of-the-wild-additions-560091:4637798", + "curse.maven:trade-cycling-570431:5620378", + "curse.maven:trample-no-more-377313:5127308", + "curse.maven:transmog-848032:5285006", + "curse.maven:trash-cans-394535:4606911", + "curse.maven:trashslot-fabric-edition-547689:4753164", + "curse.maven:travelers-backpack-fabric-541171:5602908", + "curse.maven:trenzalore-870210:4848243", + "curse.maven:trinkets-341284:5173501", + "curse.maven:trique-api-908730:4738149", + "curse.maven:trofers-482265:5259006", + "curse.maven:trowel-868403:5383889", + "curse.maven:twigs-496913:4603805", + "curse.maven:unlimitedperipheralworks-621851:5647709", + "curse.maven:utility-belt-664053:4843795", + "curse.maven:villager-hats-mod-501456:4961271", + "curse.maven:villagersplus-fabric-809542:4996993", + "curse.maven:visuality-521126:4760021", + "curse.maven:voidz-486971:5043021", + "curse.maven:warden-tools-635510:5578218", + "curse.maven:what-the-bucket-633747:4714798", + "curse.maven:when-dungeons-arise-fabric-511812:4983906", + "curse.maven:when-dungeons-arise-loot-tweaks-853631:4503040", + "curse.maven:when-dungeons-arise-no-flying-structures-827281:4804136", + "curse.maven:when-dungeons-arise-seven-seas-953637:4981340", + "curse.maven:when-dungeons-arise-spacing-tweaks-827727:4608276", + "curse.maven:wireless-chargers-510656:5294268", + "curse.maven:wits-909375:4789317", + "curse.maven:wizards-734325:5562700", + "curse.maven:wthit-440979:5681115", + "curse.maven:xaeros-minimap-263420:5685659", + "curse.maven:xaeros-world-map-317780:5658225", + "curse.maven:yeetusexperimentus-635427:4680831", + "curse.maven:youre-in-grave-danger-544912:5654550", + "curse.maven:yungs-api-fabric-421649:5331704", + "curse.maven:yungs-better-desert-temples-fabric-631020:4769440", + "curse.maven:yungs-better-dungeons-fabric-525586:5271361", + "curse.maven:yungs-better-end-island-fabric-901350:5193816", + "curse.maven:yungs-better-jungle-temples-fabric-897678:5331761", + "curse.maven:yungs-better-mineshafts-fabric-373591:4769064", + "curse.maven:yungs-better-nether-fortresses-fabric-817666:5193464", + "curse.maven:yungs-better-ocean-monuments-fabric-689252:4883005", + "curse.maven:yungs-better-strongholds-fabric-480684:4769084", + "curse.maven:yungs-better-witch-huts-fabric-631403:4769490", + "curse.maven:yungs-bridges-fabric-590988:4769520", + "curse.maven:yungs-extras-fabric-590993:4769515", + "curse.maven:zenith-620928:5576528", + "curse.maven:zenith-attributes-910078:5609796" + ] +} \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/build.gradle b/minecraft/minecraft-test/versions/build.gradle new file mode 100644 index 000000000..15019a8ce --- /dev/null +++ b/minecraft/minecraft-test/versions/build.gradle @@ -0,0 +1,160 @@ +import groovy.json.JsonSlurper + +subprojects { + def meta = new JsonSlurper().parse(file("meta.json")) + def minecraftVersion = meta.minecraftVersion + def hasIntermediary = meta.hasIntermediary == null ? true : meta.hasIntermediary + def mergedJars = meta.mergedJars == null ? true : meta.mergedJars + def mods = meta.mods == null ? [] : meta.mods + + apply plugin: "fabric-loom" + + loom { + if (!hasIntermediary) { + noIntermediateMappings() + } + + if (!mergedJars) { + clientOnlyMinecraftJar() + } + } + + configurations { + productionRuntime { + extendsFrom configurations.minecraftLibraries + extendsFrom configurations.loaderLibraries + extendsFrom configurations.minecraftRuntimeLibraries + } + productionRuntimeMods { + transitive = false + } + } + + repositories { + exclusiveContent { + forRepository { + maven { + name = "CurseForge" + url = "https://cursemaven.com" + } + } + filter { + includeGroup "curse.maven" + } + } + } + + dependencies { + minecraft "com.mojang:minecraft:$minecraftVersion" + mappings loom.layered() { + // We dont need mappings + } + + if (hasIntermediary) { + productionRuntime "net.fabricmc:intermediary:$minecraftVersion" + } + + // Add the launcher libraries to the classpath + def installerJson = new JsonSlurper().parse(rootProject.file("src/main/resources/fabric-installer.json")) + installerJson.libraries.common.each { + productionRuntime it.name + } + + mods.each { + productionRuntimeMods it + } + } + + // Generate a a list of mod paths so we dont hit the command line length limit on windows + def modsListFile = tasks.register("modsListFile") { + inputs.files configurations.productionRuntime + outputs.file(layout.buildDirectory.file("mods.txt")) + doLast { + file(layout.buildDirectory.file("mods.txt").get().asFile).text = configurations.productionRuntimeMods.files.join("\n") + } + } + + def loaderJarTask = project(":").tasks.proguardJar + + def runProductionClient = tasks.register("runProductionClient", JavaExec) { + dependsOn modsListFile + classpath.from configurations.productionRuntime + classpath.from loaderJarTask + mainClass = "net.fabricmc.loader.impl.launch.knot.KnotClient" + workingDir = file("run") + group = "test" + + javaLauncher = javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(meta.javaVersion) + } + + doFirst { + classpath.from loom.minecraftProvider.minecraftClientJar + workingDir.mkdirs() + + def optionsTxt = new File(workingDir, "options.txt") + + if (!optionsTxt.exists()) { + optionsTxt.text = "onboardAccessibility:false\n" + } + + args( + "--assetIndex", loom.minecraftProvider.versionInfo.assetIndex().fabricId(loom.minecraftProvider.minecraftVersion()), + "--assetsDir", new File(loom.files.userCache, "assets").absolutePath, + "--gameDir", workingDir.absolutePath + ) + + if (net.fabricmc.loom.util.Platform.CURRENT.operatingSystem.isMacOS()) { + jvmArgs( + "-XstartOnFirstThread" + ) + } + + if (loom.minecraftProvider.versionInfo.hasNativesToExtract()) { + def nativesPath = loom.files.getNativesDirectory(project).getAbsolutePath() + systemProperty("java.library.path", nativesPath) + systemProperty("org.lwjgl.librarypath", nativesPath) + } + + jvmArgs( + "-Dfabric.addMods=@${tasks.modsListFile.outputs.files.singleFile.absolutePath}" + ) + } + } + + if (meta.modpack != null) { + configurations { + modpack + } + + dependencies { + modpack meta.modpack + } + + tasks.register("extractModpack", Copy) { + from(zipTree(configurations.modpack.singleFile)) { + include "overrides/**" + eachFile { fcd -> + fcd.relativePath = new RelativePath(true, fcd.relativePath.segments.drop(1)) + } + includeEmptyDirs = false + } + into runProductionClient.get().workingDir + group = "test" + } + + runProductionClient.configure { + dependsOn extractModpack + } + } + + afterEvaluate { + runProductionClient.configure { + dependsOn downloadAssets + + if (loom.minecraftProvider.versionInfo.hasNativesToExtract()) { + dependsOn extractNatives + } + } + } +} \ No newline at end of file diff --git a/minecraft/minecraft-test/versions/gradle.properties b/minecraft/minecraft-test/versions/gradle.properties new file mode 100644 index 000000000..04b0450c8 --- /dev/null +++ b/minecraft/minecraft-test/versions/gradle.properties @@ -0,0 +1 @@ +fabric.loom.dontRemap=true \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 0f8fe6cbd..33a775dfc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -20,4 +20,10 @@ if (!JavaVersion.current().isCompatibleWith(JavaVersion.VERSION_17)) { include "minecraft" include "junit" -include "minecraft:minecraft-test" \ No newline at end of file +include "minecraft:minecraft-test" + +file("minecraft/minecraft-test/versions").listFiles().each { file -> + if (file.isDirectory() && new File(file, "meta.json").exists()) { + include("minecraft:minecraft-test:versions:${file.name}") + } +} \ No newline at end of file