import Ġca . stell ard rift . build . configur ate . Config Formats Ċ import Ġca . stell ard rift . build . configur ate . transform ations . convert Format Ċ import Ġnet . fabric mc . loom . task . Generate Sources Task Ċ import Ġnet . fabric mc . loom . task . Rem ap Jar Task Ċ import Ġnet . fabric mc . loom . task . Run Game Task Ċ import Ġorg . jetbrains . gradle . ext . settings Ċ import Ġorg . jetbrains . gradle . ext . task Triggers Ċ Ċ plugins Ġ{ ĊĠ Ġalias ( libs . plugins . eclipse A pt ) ĊĠ Ġalias ( libs . plugins . loom ) ĊĠ Ġalias ( libs . plugins . loom Qu ilt flower ) ĊĠ Ġalias ( libs . plugins . configur ate Transform ations ) ĊĠ Ġalias ( libs . plugins . ind ra ) ĊĠ Ġalias ( libs . plugins . ind ra . license Header ) ĊĠ Ġalias ( libs . plugins . ind ra . check style ) ĊĠ Ġalias ( libs . plugins . ind ra . son atype ) ĊĠ Ġalias ( libs . plugins . idea Ext ) Ċ } Ċ Ċ repositories Ġ{ ĊĠ Ġmaven Central () ĊĠ Ġmaven ( url Ġ= Ġ" https :// maven . par ch ment mc . org /") Ġ{ ĊĠĠĠ Ġname Ġ= Ġ" par ch ment " ĊĠ Ġ} ĊĠ Ġmaven ( url Ġ= Ġ" https :// maven . qu ilt mc . org / repositories / release /") Ġ{ ĊĠĠĠ Ġname Ġ= Ġ" qu ilt Releases " ĊĠĠĠ Ġmaven Content Ġ{ ĊĠĠĠĠĠ Ġinclude Group (" org . qu ilt mc ") ĊĠĠĠĠĠ Ġreleases Only () ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ qu ilt flower Ġ{ ĊĠ Ġqu ilt flower Version . set ( libs . versions . qu ilt flower . get ()) ĊĠ Ġpreferences ( ĊĠĠĠ Ġ" win " Ġto Ġ 0 ĊĠ Ġ) ĊĠ Ġ// ĠaddTo Runtime Classpath . set ( true ) Ċ } Ċ Ċ ind ra Ġ{ ĊĠ Ġjava Versions (). target ( 1 7 ) Ċ } Ċ Ċ ind ra Son atype Ġ{ ĊĠ Ġuse Alternate Son atype OSS Host (" s 0 1 ") Ċ } Ċ Ċ license Ġ{ ĊĠ Ġheader ( file (" LICENSE _ HEADER ")) Ċ } Ċ Ċ dependencies Ġ{ ĊĠ Ġannotation Processor ( libs . auto Service ) ĊĠ Ġannotation Processor ( libs . contract Validator ) ĊĠ Ġcompile Only Api ( libs . auto Service . annotations ) ĊĠ Ġsequence Of ( ĊĠĠĠ Ġlibs . ad venture . key , ĊĠĠĠ Ġlibs . ad venture . api , ĊĠĠĠ Ġlibs . ad venture . text Logger Slf 4 j , ĊĠĠĠ Ġlibs . ad venture . text Min ime ssage , ĊĠĠĠ Ġlibs . ad venture . text Serializer Plain ĊĠ Ġ). forEach Ġ{ ĊĠĠĠ Ġmod Api ( it ) Ġ{ ĊĠĠĠĠĠ Ġexclude (" org . slf 4 j ", Ġ" slf 4 j - api ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġinclude ( it ) ĊĠ Ġ} ĊĊĠ Ġsequence Of ( ĊĠĠĠ Ġlibs . ad venture . platform . api , ĊĠĠĠ Ġlibs . ad venture . text Serializer Gson ĊĠ Ġ). forEach Ġ{ ĊĠĠ Ġmod Api ( it ) Ġ{ ĊĠĠĠĠ Ġexclude (" com . google . code . gson ") ĊĠĠ Ġ} ĊĠĠ Ġinclude ( it ) ĊĠ Ġ} ĊĠ Ġmod Api ( fabric Api . module (" fabric - api - base ", Ġlibs . versions . fabric Api . get ())) ĊĊĠ Ġ// ĠTrans itive Ġdeps ĊĠ Ġinclude ( libs . exam ination . api ) ĊĠ Ġinclude ( libs . exam ination . string ) ĊĠ Ġmod Compile Only ( libs . jetbrains Annotations ) ĊĊĠ Ġm inecraft ( libs . minecraft ) ĊĠ Ġmappings ( loom . layer ed Ġ{ ĊĠĠĠ Ġofficial Mo j ang Mappings () ĊĠĠĠ Ġpar ch ment (" org . par ch ment mc . data : par ch ment -${ libs . versions . par ch ment . get ()} @ zip ") ĊĠ Ġ}) ĊĠ Ġmod Implementation ( libs . fabric . loader ) ĊĊĠ Ġ// ĠTest mod ĠTODO Ġfigure Ġout Ġown Ġscope ĊĠ Ġif Ġ( gradle . start Parameter . task Names . contains (" publish ")) Ġ{ ĊĠĠĠ Ġmod Compile Only ( libs . fabric . api ) ĊĠ Ġ} Ġelse Ġ{ ĊĠĠĠ Ġmod Implementation ( libs . fabric . api ) ĊĠ Ġ} ĊĊĠ Ġcheck style ( libs . style check ) Ċ } Ċ Ċ source Sets Ġ{ ĊĠ Ġmain Ġ{ ĊĠĠĠ Ġjava . src Dirs ( ĊĠĠĠĠĠ Ġ" src / accessor / java ", ĊĠĠĠĠĠ Ġ" src / mixin / java " ĊĠĠĠ Ġ) ĊĠĠĠ Ġresources . src Dirs ( ĊĠĠĠĠĠ Ġ" src / accessor / resources /", ĊĠĠĠĠĠ Ġ" src / mixin / resources /" ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ Ċ loom . split Environment Source Sets () Ċ Ċ // ĠThe Ġtest mod Ġis Ġnot Ġsplit , Ġnot Ġworth Ġthe Ġeffort Ċ val Ġtest mod Ġ= Ġsource Sets . register (" test mod ") Ġ{ ĊĠ Ġcompile Classpath Ġ+= Ġsource Sets . named (" client "). get (). compile Classpath ĊĠ Ġruntime Classpath Ġ+= Ġsource Sets . named (" client "). get (). runtime Classpath ĊĠ Ġjava . src Dirs (" src / test mod Mixin / java ") ĊĠ Ġresources . src Dirs (" src / test mod Mixin / resources ") Ċ } Ċ Ċ configurations . named (" client Annotation Processor ") Ġ{ ĊĠ Ġextends From ( configurations . annotation Processor . get ()) Ċ } Ċ Ċ dependencies Ġ{ ĊĠ Ġ" test mod Implementation "( source Sets . named (" client "). map Ġ{ Ġit . output Ġ}) Ċ } Ċ Ċ loom Ġ{ ĊĠ Ġruntime Only Log 4 j . set ( true ) ĊĠ Ġruns Ġ{ ĊĠĠĠ Ġregister (" test mod Client ") Ġ{ ĊĠĠĠĠĠ Ġsource (" test mod ") ĊĠĠĠĠĠ Ġclient () ĊĠĠĠ Ġ} ĊĠĠĠ Ġregister (" test mod Server ") Ġ{ ĊĠĠĠĠĠ Ġsource (" test mod ") ĊĠĠĠĠĠ Ġserver () ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġmods Ġ{ ĊĠĠĠ Ġregister (" ad venture - platform - fabric ") Ġ{ ĊĠĠĠĠĠ Ġsource Set ( source Sets . main . get ()) ĊĠĠĠĠĠ Ġsource Set ( source Sets . named (" client "). get ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġregister (" ad venture - platform - fabric - test mod ") Ġ{ ĊĠĠĠĠĠ Ġsource Set ( test mod . get ()) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġmixin Ġ{ ĊĠĠĠ Ġadd ( source Sets . main . get (), Ġ" ad venture - platform - fabric - ref map . json ") ĊĠĠĠ Ġadd ( source Sets . named (" client "). get (), Ġ" ad venture - platform - fabric - client - ref map . json ") ĊĠĠĠ Ġadd ( test mod . get (), Ġ" ad venture - platform - fabric - test mod - ref map . json ") ĊĠ Ġ} Ċ } Ċ Ċ // ĠCreate Ġa Ġrem apped Ġtest mod Ġjar Ċ val Ġtest mod Dev Jar Ġ= Ġtasks . register (" test mod Jar ", ĠJar :: class ) Ġ{ ĊĠ Ġfrom ( test mod . map Ġ{ Ġit . output Ġ}) ĊĠ Ġarchive Classifier . set (" test mod - dev ") Ċ } Ċ Ċ val Ġremap Test mod Jar Ġ= Ġtasks . register (" remap Test mod Jar ", ĠRemap Jar Task :: class ) Ġ{ ĊĠ Ġinput File . set ( test mod Dev Jar . flatMap Ġ{ Ġit . archive File Ġ}) ĊĠ Ġadd Nested Dependencies . set ( false ) ĊĠ Ġclasspath . from ( test mod . map Ġ{ Ġit . runtime Classpath Ġ}) ĊĠ Ġarchive Classifier . set (" test mod ") Ċ } Ċ Ċ tasks . build Ġ{ ĊĠ Ġdepends On ( remap Test mod Jar ) Ċ } Ċ Ċ tasks . with Type ( Run Game Task :: class ) Ġ{ ĊĠ Ġjava Launcher . set ( java Tool chains . launcher For Ġ{ Ġlanguage Version . set ( ind ra . java Versions (). target (). map Ġ{ Ġv Ġ-> ĠJava Language Version . of ( v ) Ġ}) }) Ċ } Ċ Ċ tasks . jar Ġ{ ĊĠ Ġduplicates Strategy Ġ= ĠD uplicates Strategy . INCLUDE Ġ// Ġinclude Ġall Ġservice Ġelements Ċ } Ċ Ċ // ĠConvert Ġyaml Ġfiles Ġto Ġj os n Ċ val Ġgenerated Resources Dir Ġ= Ġproject . layout . build Directory . dir (" generated - resources "). get (). as File Ċ fun Ġcreate Process Resource Templates ( name : ĠString , Ġset Provider : ĠNamed Domain Object Provider < Source Set >): ĠTask Provider < out ĠTask > Ġ{ ĊĠ Ġval Ġdestination Dir Ġ= Ġgenerated Resources Dir . resolve ( name ) ĊĠ Ġval Ġset Ġ= Ġset Provider . get () ĊĠ Ġval Ġtask Ġ= Ġtasks . register ( name , ĠSync :: class . java ) Ġ{ ĊĠĠĠ Ġthis . destination Dir Ġ= Ġdestination Dir ĊĠĠĠ Ġfrom (" src /${ set . name }/ resource - templates ") ĊĊĠĠĠ Ġinputs . property (" version ", Ġproject . version ) ĊĊĠĠĠ Ġ// ĠConvert Ġdata Ġfiles Ġyaml Ġ-> Ġjson ĊĠĠĠ Ġfiles Matching ( ĊĠĠĠĠĠĠĠ Ġsequence Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" fabric . mod ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" data /** /* ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" assets /** /* " ĊĠĠĠĠĠĠĠ Ġ). flatMap Ġ{ Ġbase Ġ-> Ġsequence Of ("$ base . yml ", Ġ"$ base . yaml ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġconvert Format ( Config Formats . YAML , ĠConfig Formats . JSON ) ĊĠĠĠĠĠĠĠ Ġif Ġ( this . name . startsWith (" fabric . mod ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpand (" project " Ġto Ġproject ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġthis . name . substring Before Last ('.') Ġ+ Ġ". json " ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// ĠConvert Ġpack Ġmeta , Ġwithout Ġchanging Ġextension ĊĠĠĠ Ġfiles Matching (" pack . mc meta ") Ġ{ Ġconvert Format ( Config Formats . YAML , ĠConfig Formats . JSON ) Ġ} ĊĠ Ġ} ĊĊĠ Ġtasks . named ( set . process Resources Task Name ) Ġ{ ĊĠĠĠ Ġdepends On ( name ) ĊĠ Ġ} ĊĠ Ġset . resources . src Dir ( task . map Ġ{ Ġit . outputs Ġ}) ĊĊĠ Ġ// ĠHave Ġtemplates Ġready Ġfor ĠIDE s ĊĠ Ġec lipse . synchron ization Tasks ( task ) ĊĠ Ġidea . project . settings . task Triggers Ġ{ ĊĠĠĠ Ġafter Sync ( task ) ĊĠ Ġ} ĊĠ Ġidea . module . generated Source Dirs . add ( destination Dir ) ĊĊĠ Ġreturn Ġtask Ċ } Ċ Ċ val Ġgenerate Templates Ġ= Ġcreate Process Resource Templates (" generate Templates ", Ġsource Sets . main ) Ċ val Ġgenerate Test mod Templates Ġ= Ġcreate Process Resource Templates (" generate Test mod Templates ", Ġtest mod ) Ċ Ċ tasks . with Type ( Generate Sources Task :: class ). configure Each Ġ{ ĊĠ Ġdepends On ( generate Templates ) Ċ } Ċ Ċ // ĠU gly Ġhack Ġfor Ġeasy Ġgen S ourc ening Ċ after Evaluate Ġ{ ĊĠĠĠ Ġtasks . matching Ġ{ Ġit . name Ġ== Ġ" gen Sources " Ġ}. configure Each Ġ{ ĊĠĠĠĠĠ Ġset Dep ends On ( set Of (" gen Client Only Sources With Qu ilt flower ", Ġ" gen Common Sources With Qu ilt flower ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ ind ra Ġ{ ĊĠ Ġgithub (" Ky ori Power ed ", Ġ" ad venture - platform - fabric ") Ġ{ ĊĠĠĠ Ġci ( true ) ĊĠ Ġ} ĊĠ Ġmit License () ĊĠ Ġcheck style ( libs . versions . check style . get ()) ĊĊĠ Ġconfigure Public ations Ġ{ ĊĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġid . set (" k ash ike ") ĊĠĠĠĠĠĠĠĠĠ Ġtimezone . set (" America / V anco u ver ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġid . set (" lu cko ") ĊĠĠĠĠĠĠĠĠĠ Ġname . set (" L uck ") ĊĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// lu cko . me ") ĊĠĠĠĠĠĠĠĠĠ Ġemail . set (" git @ lu cko . me ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġid . set (" z ml ") ĊĠĠĠĠĠĠĠĠĠ Ġname . set (" z ml ") ĊĠĠĠĠĠĠĠĠĠ Ġtimezone . set (" America / V anco u ver ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġid . set (" Elect roid ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ // ĠWork around Ġfor Ġboth Ġlo om Ġand Ġind ra Ġdoing Ġpublication Ġlogic Ġin Ġan Ġafter Evaluate Ġ:( Ċ ind ra . include Java Software Component In Public ations ( false ) Ċ publishing Ġ{ ĊĠ Ġpublications . named (" maven ", ĠMaven Publication :: class ) Ġ{ ĊĠĠĠ Ġfrom ( components [" java "]) ĊĠ Ġ} Ċ } Ċ