From 22c852173f0991817f9d0bf39ef0e02d75306fa2 Mon Sep 17 00:00:00 2001 From: Silthus Date: Sat, 14 Jan 2023 07:18:11 +0100 Subject: [PATCH] feat: update to latest version and improve docs --- .idea/runConfigurations/Server.xml | 15 ------- Readme.md | 5 ++- build.gradle | 42 +++++++++--------- docs/gradle-tasks.png | Bin 0 -> 17518 bytes docs/img.png | Bin 0 -> 17155 bytes gradle.properties | 4 +- .../net/silthus/template/TemplatePlugin.java | 22 +++++++-- 7 files changed, 47 insertions(+), 41 deletions(-) delete mode 100644 .idea/runConfigurations/Server.xml create mode 100644 docs/gradle-tasks.png create mode 100644 docs/img.png diff --git a/.idea/runConfigurations/Server.xml b/.idea/runConfigurations/Server.xml deleted file mode 100644 index 08f12e9..0000000 --- a/.idea/runConfigurations/Server.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - \ No newline at end of file diff --git a/Readme.md b/Readme.md index 70ba768..356d67b 100644 --- a/Readme.md +++ b/Readme.md @@ -58,9 +58,12 @@ The template or better boilerplate comes with a lot of features that are useful * **Delete** the `CHANGELOG.md`. It will be generated on your [first release](#releasing-a-new-version-of-your-plugin). * **Update** the `README` to point to your project and spigot resource id. * **Rename** the java package and plugin to match your project. -* Then execute the `Server` run configuration and the template will run the Spigot BuildTools to download and build spigot or paper for you. +* Then execute the `prepareSpigotPlugins` gradle task this will try to download all plugin denpendencies and puts them into `debug/spigot/plugins/`. +* **Start** the Minecraft server by executing the `debugPaper` task. This will start the server in the background and you can connect to it using the `localhost:25565` address. * **Code away :)** - *and once you are ready, push your commit (in [conventional commit style](#commit-message-format)) to master.* +![Gradle tasks](docs/gradle-tasks.png) + Please read the [Contributing Guidelines](CONTRIBUTING.md) before submitting any pull requests or opening issues. > **NOTE** diff --git a/build.gradle b/build.gradle index 3c3d73e..b710184 100644 --- a/build.gradle +++ b/build.gradle @@ -5,9 +5,9 @@ buildscript { } plugins { - id 'com.github.johnrengelman.shadow' version '7.1.0' - id 'kr.entree.spigradle' version '2.2.4' - id 'io.freefair.lombok' version '6.3.0' + id 'com.github.johnrengelman.shadow' version '7.1.2' + id 'kr.entree.spigradle' version '2.4.3' + id 'io.freefair.lombok' version '6.6.1' id 'java' id 'jacoco' id 'idea' @@ -36,6 +36,7 @@ spigot { load = STARTUP // depends = [''] softDepends = ['Vault'] + excludeLibraries = ['*'] } compileJava { @@ -51,39 +52,40 @@ repositories { mavenLocal() mavenCentral() spigot() - maven { url = 'https://jitpack.io' } + bungeecord() + paper() + essentialsX() + bStats() + enginehub() + protocolLib() maven { url = 'https://repo.aikar.co/content/groups/aikar/' } - maven { url = 'https://repo.dmulloy2.net/repository/public/' } - maven { url 'https://hub.spigotmc.org/nexus/content/repositories/public/' } - maven { url = 'https://oss.sonatype.org/content/repositories/snapshots/' } + jitpack() } dependencies { - // using spigot-api - implementation spigot(mcVersion) - // or using paper-api - // implementation "io.papermc.paper:paper-api:${mcVersion}-R0.1-SNAPSHOT" + // using using paper-api + implementation paper(mcVersion) // Add your dependencies here // Here are some opinionated dependencies that might help you with your plugin development: // Annotation Command Framework: https://github.com/aikar/commands - implementation "co.aikar:acf-paper:0.5.0-SNAPSHOT" + // Use shadow to shade the library into your plugin + shadow "co.aikar:acf-paper:0.5.1-SNAPSHOT" // Vault (https://github.com/MilkBowl/VaultAPI) for economy, permissions and chat API - implementation "com.github.MilkBowl:VaultAPI:1.7.1" + // this dependency needs to be present at runtime, meaning Vault.jar needs to be in your plugins folder + implementation vaultAll() // Test dependencies - testImplementation 'org.junit.jupiter:junit-jupiter:5.8.1' - testImplementation 'org.mockito:mockito-core:4.0.0' - testImplementation 'com.github.seeseemelk:MockBukkit-v1.17:1.7.0' - testImplementation 'org.assertj:assertj-core:3.21.0' + testImplementation 'org.junit.jupiter:junit-jupiter:5.9.2' + testImplementation 'org.mockito:mockito-core:4.11.0' + testImplementation 'com.github.seeseemelk:MockBukkit-v1.19:2.144.3' + testImplementation 'org.assertj:assertj-core:3.24.1' } shadowJar { classifier = '' - dependencies { - include(dependency('co.aikar:acf-paper:0.5.0-SNAPSHOT')) - } + configurations = [project.configurations.runtimeClasspath, project.configurations.shadow] relocate 'co.aikar.commands', "${packageName}.acf" relocate 'co.aikar.locales', "${packageName}.locales" } diff --git a/docs/gradle-tasks.png b/docs/gradle-tasks.png new file mode 100644 index 0000000000000000000000000000000000000000..f1179b9772c28b37b19c7a31860d16c8e4efb5c0 GIT binary patch literal 17518 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 serviceProvider = getServer().getServicesManager() + .getRegistration(Economy.class); + if (serviceProvider != null) { + vault = new VaultProvider(Objects.requireNonNull(serviceProvider).getProvider()); + getLogger().info("Vault integration enabled."); + } + } + if (vault == null) { vault = new VaultProvider(); + getLogger().warning("Vault integration is not yet available."); } }