From eafed192d301c3df465dfb07853afadf5ab95f76 Mon Sep 17 00:00:00 2001 From: xHyroM Date: Sun, 27 Aug 2023 23:23:42 +0200 Subject: [PATCH] feat: placeholderapi hook [WIP] --- bukkit/build.gradle.kts | 4 +++ .../bukkit/BukkitLightEcoBootstrap.java | 1 + .../lighteco/bukkit/BukkitLightEcoLoader.java | 7 +++- .../bukkit/hooks/PlaceholderAPIExpansion.java | 33 +++++++++++++++++++ bukkit/src/main/resources/plugin.yml | 5 ++- currency-money/build.gradle.kts | 2 ++ 6 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/hooks/PlaceholderAPIExpansion.java diff --git a/bukkit/build.gradle.kts b/bukkit/build.gradle.kts index 3d73e93..87307c6 100644 --- a/bukkit/build.gradle.kts +++ b/bukkit/build.gradle.kts @@ -4,6 +4,7 @@ plugins { repositories { maven("https://repo.papermc.io/repository/maven-public/") + maven("https://repo.extendedclip.com/content/repositories/placeholderapi") } dependencies { @@ -14,6 +15,9 @@ dependencies { compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") + // PlaceholderAPI + compileOnly("me.clip:placeholderapi:2.11.3") + compileOnly("org.projectlombok:lombok:1.18.28") annotationProcessor("org.projectlombok:lombok:1.18.28") diff --git a/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoBootstrap.java b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoBootstrap.java index a2df7ec..3a50051 100644 --- a/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoBootstrap.java +++ b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoBootstrap.java @@ -17,6 +17,7 @@ import java.util.UUID; @Getter public class BukkitLightEcoBootstrap implements LightEcoBootstrap, LoaderBootstrap { private final JavaPlugin loader; + @Getter private final BukkitLightEcoPlugin plugin = new BukkitLightEcoPlugin(this); @Getter diff --git a/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoLoader.java b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoLoader.java index a67949e..61777ed 100644 --- a/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoLoader.java +++ b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/BukkitLightEcoLoader.java @@ -2,11 +2,13 @@ package dev.xhyrom.lighteco.bukkit; import dev.jorel.commandapi.CommandAPI; import dev.jorel.commandapi.CommandAPIBukkitConfig; +import dev.xhyrom.lighteco.bukkit.hooks.PlaceholderAPIExpansion; import dev.xhyrom.lighteco.common.plugin.bootstrap.LoaderBootstrap; +import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; public class BukkitLightEcoLoader extends JavaPlugin { - private final LoaderBootstrap bootstrap; + private final BukkitLightEcoBootstrap bootstrap; public BukkitLightEcoLoader() { this.bootstrap = new BukkitLightEcoBootstrap(this); @@ -22,6 +24,9 @@ public class BukkitLightEcoLoader extends JavaPlugin { public void onEnable() { CommandAPI.onEnable(); this.bootstrap.onEnable(); + + if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) + new PlaceholderAPIExpansion(this.bootstrap.getPlugin()).register(); } @Override diff --git a/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/hooks/PlaceholderAPIExpansion.java b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/hooks/PlaceholderAPIExpansion.java new file mode 100644 index 0000000..6546038 --- /dev/null +++ b/bukkit/src/main/java/dev/xhyrom/lighteco/bukkit/hooks/PlaceholderAPIExpansion.java @@ -0,0 +1,33 @@ +package dev.xhyrom.lighteco.bukkit.hooks; + +import dev.xhyrom.lighteco.bukkit.BukkitLightEcoPlugin; +import lombok.RequiredArgsConstructor; +import me.clip.placeholderapi.expansion.PlaceholderExpansion; +import org.bukkit.OfflinePlayer; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +@RequiredArgsConstructor +public class PlaceholderAPIExpansion extends PlaceholderExpansion { + private final BukkitLightEcoPlugin plugin; + + @Override + public @NotNull String getIdentifier() { + return "lighteco"; + } + + @Override + public @NotNull String getAuthor() { + return this.plugin.getBootstrap().getLoader().getDescription().getAuthors().toString(); + } + + @Override + public @NotNull String getVersion() { + return this.plugin.getBootstrap().getLoader().getDescription().getVersion(); + } + + @Override + public @Nullable String onRequest(OfflinePlayer player, @NotNull String params) { + return "lighteco"; + } +} diff --git a/bukkit/src/main/resources/plugin.yml b/bukkit/src/main/resources/plugin.yml index 6a70396..dfbae68 100644 --- a/bukkit/src/main/resources/plugin.yml +++ b/bukkit/src/main/resources/plugin.yml @@ -4,4 +4,7 @@ version: ${version} main: dev.xhyrom.lighteco.bukkit.BukkitLightEcoLoader author: ${author} api-version: 1.20 -load: STARTUP \ No newline at end of file +load: STARTUP + +softdepend: + - PlaceholderAPI \ No newline at end of file diff --git a/currency-money/build.gradle.kts b/currency-money/build.gradle.kts index 0b06a06..3f324a7 100644 --- a/currency-money/build.gradle.kts +++ b/currency-money/build.gradle.kts @@ -9,7 +9,9 @@ repositories { dependencies { compileOnly(project(":lighteco-api")) + compileOnly("io.papermc.paper:paper-api:1.20.1-R0.1-SNAPSHOT") + compileOnly("com.github.MilkBowl:VaultAPI:1.7") compileOnly("org.projectlombok:lombok:1.18.28")