From ce6aa9430d72f68226896d8ea0dc554eccf9dc13 Mon Sep 17 00:00:00 2001 From: okx-code Date: Fri, 9 Aug 2019 02:17:18 +0100 Subject: [PATCH] 3.5.7-alpha.2 - add %prestige_percent_left/done_formatted% - fix prestige bug - show ranks as completed if at last rank --- build.gradle | 11 ++++++++++- src/main/java/sh/okx/rankup/Rankup.java | 5 +++-- src/main/java/sh/okx/rankup/RankupHelper.java | 9 +++++++-- .../java/sh/okx/rankup/commands/RanksCommand.java | 3 ++- .../sh/okx/rankup/messages/NullMessageBuilder.java | 3 +++ .../sh/okx/rankup/placeholders/Placeholders.java | 5 ++++- .../sh/okx/rankup/placeholders/RankupExpansion.java | 12 ++++++++++-- 7 files changed, 39 insertions(+), 9 deletions(-) diff --git a/build.gradle b/build.gradle index d3a73c2..9c4488e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,10 +1,11 @@ plugins { id 'java' id "io.freefair.lombok" version "3.8.0" + id 'maven-publish' } group 'sh.okx' -version '3.5.7-alpha.1' +version '3.5.7-alpha.2' repositories { mavenCentral() @@ -53,4 +54,12 @@ processResources { from(sourceSets.main.resources.srcDirs) { exclude 'plugin.yml' } +} + +publishing { + publications { + maven(MavenPublication) { + from components.java + } + } } \ No newline at end of file diff --git a/src/main/java/sh/okx/rankup/Rankup.java b/src/main/java/sh/okx/rankup/Rankup.java index e780fff..8dbc0e2 100644 --- a/src/main/java/sh/okx/rankup/Rankup.java +++ b/src/main/java/sh/okx/rankup/Rankup.java @@ -375,7 +375,8 @@ public class Rankup extends JavaPlugin { () -> percentFormat.format(Math.max(0, (requirement.getRemaining(player) / requirement.getValueDouble()) * 100))); replaceRequirements(builder, Variable.PERCENT_DONE, requirement, () -> percentFormat.format(Math.min(100, (1 - (requirement.getRemaining(player) / requirement.getValueDouble())) * 100))); - replaceRequirements(builder, Variable.AMOUNT_DONE, requirement, () -> simpleFormat.format(requirement.getValueDouble() - requirement.getRemaining(player))); + replaceRequirements(builder, Variable.AMOUNT_DONE, requirement, + () -> simpleFormat.format(requirement.getValueDouble() - requirement.getRemaining(player))); } } catch (NumberFormatException ignored) { } @@ -418,6 +419,6 @@ public class Rankup extends JavaPlugin { public boolean isLegacy() { String version = Bukkit.getVersion(); - return !(version.contains("1.13") || version.contains("1.14")); + return !(version.contains("1.13") || version.contains("1.14") || version.contains("1.15")); } } diff --git a/src/main/java/sh/okx/rankup/RankupHelper.java b/src/main/java/sh/okx/rankup/RankupHelper.java index d4dce5d..9f81ce8 100644 --- a/src/main/java/sh/okx/rankup/RankupHelper.java +++ b/src/main/java/sh/okx/rankup/RankupHelper.java @@ -134,7 +134,12 @@ public class RankupHelper { Prestige prestige = plugin.getPrestiges().getByPlayer(player); prestige.applyRequirements(player); - doRankup(player, prestige); + + prestige.runCommands(player); + applyCooldown(player); + + permissions.playerRemoveGroup(null, player, prestige.getFrom()); + permissions.playerAddGroup(null, player, prestige.getTo()); if (prestige.getRank() != null) { permissions.playerRemoveGroup(null, player, prestige.getRank()); @@ -143,7 +148,7 @@ public class RankupHelper { plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PUBLIC) .failIfEmpty() - .replaceRanks(player, prestige,prestige.getNext()) + .replaceRanks(player, prestige, prestige.getNext()) .replaceFromTo(prestige) .broadcast(); plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PRIVATE) diff --git a/src/main/java/sh/okx/rankup/commands/RanksCommand.java b/src/main/java/sh/okx/rankup/commands/RanksCommand.java index 6104ff9..12a7938 100644 --- a/src/main/java/sh/okx/rankup/commands/RanksCommand.java +++ b/src/main/java/sh/okx/rankup/commands/RanksCommand.java @@ -28,7 +28,8 @@ public class RanksCommand implements CommandExecutor { plugin.sendHeaderFooter(sender, playerRank, Message.RANKS_HEADER); - Message message = playerRank == null ? Message.RANKS_INCOMPLETE : Message.RANKS_COMPLETE; + Message message = !(sender instanceof Player && rankups.isLast(plugin.getPermissions(), (Player) sender)) + && playerRank == null ? Message.RANKS_INCOMPLETE : Message.RANKS_COMPLETE; Rank rank = rankups.getFirst(); while (rank != null) { String name = rank.getNext(); diff --git a/src/main/java/sh/okx/rankup/messages/NullMessageBuilder.java b/src/main/java/sh/okx/rankup/messages/NullMessageBuilder.java index 216a20f..1c1668c 100644 --- a/src/main/java/sh/okx/rankup/messages/NullMessageBuilder.java +++ b/src/main/java/sh/okx/rankup/messages/NullMessageBuilder.java @@ -2,6 +2,9 @@ package sh.okx.rankup.messages; import org.bukkit.command.CommandSender; +/** + * A no-op implementation of MessageBuilder + */ public class NullMessageBuilder extends MessageBuilder { NullMessageBuilder() { super(null); diff --git a/src/main/java/sh/okx/rankup/placeholders/Placeholders.java b/src/main/java/sh/okx/rankup/placeholders/Placeholders.java index 31f04be..aefa433 100644 --- a/src/main/java/sh/okx/rankup/placeholders/Placeholders.java +++ b/src/main/java/sh/okx/rankup/placeholders/Placeholders.java @@ -16,6 +16,8 @@ public class Placeholders { private final DecimalFormat percentFormat; @Getter private final DecimalFormat simpleFormat; + @Getter + private RankupExpansion expansion; private boolean registered; public Placeholders(Rankup plugin) { @@ -27,7 +29,8 @@ public class Placeholders { public void register() { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { - new RankupExpansion(plugin, this).register(); + expansion = new RankupExpansion(plugin, this); + expansion.register(); registered = true; } else { registered = false; diff --git a/src/main/java/sh/okx/rankup/placeholders/RankupExpansion.java b/src/main/java/sh/okx/rankup/placeholders/RankupExpansion.java index 9b9b6c3..c3b485c 100644 --- a/src/main/java/sh/okx/rankup/placeholders/RankupExpansion.java +++ b/src/main/java/sh/okx/rankup/placeholders/RankupExpansion.java @@ -88,9 +88,9 @@ public class RankupExpansion extends PlaceholderExpansion { } return orElsePlaceholder(rank, r -> orElsePlaceholder(rank, Rank::getNext, "highest-rank"), "not-in-ladder"); case "money": - return String.valueOf(orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0)); + return String.valueOf(getMoney(rank)); case "money_formatted": - return plugin.formatMoney(orElse(rank, r -> r.getRequirement("money").getValueDouble(), 0D)); + return plugin.formatMoney(getMoney(rank).doubleValue()); case "money_left": return String.valueOf(Math.max(0, orElse(rank, r -> simplify(plugin.getEconomy().getBalance(player) - r.getRequirement("money").getValueDouble()), 0).doubleValue())); case "money_left_formatted": @@ -103,11 +103,19 @@ public class RankupExpansion extends PlaceholderExpansion { return String.valueOf(Math.min(100D, orElse(rank, r -> (plugin.getEconomy().getBalance(player) / r.getRequirement("money").getValueDouble()) * 100, 0).doubleValue())); case "percent_done_formatted": return placeholders.getPercentFormat().format(Math.min(100D, orElse(rank, r -> (plugin.getEconomy().getBalance(player) / r.getRequirement("money").getValueDouble()) * 100, 0).doubleValue())); + case "prestige_percent_left_formatted": + return placeholders.getPercentFormat().format(Math.max(0D, orElse(prestige, r -> (1 - (plugin.getEconomy().getBalance(player) / r.getRequirement("money").getValueDouble())) * 100, 0).doubleValue())); + case "prestige_percent_done_formatted": + return placeholders.getPercentFormat().format(Math.min(100D, orElse(prestige, r -> (plugin.getEconomy().getBalance(player) / r.getRequirement("money").getValueDouble()) * 100, 0).doubleValue())); default: return null; } } + private Number getMoney(Rank rank) { + return orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0); + } + private void requirePrestiging(Prestiges prestiges, String params) { Objects.requireNonNull(prestiges, "Using %rankup_" + params + "% prestige placeholder but prestiging is disabled."); }