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