3.5.7-alpha.2

- add %prestige_percent_left/done_formatted%
- fix prestige bug
- show ranks as completed if at last rank
This commit is contained in:
okx-code
2019-08-09 02:17:18 +01:00
parent 2cfa96cbb5
commit ce6aa9430d
7 changed files with 39 additions and 9 deletions
+10 -1
View File
@@ -1,10 +1,11 @@
plugins { plugins {
id 'java' id 'java'
id "io.freefair.lombok" version "3.8.0" id "io.freefair.lombok" version "3.8.0"
id 'maven-publish'
} }
group 'sh.okx' group 'sh.okx'
version '3.5.7-alpha.1' version '3.5.7-alpha.2'
repositories { repositories {
mavenCentral() mavenCentral()
@@ -53,4 +54,12 @@ processResources {
from(sourceSets.main.resources.srcDirs) { from(sourceSets.main.resources.srcDirs) {
exclude 'plugin.yml' exclude 'plugin.yml'
} }
}
publishing {
publications {
maven(MavenPublication) {
from components.java
}
}
} }
+3 -2
View File
@@ -375,7 +375,8 @@ public class Rankup extends JavaPlugin {
() -> percentFormat.format(Math.max(0, (requirement.getRemaining(player) / requirement.getValueDouble()) * 100))); () -> percentFormat.format(Math.max(0, (requirement.getRemaining(player) / requirement.getValueDouble()) * 100)));
replaceRequirements(builder, Variable.PERCENT_DONE, requirement, replaceRequirements(builder, Variable.PERCENT_DONE, requirement,
() -> percentFormat.format(Math.min(100, (1 - (requirement.getRemaining(player) / requirement.getValueDouble())) * 100))); () -> 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) { } catch (NumberFormatException ignored) {
} }
@@ -418,6 +419,6 @@ public class Rankup extends JavaPlugin {
public boolean isLegacy() { public boolean isLegacy() {
String version = Bukkit.getVersion(); 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"));
} }
} }
@@ -134,7 +134,12 @@ public class RankupHelper {
Prestige prestige = plugin.getPrestiges().getByPlayer(player); Prestige prestige = plugin.getPrestiges().getByPlayer(player);
prestige.applyRequirements(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) { if (prestige.getRank() != null) {
permissions.playerRemoveGroup(null, player, prestige.getRank()); permissions.playerRemoveGroup(null, player, prestige.getRank());
@@ -143,7 +148,7 @@ public class RankupHelper {
plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PUBLIC) plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PUBLIC)
.failIfEmpty() .failIfEmpty()
.replaceRanks(player, prestige,prestige.getNext()) .replaceRanks(player, prestige, prestige.getNext())
.replaceFromTo(prestige) .replaceFromTo(prestige)
.broadcast(); .broadcast();
plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PRIVATE) plugin.getMessage(prestige, Message.PRESTIGE_SUCCESS_PRIVATE)
@@ -28,7 +28,8 @@ public class RanksCommand implements CommandExecutor {
plugin.sendHeaderFooter(sender, playerRank, Message.RANKS_HEADER); 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(); Rank rank = rankups.getFirst();
while (rank != null) { while (rank != null) {
String name = rank.getNext(); String name = rank.getNext();
@@ -2,6 +2,9 @@ package sh.okx.rankup.messages;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
/**
* A no-op implementation of MessageBuilder
*/
public class NullMessageBuilder extends MessageBuilder { public class NullMessageBuilder extends MessageBuilder {
NullMessageBuilder() { NullMessageBuilder() {
super(null); super(null);
@@ -16,6 +16,8 @@ public class Placeholders {
private final DecimalFormat percentFormat; private final DecimalFormat percentFormat;
@Getter @Getter
private final DecimalFormat simpleFormat; private final DecimalFormat simpleFormat;
@Getter
private RankupExpansion expansion;
private boolean registered; private boolean registered;
public Placeholders(Rankup plugin) { public Placeholders(Rankup plugin) {
@@ -27,7 +29,8 @@ public class Placeholders {
public void register() { public void register() {
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
new RankupExpansion(plugin, this).register(); expansion = new RankupExpansion(plugin, this);
expansion.register();
registered = true; registered = true;
} else { } else {
registered = false; registered = false;
@@ -88,9 +88,9 @@ public class RankupExpansion extends PlaceholderExpansion {
} }
return orElsePlaceholder(rank, r -> orElsePlaceholder(rank, Rank::getNext, "highest-rank"), "not-in-ladder"); return orElsePlaceholder(rank, r -> orElsePlaceholder(rank, Rank::getNext, "highest-rank"), "not-in-ladder");
case "money": case "money":
return String.valueOf(orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0)); return String.valueOf(getMoney(rank));
case "money_formatted": case "money_formatted":
return plugin.formatMoney(orElse(rank, r -> r.getRequirement("money").getValueDouble(), 0D)); return plugin.formatMoney(getMoney(rank).doubleValue());
case "money_left": case "money_left":
return String.valueOf(Math.max(0, orElse(rank, r -> simplify(plugin.getEconomy().getBalance(player) - r.getRequirement("money").getValueDouble()), 0).doubleValue())); return String.valueOf(Math.max(0, orElse(rank, r -> simplify(plugin.getEconomy().getBalance(player) - r.getRequirement("money").getValueDouble()), 0).doubleValue()));
case "money_left_formatted": 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())); return String.valueOf(Math.min(100D, orElse(rank, r -> (plugin.getEconomy().getBalance(player) / r.getRequirement("money").getValueDouble()) * 100, 0).doubleValue()));
case "percent_done_formatted": 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())); 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: default:
return null; return null;
} }
} }
private Number getMoney(Rank rank) {
return orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0);
}
private void requirePrestiging(Prestiges prestiges, String params) { private void requirePrestiging(Prestiges prestiges, String params) {
Objects.requireNonNull(prestiges, "Using %rankup_" + params + "% prestige placeholder but prestiging is disabled."); Objects.requireNonNull(prestiges, "Using %rankup_" + params + "% prestige placeholder but prestiging is disabled.");
} }