diff --git a/build.gradle b/build.gradle index efb5e47..afa2d50 100644 --- a/build.gradle +++ b/build.gradle @@ -1,64 +1,151 @@ +import io.papermc.hangarpublishplugin.model.Platforms + plugins { - alias(libs.plugins.paperweight) - alias(libs.plugins.shadowjar) + alias(libs.plugins.hangar) + alias(libs.plugins.modrinth) - alias(libs.plugins.runpaper) + id 'java-library' } -project.group = "${rootProject.group}.paper" -project.version = rootProject.version +defaultTasks 'build' -base { - archivesName = "${rootProject.name}-${project.name}" -} +def combineJars = tasks.register("combineJars", org.gradle.jvm.tasks.Jar) { + mustRunAfter build -dependencies { - implementation(libs.metrics) + duplicatesStrategy = DuplicatesStrategy.EXCLUDE - compileOnly(libs.vault) + from(files(subprojects.findAll { it.name != 'webmap' }.collect { + it.layout.buildDirectory.file("libs/${rootProject.name}-${it.name}-${it.version}.jar").get() + }).filter { it.name != 'MANIFEST.MF' }.collect { if (it.isDirectory()) it else zipTree(it) }) - paperweightDevelopmentBundle("io.papermc.paper:dev-bundle:$minecraftVersion-R0.1-SNAPSHOT") -} + doLast { + File dir = new File(rootDir, "jars") -tasks { - runServer { - jvmArgs("-Dnet.kyori.ansi.colorLevel=truecolor") + if (dir.exists()) dir.delete() - minecraftVersion(minecraftVersion) - } + dir.mkdirs() - assemble { - dependsOn(reobfJar) - } - - shadowJar { - mergeServiceFiles() - - exclude("META-INF/**") - - List.of( - "org.bstats" - ).forEach { - relocate(it, "libs.$it") + copy { + from(layout.buildDirectory.file("libs/${rootProject.name}-${rootProject.version}.jar")) + into(dir) } } +} + +assemble { + subprojects.forEach { project -> dependsOn ":${project.name}:build" } + + finalizedBy combineJars +} + +subprojects { + apply plugin: 'java-library' + + repositories { + maven { url = 'https://repo.crazycrew.us/releases' } + + maven { url = 'https://jitpack.io' } + + mavenCentral() + } + + if (name == "paper") { + repositories { + maven { url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } + } + } + + compileJava { + options.encoding = 'UTF-8' + options.release.set(17) + } + + java { + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } + } + + javadoc { + options.encoding = 'UTF-8' + } processResources { - Map props = new HashMap<>() + filteringCharset = 'UTF-8' + } +} - props.put("name", rootProject.name) - props.put("version", "$rootProject.version") - props.put("group", "$project.group") - props.put("description", rootProject.description) +boolean isBeta = true +String modrinthType = isBeta ? "beta" : "release" +String hangarType = isBeta ? "Beta" : "Release" - props.put("apiVersion", apiVersion) - props.put("authors", authors) - props.put("website", website) +String description = """ +# Please take backups and report any bugs you find! - inputs.properties(props) +## Breaking Changes: + * Permissions have changed, You can view the updated permissions @ https://github.com/Crazy-Crew/CrazyAuctions/blob/main/paper/src/main/resources/plugin.yml - filesMatching("plugin.yml") { - expand(props) +## Changes: + * Re-organized and cleaned up a large portion of the code, Functionality shouldn't change + * Added proper tab completion + * Added proper permissions to plugin.yml + +## Optimizations: + * Only use uuid for hashmap's / arrays as god intended. + +## Warning: + * Data is still stored only using name's which is terrible but at the moment it's annoying to remove, It will change in the next few versions after some more clean up is made. + +## Developers: + * Do not rely on any methods in CrazyAuctions as an API, it will constantly be refactored and moved around until told otherwise. + +## Other: + * [Feature Requests](https://github.com/Crazy-Crew/${rootProject.name}/issues) + * [Bug Reports](https://github.com/Crazy-Crew/${rootProject.name}/issues) +""" + +File file = layout.buildDirectory.file("libs/${rootProject.name}-${rootProject.version}.jar").get().asFile + +modrinth { + setAutoAddDependsOn(false) + + token.set(System.getenv("modrinth_token")) + + projectId.set(rootProject.name.toLowerCase()) + + versionName.set("${rootProject.name} ${rootProject.version}") + + versionNumber.set("${rootProject.version}") + + versionType.set(modrinthType) + + uploadFile.set(file) + + gameVersions.add(minecraftVersion) + + changelog.set(description) + + loaders.addAll("paper", "purpur") +} + +hangarPublish { + publications.register("plugin") { + version.set("$rootProject.version") + + id.set(rootProject.name) + + channel.set(hangarType) + + changelog.set(description) + + apiKey.set(System.getenv("hangar_key")) + + platforms { + register(Platforms.PAPER) { + jar.set(file) + + platformVersions.set(["$minecraftVersion"]) + } } } } \ No newline at end of file diff --git a/common/build.gradle b/common/build.gradle deleted file mode 100644 index e69de29..0000000 diff --git a/common/src/main/java/com/badbones69/crazyauctions/common/config/ConfigFactory.java b/common/src/main/java/com/badbones69/crazyauctions/common/config/ConfigFactory.java deleted file mode 100644 index 64e769e..0000000 --- a/common/src/main/java/com/badbones69/crazyauctions/common/config/ConfigFactory.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.badbones69.crazyauctions.common.config; - -public class ConfigFactory { - - - -} \ No newline at end of file diff --git a/common/src/main/java/com/badbones69/crazyauctions/common/storage/StorageFactory.java b/common/src/main/java/com/badbones69/crazyauctions/common/storage/StorageFactory.java deleted file mode 100644 index 22aa1a9..0000000 --- a/common/src/main/java/com/badbones69/crazyauctions/common/storage/StorageFactory.java +++ /dev/null @@ -1,7 +0,0 @@ -package com.badbones69.crazyauctions.common.storage; - -public class StorageFactory { - - - -} \ No newline at end of file