import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . JsonObject Ċ import Ġcom . mat thew pre n ger . cur se gradle . Cur se Artifact Ċ import Ġcom . mat thew pre n ger . cur se gradle . Cur se Project Ċ import Ġcom . mat thew pre n ger . cur se gradle . Cur se Relation Ċ import Ġorg . apache . tools . ant . filters . Replace Tokens Ċ import Ġjava . io . InputStream Reader Ċ import Ġjava . time . Instant Ċ import Ġjava . time . format . DateTime Formatter Ċ Ċ fun Ġproperty ( key : ĠString ) Ġ= Ġproject . find Property ( key ). toString () Ċ fun Ġmod Property ( key : ĠString ) Ġ= Ġproperty (" mod .$ key ") Ċ fun Ġauthor Property ( key : ĠString ) Ġ= Ġproperty (" author .$ key ") Ċ fun Ġmappings Property ( key : ĠString ) Ġ= Ġproperty (" mappings .$ key ") Ċ fun Ġcur se Property ( key : ĠString ) Ġ= Ġproperty (" cur se .$ key ") Ċ Ċ fun Ġdependency Info ( name : ĠString , Ġkey : ĠString ) Ġ= Ġproperty (" dependency .${ name . toLowerCase ()}. $ key ") Ċ fun Ġdependency Version ( name : ĠString ) Ġ= Ġdependency Info ( name , Ġ" version ") Ċ Ċ fun Ġhas Property ( key : ĠString ) Ġ= Ġproject . has Property ( key ) Ġ&& Ġproperty ( key ) Ġ!= Ġnull Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" java ") ĊĠĠĠ Ġid (" net . minecraftforge . gradle ") ĊĠĠĠ Ġid (" org . par ch ment mc . libr arian . forge gradle ") ĊĠĠĠ Ġid (" idea ") ĊĠĠĠ Ġid (" maven - publish ") ĊĠĠĠ Ġid (" com . mat thew pre n ger . cur se gradle ") Ġversion Ġ" 1 . 4 . 0 " Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven (" https :// ld t team . jfrog . io / ld t team / mod ding /") ĊĠĠĠ Ġmaven (" https :// maven . te hn ut . info ") ĊĠĠĠ Ġmaven (" https :// www . cur sem aven . com ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Group (" cur se . maven ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġmaven (" https :// har ley o conn or . com / maven ") ĊĠĠĠ Ġmaven (" https :// s quid dev . cc / maven /") Ċ } Ċ Ċ /* ĠGet ĠProject ĠProperties Ġfrom Ġ` gradle . properties ` Ġ*/ Ċ Ċ val Ġmod Name Ġ= Ġmod Property (" name ") Ċ val Ġmod Id Ġ= Ġmod Property (" id ") Ċ val Ġmod Version Ġ= Ġmod Property (" version ") Ċ Ċ val Ġmc Version Ġ= Ġdependency Version (" minecraft ") Ċ val Ġfor ge Version Ġ= Ġdependency Version (" forge ") Ċ Ċ val Ġauthor Name Ġ= Ġauthor Property (" name ") Ċ val Ġauthor Email Ġ= Ġauthor Property (" email ") Ċ val Ġauthor GitHub Ġ= Ġauthor Property (" github ") Ċ Ċ version Ġ= Ġ"$ mc Version -$ mod Version " Ċ group Ġ= Ġmod Property (" group ") Ċ Ċ val Ġmod Name Without Spaces Ġ= Ġmod Name . replace (" Ġ", Ġ"") Ċ val ĠprojectId Ġ= Ġ"$ mod Name Without Spaces -$ mc Version " Ċ Ċ minecraft Ġ{ ĊĠĠĠ Ġmappings ( mappings Property (" channel "), Ġ"${ mappings Property (" version ") }- $ mc Version ") ĊĊĠĠĠ Ġruns Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate (" client ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġfile (" run "). absolute Path ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . markers ", Ġ" SCAN , REGISTR IES , REGISTRY DUMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . console . level ", Ġ" debug ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . remap Ref Map ", Ġ" true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . ref Map Rem apping File ", Ġ"${ build Dir }/ create S rg To M cp / output . s rg ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . has Property (" mc Uuid ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs ("-- uuid ", Ġproperty (" mc Uuid ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . has Property (" mc Username ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs ("-- username ", Ġproperty (" mc Username ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . has Property (" mc AccessToken ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġargs ("-- accessToken ", Ġproperty (" mc AccessToken ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmods Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( mod Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource ( source Sets . main . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate (" server ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġfile (" run "). absolute Path ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . markers ", Ġ" SCAN , REGISTR IES , REGISTRY DUMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . console . level ", Ġ" debug ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . remap Ref Map ", Ġ" true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . ref Map Rem apping File ", Ġ"${ build Dir }/ create S rg To M cp / output . s rg ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmods Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( mod Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource ( source Sets . main . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate (" data ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Directory Ġ= Ġfile (" run "). absolute Path ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . markers ", Ġ" SCAN , REGISTR IES , REGISTRY DUMP ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" forge . logging . console . level ", Ġ" debug ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . remap Ref Map ", Ġ" true ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" mixin . env . ref Map Rem apping File ", Ġ"${ build Dir }/ create S rg To M cp / output . s rg ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs ("-- mod ", Ġmod Id , Ġ"-- all ", Ġ"-- output ", Ġfile (" src / generated / resources / ")) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmods Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate ( mod Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource ( source Sets . main . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ source Sets . main . get (). resources Ġ{ ĊĠĠĠ Ġsrc Dir (" src / generated / resources ") Ċ } Ċ Ċ val Ġresource Targets Ġ= ĠarrayOf (" META - INF / mods . toml ", Ġ" pack . mc meta ") Ċ val Ġinto Targets Ġ= ĠarrayOf ("$ rootDir / out / production / resources /", Ġ"$ rootDir / out / production /${ project . name }. main /", Ġ"$ rootDir / bin / main /") Ċ val Ġreplace Properties Ġ= Ġmap Of ( ĊĠĠĠ Ġ" name " Ġto Ġmod Name , ĊĠĠĠ Ġ" id " Ġto Ġmod Id , ĊĠĠĠ Ġ" version " Ġto Ġmod Version , ĊĠĠĠ Ġ" license " Ġto Ġmod Property (" license "), ĊĠĠĠ Ġ" url " Ġto Ġmod Property (" url "), ĊĠĠĠ Ġ" issues Url " Ġto Ġmod Property (" issues . url "), ĊĠĠĠ Ġ" update Url " Ġto Ġmod Property (" update . url "), ĊĠĠĠ Ġ" description " Ġto Ġmod Property (" description "), ĊĠĠĠ Ġ" credits " Ġto Ġmod Property (" credits "), ĊĠĠĠ Ġ" authors " Ġto Ġmod Property (" authors "), ĊĠĠĠ Ġ" pack Format " Ġto Ġmod Property (" pack . format "), ĊĠĠĠ Ġ" mc Range " Ġto Ġdependency Info (" minecraft ", Ġ" range "), ĊĠĠĠ Ġ" forge Range " Ġto Ġdependency Info (" forge ", Ġ" range "), ĊĠĠĠ Ġ" dynamic Trees Range " Ġto Ġdependency Info (" d ynam ict re es ", Ġ" range ") Ċ ) Ċ Ċ tasks . process Resources Ġ{ ĊĠĠĠ Ġinputs . properties ( replace Properties ) ĊĊĠĠĠ Ġfiles Matching ( mutable ListOf (* resource Targets )) Ġ{ ĊĠĠĠĠĠĠĠ Ġexpand ( replace Properties ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinto Targets . forEach Ġ{ Ġtarget Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( file ( target ). exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( source Sets . main . get (). resources . src Dirs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinclude (* resource Targets ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexpand ( replace Properties ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinto ( target ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠAssign ĠMOD _ ID Ġconstant Ġin Ġmain Ġclass . Ċ val Ġprepare Sources Ġ= Ġtasks . register (" prepare Sources ", ĠCopy :: class ) Ġ{ ĊĠĠĠ Ġfrom (" src / main / java ") ĊĠĠĠ Ġinto (" build / src / main / java ") ĊĠĠĠ Ġfilter < Replace Tokens >(" tokens " Ġto Ġmap Of (" MOD _ ID " Ġto Ġmod Id )) Ċ } Ċ Ċ tasks . compile Java Ġ{ ĊĠĠĠ Ġsource Ġ= Ġprepare Sources . get (). outputs . files . as File Tree Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġ/* ĠRequired ĠDependencies Ġ*/ ĊĠĠĠ Ġthis . minecraft (" net . minecraftforge : forge :$ mc Version -$ forge Version ") ĊĠĠĠ Ġthis . mod Implementation (" com . fer re us ver itas ", Ġ" Dynamic Trees ") ĊĠĠĠ Ġ// ĠCompile Ġother Ġrequired Ġmods Ġhere , Ġif Ġapplicable . ĊĊĠĠĠ Ġ/* ĠRuntime ĠDependencies Ġ[ OPTIONAL ] Ġ*/ ĊĠĠĠ Ġthis . mod Runtime (" com . fer re us ver itas ", Ġ" Dynamic Trees Plus ") ĊĠĠĠ Ġthis . mod Runtime (" m cp . mob ius . w ail a ", Ġ" H wy la ", Ġ"", Ġ"", Ġ"") ĊĠĠĠ Ġthis . mod Runtime (" me zz ", Ġ" je i ") ĊĠĠĠ Ġthis . mod Runtime (" com . har ley o conn or ", Ġ" Suggestion Provider Fix ", Ġ"$ mc Version -", Ġ"") ĊĊĠĠĠ Ġthis . run With Computer Craft () Ċ } Ċ Ċ /** Ċ Ġ* ĠAt Ġruntime , Ġuse ĠComputer ĠCraft Ġmod Ġfor Ġcreating Ġgrowth Ġch amb ers . Ċ Ġ* Ċ Ġ* Ġ@ see Ġ< a Ġhref =" Ġhttps :// github . com / fer re us ver itas / Dynamic Trees / wiki / Grow th - Ch amb ers "> Grow th ĠCh amb ers ĠWiki ĠPage </ a > Ċ Ġ*/ Ċ fun ĠDependency Handler . run With Computer Craft () Ġ{ ĊĠĠĠ Ġthis . mod Runtime (" org . s quid dev ", Ġ" cc - tweak ed ", Ġgroup Suffix Ġ= Ġ"") Ċ } Ċ Ċ fun ĠDependency Handler . mod Implementation ( base Group : ĠString , Ġid : ĠString ) Ġ{ ĊĠĠĠ Ġthis . implementation ( de ob f Mod ( base Group , Ġid )) Ċ } Ċ Ċ fun ĠDependency Handler . mod Runtime ( ĊĠĠĠ Ġbase Group : ĠString , ĊĠĠĠ Ġid : ĠString , ĊĠĠĠ Ġversion Prefix : ĠString Ġ= Ġ"", ĊĠĠĠ Ġid Suffix : ĠString Ġ= Ġ"- $ mc Version ", ĊĠĠĠ Ġgroup Suffix : ĠString Ġ= Ġ"." Ġ+ Ġid . toLowerCase () Ċ ) Ġ{ ĊĠĠĠ Ġthis . runtime Only ( de ob f Mod ( base Group , Ġid , Ġversion Prefix , Ġid Suffix , Ġgroup Suffix )) Ċ } Ċ Ċ fun Ġde ob f Mod ( ĊĠĠĠ Ġbase Group : ĠString , ĊĠĠĠ Ġid : ĠString , ĊĠĠĠ Ġversion Prefix : ĠString Ġ= Ġ"", ĊĠĠĠ Ġid Suffix : ĠString Ġ= Ġ"- $ mc Version ", ĊĠĠĠ Ġgroup Suffix : ĠString Ġ= Ġ"." Ġ+ Ġid . toLowerCase () Ċ ): ĠDependency Ġ{ ĊĠĠĠ Ġreturn Ġfg . de ob f ("$ base Group $ group Suffix :$ id $ id Suffix :$ version Prefix ${ dependency Version ( id )} ") Ċ } ĊĊ Ċ tasks . jar Ġ{ ĊĠĠĠ Ġmanifest . attributes ( ĊĠĠĠĠĠĠĠ Ġ" Specification - Title " Ġto Ġmod Name , ĊĠĠĠĠĠĠĠ Ġ" Specification - Vendor " Ġto Ġauthor Name , ĊĠĠĠĠĠĠĠ Ġ" Specification - Version " Ġto Ġ" 1 ", ĊĠĠĠĠĠĠĠ Ġ" Implementation - Title " Ġto Ġmod Name , ĊĠĠĠĠĠĠĠ Ġ" Implementation - Version " Ġto Ġproject . version , ĊĠĠĠĠĠĠĠ Ġ" Implementation - Vendor " Ġto Ġauthor Name , ĊĠĠĠĠĠĠĠ Ġ" Implementation - Timestamp " Ġto ĠDateTime Formatter . ISO _ INST ANT . format ( Instant . now ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġarchive Base Name . set ( projectId ) ĊĠĠĠ Ġfinal ized By (" re ob f Jar ") Ċ } Ċ Ċ java Ġ{ ĊĠĠĠ Ġwith Sources Jar () ĊĊĠĠĠ Ġtoolchain Ġ{ ĊĠĠĠĠĠĠĠ Ġlanguage Version . set ( Java Language Version . of ( 8 )) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /* ĠCur se Forge Ġuploading Ġvia ĠCur se Gradle Ġ*/ Ċ Ċ /** Ċ Ġ* ĠReads Ġchangelog Ġfrom Ġ[ version _ info . json ](./ version _ info . json ). Ċ Ġ*/ Ċ fun Ġread Change log (): ĠString ? Ġ{ ĊĠĠĠ Ġval Ġversion Info File Ġ= Ġfile (" version _ info . json ") ĊĠĠĠ Ġval ĠjsonObject Ġ= ĠGson (). fromJson ( InputStream Reader ( version Info File . inputStream ()), ĠJsonObject :: class . java ) ĊĠĠĠ Ġreturn ĠjsonObject ĊĠĠĠĠĠĠĠ Ġ. get ( mc Version )?. as JsonObject ĊĠĠĠĠĠĠĠ Ġ? . get ( project . version . toString ()) ?. asString Ċ } Ċ Ċ cur se forge Ġ{ ĊĠĠĠ Ġif Ġ(! has Property (" cur se ApiKey ") Ġ|| Ġ! has Property (" cur se . file . type ") Ġ|| Ġ! has Property (" cur se . id ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . logger . log ( LogLevel . WARN , Ġ" API ĠKey Ġand Ġfile Ġtype Ġfor ĠCur se Forge Ġnot Ġdetected ; Ġuploading Ġwill Ġbe Ġdisabled .") ĊĠĠĠĠĠĠĠ Ġreturn @ cur se forge ĊĠĠĠ Ġ} ĊĠĠĠĠĊĠĠĠ ĠapiKey Ġ= Ġproperty (" cur se ApiKey ") ĊĊĠĠĠ Ġproject Ġ{ ĊĠĠĠĠĠĠĠ Ġid Ġ= Ġcur se Property (" id ") ĊĊĠĠĠĠĠĠĠ Ġadd Game Version ( mc Version ) ĊĊĠĠĠĠĠĠĠ Ġchangelog Ġ= Ġread Change log () Ġ?: Ġ" No Ġchangelog Ġprovided ." ĊĠĠĠĠĠĠĠ Ġchangelog Type Ġ= Ġ" markdown " ĊĠĠĠĠĠĠĠ Ġrelease Type Ġ= Ġcur se Property (" file . type ") ĊĊĠĠĠĠĠĠĠ Ġadd Artifact ( tasks . find ByName (" sources Jar ")) ĊĊĠĠĠĠĠĠĠ Ġmain Artifact ( tasks . find ByName (" jar ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrelations Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequired Dependency (" d ynam ict re es ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġthe Ġmod ĠID Ġof Ġthe Ġother Ġadd - on Ġdependency Ġas Ġa Ġrequired Ġdependency Ġhere , Ġif Ġapplicable . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptional Dependency (" d ynam ict re es plus ") Ġ// ĠIf Ġyou Ġdon 't Ġuse ĠDT + Ġyou Ġshould Ġremove Ġthis Ġline . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /* ĠMaven ĠPublish ing Ġ*/ Ċ Ċ tasks . with Type < Generate Module Metadata > Ġ{ ĊĠĠĠ Ġenabled Ġ= Ġfalse Ċ } Ċ Ċ fun Ġhas Maven Access () Ġ= Ġhas Property (" har ley O Conn or Maven Username ") Ġ&& Ġhas Property (" har ley O Conn or Maven Password ") Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven Java ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= ĠprojectId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġmod Version ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [" java "]) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( mod Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com /$ author GitHub /$ mod Name Without Spaces ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" MIT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// mit - license . org ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( author GitHub ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( author Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( author Email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : git :// github . com /$ author GitHub /$ mod Name Without Spaces . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : ssh :// github . com /$ author GitHub /$ mod Name Without Spaces . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com /$ author GitHub /$ mod Name Without Spaces ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelement Ġ= Ġas Element () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠClear Ġdependencies . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġelement . childNodes . length ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnode Ġ= Ġelement . childNodes . item ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( node ?. nodeName Ġ== Ġ" dependencies ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelement . removeChild ( node ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven (" file :// /${ project . project Dir }/ mc mods repo ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! has Maven Access ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . log ( LogLevel . WARN , Ġ" Credentials Ġfor Ġmaven Ġnot Ġdetected ; Ġit Ġwill Ġbe Ġdisabled .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ repositories ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmaven (" https :// har ley o conn or . com / maven ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Har ley O Conn or " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ Ġ// ĠIf Ġyou 'd Ġlike Ġto Ġupload Ġthis Ġto Ġmy Ġmaven Ġfeel Ġfree Ġto Ġask Ġfor Ġcredentials . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġproperty (" har ley O Conn or Maven Username ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġproperty (" har ley O Conn or Maven Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠComposite Ġtask Ġthat Ġruns Ġthe ĠCur se Forge Ġand Ġmaven Ġupload Ġtasks . Ċ Ġ*/ Ċ tasks . register (" publish To All ") Ġ{ ĊĠĠĠ Ġthis . group Ġ= Ġ" publishing " ĊĠĠĠ Ġthis . depends On (" cur se forge ") ĊĠĠĠ Ġif Ġ( has Maven Access ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . depends On (" publish Maven Java Publication To Har ley O Conn or Repository ") ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ /* ĠExtensions Ġto Ġmake ĠCur se Gradle Ġextension Ġslightly Ġne ater . Ġ*/ Ċ Ċ fun Ġcom . mat thew pre n ger . cur se gradle . Cur se Extension . project ( action : ĠCur se Project . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . project ( closure Of ( action )) Ċ } Ċ Ċ fun ĠCur se Project . main Artifact ( artifact : ĠTask ?, Ġaction : ĠCur se Artifact . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . main Artifact ( artifact , Ġclosure Of ( action )) Ċ } Ċ Ċ fun ĠCur se Artifact . relations ( action : ĠCur se Relation . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġthis . relations ( closure Of ( action )) Ċ } Ċ