Added MiniPlaceholders support

This commit is contained in:
4drian3d 2022-03-18 16:56:36 +00:00
parent 8668feb8d0
commit 962ad1ee41
6 changed files with 94 additions and 1 deletions

View File

@ -25,6 +25,10 @@
<id>codemc-snapshots</id>
<url>https://repo.codemc.io/repository/maven-snapshots/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
@ -40,6 +44,11 @@
<version>1.11-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.4drian3d</groupId>
<artifactId>MiniPlaceholders</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

@ -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()){

View File

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

View File

@ -26,13 +26,18 @@
<id>codemc-repo</id>
<url>https://repo.codemc.org/repository/maven-public/</url>
</repository>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.18.1-R0.1-SNAPSHOT</version>
<version>1.18.2-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
@ -41,6 +46,12 @@
<version>5.6.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.4drian3d</groupId>
<artifactId>MiniPlaceholders</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>

View File

@ -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");
}

View File

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