Added top ten placeholders

This commit is contained in:
tastybento 2019-02-02 21:43:27 -08:00
parent d4e1bbf0bd
commit 97fb434244
4 changed files with 88 additions and 2 deletions

View File

@ -15,10 +15,12 @@ import world.bentobox.level.commands.admin.AdminTopCommand;
import world.bentobox.level.commands.island.IslandLevelCommand; import world.bentobox.level.commands.island.IslandLevelCommand;
import world.bentobox.level.commands.island.IslandTopCommand; import world.bentobox.level.commands.island.IslandTopCommand;
import world.bentobox.level.config.Settings; import world.bentobox.level.config.Settings;
import world.bentobox.level.listeners.JoinLeaveListener;
import world.bentobox.level.listeners.IslandTeamListeners; import world.bentobox.level.listeners.IslandTeamListeners;
import world.bentobox.level.listeners.JoinLeaveListener;
import world.bentobox.level.objects.LevelsData; import world.bentobox.level.objects.LevelsData;
import world.bentobox.level.placeholders.LevelPlaceholder; import world.bentobox.level.placeholders.LevelPlaceholder;
import world.bentobox.level.placeholders.TopTenNamePlaceholder;
import world.bentobox.level.placeholders.TopTenPlaceholder;
import world.bentobox.level.requests.LevelRequestHandler; import world.bentobox.level.requests.LevelRequestHandler;
/** /**
@ -129,6 +131,11 @@ public class Level extends Addon {
// Register placeholders // Register placeholders
if (getPlugin().getPlaceholdersManager() != null) { if (getPlugin().getPlaceholdersManager() != null) {
getPlugin().getPlaceholdersManager().registerPlaceholder(this, "island-level", new LevelPlaceholder(this, gm)); getPlugin().getPlaceholdersManager().registerPlaceholder(this, "island-level", new LevelPlaceholder(this, gm));
// Top Ten
for (int i = 1; i < 11; i++) {
getPlugin().getPlaceholdersManager().registerPlaceholder(this, "island-level-top-value-" + i, new TopTenPlaceholder(this, gm, i));
getPlugin().getPlaceholdersManager().registerPlaceholder(this, "island-level-top-name-" + i, new TopTenNamePlaceholder(this, gm, i));
}
} }
}); });

View File

@ -19,7 +19,8 @@ public class LevelPlaceholder implements PlaceholderReplacer {
/** /**
* Provides placeholder support * Provides placeholder support
* @param gm * @param addon - Level addon
* @param gm - Game mode
*/ */
public LevelPlaceholder(Level addon, GameModeAddon gm) { public LevelPlaceholder(Level addon, GameModeAddon gm) {
this.addon = addon; this.addon = addon;

View File

@ -0,0 +1,39 @@
/**
*
*/
package world.bentobox.level.placeholders;
import java.util.Collection;
import java.util.UUID;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.placeholders.PlaceholderReplacer;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.level.Level;
/**
* @author tastybento
*
*/
public class TopTenNamePlaceholder implements PlaceholderReplacer {
private final Level level;
private final GameModeAddon gm;
private final int i;
public TopTenNamePlaceholder(Level level, GameModeAddon gm, int i) {
this.level = level;
this.gm = gm;
this.i = i - 1;
}
/* (non-Javadoc)
* @see world.bentobox.bentobox.api.placeholders.PlaceholderReplacer#onReplace(world.bentobox.bentobox.api.user.User)
*/
@Override
public String onReplace(User user) {
Collection<UUID> values = level.getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().keySet();
return values.size() < i ? "" : level.getPlayers().getName(values.stream().skip(i).findFirst().orElse(null));
}
}

View File

@ -0,0 +1,39 @@
/**
*
*/
package world.bentobox.level.placeholders;
import java.util.Collection;
import world.bentobox.bentobox.api.addons.GameModeAddon;
import world.bentobox.bentobox.api.placeholders.PlaceholderReplacer;
import world.bentobox.bentobox.api.user.User;
import world.bentobox.level.Level;
/**
* Provides the level values to placeholders
* @author tastybento
*
*/
public class TopTenPlaceholder implements PlaceholderReplacer {
private final Level level;
private final GameModeAddon gm;
private final int i;
public TopTenPlaceholder(Level level, GameModeAddon gm, int i) {
this.level = level;
this.gm = gm;
this.i = i - 1;
}
/* (non-Javadoc)
* @see world.bentobox.bentobox.api.placeholders.PlaceholderReplacer#onReplace(world.bentobox.bentobox.api.user.User)
*/
@Override
public String onReplace(User user) {
Collection<Long> values = level.getTopTen().getTopTenList(gm.getOverWorld()).getTopTen().values();
return values.size() < i ? "" : values.stream().skip(i).findFirst().map(String::valueOf).orElse("");
}
}