3.5-beta.5

Update gradle wrapper
Fix current_prestige and next_prestige placeholders
This commit is contained in:
okx-code
2019-04-15 22:28:38 +01:00
parent 6ee799609c
commit e4ffa0425f
19 changed files with 76 additions and 47 deletions
+4 -3
View File
@@ -1,14 +1,12 @@
plugins {
id 'java'
id 'io.franzbecker.gradle-lombok' version '1.14'
}
group 'sh.okx'
version '3.5-beta.2'
version '3.5-beta.5'
repositories {
mavenCentral()
jcenter()
mavenLocal()
maven {
url 'http://nexus.hc.to/content/repositories/pub_releases'
@@ -28,6 +26,9 @@ repositories {
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT'
Binary file not shown.
+2 -2
View File
@@ -1,6 +1,6 @@
#Tue Aug 21 18:52:26 BST 2018
#Thu Apr 11 23:41:41 GMT+01:00 2019
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-5.3.1-all.zip
+1 -1
View File
@@ -353,7 +353,7 @@ public class Rankup extends JavaPlugin {
public boolean checkRankup(Player player, boolean message) {
Rank rank = rankups.getByPlayer(player);
if (rankups.isLast(permissions, player)) {
getMessage(prestiges == null ? Message.NO_RANKUP : prestiges.getByPlayer(player).isLast() ? Message.NO_RANKUP : Message.MUST_PRESTIGE)
getMessage(prestiges == null ? Message.NO_RANKUP : prestiges.isLast(permissions, player) ? Message.NO_RANKUP : Message.MUST_PRESTIGE)
.failIf(!message)
.replaceRanks(player, rankups.getLast())
.send(player);
@@ -4,6 +4,7 @@ import com.sk89q.worldedit.extension.platform.Actor;
import com.sk89q.worldguard.WorldGuard;
import lombok.RequiredArgsConstructor;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.apache.commons.lang.Validate;
import org.bukkit.entity.Player;
import sh.okx.rankup.Rankup;
import sh.okx.rankup.prestige.Prestige;
@@ -29,14 +30,11 @@ public class RankupExpansion extends PlaceholderExpansion {
Rankups rankups = plugin.getRankups();
Rank rank = rankups.getByPlayer(player);
Rank nextRank = rank == null ? null : rankups.next(rank);
Prestiges prestiges = plugin.getPrestiges();
Prestige prestige = null;
Prestige nextPrestige = null;
if (prestiges != null) {
prestige = prestiges.getByPlayer(player);
nextPrestige = prestiges.next(prestige);
}
if (params.startsWith("requirement_")) {
@@ -59,17 +57,30 @@ public class RankupExpansion extends PlaceholderExpansion {
switch (params) {
case "current_prestige":
return Objects.requireNonNull(prestige, "Using current_prestige placeholder but prestiging is disabled").getRank();
requirePrestiging(prestiges, params);
if (prestiges.isLast(plugin.getPermissions(), player)) {
return prestiges.getLast();
} else if (prestige == null || prestige.getRank() == null) {
return getPlaceholder("no-prestige");
} else {
return prestige.getRank();
}
case "next_prestige":
return orElsePlaceholder(nextPrestige, Prestige::getRank, "highest-rank");
requirePrestiging(prestiges, params);
if (prestiges.isLast(plugin.getPermissions(), player)) {
return getPlaceholder("highest-rank");
}
return orElse(prestige, Prestige::getNext, prestiges.getFirst().getNext());
case "prestige_money":
requirePrestiging(prestiges, params);
return String.valueOf(simplify(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0)));
case "prestige_money_formatted":
requirePrestiging(prestiges, params);
return plugin.formatMoney(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0D));
case "current_rank":
return orElsePlaceholder(rank, Rank::getRank, "not-in-ladder");
case "next_rank":
return orElsePlaceholder(rank, r -> orElsePlaceholder(nextRank, Rank::getRank, "highest-rank"), "not-in-ladder");
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));
case "money_formatted":
@@ -91,6 +102,10 @@ public class RankupExpansion extends PlaceholderExpansion {
}
}
private void requirePrestiging(Prestiges prestiges, String params) {
Objects.requireNonNull(prestiges, "Using %rankup_" + params + "% prestige placeholder but prestiging is disabled.");
}
private String getPlaceholderRequirement(Player player, Rank rank, String requirementName, String params) {
if (rank == null) {
return "";
@@ -2,18 +2,18 @@ package sh.okx.rankup.prestige;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.apache.commons.lang3.Validate;
import lombok.ToString;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import sh.okx.rankup.Rankup;
import sh.okx.rankup.ranks.Rank;
import sh.okx.rankup.requirements.Requirement;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class Prestige extends Rank {
@Getter
private final String from;
@@ -17,6 +17,7 @@ public class Prestiges extends RankList<Prestige> {
return prestige;
}
}
throw new IllegalStateException("No prestige found for first prestige (first prestige is counted as a prestige without a rank set)");
throw new IllegalStateException("No prestige found for first prestige (first prestige is counted as a prestige without a rank set)." +
"Disable prestiges in config.yml if you don't want any.");
}
}
+2 -2
View File
@@ -4,7 +4,7 @@ import lombok.AccessLevel;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.Validate;
import lombok.ToString;
import org.bukkit.Bukkit;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
@@ -13,11 +13,11 @@ import sh.okx.rankup.messages.MessageBuilder;
import sh.okx.rankup.requirements.DeductibleRequirement;
import sh.okx.rankup.requirements.Requirement;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@EqualsAndHashCode
@ToString
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
public class Rank {
@Getter
@@ -19,6 +19,11 @@ public abstract class DeductibleRequirement extends ProgressiveRequirement {
* and has returned true immediately prior to this.
*
* @param player the player to take from
* @param multiplier The multiplier for the value
*/
public abstract void apply(Player player);
public abstract void apply(Player player, double multiplier);
public final void apply(Player player) {
apply(player, 1);
}
}
@@ -9,6 +9,10 @@ public abstract class ProgressiveRequirement extends Requirement {
super(plugin, name);
}
public ProgressiveRequirement(Rankup plugin, String name, boolean subRequirement) {
super(plugin, name, subRequirement);
}
protected ProgressiveRequirement(Requirement clone) {
super(clone);
}
@@ -19,8 +23,12 @@ public abstract class ProgressiveRequirement extends Requirement {
}
@Override
public double getRemaining(Player player) {
return Math.max(0, getValueDouble() - getProgress(player));
public final double getRemaining(Player player) {
return getRemaining(player, 1);
}
public double getRemaining(Player player, double multiplier) {
return Math.max(0, (multiplier * getValueDouble()) - getProgress(player));
}
public abstract double getProgress(Player player);
@@ -12,10 +12,16 @@ public abstract class Requirement implements Cloneable {
private String value;
@Getter
private String sub;
private boolean subRequirement;
public Requirement(Rankup plugin, String name) {
this(plugin, name, false);
}
public Requirement(Rankup plugin, String name, boolean subRequirement) {
this.plugin = plugin;
this.name = name;
this.subRequirement = subRequirement;
}
protected Requirement(Requirement clone) {
@@ -71,8 +77,8 @@ public abstract class Requirement implements Cloneable {
return check(player) ? 0 : 1;
}
public boolean hasSubRequirement() {
return false;
public final boolean hasSubRequirement() {
return subRequirement;
}
public abstract Requirement clone();
@@ -9,7 +9,7 @@ import sh.okx.rankup.requirements.Requirement;
public class BlockBreakRequirement extends ProgressiveRequirement {
public BlockBreakRequirement(Rankup plugin) {
super(plugin, "block-break");
super(plugin, "block-break", true);
}
@Override
@@ -30,9 +30,4 @@ public class BlockBreakRequirement extends ProgressiveRequirement {
public Requirement clone() {
return new BlockBreakRequirement(this);
}
@Override
public boolean hasSubRequirement() {
return true;
}
}
@@ -9,7 +9,7 @@ import sh.okx.rankup.requirements.Requirement;
public class MobKillsRequirement extends ProgressiveRequirement {
public MobKillsRequirement(Rankup plugin) {
super(plugin, "mob-kills");
super(plugin, "mob-kills", true);
}
protected MobKillsRequirement(Requirement clone) {
@@ -25,9 +25,4 @@ public class MobKillsRequirement extends ProgressiveRequirement {
public Requirement clone() {
return new MobKillsRequirement(this);
}
@Override
public boolean hasSubRequirement() {
return true;
}
}
@@ -16,9 +16,9 @@ public class MoneyRequirement extends DeductibleRequirement {
}
@Override
public void apply(Player player) {
public void apply(Player player, double multiplier) {
Economy economy = plugin.getEconomy();
economy.withdrawPlayer(player, getValueDouble());
economy.withdrawPlayer(player, getValueDouble() * multiplier);
}
@Override
@@ -15,7 +15,11 @@ public class WorldRequirement extends Requirement {
@Override
public boolean check(Player player) {
return player.getWorld().getName().equalsIgnoreCase(getValueString());
String[] worlds = getValuesString();
for (String world : worlds) {
return player.getWorld().getName().equalsIgnoreCase(world);
}
return false;
}
@Override
@@ -15,8 +15,8 @@ public class XpLevelRequirement extends DeductibleRequirement {
}
@Override
public void apply(Player player) {
player.setLevel(player.getLevel() - getValueInt());
public void apply(Player player, double multiplier) {
player.setLevel(player.getLevel() - (int) Math.round(getValueInt() * multiplier));
}
@Override
@@ -7,7 +7,7 @@ import sh.okx.rankup.requirements.ProgressiveRequirement;
public class McMMOSkillRequirement extends ProgressiveRequirement {
public McMMOSkillRequirement(Rankup plugin) {
super(plugin, "mcmmo");
super(plugin, "mcmmo", true);
}
protected McMMOSkillRequirement(McMMOSkillRequirement clone) {
@@ -19,11 +19,6 @@ public class McMMOSkillRequirement extends ProgressiveRequirement {
return McMMOSkillUtil.getInstance().getSkillLevel(player, getValueString());
}
@Override
public boolean hasSubRequirement() {
return true;
}
@Override
public Requirement clone() {
return new McMMOSkillRequirement(this);
+5 -1
View File
@@ -61,6 +61,8 @@ text:
# confirm by typing /rankup again
timeout: 10
# placeholders:
# https://github.com/okx-code/Rankup3/wiki/PAPI-Placeholders
placeholders:
# format for money. for more information, see
# https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html
@@ -70,7 +72,9 @@ placeholders:
simple-format: "#.##"
# used for current_rank and next_rank placeholders when a player is not in anything in rankups.yml
not-in-ladder: "None"
# used in next_rank placeholders when there is no rankup
# used in the current_prestige placeholders when a player hasn't prestiged yet
no-prestige: "None"
# used in the next_rank and next_prestige placeholders when there is no rankup/prestige
highest-rank: "None"
# what to shorten money by.
+1 -1
View File
@@ -1,5 +1,5 @@
name: Rankup
version: 3.5-beta.2
version: 3.5-beta.5
main: sh.okx.rankup.Rankup
author: Okx
depend: [Vault]