From dae58b8dff14b6b0009d8b97afa052d2d77e09f2 Mon Sep 17 00:00:00 2001 From: Florian CUNY Date: Sat, 23 Nov 2019 14:55:58 +0100 Subject: [PATCH] Added the new top ten placeholders Level_[gamemode]-island-top-name-# -> Level_[gamemode]_top_name_# Level_[gamemode]-island-top-value-# -> Level_[gamemode]_top_value_# --- src/main/java/world/bentobox/level/Level.java | 21 +++++++++++++++++++ .../placeholders/TopTenNamePlaceholder.java | 2 +- .../level/placeholders/TopTenPlaceholder.java | 2 +- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/main/java/world/bentobox/level/Level.java b/src/main/java/world/bentobox/level/Level.java index dd1d086..4710e11 100644 --- a/src/main/java/world/bentobox/level/Level.java +++ b/src/main/java/world/bentobox/level/Level.java @@ -1,5 +1,6 @@ package world.bentobox.level; +import java.util.Collection; import java.util.HashMap; import java.util.Map; import java.util.UUID; @@ -165,6 +166,26 @@ public class Level extends Addon { .map(island -> getIslandLevel(gm.getOverWorld(), island.getOwner())) .map(level -> getLevelPresenter().getLevelString(level)) .orElse("0")); + + // Top Ten + for (int i = 1; i <= 10; i++) { + final int rank = i; + // Value + getPlugin().getPlaceholdersManager().registerPlaceholder(this, + gm.getDescription().getName().toLowerCase() + "_top_value_" + rank, + user -> { + Collection values = getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().values(); + return values.size() < rank ? "" : values.stream().skip(rank).findFirst().map(String::valueOf).orElse(""); + }); + + // Name + getPlugin().getPlaceholdersManager().registerPlaceholder(this, + gm.getDescription().getName().toLowerCase() + "_top_name_" + rank, + user -> { + Collection values = getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().keySet(); + return values.size() < rank ? "" : getPlayers().getName(values.stream().skip(rank).findFirst().orElse(null)); + }); + } } }); diff --git a/src/main/java/world/bentobox/level/placeholders/TopTenNamePlaceholder.java b/src/main/java/world/bentobox/level/placeholders/TopTenNamePlaceholder.java index bd613ab..3da3725 100644 --- a/src/main/java/world/bentobox/level/placeholders/TopTenNamePlaceholder.java +++ b/src/main/java/world/bentobox/level/placeholders/TopTenNamePlaceholder.java @@ -32,7 +32,7 @@ public class TopTenNamePlaceholder implements PlaceholderReplacer { public String onReplace(User user) { level.logWarning("You are using a deprecated placeholder."); level.log("Please replace any occurrence of 'Level_" + gm.getDescription().getName().toLowerCase() + "-island-top-name-#'"); - level.log("by 'Level_" + gm.getDescription().getName().toLowerCase() + "_island_top_name_#'"); + level.log("by 'Level_" + gm.getDescription().getName().toLowerCase() + "_top_name_#'"); Collection values = level.getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().keySet(); return values.size() < i ? "" : level.getPlayers().getName(values.stream().skip(i).findFirst().orElse(null)); } diff --git a/src/main/java/world/bentobox/level/placeholders/TopTenPlaceholder.java b/src/main/java/world/bentobox/level/placeholders/TopTenPlaceholder.java index 0567a41..e68a449 100644 --- a/src/main/java/world/bentobox/level/placeholders/TopTenPlaceholder.java +++ b/src/main/java/world/bentobox/level/placeholders/TopTenPlaceholder.java @@ -32,7 +32,7 @@ public class TopTenPlaceholder implements PlaceholderReplacer { public String onReplace(User user) { level.logWarning("You are using a deprecated placeholder."); level.log("Please replace any occurrence of 'Level_" + gm.getDescription().getName().toLowerCase() + "-island-top-value-#'"); - level.log("by 'Level_" + gm.getDescription().getName().toLowerCase() + "_island_top_value_#'"); + level.log("by 'Level_" + gm.getDescription().getName().toLowerCase() + "_top_value_#'"); Collection values = level.getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().values(); return values.size() < i ? "" : values.stream().skip(i).findFirst().map(String::valueOf).orElse(""); }