plugins Ġ{ ĊĠĠĠ Ġid (" org . spongepowered . gradle . van illa ") ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") ĊĠĠĠ Ġid (" implementation - structure ") ĊĠĠĠ Ġec lipse Ċ } Ċ Ċ val Ġcommon Project Ġ= Ġparent !! Ċ val Ġm inecraft Version : ĠString Ġby Ġproject Ċ val Ġorganization : ĠString Ġby Ġproject Ċ Ċ // ĠR PG Core Ġextra Ġconfigurations Ċ val Ġr pg Core Launcher Config Ġ= Ġconfigurations . register (" launcher ") Ġ{ ĊĠĠĠ Ġextends From ( configurations . minecraft . get ()) Ċ } Ċ Ċ // ĠCommon Ġsource Ġsets Ġand Ġconfigurations Ċ val Ġinstaller Config Ġ= Ġcommon Project . configurations . named (" installer ") Ċ val Ġlaunch Config Ġ= Ġcommon Project . configurations . named (" launcher ") Ċ val Ġinstaller Ġ= Ġcommon Project . source Sets . named (" installer ") Ċ val Ġaccessors Ġ= Ġcommon Project . source Sets . named (" access ors ") Ċ val Ġlauncher Ġ= Ġcommon Project . source Sets . named (" launcher ") Ċ val Ġmixins Ġ= Ġcommon Project . source Sets . named (" mixins ") Ċ val Ġmain Ġ= Ġcommon Project . source Sets . named (" main ") Ċ Ċ // ĠVan illa Ġsource Ġsets Ċ val Ġr pg Core Main Ġby Ġsource Sets . named (" main ") Ġ{ ĊĠĠĠ Ġ// Ġimplementation Ġ( compile ) Ġdependencies ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġaccessors . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġlauncher . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) Ċ } Ċ val Ġr pg Core Launcher Ġby Ġsource Sets . register (" launcher ") Ġ{ ĊĠĠĠ Ġ// Ġimplementation Ġ( compile ) Ġdependencies ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġlauncher . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġmain . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( project , Ġthis , Ġr pg Core Main , Ġproject , Ġr pg Core Main . implementation Configuration Name ) ĊĊĠĠĠ Ġconfigurations . named ( implementation Configuration Name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġextends From ( r pg Core Launcher Config . get ()) ĊĠĠĠ Ġ} Ċ } Ċ val Ġr pg Core Mix ins Ġby Ġsource Sets . register (" mixins ") Ġ{ ĊĠĠĠ Ġ// Ġimplementation Ġ( compile ) Ġdependencies ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġmixins . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġaccessors . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġlauncher . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( common Project , Ġmain . get (), Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( project , Ġr pg Core Main , Ġthis , Ġproject , Ġthis . implementation Configuration Name ) ĊĠĠĠ Ġse kie i Impl . apply Named Dependency On Output ( project , Ġr pg Core Launcher , Ġthis , Ġproject , Ġthis . implementation Configuration Name ) Ċ } Ċ Ċ val Ġr pg Core Mix ins Implementation Ġby Ġconfigurations . named ( r pg Core Mix ins . implementation Configuration Name ) Ġ{ ĊĠĠĠ Ġextends From ( r pg Core Launcher Config . get ()) Ċ } Ċ val Ġr pg Core Launcher Runtime Ġby Ġconfigurations . named ( r pg Core Launcher . runtime Only Configuration Name ) Ċ Ċ minecraft Ġ{ ĊĠĠĠ Ġcommon Project . source Sets [" main "]. resources ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . name . endsWith (". access wid ener ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccess W id eners ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġval Ġmixin Version : ĠString Ġby Ġproject ĊĊĠĠĠ Ġapi ( project (" :", Ġconfiguration Ġ= Ġ" launcher ")) ĊĠĠĠ Ġimplementation ( project (" :", Ġconfiguration Ġ= Ġ" access ors ")) ĊĠĠĠ Ġimplementation ( project ( common Project . path )) ĊĊĠĠĠ Ġimplementation ( project (": Auction House ")) ĊĠĠĠ Ġimplementation ( project (": Stone Bag ")) ĊĊĠĠĠ Ġr pg Core Mix ins Implementation ( project ( common Project . path )) ĊĊĠĠĠ Ġval Ġlauncher Ġ= Ġr pg Core Launcher Config . name ĊĠĠĠ Ġlauncher (" org . spongepowered : mixin :$ mixin Version ") Ċ } Ċ Ċ val Ġr pg Core Manifest Ġ= Ġthe < Java Plugin Convention >(). manifest Ġ{ ĊĠĠĠ Ġattributes ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Specification - Title " Ġto Ġproject . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Specification - Vendor " Ġto Ġorganization , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Specification - Version " Ġto Ġcommon Project . version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Implementation - Title " Ġto Ġcommon Project . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Implementation - Version " Ġto Ġcommon Project . version , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Implementation - Vendor " Ġto Ġorganization ĊĠĠĠ Ġ) Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġjar Ġ{ ĊĠĠĠĠĠĠĠ Ġmanifest . from ( r pg Core Manifest ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġshadow Jar Ġ{ ĊĠĠĠĠĠĠĠ Ġmerge Service Files () ĊĊĠĠĠĠĠĠĠ Ġarchive FileName . set (" RP G Core . jar ") ĊĊĠĠĠĠĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes ( map Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Main - Class " Ġto Ġ" xyz . stud iom ango . se kie i . installer . Installer ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Launcher - Class " Ġto Ġ" xyz . stud iom ango . r pg core . launcher . RP G Core Launcher ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Multi - Release " Ġto Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Pre main - Class " Ġto Ġ" xyz . stud iom ango . se kie i . installer . Agent ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Agent - Class " Ġto Ġ" xyz . stud iom ango . se kie i . installer . Agent ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Launcher - Agent - Class " Ġto Ġ" xyz . stud iom ango . se kie i . installer . Agent " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( r pg Core Manifest ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfrom ( common Project . source Sets . main . map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( common Project . source Sets . named (" mixins "). map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( common Project . source Sets . named (" access ors "). map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( common Project . source Sets . named (" launcher "). map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( common Project . source Sets . named (" installer "). map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( source Sets . main . map Ġ{ Ġit . output Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( installer Config . get ()) ĊĠĠĠĠĠĠĠ Ġfrom ( r pg Core Launcher . output ) ĊĠĠĠĠĠĠĠ Ġfrom ( r pg Core Mix ins . output ) ĊĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude ( project (" :" )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude ( project (": Auction House ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude ( project (": Stone Bag ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠWe Ġcannot Ġhave Ġmodules Ġin Ġa Ġsh aded Ġjar ĊĠĠĠĠĠĠĠ Ġexclude (" META - INF / versions /*/ module - info . class ") ĊĠĠĠĠĠĠĠ Ġexclude (" module - info . class ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġassemble Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( shadow Jar ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcopy To Test Folder Ġby Ġregistering ( Copy :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" se kie i " ĊĊĠĠĠĠĠĠĠ Ġdepends On ( shadow Jar ) ĊĊĠĠĠĠĠĠĠ Ġfrom (" build / libs / RP G Core . jar ") ĊĠĠĠĠĠĠĠ Ġinto ("../../ test Server / RP G Core ") ĊĠĠĠ Ġ} Ċ }