add option to disable /ranks, make config clearer

This commit is contained in:
okx-code
2018-08-28 19:38:09 +01:00
parent be5ee90036
commit 3fca80a79b
8 changed files with 34 additions and 34 deletions
+6 -4
View File
@@ -69,9 +69,11 @@ public class Rankup extends JavaPlugin {
}
});
if(config.getBoolean("ranks")) {
getCommand("ranks").setExecutor(new RankListCommand(this));
}
getCommand("rankup").setExecutor(new RankupCommand(this));
getCommand("rankup3").setExecutor(new InfoCommand(this));
getCommand("ranks").setExecutor(new RankListCommand(this));
getServer().getPluginManager().registerEvents(new GuiListener(this), this);
}
@@ -226,7 +228,7 @@ public class Rankup extends JavaPlugin {
} else if (!rank.checkRequirements(player)) { // check if they can afford it
MessageBuilder builder =
getMessage(rank, Message.REQUIREMENTS_NOT_MET)
.replaceAll(player, rank);
.replaceAll(player, rank, rankups.nextRank(rank));
if (economy != null) {
double balance = economy.getBalance(player);
double amount = rank.getRequirement("money").getAmount();
@@ -247,8 +249,8 @@ public class Rankup extends JavaPlugin {
for(Requirement requirement : rank.getRequirements()) {
replaceRequirements(builder, Variable.AMOUNT, requirement, () -> simpleFormat.format(requirement.getAmount()));
replaceRequirements(builder, Variable.AMOUNT_NEEDED, requirement, () -> simpleFormat.format(requirement.getRemaining(player)));
replaceRequirements(builder, Variable.PERCENT_LEFT, requirement, () -> percentFormat.format((requirement.getRemaining(player) / requirement.getAmount()) * 100));
replaceRequirements(builder, Variable.PERCENT_DONE, requirement, () -> percentFormat.format((1-(requirement.getRemaining(player) / requirement.getAmount())) * 100));
replaceRequirements(builder, Variable.PERCENT_LEFT, requirement, () -> percentFormat.format(Math.max(0, (requirement.getRemaining(player) / requirement.getAmount()) * 100)));
replaceRequirements(builder, Variable.PERCENT_DONE, requirement, () -> percentFormat.format(Math.min(100, (1-(requirement.getRemaining(player) / requirement.getAmount())) * 100)));
}
}
@@ -27,15 +27,15 @@ public class RankListCommand implements CommandExecutor {
sendHeaderFooter(sender, playerRank, Message.RANKS_HEADER);
int state = playerRank == null ? 2 : 0;
Message message = playerRank == null ? Message.RANKS_INCOMPLETE : Message.RANKS_COMPLETE;
Rank rank = rankups.getFirstRank();
do {
Rank next = rankups.nextRank(rank);
if(rank.equals(playerRank)) {
sendMessage(sender, 1, rank, next);
state = 2;
sendMessage(sender, Message.RANKS_CURRENT, rank, next);
message = Message.RANKS_COMPLETE;
} else {
sendMessage(sender, state, rank, next);
sendMessage(sender, message, rank, next);
}
rank = next;
} while(!rank.isLastRank());
@@ -55,20 +55,10 @@ public class RankListCommand implements CommandExecutor {
builder.send(sender);
}
private void sendMessage(CommandSender player, int state, Rank oldRank, Rank rank) {
if(state == 0) {
replaceRequirements(plugin.getMessage(oldRank, Message.RANKS_COMPLETE)
.replaceAll(player, oldRank, rank), player, oldRank)
.send(player);
} else if(state == 1) {
replaceRequirements(plugin.getMessage(oldRank, Message.RANKS_CURRENT)
.replaceAll(player, oldRank, rank), player, oldRank)
.send(player);
} else if(state == 2) {
replaceRequirements(plugin.getMessage(oldRank, Message.RANKS_INCOMPLETE)
.replaceAll(player, oldRank, rank), player, oldRank)
.send(player);
}
private void sendMessage(CommandSender player, Message message, Rank oldRank, Rank rank) {
replaceRequirements(plugin.getMessage(oldRank, message)
.replaceAll(player, oldRank, rank), player, oldRank)
.send(player);
}
private MessageBuilder replaceRequirements(MessageBuilder builder, CommandSender sender, Rank rank) {
@@ -53,9 +53,7 @@ public class RankupCommand implements CommandExecutor {
case "text":
confirming.put(player, System.currentTimeMillis());
plugin.getMessage(rank, Message.CONFIRMATION)
.replace(Variable.PLAYER, player.getName())
.replace(Variable.RANK, rank.getRank())
.replace(Variable.RANK_NAME, rank.getName())
.replaceAll(player, rank, rankups.nextRank(rank))
.send(player);
break;
case "gui":