3.5-beta.5
Update gradle wrapper Fix current_prestige and next_prestige placeholders
This commit is contained in:
+4
-3
@@ -1,14 +1,12 @@
|
|||||||
plugins {
|
plugins {
|
||||||
id 'java'
|
id 'java'
|
||||||
id 'io.franzbecker.gradle-lombok' version '1.14'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
group 'sh.okx'
|
group 'sh.okx'
|
||||||
version '3.5-beta.2'
|
version '3.5-beta.5'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
jcenter()
|
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
maven {
|
maven {
|
||||||
url 'http://nexus.hc.to/content/repositories/pub_releases'
|
url 'http://nexus.hc.to/content/repositories/pub_releases'
|
||||||
@@ -28,6 +26,9 @@ repositories {
|
|||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
compileOnly 'org.projectlombok:lombok:1.18.6'
|
||||||
|
annotationProcessor 'org.projectlombok:lombok:1.18.6'
|
||||||
|
|
||||||
testCompile group: 'junit', name: 'junit', version: '4.12'
|
testCompile group: 'junit', name: 'junit', version: '4.12'
|
||||||
compile 'org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT'
|
compile 'org.spigotmc:spigot-api:1.13.2-R0.1-SNAPSHOT'
|
||||||
|
|
||||||
|
|||||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -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
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
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
|
||||||
|
|||||||
@@ -353,7 +353,7 @@ public class Rankup extends JavaPlugin {
|
|||||||
public boolean checkRankup(Player player, boolean message) {
|
public boolean checkRankup(Player player, boolean message) {
|
||||||
Rank rank = rankups.getByPlayer(player);
|
Rank rank = rankups.getByPlayer(player);
|
||||||
if (rankups.isLast(permissions, 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)
|
.failIf(!message)
|
||||||
.replaceRanks(player, rankups.getLast())
|
.replaceRanks(player, rankups.getLast())
|
||||||
.send(player);
|
.send(player);
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.sk89q.worldedit.extension.platform.Actor;
|
|||||||
import com.sk89q.worldguard.WorldGuard;
|
import com.sk89q.worldguard.WorldGuard;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
|
||||||
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import sh.okx.rankup.Rankup;
|
import sh.okx.rankup.Rankup;
|
||||||
import sh.okx.rankup.prestige.Prestige;
|
import sh.okx.rankup.prestige.Prestige;
|
||||||
@@ -29,14 +30,11 @@ public class RankupExpansion extends PlaceholderExpansion {
|
|||||||
|
|
||||||
Rankups rankups = plugin.getRankups();
|
Rankups rankups = plugin.getRankups();
|
||||||
Rank rank = rankups.getByPlayer(player);
|
Rank rank = rankups.getByPlayer(player);
|
||||||
Rank nextRank = rank == null ? null : rankups.next(rank);
|
|
||||||
|
|
||||||
Prestiges prestiges = plugin.getPrestiges();
|
Prestiges prestiges = plugin.getPrestiges();
|
||||||
Prestige prestige = null;
|
Prestige prestige = null;
|
||||||
Prestige nextPrestige = null;
|
|
||||||
if (prestiges != null) {
|
if (prestiges != null) {
|
||||||
prestige = prestiges.getByPlayer(player);
|
prestige = prestiges.getByPlayer(player);
|
||||||
nextPrestige = prestiges.next(prestige);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (params.startsWith("requirement_")) {
|
if (params.startsWith("requirement_")) {
|
||||||
@@ -59,17 +57,30 @@ public class RankupExpansion extends PlaceholderExpansion {
|
|||||||
|
|
||||||
switch (params) {
|
switch (params) {
|
||||||
case "current_prestige":
|
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":
|
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":
|
case "prestige_money":
|
||||||
|
requirePrestiging(prestiges, params);
|
||||||
return String.valueOf(simplify(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0)));
|
return String.valueOf(simplify(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0)));
|
||||||
case "prestige_money_formatted":
|
case "prestige_money_formatted":
|
||||||
|
requirePrestiging(prestiges, params);
|
||||||
return plugin.formatMoney(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0D));
|
return plugin.formatMoney(orElse(prestige, r -> r.isIn(player) ? r.getRequirement("money").getValueDouble() : 0, 0D));
|
||||||
case "current_rank":
|
case "current_rank":
|
||||||
return orElsePlaceholder(rank, Rank::getRank, "not-in-ladder");
|
return orElsePlaceholder(rank, Rank::getRank, "not-in-ladder");
|
||||||
case "next_rank":
|
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":
|
case "money":
|
||||||
return String.valueOf(orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0));
|
return String.valueOf(orElse(rank, r -> simplify(r.getRequirement("money").getValueDouble()), 0));
|
||||||
case "money_formatted":
|
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) {
|
private String getPlaceholderRequirement(Player player, Rank rank, String requirementName, String params) {
|
||||||
if (rank == null) {
|
if (rank == null) {
|
||||||
return "";
|
return "";
|
||||||
|
|||||||
@@ -2,18 +2,18 @@ package sh.okx.rankup.prestige;
|
|||||||
|
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.apache.commons.lang3.Validate;
|
import lombok.ToString;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import sh.okx.rankup.Rankup;
|
import sh.okx.rankup.Rankup;
|
||||||
import sh.okx.rankup.ranks.Rank;
|
import sh.okx.rankup.ranks.Rank;
|
||||||
import sh.okx.rankup.requirements.Requirement;
|
import sh.okx.rankup.requirements.Requirement;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
public class Prestige extends Rank {
|
public class Prestige extends Rank {
|
||||||
@Getter
|
@Getter
|
||||||
private final String from;
|
private final String from;
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ public class Prestiges extends RankList<Prestige> {
|
|||||||
return 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.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import lombok.AccessLevel;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.lang3.Validate;
|
import lombok.ToString;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
import org.bukkit.entity.Player;
|
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.DeductibleRequirement;
|
||||||
import sh.okx.rankup.requirements.Requirement;
|
import sh.okx.rankup.requirements.Requirement;
|
||||||
|
|
||||||
import java.util.HashSet;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@EqualsAndHashCode
|
@EqualsAndHashCode
|
||||||
|
@ToString
|
||||||
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
|
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
|
||||||
public class Rank {
|
public class Rank {
|
||||||
@Getter
|
@Getter
|
||||||
|
|||||||
@@ -19,6 +19,11 @@ public abstract class DeductibleRequirement extends ProgressiveRequirement {
|
|||||||
* and has returned true immediately prior to this.
|
* and has returned true immediately prior to this.
|
||||||
*
|
*
|
||||||
* @param player the player to take from
|
* @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);
|
super(plugin, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ProgressiveRequirement(Rankup plugin, String name, boolean subRequirement) {
|
||||||
|
super(plugin, name, subRequirement);
|
||||||
|
}
|
||||||
|
|
||||||
protected ProgressiveRequirement(Requirement clone) {
|
protected ProgressiveRequirement(Requirement clone) {
|
||||||
super(clone);
|
super(clone);
|
||||||
}
|
}
|
||||||
@@ -19,8 +23,12 @@ public abstract class ProgressiveRequirement extends Requirement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public double getRemaining(Player player) {
|
public final double getRemaining(Player player) {
|
||||||
return Math.max(0, getValueDouble() - getProgress(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);
|
public abstract double getProgress(Player player);
|
||||||
|
|||||||
@@ -12,10 +12,16 @@ public abstract class Requirement implements Cloneable {
|
|||||||
private String value;
|
private String value;
|
||||||
@Getter
|
@Getter
|
||||||
private String sub;
|
private String sub;
|
||||||
|
private boolean subRequirement;
|
||||||
|
|
||||||
public Requirement(Rankup plugin, String name) {
|
public Requirement(Rankup plugin, String name) {
|
||||||
|
this(plugin, name, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Requirement(Rankup plugin, String name, boolean subRequirement) {
|
||||||
this.plugin = plugin;
|
this.plugin = plugin;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
|
this.subRequirement = subRequirement;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Requirement(Requirement clone) {
|
protected Requirement(Requirement clone) {
|
||||||
@@ -71,8 +77,8 @@ public abstract class Requirement implements Cloneable {
|
|||||||
return check(player) ? 0 : 1;
|
return check(player) ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasSubRequirement() {
|
public final boolean hasSubRequirement() {
|
||||||
return false;
|
return subRequirement;
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract Requirement clone();
|
public abstract Requirement clone();
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import sh.okx.rankup.requirements.Requirement;
|
|||||||
|
|
||||||
public class BlockBreakRequirement extends ProgressiveRequirement {
|
public class BlockBreakRequirement extends ProgressiveRequirement {
|
||||||
public BlockBreakRequirement(Rankup plugin) {
|
public BlockBreakRequirement(Rankup plugin) {
|
||||||
super(plugin, "block-break");
|
super(plugin, "block-break", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -30,9 +30,4 @@ public class BlockBreakRequirement extends ProgressiveRequirement {
|
|||||||
public Requirement clone() {
|
public Requirement clone() {
|
||||||
return new BlockBreakRequirement(this);
|
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 class MobKillsRequirement extends ProgressiveRequirement {
|
||||||
public MobKillsRequirement(Rankup plugin) {
|
public MobKillsRequirement(Rankup plugin) {
|
||||||
super(plugin, "mob-kills");
|
super(plugin, "mob-kills", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected MobKillsRequirement(Requirement clone) {
|
protected MobKillsRequirement(Requirement clone) {
|
||||||
@@ -25,9 +25,4 @@ public class MobKillsRequirement extends ProgressiveRequirement {
|
|||||||
public Requirement clone() {
|
public Requirement clone() {
|
||||||
return new MobKillsRequirement(this);
|
return new MobKillsRequirement(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasSubRequirement() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,9 +16,9 @@ public class MoneyRequirement extends DeductibleRequirement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void apply(Player player) {
|
public void apply(Player player, double multiplier) {
|
||||||
Economy economy = plugin.getEconomy();
|
Economy economy = plugin.getEconomy();
|
||||||
economy.withdrawPlayer(player, getValueDouble());
|
economy.withdrawPlayer(player, getValueDouble() * multiplier);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -15,7 +15,11 @@ public class WorldRequirement extends Requirement {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean check(Player player) {
|
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
|
@Override
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ public class XpLevelRequirement extends DeductibleRequirement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void apply(Player player) {
|
public void apply(Player player, double multiplier) {
|
||||||
player.setLevel(player.getLevel() - getValueInt());
|
player.setLevel(player.getLevel() - (int) Math.round(getValueInt() * multiplier));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
-6
@@ -7,7 +7,7 @@ import sh.okx.rankup.requirements.ProgressiveRequirement;
|
|||||||
|
|
||||||
public class McMMOSkillRequirement extends ProgressiveRequirement {
|
public class McMMOSkillRequirement extends ProgressiveRequirement {
|
||||||
public McMMOSkillRequirement(Rankup plugin) {
|
public McMMOSkillRequirement(Rankup plugin) {
|
||||||
super(plugin, "mcmmo");
|
super(plugin, "mcmmo", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected McMMOSkillRequirement(McMMOSkillRequirement clone) {
|
protected McMMOSkillRequirement(McMMOSkillRequirement clone) {
|
||||||
@@ -19,11 +19,6 @@ public class McMMOSkillRequirement extends ProgressiveRequirement {
|
|||||||
return McMMOSkillUtil.getInstance().getSkillLevel(player, getValueString());
|
return McMMOSkillUtil.getInstance().getSkillLevel(player, getValueString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean hasSubRequirement() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Requirement clone() {
|
public Requirement clone() {
|
||||||
return new McMMOSkillRequirement(this);
|
return new McMMOSkillRequirement(this);
|
||||||
|
|||||||
@@ -61,6 +61,8 @@ text:
|
|||||||
# confirm by typing /rankup again
|
# confirm by typing /rankup again
|
||||||
timeout: 10
|
timeout: 10
|
||||||
|
|
||||||
|
# placeholders:
|
||||||
|
# https://github.com/okx-code/Rankup3/wiki/PAPI-Placeholders
|
||||||
placeholders:
|
placeholders:
|
||||||
# format for money. for more information, see
|
# format for money. for more information, see
|
||||||
# https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html
|
# https://docs.oracle.com/javase/8/docs/api/java/text/DecimalFormat.html
|
||||||
@@ -70,7 +72,9 @@ placeholders:
|
|||||||
simple-format: "#.##"
|
simple-format: "#.##"
|
||||||
# used for current_rank and next_rank placeholders when a player is not in anything in rankups.yml
|
# used for current_rank and next_rank placeholders when a player is not in anything in rankups.yml
|
||||||
not-in-ladder: "None"
|
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"
|
highest-rank: "None"
|
||||||
|
|
||||||
# what to shorten money by.
|
# what to shorten money by.
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: Rankup
|
name: Rankup
|
||||||
version: 3.5-beta.2
|
version: 3.5-beta.5
|
||||||
main: sh.okx.rankup.Rankup
|
main: sh.okx.rankup.Rankup
|
||||||
author: Okx
|
author: Okx
|
||||||
depend: [Vault]
|
depend: [Vault]
|
||||||
|
|||||||
Reference in New Issue
Block a user