From 962ad1ee411538dd44b8fc5d2d7b13f885cf82ee Mon Sep 17 00:00:00 2001 From: 4drian3d Date: Fri, 18 Mar 2022 16:56:36 +0000 Subject: [PATCH] Added MiniPlaceholders support --- proxy/pom.xml | 9 +++++ .../proxy/AuthMeVelocityPlugin.java | 4 +++ .../proxy/AuthmePlaceholders.java | 30 ++++++++++++++++ spigot/pom.xml | 13 ++++++- .../spigot/AuthMeVelocityPlugin.java | 4 +++ .../spigot/AuthmePlaceholders.java | 35 +++++++++++++++++++ 6 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthmePlaceholders.java create mode 100644 spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthmePlaceholders.java diff --git a/proxy/pom.xml b/proxy/pom.xml index 9ad9c01..6d3321a 100644 --- a/proxy/pom.xml +++ b/proxy/pom.xml @@ -25,6 +25,10 @@ codemc-snapshots https://repo.codemc.io/repository/maven-snapshots/ + + jitpack.io + https://jitpack.io + @@ -40,6 +44,11 @@ 1.11-SNAPSHOT provided + + com.github.4drian3d + MiniPlaceholders + 1.0.0 + diff --git a/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthMeVelocityPlugin.java b/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthMeVelocityPlugin.java index dafa1e6..4a6402b 100644 --- a/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthMeVelocityPlugin.java +++ b/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthMeVelocityPlugin.java @@ -56,6 +56,10 @@ public class AuthMeVelocityPlugin { proxy.getEventManager().register(this, new FastLoginListener(proxy, api)); } + if(proxy.getPluginManager().isLoaded("miniplaceholders")){ + AuthmePlaceholders.getExpansion(this).register(); + } + logger.info("-- AuthMeVelocity enabled --"); logger.info("AuthServers: {}", config.getAuthServers()); if(config.getToServerOptions().sendToServer()){ diff --git a/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthmePlaceholders.java b/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthmePlaceholders.java new file mode 100644 index 0000000..46c17d1 --- /dev/null +++ b/proxy/src/main/java/com/glyart/authmevelocity/proxy/AuthmePlaceholders.java @@ -0,0 +1,30 @@ +package com.glyart.authmevelocity.proxy; + +import com.velocitypowered.api.proxy.Player; + +import me.dreamerzero.miniplaceholders.api.Expansion; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.minimessage.tag.Tag; + +final class AuthmePlaceholders { + private AuthmePlaceholders(){} + + private static final Component TRUE = Component.text("true", NamedTextColor.GREEN); + private static final Component FALSE = Component.text("false", NamedTextColor.RED); + + static Expansion getExpansion(AuthMeVelocityPlugin plugin){ + return Expansion.builder("authme") + .filter(Player.class) + .audiencePlaceholder("is_logged", (aud, queue, ctx) -> + Tag.selfClosingInserting(plugin.getAPI().isLogged((Player)aud) ? TRUE : FALSE)) + .globalPlaceholder("is_player_logged", (queue, ctx) -> { + String playerName = queue.popOr(() -> "you need to provide a player").value(); + return Tag.selfClosingInserting( + plugin.getProxy().getPlayer(playerName).map(pl -> plugin.getAPI().isLogged(pl)).orElse(false) + ? TRUE + : FALSE); + }) + .build(); + } +} diff --git a/spigot/pom.xml b/spigot/pom.xml index 8384ac8..2b266a5 100644 --- a/spigot/pom.xml +++ b/spigot/pom.xml @@ -26,13 +26,18 @@ codemc-repo https://repo.codemc.org/repository/maven-public/ + + + jitpack.io + https://jitpack.io + io.papermc.paper paper-api - 1.18.1-R0.1-SNAPSHOT + 1.18.2-R0.1-SNAPSHOT provided @@ -41,6 +46,12 @@ 5.6.0-SNAPSHOT provided + + + com.github.4drian3d + MiniPlaceholders + 1.0.0 + diff --git a/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthMeVelocityPlugin.java b/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthMeVelocityPlugin.java index 1b1bb27..8edb0b0 100644 --- a/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthMeVelocityPlugin.java +++ b/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthMeVelocityPlugin.java @@ -16,6 +16,10 @@ public class AuthMeVelocityPlugin extends JavaPlugin { this.getServer().getMessenger().registerOutgoingPluginChannel(this, CHANNEL); this.getServer().getPluginManager().registerEvents(new AuthMeListener(this), this); + if(this.getServer().getPluginManager().isPluginEnabled("MiniPlaceholders")){ + AuthmePlaceholders.getExpansion().register(); + } + this.getSLF4JLogger().info("AuthMeVelocity enabled"); } diff --git a/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthmePlaceholders.java b/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthmePlaceholders.java new file mode 100644 index 0000000..508fa9f --- /dev/null +++ b/spigot/src/main/java/com/glyart/authmevelocity/spigot/AuthmePlaceholders.java @@ -0,0 +1,35 @@ +package com.glyart.authmevelocity.spigot; + +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; + +import fr.xephi.authme.api.v3.AuthMeApi; +import me.dreamerzero.miniplaceholders.api.Expansion; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import net.kyori.adventure.text.minimessage.tag.Tag; + +final class AuthmePlaceholders { + private AuthmePlaceholders(){} + + private static final Component TRUE = Component.text("true", NamedTextColor.GREEN); + private static final Component FALSE = Component.text("false", NamedTextColor.RED); + + static Expansion getExpansion(){ + return Expansion.builder("authme") + .audiencePlaceholder("is_logged", (aud, queue, ctx) -> + Tag.selfClosingInserting(AuthMeApi.getInstance().isAuthenticated((Player)aud) + ? TRUE + : FALSE) + ) + .globalPlaceholder("is_player_logged", (queue, ctx) -> { + String playerName = queue.popOr(() -> "you need to provide a player name").value(); + Player player = Bukkit.getPlayer(playerName); + if(player == null) return Tag.selfClosingInserting(FALSE); + return Tag.selfClosingInserting(AuthMeApi.getInstance().isAuthenticated(player) + ? TRUE + : FALSE); + }) + .build(); + } +}