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();
+ }
+}