forked from Upstream/Velocitab
refactor: require PPB for PAPI placeholder fallback, add setting
This commit is contained in:
parent
65e93781eb
commit
345ce7fa8a
@ -51,17 +51,21 @@ public enum Placeholder {
|
|||||||
USERNAME_LOWER((plugin, player) -> player.getCustomName().orElse(player.getPlayer().getUsername()).toLowerCase()),
|
USERNAME_LOWER((plugin, player) -> player.getCustomName().orElse(player.getPlayer().getUsername()).toLowerCase()),
|
||||||
SERVER((plugin, player) -> player.getServerDisplayName(plugin)),
|
SERVER((plugin, player) -> player.getServerDisplayName(plugin)),
|
||||||
PING((plugin, player) -> Long.toString(player.getPlayer().getPing())),
|
PING((plugin, player) -> Long.toString(player.getPlayer().getPing())),
|
||||||
PREFIX((plugin, player) -> player.getRole().getPrefix().orElse("%luckperms_prefix%")),
|
PREFIX((plugin, player) -> player.getRole().getPrefix()
|
||||||
SUFFIX((plugin, player) -> player.getRole().getSuffix().orElse("%luckperms_suffix%")),
|
.orElse(getPlaceholderFallback(plugin, "%luckperms_prefix%"))),
|
||||||
ROLE((plugin, player) -> player.getRole().getName().orElse("")),
|
SUFFIX((plugin, player) -> player.getRole().getSuffix()
|
||||||
ROLE_DISPLAY_NAME((plugin, player) -> player.getRole().getDisplayName().orElse("")),
|
.orElse(getPlaceholderFallback(plugin, "%luckperms_suffix%"))),
|
||||||
|
ROLE((plugin, player) -> player.getRole().getName()
|
||||||
|
.orElse(getPlaceholderFallback(plugin, "%luckperms_primary_group_name%"))),
|
||||||
|
ROLE_DISPLAY_NAME((plugin, player) -> player.getRole().getDisplayName()
|
||||||
|
.orElse(getPlaceholderFallback(plugin, "%luckperms_primary_group_name%"))),
|
||||||
ROLE_WEIGHT((plugin, player) -> player.getRoleWeightString()),
|
ROLE_WEIGHT((plugin, player) -> player.getRoleWeightString()),
|
||||||
SERVER_GROUP((plugin, player) -> player.getGroup().name()),
|
SERVER_GROUP((plugin, player) -> player.getGroup().name()),
|
||||||
SERVER_GROUP_INDEX((plugin, player) -> Integer.toString(player.getServerGroupPosition(plugin))),
|
SERVER_GROUP_INDEX((plugin, player) -> Integer.toString(player.getServerGroupPosition(plugin))),
|
||||||
DEBUG_TEAM_NAME((plugin, player) -> plugin.getFormatter().escape(player.getLastTeamName().orElse(""))),
|
DEBUG_TEAM_NAME((plugin, player) -> plugin.getFormatter().escape(player.getLastTeamName().orElse(""))),
|
||||||
LUCKPERMS_META_((param, plugin, player) -> plugin.getLuckPermsHook()
|
LUCKPERMS_META_((param, plugin, player) -> plugin.getLuckPermsHook()
|
||||||
.map(hook -> hook.getMeta(player.getPlayer(), param))
|
.map(hook -> hook.getMeta(player.getPlayer(), param))
|
||||||
.orElse("%luckperms_meta_" + param + "%"));
|
.orElse(getPlaceholderFallback(plugin, "%luckperms_meta_" + param + "%")));
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function to replace placeholders with a real value
|
* Function to replace placeholders with a real value
|
||||||
@ -91,6 +95,14 @@ public enum Placeholder {
|
|||||||
.thenApply(v -> new Nametag(v[0], v.length > 1 ? v[1] : ""));
|
.thenApply(v -> new Nametag(v[0], v.length > 1 ? v[1] : ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static String getPlaceholderFallback(@NotNull Velocitab plugin, @NotNull String fallback) {
|
||||||
|
if (plugin.getPAPIProxyBridgeHook().isPresent() && plugin.getSettings().isFallbackToPapiIfPlaceholderBlank()) {
|
||||||
|
return fallback;
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
public static CompletableFuture<String> replace(@NotNull String format, @NotNull Velocitab plugin,
|
public static CompletableFuture<String> replace(@NotNull String format, @NotNull Velocitab plugin,
|
||||||
@NotNull TabPlayer player) {
|
@NotNull TabPlayer player) {
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ import java.util.Map;
|
|||||||
@Getter
|
@Getter
|
||||||
@Configuration
|
@Configuration
|
||||||
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
@NoArgsConstructor(access = AccessLevel.PRIVATE)
|
||||||
public class Settings implements ConfigValidator{
|
public class Settings implements ConfigValidator {
|
||||||
|
|
||||||
public static final String CONFIG_HEADER = """
|
public static final String CONFIG_HEADER = """
|
||||||
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
|
||||||
@ -80,6 +80,10 @@ public class Settings implements ConfigValidator{
|
|||||||
+ "\nTurn this off if you're using scoreboard teams on backend servers.")
|
+ "\nTurn this off if you're using scoreboard teams on backend servers.")
|
||||||
private boolean sendScoreboardPackets = true;
|
private boolean sendScoreboardPackets = true;
|
||||||
|
|
||||||
|
@Comment("If built-in placeholders return a blank string, fallback to Placeholder API equivalents.\n"
|
||||||
|
+ "For example, if %prefix% returns a blank string, use %luckperms_prefix%. Requires PAPIProxyBridge.")
|
||||||
|
private boolean fallbackToPapiIfPlaceholderBlank = false;
|
||||||
|
|
||||||
@Comment("Whether to sort players in the TAB list.")
|
@Comment("Whether to sort players in the TAB list.")
|
||||||
private boolean sortPlayers = true;
|
private boolean sortPlayers = true;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user