@@ -73,90 +73,86 @@ import {
7373 const featherBuild = await getLatestFeatherBuild ( gen , minecraftVersion ) ;
7474
7575 if ( featherBuild !== null ) {
76- addExtraMsg ( "Make sure to use the \"merged\" mod template for this Minecraft version!" ) ;
76+ // for gen1, Feather builds for Minecraft 1.3+ are for all sides
77+ // for gen2, Feather builds for all Minecraft versions are for all sides
78+ await addOrnitheDependenciesForBothSides ( lines , gen , minecraftVersion , featherBuild ) ;
79+ // Raven, Sparrow, Nests builds for Minecraft versions between b1.0 and 1.3
80+ // are for one side only, regardless of the intermediary gen
81+ await addOrnitheDependenciesForOneSide ( lines , gen , minecraftVersion , "client" , null ) ;
82+ await addOrnitheDependenciesForOneSide ( lines , gen , minecraftVersion , "server" , null ) ;
83+ } else {
84+ // this block is only reached for gen1 for Minecraft versions older than 1.3
85+ // where Feather builds are for one side only
86+ const clientFeatherBuild = await getLatestFeatherBuild ( gen , `${ minecraftVersion } -client` ) ;
87+ const serverFeatherBuild = await getLatestFeatherBuild ( gen , `${ minecraftVersion } -server` ) ;
88+
89+ await addOrnitheDependenciesForOneSide ( lines , gen , minecraftVersion , "client" , clientFeatherBuild ) ;
90+ await addOrnitheDependenciesForOneSide ( lines , gen , minecraftVersion , "server" , serverFeatherBuild ) ;
7791
78- lines = lines . concat ( await getOrnitheDependenciesForMerged ( minecraftVersion , featherBuild ) ) ;
92+ // Raven, Sparrow, Nests builds for Minecraft versions older than b1.0
93+ // or newer than 1.3 are for all sides, regardless of the intermediary gen
94+ await addOrnitheDependenciesForBothSides ( lines , gen , minecraftVersion , null ) ;
95+ }
96+
97+ if ( gen === "gen2" ) {
98+ addExtraMsg ( "Make sure to use the \"gen2\" mod template!" ) ;
99+ } else if ( featherBuild !== null ) {
100+ addExtraMsg ( "Make sure to use the \"merged\" mod template for this Minecraft version!" ) ;
79101 } else {
80102 addExtraMsg ( "Make sure to use the \"split\" mod template for this Minecraft version!" ) ;
81-
82- lines = lines . concat ( await getOrnitheDependenciesForSplit ( gen , minecraftVersion , "client" ) ) ;
83- lines = lines . concat ( await getOrnitheDependenciesForSplit ( gen , minecraftVersion , "server" ) ) ;
84103 }
85104
86105 return lines . join ( "\n" ) ;
87106 }
88107
89- async function getOrnitheDependenciesForMerged ( minecraftVersion , featherBuild ) {
90- const lines = [ ] ;
91-
108+ async function addOrnitheDependenciesForBothSides ( lines , gen , minecraftVersion , featherBuild ) {
92109 const ravenBuild = await getLatestRavenBuild ( minecraftVersion ) ;
93110 const sparrowBuild = await getLatestSparrowBuild ( minecraftVersion ) ;
94111 const nestsBuild = await getLatestNestsBuild ( minecraftVersion ) ;
95112
96- lines . push ( `feather_build = ${ featherBuild } ` ) ;
113+ if ( featherBuild !== null ) {
114+ lines . push ( `feather_build = ${ featherBuild } ` ) ;
115+ }
97116 if ( ravenBuild !== null ) {
98117 lines . push ( `raven_build = ${ ravenBuild } ` ) ;
99- } else {
100- addExtraMsg ( "Raven is unavailable for this Minecraft version - make sure to edit your build.gradle appropriately!" ) ;
101118 }
102119 if ( sparrowBuild !== null ) {
103120 lines . push ( `sparrow_build = ${ sparrowBuild } ` ) ;
104- } else {
105- addExtraMsg ( "Sparrow is unavailable for this Minecraft version - make sure to edit your build.gradle appropriately!" ) ;
106121 }
107122 if ( nestsBuild !== null ) {
108123 lines . push ( `nests_build = ${ nestsBuild } ` ) ;
109- } else {
110- addExtraMsg ( "Nests are unavailable for this Minecraft version - make sure to edit your build.gradle appropriately!" ) ;
111124 }
112-
113- return lines ;
114125 }
115126
116- async function getOrnitheDependenciesForSplit ( gen , minecraftVersion , environment ) {
117- const featherBuild = await getLatestFeatherBuild ( gen , `${ minecraftVersion } -${ environment } ` ) ;
127+ async function addOrnitheDependenciesForOneSide ( lines , gen , minecraftVersion , environment , featherBuild ) {
128+ const ravenBuild = await getLatestRavenBuild ( `${ minecraftVersion } -${ environment } ` ) ;
129+ const sparrowBuild = await getLatestSparrowBuild ( `${ minecraftVersion } -${ environment } ` ) ;
130+ const nestsBuild = await getLatestNestsBuild ( `${ minecraftVersion } -${ environment } ` ) ;
118131
119- if ( featherBuild !== null ) {
120- const lines = [
121- "" ,
122- `### <project root>/${ environment } /gradle.properties` ,
123- `environment = ${ environment } `
124- ] ;
125-
126- let ravenBuild = await getLatestRavenBuild ( minecraftVersion ) ;
127- if ( ravenBuild === null ) {
128- ravenBuild = await getLatestRavenBuild ( `${ minecraftVersion } -${ environment } ` ) ;
129- }
130- let sparrowBuild = await getLatestSparrowBuild ( minecraftVersion ) ;
131- if ( sparrowBuild === null ) {
132- sparrowBuild = await getLatestSparrowBuild ( `${ minecraftVersion } -${ environment } ` ) ;
133- }
134- let nestsBuild = await getLatestNestsBuild ( minecraftVersion ) ;
135- if ( nestsBuild === null ) {
136- nestsBuild = await getLatestNestsBuild ( `${ minecraftVersion } -${ environment } ` ) ;
132+ if ( featherBuild !== null || ravenBuild !== null || sparrowBuild !== null || nestsBuild !== null ) {
133+ lines . push ( "" ) ;
134+ if ( gen === "gen1" ) {
135+ lines . push ( `### <project root>/${ environment } /gradle.properties` )
136+ lines . push ( `environment = ${ environment } ` )
137137 }
138138
139- lines . push ( `feather_build = ${ featherBuild } ` ) ;
139+ // the gen1 mod template uses a subproject structure
140+ // similar properties can have the same name in different subprojects
141+ const prefix = gen === "gen1" ? "" : `${ environment } _` ;
142+
143+ if ( featherBuild !== null ) {
144+ lines . push ( `feather_build = ${ featherBuild } ` ) ;
145+ }
140146 if ( ravenBuild !== null ) {
141- lines . push ( `raven_build = ${ ravenBuild } ` ) ;
142- } else {
143- addExtraMsg ( `Raven is unavailable on the ${ environment } for this Minecraft version - make sure to edit your build.gradle appropriately!` ) ;
147+ lines . push ( `${ prefix } raven_build = ${ ravenBuild } ` ) ;
144148 }
145149 if ( sparrowBuild !== null ) {
146- lines . push ( `sparrow_build = ${ sparrowBuild } ` ) ;
147- } else {
148- addExtraMsg ( `Sparrow is unavailable on the ${ environment } for this Minecraft version - make sure to edit your build.gradle appropriately!` ) ;
150+ lines . push ( `${ prefix } sparrow_build = ${ sparrowBuild } ` ) ;
149151 }
150152 if ( nestsBuild !== null ) {
151- lines . push ( `nests_build = ${ nestsBuild } ` ) ;
152- } else {
153- addExtraMsg ( `Nests are unavailable on the ${ environment } for this Minecraft version - make sure to edit your build.gradle appropriately!` ) ;
153+ lines . push ( `${ prefix } nests_build = ${ nestsBuild } ` ) ;
154154 }
155-
156- return lines ;
157155 }
158-
159- return [ ] ;
160156 }
161157
162158 Object . entries ( loaderSelectorRadios ) . forEach ( ( [ _ , button ] ) => button . addEventListener ( "change" , async _ => await updateOrnitheDependencies ( ) ) ) ;
0 commit comments