diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index a0b370d..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,141 +0,0 @@ -name: Build -env: - NEXT_BUILD_NUMBER: ${{ vars.NEXT_BUILD_NUMBER }} - BUILD_INITIAL_VALUE: 1 -on: - push: - branches: - - dev - workflow_dispatch: - inputs: - logLevel: - description: 'Log Level' - required: false - default: 'warning' - -jobs: - publish: - runs-on: ubuntu-latest - if: "!contains(github.event.commits[0].message, '[ci-skip]')" - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - # https://github.com/granny/Pl3xMap/blob/1df593e5706444de28fc61855df5a7552afcd3c7/.github/workflows/build.yml#L26 - - uses: actions/github-script@v6 - name: Prepare build number if it doesn't exist - with: - debug: true - github-token: ${{ secrets.GH_TOKEN }} - script: | - const { owner, repo } = context.repo; - - if (process.env.NEXT_BUILD_NUMBER === undefined || process.env.NEXT_BUILD_NUMBER === "") { - core.info(`Could not find a NEXT_BUILD_NUMBER env variable. Creating a new one with value ${process.env.BUILD_INITIAL_VALUE}.`); - - const { status, data } = await github.request('POST /repos/{owner}/{repo}/actions/variables', { - owner: owner, - repo: repo, - name: "NEXT_BUILD_NUMBER", - value: process.env.BUILD_INITIAL_VALUE, - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - } - }).catch(err => err.response); - //const { status, data } = await github.rest.actions.createRepoVariable(owner, repo, "NEXT_BUILD_NUMBER", process.env.BUILD_INITIAL_VALUE); - core.debug(JSON.stringify(data, null, 2)); - - if (data?.message != undefined) { - return core.setFailed(`Failed to update configuration variable NEXT_BUILD_NUMBER with new value of '${process.env.BUILD_INITIAL_VALUE}' for reason ${data.message}`); - } - - return core.exportVariable("NEXT_BUILD_NUMBER", process.env.BUILD_INITIAL_VALUE); - } else if (process.env.NEXT_BUILD_NUMBER.split('.').length > 1 || Number.isNaN(Number.parseInt(process.env.NEXT_BUILD_NUMBER))) { - return core.setFailed(`NEXT_BUILD_NUMBER variable has invalid value "${process.env.NEXT_BUILD_NUMBER}", failing build.`); - } - - return core.exportVariable("NEXT_BUILD_NUMBER", process.env.NEXT_BUILD_NUMBER); - - - name: Validate Gradle Wrapper - uses: gradle/actions/wrapper-validation@v3 - - - name: Set up JDK 21 - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: 21 - check-latest: true - - - name: Gradle Properties Import. - id: properties - shell: bash - run: cat gradle.properties >> $GITHUB_ENV - - - name: Make gradlew executable - run: chmod +x ./gradlew - - - name: Assemble - run: - ./gradlew assemble --stacktrace - - - name: Publish - env: - HANGAR_KEY: ${{ secrets.HANGAR_KEY }} - MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} - COMMIT_MESSAGE: ${{ join(github.event.commits.*.message, '
') }} - run: ./gradlew modrinth publishAllPublicationsToHangar --stacktrace - - - name: Build Succeeded - uses: sarisia/actions-status-discord@v1 - if: success() - with: - webhook: ${{ secrets.DISCORD_WEBHOOK }} - noprefix: true - nodetail: true - title: A new version of CrazyCrates is ready. - color: 0xE91E63 - description: | - * <:hangar:1139326635313733652> https://hangar.papermc.io/CrazyCrew/CrazyCrates/versions/2.1-${{env.NEXT_BUILD_NUMBER}} - * <:modrinth:1115307870473420800> https://modrinth.com/plugin/crazycrates/version/2.1-${{env.NEXT_BUILD_NUMBER}} - - - name: Build Failed - uses: sarisia/actions-status-discord@v1 - if: ${{ failure() }} - with: - webhook: ${{ secrets.DISCORD_WEBHOOK }} - noprefix: true - nodetail: true - title: The build didn't survive. - color: 0xff0000 - description: | - Version 2.1 build ${{env.NEXT_BUILD_NUMBER}} has died. - Click [here](${{github.server_url}}/${{github.repository}}/actions/runs/${{ github.run_id }}) to view the run. - - # https://github.com/granny/Pl3xMap/blob/1df593e5706444de28fc61855df5a7552afcd3c7/.github/workflows/build.yml#L95 - - uses: actions/github-script@v6 - name: Increment Build Number - if: success() - with: - debug: true - github-token: ${{ secrets.GH_TOKEN }} - script: | - const { owner, repo } = context.repo; - const value = '' + (${{ env.NEXT_BUILD_NUMBER }} + 1); - - core.info(`attempting to update variable 'NEXT_BUILD_NUMBER' to '${value}'.`); - const { status, data } = await github.request('PATCH /repos/{owner}/{repo}/actions/variables/{name}', { - owner: owner, - repo: repo, - name: "NEXT_BUILD_NUMBER", - value: value, - headers: { - 'X-GitHub-Api-Version': '2022-11-28' - } - }).catch(err => err.response); - - //const { data } = await github.rest.actions.updateRepoVariable(owner, repo, "NEXT_BUILD_NUMBER", value) - core.debug(JSON.stringify(data, null, 2)); - - if (data?.message != undefined) { - return core.setFailed(`Failed to update configuration variable NEXT_BUILD_NUMBER with new value of '${value}'`); - } \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a6b7eea --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,48 @@ +name: Publish Release +on: + push: + branches: + - main + workflow_dispatch: + inputs: + logLevel: + description: 'Log Level' + required: false + default: 'warning' + +jobs: + publish: + runs-on: ubuntu-latest + if: "!contains(github.event.commits[0].message, '[ci-skip]')" + steps: + - name: Checkout Repository + uses: actions/checkout@v4 + + - name: Validate Gradle Wrapper + uses: gradle/actions/wrapper-validation@v3 + + - name: Set up JDK 21 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 21 + check-latest: true + + - name: Gradle Properties Import. + id: properties + shell: bash + run: cat gradle.properties >> $GITHUB_ENV + + - name: Make gradlew executable + run: chmod +x ./gradlew + + - name: Assemble + run: + ./gradlew assemble --stacktrace + + - name: Publish + env: + HANGAR_KEY: ${{ secrets.HANGAR_KEY }} + MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} + COMMIT_MESSAGE: ${{ join(github.event.commits.*.message, '
* ') }} + run: ./gradlew modrinth publishAllPublicationsToHangar --stacktrace \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b00818..541ca42 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,6 @@ -## Fixes: -* Fixed an issue with casino crate where you could open a casino crate without the key. -* Temp fix for double message when trying to open a crate with key in off hand. This means for the time being, keys cannot be used in off hand. - * A few changes will be made to how physical crate locations handle keys in the next 2 days in the `dev` branch with 2.1 builds so until then. This is the quicker solution.. +## Changes: +* Updated to 1.20.6 paper ## Other: -* [Feature Requests](https://github.com/Crazy-Crew/CrazyCrates/discussions/categories/features) -* [Bug Reports](https://github.com/Crazy-Crew/CrazyCrates/issues) +* [Feature Requests](https://github.com/Crazy-Crew/BlockParticles/discussions/categories/features) +* [Bug Reports](https://github.com/Crazy-Crew/BlockParticles/issues) \ No newline at end of file diff --git a/README.md b/README.md index e7ff801..c4f3dcc 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
-[![crazycrates](https://raw.githubusercontent.com/RyderBelserion/Assets/main/crazycrew/webp/CrazyCratesBanner.webp)](https://modrinth.com/project/blockparticles) +[![blockparticles](https://raw.githubusercontent.com/RyderBelserion/Assets/main/crazycrew/webp/BlockParticlesBanner.webp)](https://modrinth.com/plugin/blockparticles) [![Contributors][contributors-shield]][contributors-url] [![Forks][forks-shield]][forks-url] @@ -21,7 +21,7 @@ Explore the docs »

- Report Bug + Report Bug · Request Feature · @@ -48,8 +48,8 @@ ### Resource Page -[![Hangar](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/hangar_46h.png)](https://hangar.papermc.io/CrazyCrew/BlockParticles) -[![Modrinth](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/modrinth_46h.png)](https://modrinth.com/project/blockparticles) +~~[![Hangar](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/hangar_46h.png)](https://hangar.papermc.io/CrazyCrew/BlockParticles)~~ +[![Modrinth](https://raw.githubusercontent.com/intergrav/devins-badges/v3/assets/compact/available/modrinth_46h.png)](https://modrinth.com/plugin/blockparticles) ## Getting Started How to get started with contributing / maintaining your own version of BlockParticles! @@ -91,15 +91,15 @@ Distributed under the MIT License. See [`LICENSE`](/LICENSE) for more informatio [discord-shield]: https://img.shields.io/discord/182615261403283459.svg?style=flat&logo=appveyor [discord-url]: https://discord.gg/badbones-s-live-chat-182615261403283459 -[contributors-shield]: https://img.shields.io/github/contributors/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor -[contributors-url]: https://github.com/Crazy-Crew/CrazyCrates/graphs/contributors -[forks-shield]: https://img.shields.io/github/forks/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor -[forks-url]: https://github.com/Crazy-Crew/CrazyCrates/network/members -[stars-shield]: https://img.shields.io/github/stars/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor -[stars-url]: https://github.com/Crazy-Crew/CrazyCrates/stargazers -[issues-shield]: https://img.shields.io/github/issues/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor -[issues-url]: https://github.com/Crazy-Crew/CrazyCrates/issues -[license-shield]: https://img.shields.io/github/license/Crazy-Crew/CrazyCrates.svg?style=flat&logo=appveyor -[license-url]: https://github.com/Crazy-Crew/CrazyCrates/blob/master/LICENSE - -[codefactor-shield]: https://img.shields.io/codefactor/grade/github/crazy-crew/crazycrates/main?style=flat&logo=appveyor \ No newline at end of file +[contributors-shield]: https://img.shields.io/github/contributors/Crazy-Crew/BlockParticles.svg?style=flat&logo=appveyor +[contributors-url]: https://github.com/Crazy-Crew/BlockParticles/graphs/contributors +[forks-shield]: https://img.shields.io/github/forks/Crazy-Crew/BlockParticles.svg?style=flat&logo=appveyor +[forks-url]: https://github.com/Crazy-Crew/BlockParticles/network/members +[stars-shield]: https://img.shields.io/github/stars/Crazy-Crew/BlockParticles.svg?style=flat&logo=appveyor +[stars-url]: https://github.com/Crazy-Crew/BlockParticles/stargazers +[issues-shield]: https://img.shields.io/github/issues/Crazy-Crew/BlockParticles.svg?style=flat&logo=appveyor +[issues-url]: https://github.com/Crazy-Crew/BlockParticles/issues +[license-shield]: https://img.shields.io/github/license/Crazy-Crew/BlockParticles.svg?style=flat&logo=appveyor +[license-url]: https://github.com/Crazy-Crew/BlockParticles/blob/master/LICENSE + +[codefactor-shield]: https://img.shields.io/codefactor/grade/github/crazy-crew/blockparticles/main?style=flat&logo=appveyor \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index a561d73..ee41e51 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,24 +1,22 @@ -import git.formatLog -import git.latestCommitHash -import git.latestCommitMessage +import com.ryderbelserion.feather.tools.formatLog +import com.ryderbelserion.feather.tools.latestCommitHash +import com.ryderbelserion.feather.tools.latestCommitMessage plugins { - id("io.papermc.hangar-publish-plugin") version "0.1.2" - id("com.modrinth.minotaur") version "2.+" + alias(libs.plugins.minotaur) + alias(libs.plugins.hangar) - id("io.github.goooler.shadow") - - `root-plugin` + `java-plugin` } -val buildNumber: String? = System.getenv("NEXT_BUILD_NUMBER") - -rootProject.version = if (buildNumber != null) "1.0-$buildNumber" else "1.0" +val buildNumber: String = System.getenv("NEXT_BUILD_NUMBER") ?: "SNAPSHOT" val isSnapshot = false +rootProject.version = if (isSnapshot) "1.0-$buildNumber" else "1.2" + val content: String = if (isSnapshot) { - formatLog(latestCommitHash(), latestCommitMessage(), rootProject.name) + formatLog(latestCommitHash(), latestCommitMessage(), rootProject.name, "Crazy-Crew") } else { rootProject.file("CHANGELOG.md").readText(Charsets.UTF_8) } @@ -32,7 +30,7 @@ modrinth { projectId.set(rootProject.name.lowercase()) - versionType.set("beta") + versionType.set(if (isSnapshot) "beta" else "release") versionName.set("${rootProject.name} ${rootProject.version}") versionNumber.set(rootProject.version as String) @@ -51,6 +49,10 @@ modrinth { autoAddDependsOn.set(false) detectLoaders.set(false) + + //dependencies { + // optional.version("fancyholograms", "2.0.6") + //} } hangarPublish { @@ -61,9 +63,9 @@ hangarPublish { version.set(rootProject.version as String) - channel.set("Snapshot") + channel.set(if (isSnapshot) "Snapshot" else "Release") - changelog.set(System.getenv("COMMIT_MESSAGE")) + changelog.set(content) platforms { paper { @@ -72,6 +74,28 @@ hangarPublish { platformVersions.set(listOf( "1.20.6" )) + + dependencies { + hangar("PlaceholderAPI") { + required = false + } + + //hangar("FancyHolograms") { + // required = false + //} + + url("Oraxen", "https://www.spigotmc.org/resources/%E2%98%84%EF%B8%8F-oraxen-custom-items-blocks-emotes-furniture-resourcepack-and-gui-1-18-1-20-4.72448/") { + required = false + } + + url("CMI", "https://www.spigotmc.org/resources/cmi-298-commands-insane-kits-portals-essentials-economy-mysql-sqlite-much-more.3742/") { + required = false + } + + url("DecentHolograms", "https://www.spigotmc.org/resources/decentholograms-1-8-1-20-4-papi-support-no-dependencies.96927/") { + required = false + } + } } } } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index e01b330..549792f 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,13 +1,13 @@ +import com.ryderbelserion.feather.feather + plugins { - `kotlin-dsl` -} + id("com.ryderbelserion.feather-logic") version "0.0.1" -repositories { - gradlePluginPortal() - mavenCentral() + `kotlin-dsl` } dependencies { - implementation("io.papermc.paperweight", "paperweight-userdev", "1.6.2") + implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) - implementation("io.github.goooler.shadow", "shadow-gradle-plugin", "8.1.7")} \ No newline at end of file + feather("0.0.1") +} \ No newline at end of file diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index 3f87d39..4c5dadd 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -1 +1,31 @@ -rootProject.name = "buildSrc" \ No newline at end of file +import com.ryderbelserion.feather.libs + +rootProject.name = "buildSrc" + +dependencyResolutionManagement { + repositories { + maven("https://repo.crazycrew.us/releases") + + gradlePluginPortal() + + mavenCentral() + } + + versionCatalogs { + register("libs") { + from(files(libs)) + } + } +} + +pluginManagement { + repositories { + maven("https://repo.crazycrew.us/releases") + + gradlePluginPortal() + } +} + +plugins { + id("com.ryderbelserion.feather-settings") +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/git/tools.kt b/buildSrc/src/main/kotlin/git/tools.kt deleted file mode 100644 index 77241e7..0000000 --- a/buildSrc/src/main/kotlin/git/tools.kt +++ /dev/null @@ -1,34 +0,0 @@ -package git - -import org.gradle.api.Project -import java.io.ByteArrayOutputStream - -fun formatLog(hash: String, message: String, project: String): String { - return "[$hash](https://github.com/Crazy-Crew/$project/commit/$hash) $message" -} - -fun Project.latestCommitHash(): String { - return runGitCommand(listOf("rev-parse", "--short", "HEAD")) -} - -fun Project.latestCommitMessage(): String { - return runGitCommand(listOf("log", "-1", "--pretty=%B")) -} - -fun Project.branchName(): String { - return runGitCommand(listOf("rev-parse", "--abbrev-ref", "HEAD")) -} - -fun Project.runGitCommand(value: List): String { - val output: String = ByteArrayOutputStream().use { - exec { - executable("git") - args(value) - standardOutput = it - } - - it.toString(Charsets.UTF_8).trim() - } - - return output -} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/java-plugin.gradle.kts b/buildSrc/src/main/kotlin/java-plugin.gradle.kts new file mode 100644 index 0000000..5ec1444 --- /dev/null +++ b/buildSrc/src/main/kotlin/java-plugin.gradle.kts @@ -0,0 +1,36 @@ +import com.ryderbelserion.feather.enums.Repository +import org.gradle.accessors.dm.LibrariesForLibs + +val libs = the() + +plugins { + id("com.ryderbelserion.feather-core") + + `maven-publish` + + `java-library` +} + +repositories { + flatDir { dirs("libs") } + + mavenCentral() +} + +dependencies { + compileOnlyApi(libs.annotations) +} + +feather { + repository("https://repo.codemc.io/repository/maven-public") + + repository(Repository.CrazyCrewReleases.url) + + repository(Repository.Jitpack.url) + + configureJava { + javaSource(JvmVendorSpec.AMAZON) + + javaVersion(21) + } +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/paper-plugin.gradle.kts b/buildSrc/src/main/kotlin/paper-plugin.gradle.kts index fd59db4..43e32f6 100644 --- a/buildSrc/src/main/kotlin/paper-plugin.gradle.kts +++ b/buildSrc/src/main/kotlin/paper-plugin.gradle.kts @@ -1,13 +1,22 @@ -plugins { - id("io.papermc.paperweight.userdev") +import com.ryderbelserion.feather.enums.Repository +import org.gradle.accessors.dm.LibrariesForLibs + +val libs = the() - id("root-plugin") +plugins { + id("java-plugin") } dependencies { - paperweight.paperDevBundle("1.20.6-R0.1-SNAPSHOT") + compileOnly(libs.paper) } -paperweight { - reobfArtifactConfiguration = io.papermc.paperweight.userdev.ReobfArtifactConfiguration.MOJANG_PRODUCTION +feather { + repository("https://repo.extendedclip.com/content/repositories/placeholderapi") + + repository("https://repo.triumphteam.dev/snapshots") + + repository("https://maven.enginehub.org/repo") + + repository(Repository.Paper.url) } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/root-plugin.gradle.kts b/buildSrc/src/main/kotlin/root-plugin.gradle.kts deleted file mode 100644 index 1f2c5b2..0000000 --- a/buildSrc/src/main/kotlin/root-plugin.gradle.kts +++ /dev/null @@ -1,48 +0,0 @@ -plugins { - `java-library` - - `maven-publish` -} - -repositories { - maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") - - maven("https://repo.papermc.io/repository/maven-public/") - - maven("https://repo.codemc.io/repository/maven-public/") - - maven("https://repo.triumphteam.dev/snapshots/") - - maven("https://repo.crazycrew.us/snapshots/") - - maven("https://repo.crazycrew.us/releases/") - - maven("https://repo.oraxen.com/releases/") - - maven("https://jitpack.io/") - - flatDir { dirs("libs") } - - mavenCentral() -} - -java { - toolchain { - languageVersion.set(JavaLanguageVersion.of(21)) - } -} - -tasks { - compileJava { - options.encoding = Charsets.UTF_8.name() - options.release.set(21) - } - - javadoc { - options.encoding = Charsets.UTF_8.name() - } - - processResources { - filteringCharset = Charsets.UTF_8.name() - } -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 0e01200..a93dd63 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false org.gradle.parallel=false -group=com.badbones69.crazycrates -authors=["ryderbelserion", "BadBones69", "TDL"] -description=Create unlimited crates with multiple crate types to choose from! +group=com.badbones69.blockparticles +authors=["ryderbelserion", "BadBones69", "Felux", "TDL"] +description=Create all the fancy particles for your blocks! website=https://modrinth.com/plugin/crazycrates \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4fee597..079c384 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,23 +1,67 @@ +[versions] +# Minecraft +paper = "1.20.6-R0.1-SNAPSHOT" +minecraft = "1.20.6" + +# Plugins +itemsadder = "3.6.3-beta-14" +headdatabaseapi = "1.3.2" +placeholderapi = "2.11.6" +oraxen = "1.171.0" + +# Core +annotations = "24.1.0" +gson = "2.10.1" +vital = "1.3" + +decentholograms = "2.8.8" +fancyholograms = "2.0.6" + +triumph-cmd = "2.0.0-ALPHA-10" +tirumph-gui = "3.1.7" + +paperweight="1.7.1" +shadowJar = "8.1.7" +runPaper = "2.3.0" +minotaur = "2.+" +hangar = "0.1.2" + [plugins] -run-paper = { id = "xyz.jpenilla.run-paper", version = "2.2.4" } +paperweight = { id = "io.papermc.paperweight.userdev", version.ref = "paperweight" } +hangar = { id = "io.papermc.hangar-publish-plugin", version.ref = "hangar" } +shadowJar = { id = "io.github.goooler.shadow", version.ref = "shadowJar" } +runPaper = { id = "xyz.jpenilla.run-paper", version.ref = "runPaper" } +minotaur = { id = "com.modrinth.minotaur", version.ref = "minotaur" } [libraries] -itemsadder-api = { group = "com.github.LoneDev6", name = "api-itemsadder", version = "3.6.1" } -oraxen-api = { group = "io.th0rgal", name = "oraxen", version = "1.171.0" } -placeholder-api = { group = "me.clip", name = "placeholderapi", version = "2.11.5" } -head-database-api = { group = "com.arcaniax", name = "HeadDatabase-API", version = "1.3.1" } +# Servers +minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } +paper = { module = "io.papermc.paper:paper-api", version.ref = "paper" } -vital = { group = "com.ryderbelserion.vital", name = "paper", version = "1.0-snapshot" } +# Plugins +decent-holograms = { module = "com.github.decentsoftware-eu:decentholograms", version.ref = "decentholograms" } +fancy-holograms = { module = "de.oliver:FancyHolograms", version.ref = "fancyholograms" } -decent-holograms = { group = "com.github.decentsoftware-eu", name = "decentholograms", version = "2.8.6" } -fancy-holograms = { group = "de.oliver", name = "FancyHolograms", version = "2.0.6" } +headdatabaseapi = { module = "com.arcaniax:HeadDatabase-API", version.ref = "headdatabaseapi" } +placeholderapi = { module = "me.clip:placeholderapi", version.ref = "placeholderapi" } -triumph-cmds = { group = "dev.triumphteam", name = "triumph-cmd-bukkit", version = "2.0.0-ALPHA-10" } -triumph-gui = { group = "dev.triumphteam", name = "triumph-gui", version = "3.1.7" } +itemsadder = { module = "com.github.LoneDev6:api-itemsadder", version.ref = "itemsadder" } +oraxen = { module = "io.th0rgal:oraxen", version.ref = "oraxen" } -vault = { group = "com.github.MilkBowl", name = "VaultAPI", version = "1.7.1" } -metrics = { group = "org.bstats", name = "bstats-bukkit", version = "3.0.2" } -config-me = { group = "ch.jalu", name = "configme", version = "1.4.1" } +# Libraries +triumph-cmds = { module = "dev.triumphteam:triumph-cmd-bukkit", version.ref = "triumph-cmd" } +triumph-gui = { module = "dev.triumphteam:triumph-gui", version.ref = "tirumph-gui" } + +annotations = { module = "org.jetbrains:annotations", version.ref = "annotations" } + +vital-paper = { module = "com.ryderbelserion.vital:paper", version.ref = "vital" } +vital-core = { module = "com.ryderbelserion.vital:core", version.ref = "vital" } + +gson = { module = "com.google.code.gson:gson", version.ref = "gson" } [bundles] -triumph = ["triumph-cmds", "triumph-gui"] \ No newline at end of file +holograms = ["decent-holograms", "fancy-holograms"] + +triumph = ["triumph-cmds", "triumph-gui"] + +items = ["itemsadder", "oraxen"] \ No newline at end of file diff --git a/paper/build.gradle.kts b/paper/build.gradle.kts index 46beb76..13353a6 100644 --- a/paper/build.gradle.kts +++ b/paper/build.gradle.kts @@ -1,17 +1,17 @@ plugins { - id("io.github.goooler.shadow") - - alias(libs.plugins.run.paper) + alias(libs.plugins.shadowJar) + alias(libs.plugins.runPaper) `paper-plugin` } dependencies { - implementation(libs.vital) - - compileOnly(libs.head.database.api) + // org.yaml is already bundled with Paper + implementation(libs.vital.paper) { + exclude("org.yaml") + } - //compileOnly(libs.triumph.cmds) + compileOnly(libs.headdatabaseapi) } tasks { @@ -24,6 +24,8 @@ tasks { } assemble { + dependsOn(shadowJar) + doLast { copy { from(shadowJar.get()) @@ -47,10 +49,11 @@ tasks { inputs.properties("name" to rootProject.name) inputs.properties("version" to project.version) inputs.properties("group" to project.group) + inputs.properties("authors" to project.properties["authors"]) inputs.properties("description" to project.properties["description"]) inputs.properties("website" to project.properties["website"]) - filesMatching("paper-plugin.yml") { + filesMatching("plugin.yml") { expand(inputs.properties) } } diff --git a/paper/src/main/java/me/badbones69/blockparticles/BlockParticles.java b/paper/src/main/java/com/badbones69/blockparticles/BlockParticles.java similarity index 69% rename from paper/src/main/java/me/badbones69/blockparticles/BlockParticles.java rename to paper/src/main/java/com/badbones69/blockparticles/BlockParticles.java index 7d62f27..78653fb 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/BlockParticles.java +++ b/paper/src/main/java/com/badbones69/blockparticles/BlockParticles.java @@ -1,13 +1,13 @@ -package me.badbones69.blockparticles; +package com.badbones69.blockparticles; -import me.badbones69.blockparticles.api.FileManager; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.commands.BPCommands; -import me.badbones69.blockparticles.commands.BPTab; -import me.badbones69.blockparticles.controllers.Fountains; -import me.badbones69.blockparticles.controllers.GUI; -import me.badbones69.blockparticles.events.Events_v1_12_R1_Up; -import me.badbones69.blockparticles.hook.HeadDatabaseHook; +import com.badbones69.blockparticles.api.FileManager; +import com.badbones69.blockparticles.api.ParticleManager; +import com.badbones69.blockparticles.commands.BPCommands; +import com.badbones69.blockparticles.commands.BPTab; +import com.badbones69.blockparticles.controllers.Fountains; +import com.badbones69.blockparticles.controllers.GUI; +import com.badbones69.blockparticles.events.Events_v1_12_R1_Up; +import com.badbones69.blockparticles.hook.HeadDatabaseHook; import org.bukkit.Bukkit; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; diff --git a/paper/src/main/java/me/badbones69/blockparticles/Methods.java b/paper/src/main/java/com/badbones69/blockparticles/Methods.java similarity index 96% rename from paper/src/main/java/me/badbones69/blockparticles/Methods.java rename to paper/src/main/java/com/badbones69/blockparticles/Methods.java index 3d4b470..1c10288 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/Methods.java +++ b/paper/src/main/java/com/badbones69/blockparticles/Methods.java @@ -1,12 +1,12 @@ -package me.badbones69.blockparticles; +package com.badbones69.blockparticles; -import me.badbones69.blockparticles.api.FileManager.Files; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.enums.BPFountains; -import me.badbones69.blockparticles.api.enums.BPParticles; -import me.badbones69.blockparticles.api.enums.Particles; -import me.badbones69.blockparticles.api.objects.ItemBuilder; -import me.badbones69.blockparticles.controllers.Fountains; +import com.badbones69.blockparticles.api.enums.BPFountains; +import com.badbones69.blockparticles.api.enums.BPParticles; +import com.badbones69.blockparticles.api.enums.Particles; +import com.badbones69.blockparticles.api.objects.ItemBuilder; +import com.badbones69.blockparticles.controllers.Fountains; +import com.badbones69.blockparticles.api.FileManager.Files; +import com.badbones69.blockparticles.api.ParticleManager; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; @@ -183,10 +183,10 @@ public static void startParticles() { bp.getParticleControl().playSnowStorm(loc, id); break; case DOUBLEWITCH: - bp.getParticleControl().playDoubleSpiral(loc, id, Particles.DOUBLEWITCH, 5); + bp.getParticleControl().playDoubleSpiral(loc, id, com.badbones69.blockparticles.api.enums.Particles.DOUBLEWITCH, 5); break; case WITCH: - bp.getParticleControl().playSpiral(loc, id, Particles.WITCH, 5); + bp.getParticleControl().playSpiral(loc, id, com.badbones69.blockparticles.api.enums.Particles.WITCH, 5); break; case MAGIC: bp.getParticleControl().playMagic(loc, id); @@ -234,7 +234,7 @@ public static void startParticles() { bp.getParticleControl().playVolcano(loc, id); break; case SPIRAL: - bp.getParticleControl().playSpiral(loc, id, Particles.SPIRAL, 1); + bp.getParticleControl().playSpiral(loc, id, com.badbones69.blockparticles.api.enums.Particles.SPIRAL, 1); break; case DOUBLESPIRAL: bp.getParticleControl().playDoubleSpiral(loc, id, Particles.DOUBLESPIRAL, 5); diff --git a/paper/src/main/java/me/badbones69/blockparticles/Particles.java b/paper/src/main/java/com/badbones69/blockparticles/Particles.java similarity index 98% rename from paper/src/main/java/me/badbones69/blockparticles/Particles.java rename to paper/src/main/java/com/badbones69/blockparticles/Particles.java index d626955..81da0cc 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/Particles.java +++ b/paper/src/main/java/com/badbones69/blockparticles/Particles.java @@ -1,6 +1,6 @@ -package me.badbones69.blockparticles; +package com.badbones69.blockparticles; -import me.badbones69.blockparticles.controllers.ParticleControl; +import com.badbones69.blockparticles.controllers.ParticleControl; import org.bukkit.*; import org.bukkit.entity.Entity; import org.bukkit.entity.LivingEntity; @@ -75,11 +75,11 @@ public void run() { }, 0, 5)); } - public void playDoubleSpiral(final Location location, String id, me.badbones69.blockparticles.api.enums.Particles particles, int amount) { + public void playDoubleSpiral(final Location location, String id, com.badbones69.blockparticles.api.enums.Particles particles, int amount) { locations.put(id, Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { Location l = location.add(.5, .7, .5); int time = 16; - Particle particle = particles == me.badbones69.blockparticles.api.enums.Particles.DOUBLEWITCH ? Particle.WITCH : Particle.FIREWORK; + Particle particle = particles == com.badbones69.blockparticles.api.enums.Particles.DOUBLEWITCH ? Particle.WITCH : Particle.FIREWORK; @Override public void run() { @@ -154,11 +154,11 @@ public void run() { }, 0, 2)); } - public void playSpiral(final Location location, String id, me.badbones69.blockparticles.api.enums.Particles particles, int amount) { + public void playSpiral(final Location location, String id, com.badbones69.blockparticles.api.enums.Particles particles, int amount) { locations.put(id, Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() { Location l = location.add(.5, .7, .5); int time = 16; - Particle particle = particles == me.badbones69.blockparticles.api.enums.Particles.WITCH ? Particle.WITCH : Particle.FIREWORK; + Particle particle = particles == com.badbones69.blockparticles.api.enums.Particles.WITCH ? Particle.WITCH : Particle.FIREWORK; @Override public void run() { diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/FileManager.java b/paper/src/main/java/com/badbones69/blockparticles/api/FileManager.java similarity index 86% rename from paper/src/main/java/me/badbones69/blockparticles/api/FileManager.java rename to paper/src/main/java/com/badbones69/blockparticles/api/FileManager.java index 11275f1..e5861d2 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/FileManager.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/FileManager.java @@ -1,4 +1,4 @@ -package me.badbones69.blockparticles.api; +package com.badbones69.blockparticles.api; import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.YamlConfiguration; @@ -43,25 +43,25 @@ public void setup(Plugin plugin) { //Loads all the normal static files. for (Files file : Files.values()) { File newFile = new File(plugin.getDataFolder(), file.getFileLocation()); - if (log) System.out.println(prefix + "Loading the " + file.getFileName()); + if (log) this.plugin.getLogger().info("Loading the " + file.getFileName()); if (!newFile.exists()) { try { File serverFile = new File(plugin.getDataFolder(), "/" + file.getFileLocation()); InputStream jarFile = getClass().getResourceAsStream("/" + file.getFileLocation()); copyFile(jarFile, serverFile); } catch (Exception e) { - if (log) System.out.println(prefix + "Failed to load " + file.getFileName()); + if (log) this.plugin.getLogger().info("Failed to load " + file.getFileName()); e.printStackTrace(); continue; } } files.put(file, newFile); configurations.put(file, YamlConfiguration.loadConfiguration(newFile)); - if (log) System.out.println(prefix + "Successfully loaded " + file.getFileName()); + if (log) this.plugin.getLogger().info("Successfully loaded " + file.getFileName()); } //Starts to load all the custom files. if (homeFolders.size() > 0) { - if (log) System.out.println(prefix + "Loading custom files."); + if (log) this.plugin.getLogger().info("Loading custom files."); for (String homeFolder : homeFolders) { if (new File(plugin.getDataFolder(), "/" + homeFolder).exists()) { for (String name : new File(plugin.getDataFolder(), "/" + homeFolder).list()) { @@ -69,13 +69,13 @@ public void setup(Plugin plugin) { CustomFile file = new CustomFile(name, homeFolder, plugin); if (file.exists()) { customFiles.add(file); - if (log) System.out.println(prefix + "Loaded custom file: " + homeFolder + "/" + name + "."); + if (log) this.plugin.getLogger().info("Loaded custom file: " + homeFolder + "/" + name + "."); } } } } else { new File(plugin.getDataFolder(), "/" + homeFolder).mkdir(); - if (log) System.out.println(prefix + "The folder " + homeFolder + "/ was not found so it was created."); + if (log) this.plugin.getLogger().info("The folder " + homeFolder + "/ was not found so it was created."); for (String fileName : autoGenerateFiles.keySet()) { if (autoGenerateFiles.get(fileName).equalsIgnoreCase(homeFolder)) { homeFolder = autoGenerateFiles.get(fileName); @@ -86,16 +86,16 @@ public void setup(Plugin plugin) { if (fileName.toLowerCase().endsWith(".yml")) { customFiles.add(new CustomFile(fileName, homeFolder, plugin)); } - if (log) System.out.println(prefix + "Created new default file: " + homeFolder + "/" + fileName + "."); + if (log) this.plugin.getLogger().info("Created new default file: " + homeFolder + "/" + fileName + "."); } catch (Exception e) { - if (log) System.out.println(prefix + "Failed to create new default file: " + homeFolder + "/" + fileName + "!"); + if (log) this.plugin.getLogger().info("Failed to create new default file: " + homeFolder + "/" + fileName + "!"); e.printStackTrace(); } } } } } - if (log) System.out.println(prefix + "Finished loading custom files."); + if (log) this.plugin.getLogger().info("Finished loading custom files."); } } @@ -187,7 +187,7 @@ public void saveFile(Files file) { try { configurations.get(file).save(files.get(file)); } catch (IOException e) { - System.out.println(prefix + "Could not save " + file.getFileName() + "!"); + this.plugin.getLogger().info("Could not save " + file.getFileName() + "!"); e.printStackTrace(); } } @@ -201,13 +201,13 @@ public void saveFile(String name) { if (file != null) { try { file.getFile().save(new File(plugin.getDataFolder(), file.getHomeFolder() + "/" + file.getFileName())); - if (log) System.out.println(prefix + "Successfully saved the " + file.getFileName() + "."); + if (log) this.plugin.getLogger().info("Successfully saved the " + file.getFileName() + "."); } catch (Exception e) { - System.out.println(prefix + "Could not save " + file.getFileName() + "!"); + this.plugin.getLogger().info("Could not save " + file.getFileName() + "!"); e.printStackTrace(); } } else { - if (log) System.out.println(prefix + "The file " + name + ".yml could not be found!"); + if (log) this.plugin.getLogger().info("The file " + name + ".yml could not be found!"); } } @@ -235,13 +235,13 @@ public void reloadFile(String name) { if (file != null) { try { file.file = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), "/" + file.getHomeFolder() + "/" + file.getFileName())); - if (log) System.out.println(prefix + "Successfully reload the " + file.getFileName() + "."); + if (log) this.plugin.getLogger().info("Successfully reload the " + file.getFileName() + "."); } catch (Exception e) { - System.out.println(prefix + "Could not reload the " + file.getFileName() + "!"); + this.plugin.getLogger().info("Could not reload the " + file.getFileName() + "!"); e.printStackTrace(); } } else { - if (log) System.out.println(prefix + "The file " + name + ".yml could not be found!"); + if (log) this.plugin.getLogger().info("The file " + name + ".yml could not be found!"); } } @@ -372,7 +372,7 @@ public CustomFile(String name, String homeFolder, Plugin plugin) { } } else { new File(plugin.getDataFolder(), "/" + homeFolder).mkdir(); - if (log) System.out.println(prefix + "The folder " + homeFolder + "/ was not found so it was created."); + if (log) this.plugin.getLogger().info("The folder " + homeFolder + "/ was not found so it was created."); file = null; } } @@ -433,15 +433,15 @@ public Boolean saveFile() { if (file != null) { try { file.save(new File(plugin.getDataFolder(), homeFolder + "/" + fileName)); - if (log) System.out.println(prefix + "Successfuly saved the " + fileName + "."); + if (log) this.plugin.getLogger().info("Successfully saved the " + fileName + "."); return true; } catch (Exception e) { - System.out.println(prefix + "Could not save " + fileName + "!"); + this.plugin.getLogger().info("Could not save " + fileName + "!"); e.printStackTrace(); return false; } } else { - if (log) System.out.println(prefix + "There was a null custom file that could not be found!"); + if (log) this.plugin.getLogger().info("There was a null custom file that could not be found!"); } return false; } @@ -454,14 +454,14 @@ public Boolean reloadFile() { if (file != null) { try { file = YamlConfiguration.loadConfiguration(new File(plugin.getDataFolder(), "/" + homeFolder + "/" + fileName)); - if (log) System.out.println(prefix + "Successfuly reload the " + fileName + "."); + if (log) this.plugin.getLogger().info("Successfully reloaded the " + fileName + "."); return true; } catch (Exception e) { - System.out.println(prefix + "Could not reload the " + fileName + "!"); + this.plugin.getLogger().info("Could not reload the " + fileName + "!"); e.printStackTrace(); } } else { - if (log) System.out.println(prefix + "There was a null custom file that was not found!"); + if (log) this.plugin.getLogger().info("There was a null custom file that was not found!"); } return false; } diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/ParticleManager.java b/paper/src/main/java/com/badbones69/blockparticles/api/ParticleManager.java similarity index 84% rename from paper/src/main/java/me/badbones69/blockparticles/api/ParticleManager.java rename to paper/src/main/java/com/badbones69/blockparticles/api/ParticleManager.java index 2acb6a2..91c46c0 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/ParticleManager.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/ParticleManager.java @@ -1,12 +1,12 @@ -package me.badbones69.blockparticles.api; +package com.badbones69.blockparticles.api; -import me.badbones69.blockparticles.api.FileManager.Files; -import me.badbones69.blockparticles.api.enums.ParticleType; -import me.badbones69.blockparticles.api.enums.Particles; -import me.badbones69.blockparticles.api.objects.CustomFountain; -import me.badbones69.blockparticles.api.objects.Particle; -import me.badbones69.blockparticles.controllers.Fountains; -import me.badbones69.blockparticles.controllers.ParticleControl; +import com.badbones69.blockparticles.Particles; +import com.badbones69.blockparticles.api.enums.ParticleType; +import com.badbones69.blockparticles.api.objects.CustomFountain; +import com.badbones69.blockparticles.api.objects.Particle; +import com.badbones69.blockparticles.controllers.Fountains; +import com.badbones69.blockparticles.controllers.ParticleControl; +import com.badbones69.blockparticles.api.FileManager.Files; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; @@ -33,15 +33,15 @@ public static ParticleManager getInstance() { } public void load() { - particleControl = new me.badbones69.blockparticles.Particles(); + particleControl = new Particles(); customFountains.clear(); if (hasOldFiles()) { String prefix = fileManager.getPrefix(); boolean isLogging = fileManager.isLogging(); - if (isLogging) System.out.println(prefix + "Old files have been detected!"); - if (isLogging) System.out.println(prefix + "Converting old files."); + if (isLogging) this.plugin.getLogger().info("Old files have been detected!"); + if (isLogging) this.plugin.getLogger().info("Converting old files."); convertOldFiles(); - if (isLogging) System.out.println(prefix + "Finished converting old files."); + if (isLogging) this.plugin.getLogger().info("Finished converting old files."); } FileConfiguration config = Files.CONFIG.getFile(); if (config.contains("settings.heads")) { @@ -83,15 +83,19 @@ public void convertOldFiles() { String prefix = fileManager.getPrefix(); boolean isLogging = fileManager.isLogging(); FileConfiguration config = Files.CONFIG.getFile(); + if (config.contains("Settings")) { config.set("settings.prefix", config.getString("Settings.Prefix")); config.set("Settings", null); Files.CONFIG.saveFile(); - if (isLogging) System.out.println(prefix + "Finished converting config.yml."); + if (isLogging) this.plugin.getLogger().info("Finished converting config.yml."); } + FileConfiguration data = Files.DATA.getFile(); + if (data.contains("Locations")) { List particles = new ArrayList<>(); + for (String id : data.getConfigurationSection("Locations").getKeys(false)) { particles.add(new Particle(id, data.getString("Locations." + id + ".World"), @@ -100,7 +104,9 @@ public void convertOldFiles() { data.getInt("Locations." + id + ".Z"), data.getString("Locations." + id + ".Particle"))); } + data.set("Locations", null); + for (Particle particle : particles) { String id = particle.getID(); data.set("locations." + id + ".world", particle.getWorld()); @@ -109,8 +115,9 @@ public void convertOldFiles() { data.set("locations." + id + ".z", particle.getZ()); data.set("locations." + id + ".particle", particle.getParticleTypeName()); } + Files.DATA.saveFile(); - if (isLogging) System.out.println(prefix + "Finished converting data.yml."); + if (isLogging) this.plugin.getLogger().info("Finished converting data.yml."); } } @@ -128,6 +135,7 @@ public boolean hasParticle(Location loc) { } } } + return false; } @@ -150,10 +158,11 @@ public void removeFountainItem(Entity item) { * @param loc The location you wish to spawn the Particles. * @param name The Location Name. */ - public void setParticle(Particles type, Location loc, String name) { + public void setParticle(com.badbones69.blockparticles.api.enums.Particles type, Location loc, String name) { if (particleControl.getLocations().containsKey(name)) { - Bukkit.getServer().getScheduler().cancelTask(particleControl.getLocations().get(name)); + this.plugin.getServer().getScheduler().cancelTask(particleControl.getLocations().get(name)); } + switch (type) { case LOVETORNADO: particleControl.playLoveTornado(loc, name); @@ -231,10 +240,10 @@ public void setParticle(Particles type, Location loc, String name) { particleControl.playFireStorm(loc, name); break; case WITCH: - particleControl.playSpiral(loc, name, Particles.WITCH, 5); + particleControl.playSpiral(loc, name, com.badbones69.blockparticles.api.enums.Particles.WITCH, 5); break; case DOUBLEWITCH: - particleControl.playDoubleSpiral(loc, name, Particles.DOUBLEWITCH, 5); + particleControl.playDoubleSpiral(loc, name, com.badbones69.blockparticles.api.enums.Particles.DOUBLEWITCH, 5); break; case MAGIC: particleControl.playMagic(loc, name); @@ -282,10 +291,10 @@ public void setParticle(Particles type, Location loc, String name) { particleControl.playVolcano(loc, name); break; case SPIRAL: - particleControl.playSpiral(loc, name, Particles.SPIRAL, 1); + particleControl.playSpiral(loc, name, com.badbones69.blockparticles.api.enums.Particles.SPIRAL, 1); break; case DOUBLESPIRAL: - particleControl.playDoubleSpiral(loc, name, Particles.DOUBLESPIRAL, 1); + particleControl.playDoubleSpiral(loc, name, com.badbones69.blockparticles.api.enums.Particles.DOUBLESPIRAL, 1); break; case CRIT: particleControl.playCrit(loc, name); @@ -303,18 +312,18 @@ public void setParticle(Particles type, Location loc, String name) { */ public void removeParticle(String name) { if (particleControl.getLocations().containsKey(name)) { - Bukkit.getServer().getScheduler().cancelTask(particleControl.getLocations().get(name)); + this.plugin.getServer().getScheduler().cancelTask(particleControl.getLocations().get(name)); particleControl.getLocations().remove(name); } } /** - * Get the Particle Type of a Particle (Particle/Fountain). + * Get the Particle type of Particle (Particle/Fountain). * * @param particle The Particle you want to get the ParticleType from. * @return A Particle Type. */ - public ParticleType getType(Particles particle) { + public ParticleType getType(com.badbones69.blockparticles.api.enums.Particles particle) { return particle.getType(); } diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/enums/BPFountains.java b/paper/src/main/java/com/badbones69/blockparticles/api/enums/BPFountains.java similarity index 82% rename from paper/src/main/java/me/badbones69/blockparticles/api/enums/BPFountains.java rename to paper/src/main/java/com/badbones69/blockparticles/api/enums/BPFountains.java index dc34abc..72dbd61 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/enums/BPFountains.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/enums/BPFountains.java @@ -1,7 +1,7 @@ -package me.badbones69.blockparticles.api.enums; +package com.badbones69.blockparticles.api.enums; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.objects.CustomFountain; +import com.badbones69.blockparticles.api.objects.CustomFountain; +import com.badbones69.blockparticles.api.ParticleManager; public enum BPFountains { diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/enums/BPParticles.java b/paper/src/main/java/com/badbones69/blockparticles/api/enums/BPParticles.java similarity index 94% rename from paper/src/main/java/me/badbones69/blockparticles/api/enums/BPParticles.java rename to paper/src/main/java/com/badbones69/blockparticles/api/enums/BPParticles.java index c76fc65..4d8983e 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/enums/BPParticles.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/enums/BPParticles.java @@ -1,4 +1,4 @@ -package me.badbones69.blockparticles.api.enums; +package com.badbones69.blockparticles.api.enums; public enum BPParticles { diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/enums/ParticleType.java b/paper/src/main/java/com/badbones69/blockparticles/api/enums/ParticleType.java similarity index 87% rename from paper/src/main/java/me/badbones69/blockparticles/api/enums/ParticleType.java rename to paper/src/main/java/com/badbones69/blockparticles/api/enums/ParticleType.java index 1db0434..d2dcf6d 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/enums/ParticleType.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/enums/ParticleType.java @@ -1,4 +1,4 @@ -package me.badbones69.blockparticles.api.enums; +package com.badbones69.blockparticles.api.enums; public enum ParticleType { diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/enums/Particles.java b/paper/src/main/java/com/badbones69/blockparticles/api/enums/Particles.java similarity index 98% rename from paper/src/main/java/me/badbones69/blockparticles/api/enums/Particles.java rename to paper/src/main/java/com/badbones69/blockparticles/api/enums/Particles.java index e4dded1..3ac8803 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/enums/Particles.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/enums/Particles.java @@ -1,4 +1,4 @@ -package me.badbones69.blockparticles.api.enums; +package com.badbones69.blockparticles.api.enums; import java.util.ArrayList; diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/objects/CustomFountain.java b/paper/src/main/java/com/badbones69/blockparticles/api/objects/CustomFountain.java similarity index 86% rename from paper/src/main/java/me/badbones69/blockparticles/api/objects/CustomFountain.java rename to paper/src/main/java/com/badbones69/blockparticles/api/objects/CustomFountain.java index 48237f2..23c7523 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/objects/CustomFountain.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/objects/CustomFountain.java @@ -1,10 +1,9 @@ -package me.badbones69.blockparticles.api.objects; +package com.badbones69.blockparticles.api.objects; -import me.badbones69.blockparticles.BlockParticles; -import me.badbones69.blockparticles.hook.HeadDatabaseHook; +import com.badbones69.blockparticles.BlockParticles; +import com.badbones69.blockparticles.hook.HeadDatabaseHook; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; - import java.util.ArrayList; import java.util.List; diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/objects/ItemBuilder.java b/paper/src/main/java/com/badbones69/blockparticles/api/objects/ItemBuilder.java similarity index 96% rename from paper/src/main/java/me/badbones69/blockparticles/api/objects/ItemBuilder.java rename to paper/src/main/java/com/badbones69/blockparticles/api/objects/ItemBuilder.java index d6103f3..2dfa45d 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/objects/ItemBuilder.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/objects/ItemBuilder.java @@ -1,7 +1,6 @@ -package me.badbones69.blockparticles.api.objects; +package com.badbones69.blockparticles.api.objects; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.multisupport.SkullCreator; +import com.badbones69.blockparticles.api.ParticleManager; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; @@ -493,22 +492,15 @@ public ItemBuilder setGlowing(Boolean glowing) { public ItemStack build() { ItemStack item = referenceItem != null ? referenceItem : new ItemStack(material, amount); if (item.getType() != Material.AIR) { - if (isHead) {//Has to go 1st due to it removing all data when finished. - if (isHash) {//Sauce: https://github.com/deanveloper/SkullCreator - if (isURL) { - SkullCreator.itemWithUrl(item, player); - } else { - SkullCreator.itemWithBase64(item, player); - } - } - } ItemMeta itemMeta = item.getItemMeta(); itemMeta.setDisplayName(getUpdatedName()); itemMeta.setLore(getUpdatedLore()); itemMeta.setUnbreakable(unbreakable); + if (itemMeta instanceof org.bukkit.inventory.meta.Damageable) { ((org.bukkit.inventory.meta.Damageable) itemMeta).setDamage(damage); } + item.setItemMeta(itemMeta); hideFlags(item); item.addUnsafeEnchantments(enchantments); @@ -542,6 +534,7 @@ private ItemStack hideFlags(ItemStack item) { return item; } } + return item; } @@ -554,9 +547,11 @@ private ItemStack addGlow(ItemStack item) { return item; } } - //item.addUnsafeEnchantment(Enchantment.LUCK, 1); + ItemMeta meta = item.getItemMeta(); - meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); + + meta.setEnchantmentGlintOverride(true); + item.setItemMeta(meta); } return item; @@ -566,5 +561,4 @@ private ItemStack addGlow(ItemStack item) { } return item; } - } \ No newline at end of file diff --git a/paper/src/main/java/me/badbones69/blockparticles/api/objects/Particle.java b/paper/src/main/java/com/badbones69/blockparticles/api/objects/Particle.java similarity index 95% rename from paper/src/main/java/me/badbones69/blockparticles/api/objects/Particle.java rename to paper/src/main/java/com/badbones69/blockparticles/api/objects/Particle.java index a0e726e..14fdba5 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/api/objects/Particle.java +++ b/paper/src/main/java/com/badbones69/blockparticles/api/objects/Particle.java @@ -1,4 +1,4 @@ -package me.badbones69.blockparticles.api.objects; +package com.badbones69.blockparticles.api.objects; import org.bukkit.Bukkit; import org.bukkit.Location; diff --git a/paper/src/main/java/me/badbones69/blockparticles/commands/BPCommands.java b/paper/src/main/java/com/badbones69/blockparticles/commands/BPCommands.java similarity index 93% rename from paper/src/main/java/me/badbones69/blockparticles/commands/BPCommands.java rename to paper/src/main/java/com/badbones69/blockparticles/commands/BPCommands.java index 8aff64c..cf6df69 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/commands/BPCommands.java +++ b/paper/src/main/java/com/badbones69/blockparticles/commands/BPCommands.java @@ -1,12 +1,12 @@ -package me.badbones69.blockparticles.commands; +package com.badbones69.blockparticles.commands; -import me.badbones69.blockparticles.Methods; -import me.badbones69.blockparticles.api.FileManager; -import me.badbones69.blockparticles.api.FileManager.Files; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.enums.ParticleType; -import me.badbones69.blockparticles.api.enums.Particles; -import me.badbones69.blockparticles.controllers.GUI; +import com.badbones69.blockparticles.api.enums.ParticleType; +import com.badbones69.blockparticles.api.enums.Particles; +import com.badbones69.blockparticles.Methods; +import com.badbones69.blockparticles.api.FileManager; +import com.badbones69.blockparticles.api.FileManager.Files; +import com.badbones69.blockparticles.api.ParticleManager; +import com.badbones69.blockparticles.controllers.GUI; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; diff --git a/paper/src/main/java/me/badbones69/blockparticles/commands/BPTab.java b/paper/src/main/java/com/badbones69/blockparticles/commands/BPTab.java similarity index 88% rename from paper/src/main/java/me/badbones69/blockparticles/commands/BPTab.java rename to paper/src/main/java/com/badbones69/blockparticles/commands/BPTab.java index d3750e9..cdbc33f 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/commands/BPTab.java +++ b/paper/src/main/java/com/badbones69/blockparticles/commands/BPTab.java @@ -1,9 +1,9 @@ -package me.badbones69.blockparticles.commands; +package com.badbones69.blockparticles.commands; -import me.badbones69.blockparticles.Methods; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.enums.BPFountains; -import me.badbones69.blockparticles.api.enums.BPParticles; +import com.badbones69.blockparticles.api.enums.BPParticles; +import com.badbones69.blockparticles.Methods; +import com.badbones69.blockparticles.api.ParticleManager; +import com.badbones69.blockparticles.api.enums.BPFountains; import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.command.TabCompleter; diff --git a/paper/src/main/java/me/badbones69/blockparticles/controllers/Fountains.java b/paper/src/main/java/com/badbones69/blockparticles/controllers/Fountains.java similarity index 99% rename from paper/src/main/java/me/badbones69/blockparticles/controllers/Fountains.java rename to paper/src/main/java/com/badbones69/blockparticles/controllers/Fountains.java index 6d3c226..3ca9762 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/controllers/Fountains.java +++ b/paper/src/main/java/com/badbones69/blockparticles/controllers/Fountains.java @@ -1,8 +1,8 @@ -package me.badbones69.blockparticles.controllers; +package com.badbones69.blockparticles.controllers; -import me.badbones69.blockparticles.Methods; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.objects.CustomFountain; +import com.badbones69.blockparticles.api.objects.CustomFountain; +import com.badbones69.blockparticles.Methods; +import com.badbones69.blockparticles.api.ParticleManager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; diff --git a/paper/src/main/java/me/badbones69/blockparticles/controllers/GUI.java b/paper/src/main/java/com/badbones69/blockparticles/controllers/GUI.java similarity index 97% rename from paper/src/main/java/me/badbones69/blockparticles/controllers/GUI.java rename to paper/src/main/java/com/badbones69/blockparticles/controllers/GUI.java index 64e7569..73fcf00 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/controllers/GUI.java +++ b/paper/src/main/java/com/badbones69/blockparticles/controllers/GUI.java @@ -1,8 +1,8 @@ -package me.badbones69.blockparticles.controllers; +package com.badbones69.blockparticles.controllers; -import me.badbones69.blockparticles.Methods; -import me.badbones69.blockparticles.api.ParticleManager; -import me.badbones69.blockparticles.api.objects.ItemBuilder; +import com.badbones69.blockparticles.api.objects.ItemBuilder; +import com.badbones69.blockparticles.Methods; +import com.badbones69.blockparticles.api.ParticleManager; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.entity.Player; diff --git a/paper/src/main/java/me/badbones69/blockparticles/controllers/ParticleControl.java b/paper/src/main/java/com/badbones69/blockparticles/controllers/ParticleControl.java similarity index 95% rename from paper/src/main/java/me/badbones69/blockparticles/controllers/ParticleControl.java rename to paper/src/main/java/com/badbones69/blockparticles/controllers/ParticleControl.java index e2758e6..0e6805a 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/controllers/ParticleControl.java +++ b/paper/src/main/java/com/badbones69/blockparticles/controllers/ParticleControl.java @@ -1,6 +1,6 @@ -package me.badbones69.blockparticles.controllers; +package com.badbones69.blockparticles.controllers; -import me.badbones69.blockparticles.api.enums.Particles; +import com.badbones69.blockparticles.api.enums.Particles; import org.bukkit.Location; import java.util.HashMap; diff --git a/paper/src/main/java/me/badbones69/blockparticles/events/Events_v1_12_R1_Up.java b/paper/src/main/java/com/badbones69/blockparticles/events/Events_v1_12_R1_Up.java similarity index 80% rename from paper/src/main/java/me/badbones69/blockparticles/events/Events_v1_12_R1_Up.java rename to paper/src/main/java/com/badbones69/blockparticles/events/Events_v1_12_R1_Up.java index da10e81..2f863f6 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/events/Events_v1_12_R1_Up.java +++ b/paper/src/main/java/com/badbones69/blockparticles/events/Events_v1_12_R1_Up.java @@ -1,6 +1,6 @@ -package me.badbones69.blockparticles.events; +package com.badbones69.blockparticles.events; -import me.badbones69.blockparticles.api.ParticleManager; +import com.badbones69.blockparticles.api.ParticleManager; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.entity.EntityPickupItemEvent; diff --git a/paper/src/main/java/me/badbones69/blockparticles/hook/HeadDatabaseHook.java b/paper/src/main/java/com/badbones69/blockparticles/hook/HeadDatabaseHook.java similarity index 88% rename from paper/src/main/java/me/badbones69/blockparticles/hook/HeadDatabaseHook.java rename to paper/src/main/java/com/badbones69/blockparticles/hook/HeadDatabaseHook.java index 2f61051..01aac72 100644 --- a/paper/src/main/java/me/badbones69/blockparticles/hook/HeadDatabaseHook.java +++ b/paper/src/main/java/com/badbones69/blockparticles/hook/HeadDatabaseHook.java @@ -1,7 +1,7 @@ -package me.badbones69.blockparticles.hook; +package com.badbones69.blockparticles.hook; +import com.badbones69.blockparticles.Methods; import me.arcaniax.hdb.api.HeadDatabaseAPI; -import me.badbones69.blockparticles.Methods; import org.bukkit.Bukkit; import org.bukkit.inventory.ItemStack; diff --git a/paper/src/main/java/me/badbones69/blockparticles/multisupport/SkullCreator.java b/paper/src/main/java/me/badbones69/blockparticles/multisupport/SkullCreator.java deleted file mode 100644 index d4f5733..0000000 --- a/paper/src/main/java/me/badbones69/blockparticles/multisupport/SkullCreator.java +++ /dev/null @@ -1,275 +0,0 @@ -package me.badbones69.blockparticles.multisupport; - -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.Skull; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.SkullMeta; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Base64; -import java.util.UUID; - -/** - * A library for the Bukkit API to create player skulls - * from names, base64 strings, and texture URLs. - * - * Does not use any NMS code, and should work across all versions. - * - * @author Dean B on 12/28/2016. - */ -public class SkullCreator { - - /** - * Creates a player skull based on a player's name. - * - * @param name The Player's name - * @return The head of the Player - * - * @deprecated names don't make for good identifiers - */ - @Deprecated - public static ItemStack itemFromName(String name) { - ItemStack item = getPlayerSkullItem(); - - return itemWithName(item, name); - } - - /** - * Creates a player skull based on a player's name. - * - * @param item The item to apply the name to - * @param name The Player's name - * @return The head of the Player - * - * @deprecated names don't make for good identifiers - */ - @Deprecated - public static ItemStack itemWithName(ItemStack item, String name) { - notNull(item, "item"); - notNull(name, "name"); - - return Bukkit.getUnsafe().modifyItemStack(item, - "{SkullOwner:\"" + name + "\"}" - ); - } - - /** - * Creates a player skull with a UUID. 1.13 only. - * - * @param id The Player's UUID - * @return The head of the Player - */ - public static ItemStack itemFromUuid(UUID id) { - ItemStack item = getPlayerSkullItem(); - - return itemWithUuid(item, id); - } - - /** - * Creates a player skull based on a UUID. 1.13 only. - * - * @param item The item to apply the name to - * @param id The Player's UUID - * @return The head of the Player - */ - public static ItemStack itemWithUuid(ItemStack item, UUID id) { - notNull(item, "item"); - notNull(id, "id"); - - SkullMeta meta = (SkullMeta) item.getItemMeta(); - meta.setOwningPlayer(Bukkit.getOfflinePlayer(id)); - item.setItemMeta(meta); - - return item; - } - - /** - * Creates a player skull based on a Mojang server URL. - * - * @param url The URL of the Mojang skin - * @return The head associated with the URL - */ - public static ItemStack itemFromUrl(String url) { - ItemStack item = getPlayerSkullItem(); - - return itemWithUrl(item, url); - } - - /** - * Creates a player skull based on a Mojang server URL. - * - * @param item The item to apply the skin to - * @param url The URL of the Mojang skin - * @return The head associated with the URL - */ - public static ItemStack itemWithUrl(ItemStack item, String url) { - notNull(item, "item"); - notNull(url, "url"); - - return itemWithBase64(item, urlToBase64(url)); - } - - /** - * Creates a player skull based on a base64 string containing the link to the skin. - * - * @param base64 The base64 string containing the texture - * @return The head with a custom texture - */ - public static ItemStack itemFromBase64(String base64) { - ItemStack item = getPlayerSkullItem(); - return itemWithBase64(item, base64); - } - - /** - * Applies the base64 string to the ItemStack. - * - * @param item The ItemStack to put the base64 onto - * @param base64 The base64 string containing the texture - * @return The head with a custom texture - */ - public static ItemStack itemWithBase64(ItemStack item, String base64) { - notNull(item, "item"); - notNull(base64, "base64"); - - UUID hashAsId = new UUID(base64.hashCode(), base64.hashCode()); - return Bukkit.getUnsafe().modifyItemStack(item, - "{SkullOwner:{Id:\"" + hashAsId + "\",Properties:{textures:[{Value:\"" + base64 + "\"}]}}}" - ); - } - - /** - * Sets the block to a skull with the given name. - * - * @param block The block to set - * @param name The player to set it to - * - * @deprecated names don't make for good identifiers - */ - @Deprecated - public static void blockWithName(Block block, String name) { - notNull(block, "block"); - notNull(name, "name"); - - setBlockType(block); - ((Skull) block.getState()).setOwningPlayer(Bukkit.getOfflinePlayer(name)); - } - - /** - * Sets the block to a skull with the given UUID. - * - * @param block The block to set - * @param id The player to set it to - */ - public static void blockWithUuid(Block block, UUID id) { - notNull(block, "block"); - notNull(id, "id"); - - setBlockType(block); - ((Skull) block.getState()).setOwningPlayer(Bukkit.getOfflinePlayer(id)); - } - - /** - * Sets the block to a skull with the given UUID. - * - * @param block The block to set - * @param url The mojang URL to set it to use - */ - public static void blockWithUrl(Block block, String url) { - notNull(block, "block"); - notNull(url, "url"); - - blockWithBase64(block, urlToBase64(url)); - } - - /** - * Sets the block to a skull with the given UUID. - * - * @param block The block to set - * @param base64 The base64 to set it to use - */ - public static void blockWithBase64(Block block, String base64) { - notNull(block, "block"); - notNull(base64, "base64"); - - UUID hashAsId = new UUID(base64.hashCode(), base64.hashCode()); - - String args = String.format( - "%d %d %d %s", - block.getX(), - block.getY(), - block.getZ(), - "{Owner:{Id:\"" + hashAsId + "\",Properties:{textures:[{Value:\"" + base64 + "\"}]}}}" - ); - - if (newerApi()) { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "data merge block " + args); - } else { - Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "blockdata " + args); - } - } - - private static boolean newerApi() { - try { - Material.valueOf("PLAYER_HEAD"); - return true; - - } catch (IllegalArgumentException e) { // If PLAYER_HEAD doesn't exist - return false; - } - } - - private static ItemStack getPlayerSkullItem() { - if (newerApi()) { - return new ItemStack(Material.valueOf("PLAYER_HEAD")); - } else { - return new ItemStack(Material.valueOf("SKULL_ITEM"), 1, (byte) 3); - } - } - - private static void setBlockType(Block block) { - try { - block.setType(Material.valueOf("PLAYER_HEAD"), false); - } catch (IllegalArgumentException e) { - block.setType(Material.valueOf("SKULL"), false); - } - } - - private static void notNull(Object o, String name) { - if (o == null) { - throw new NullPointerException(name + " should not be null!"); - } - } - - private static String urlToBase64(String url) { - - URI actualUrl; - try { - actualUrl = new URI(url); - } catch (URISyntaxException e) { - throw new RuntimeException(e); - } - String toEncode = "{\"textures\":{\"SKIN\":{\"url\":\"" + actualUrl.toString() + "\"}}}"; - return Base64.getEncoder().encodeToString(toEncode.getBytes()); - } - -} - -/* Format for skull -{ - display:{ - Name:"Cheese" - }, - SkullOwner:{ - Id:"9c919b83-f3fe-456f-a824-7d1d08cc8bd2", - Properties:{ - textures:[ - { - Value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTU1ZDYxMWE4NzhlODIxMjMxNzQ5YjI5NjU3MDhjYWQ5NDI2NTA2NzJkYjA5ZTI2ODQ3YTg4ZTJmYWMyOTQ2In19fQ==" - } - ] - } - } -}*/ \ No newline at end of file diff --git a/paper/src/main/resources/paper-plugin.yml b/paper/src/main/resources/paper-plugin.yml deleted file mode 100644 index 7e47510..0000000 --- a/paper/src/main/resources/paper-plugin.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: '${name}' -main: '${group}.BlockParticles' - -#loader: '${group}.LibraryLoader' - -version: '${version}' -api-version: '1.20' -description: '${description}' -website: '${website}' - -folia-supported: true - -dependencies: - server: - HeadDatabase: - load: BEFORE - required: false - join-classpath: true \ No newline at end of file diff --git a/paper/src/main/resources/plugin.yml b/paper/src/main/resources/plugin.yml new file mode 100644 index 0000000..28fe287 --- /dev/null +++ b/paper/src/main/resources/plugin.yml @@ -0,0 +1,16 @@ +name: '${name}' +main: '${group}.${name}' + +authors: ${authors} + +version: '${version}' +description: '${description}' +api-version: '1.20' +website: '${website}' + +softdepend: [HeadDatabase] + +commands: + blockparticle: + description: Adds particles to blocks! + aliases: [blockparticles, bp, bparticle, bparticles] \ No newline at end of file diff --git a/settings.gradle.kts b/settings.gradle.kts index f0d2c24..7f07cd0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,19 @@ +import com.ryderbelserion.feather.includeProject + +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + rootProject.name = "BlockParticles" -include("paper") \ No newline at end of file +pluginManagement { + repositories { + maven("https://repo.crazycrew.us/releases") + + gradlePluginPortal() + } +} + +plugins { + id("com.ryderbelserion.feather-settings") version "0.0.1" +} + +listOf("paper").forEach(::includeProject) \ No newline at end of file