Ordered requirements and name placeholders
This commit is contained in:
+1
-1
@@ -4,7 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
group 'sh.okx'
|
||||
version '3.11.3'
|
||||
version '3.11.4-beta'
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
@@ -92,12 +92,26 @@ public class RankupExpansion implements Expansion {
|
||||
} else {
|
||||
return prestige.getRank();
|
||||
}
|
||||
case "current_prestige_name":
|
||||
requirePrestiging(prestiges, params);
|
||||
if (prestige == null || prestige.getRank() == null) {
|
||||
return getPlaceholder("no-prestige");
|
||||
} else {
|
||||
return prestige.getDisplayName();
|
||||
}
|
||||
case "next_prestige":
|
||||
requirePrestiging(prestiges, params);
|
||||
if (prestigeElement != null && !prestigeElement.hasNext()) {
|
||||
return getPlaceholder("highest-rank");
|
||||
}
|
||||
return orElse(prestige, Prestige::getNext, prestiges.getFirst().getNext());
|
||||
return orElse(prestigeElement, e -> e.getNext().getRank().getRank(), prestiges.getTree().getFirst().getNext().getRank().getRank());
|
||||
case "next_prestige_name":
|
||||
requirePrestiging(prestiges, params);
|
||||
if (prestigeElement != null && !prestigeElement.hasNext()) {
|
||||
return getPlaceholder("highest-rank");
|
||||
} else {
|
||||
return orElse(prestigeElement, e -> e.getNext().getRank().getDisplayName(), prestiges.getTree().getFirst().getNext().getRank().getDisplayName());
|
||||
}
|
||||
case "prestige_money":
|
||||
requirePrestiging(prestiges, params);
|
||||
return String.valueOf(simplify(orElse(prestige, r -> r.isIn(player) ? r.getRequirement(player, "money").getValueDouble() : 0, 0)));
|
||||
@@ -105,16 +119,21 @@ public class RankupExpansion implements Expansion {
|
||||
requirePrestiging(prestiges, params);
|
||||
return plugin.formatMoney(orElse(prestige, r -> r.isIn(player) ? r.getRequirement(player, "money").getValueDouble() : 0, 0D));
|
||||
case "current_rank":
|
||||
if (rank == null) {
|
||||
return getPlaceholder("not-in-ladder");
|
||||
} else {
|
||||
return rank.getRank();
|
||||
}
|
||||
return orElse(rank, Rank::getRank, getPlaceholder("not-in-ladder"));
|
||||
case "current_rank_name":
|
||||
return orElse(rank, Rank::getDisplayName, getPlaceholder("not-in-ladder"));
|
||||
case "next_rank":
|
||||
if (rankElement != null && !rankElement.hasNext()) {
|
||||
return getPlaceholder("highest-rank");
|
||||
} else {
|
||||
return orElsePlaceholder(rankElement, e -> e.getNext().getRank().getRank(), "not-in-ladder");
|
||||
}
|
||||
case "next_rank_name":
|
||||
if (rankElement != null && !rankElement.hasNext()) {
|
||||
return getPlaceholder("highest-rank");
|
||||
} else {
|
||||
return orElsePlaceholder(rankElement, e -> e.getNext().getRank().getDisplayName(), "not-in-ladder");
|
||||
}
|
||||
return orElsePlaceholder(rank, r -> orElsePlaceholder(rank, Rank::getNext, "highest-rank"), "not-in-ladder");
|
||||
case "money":
|
||||
return String.valueOf(getMoney(player, rank));
|
||||
case "money_formatted":
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package sh.okx.rankup.prestige;
|
||||
|
||||
import java.util.List;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.ToString;
|
||||
@@ -14,9 +15,6 @@ import sh.okx.rankup.ranks.requirements.ListRankRequirements;
|
||||
import sh.okx.rankup.ranks.requirements.RankRequirements;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class Prestige extends Rank {
|
||||
@@ -33,7 +31,7 @@ public class Prestige extends Rank {
|
||||
|
||||
public static Prestige deserialize(RankupPlugin plugin, ConfigurationSection section) {
|
||||
List<String> requirementsList = section.getStringList("requirements");
|
||||
Set<Requirement> requirements = plugin.getRequirements().getRequirements(requirementsList);
|
||||
List<Requirement> requirements = plugin.getRequirements().getRequirements(requirementsList);
|
||||
|
||||
return new Prestige(section, plugin,
|
||||
section.getString("next"),
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
package sh.okx.rankup.ranks.requirements;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Set;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
public class LastRankRequirements implements RankRequirements {
|
||||
|
||||
@Override
|
||||
public Set<Requirement> getRequirements(Player player) {
|
||||
return Collections.emptySet();
|
||||
public Iterable<Requirement> getRequirements(Player player) {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package sh.okx.rankup.ranks.requirements;
|
||||
|
||||
import java.util.Set;
|
||||
import java.util.List;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.requirements.DeductibleRequirement;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
public class ListRankRequirements implements RankRequirements {
|
||||
private final Set<Requirement> requirements;
|
||||
private final List<Requirement> requirements;
|
||||
|
||||
public ListRankRequirements(Set<Requirement> requirements) {
|
||||
public ListRankRequirements(List<Requirement> requirements) {
|
||||
this.requirements = requirements;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Requirement> getRequirements(Player player) {
|
||||
public Iterable<Requirement> getRequirements(Player player) {
|
||||
return requirements;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,13 @@
|
||||
package sh.okx.rankup.ranks.requirements;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.RankupPlugin;
|
||||
import sh.okx.rankup.prestige.Prestige;
|
||||
import sh.okx.rankup.prestige.Prestiges;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
public class PrestigeListRankRequirements implements RankRequirements {
|
||||
private final RankupPlugin plugin;
|
||||
private final RankRequirements defaultRequirements;
|
||||
@@ -25,7 +23,7 @@ public class PrestigeListRankRequirements implements RankRequirements {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<Requirement> getRequirements(Player player) {
|
||||
public Iterable<Requirement> getRequirements(Player player) {
|
||||
return getRankRequirements(player).getRequirements(player);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package sh.okx.rankup.ranks.requirements;
|
||||
|
||||
import java.util.Set;
|
||||
import org.bukkit.entity.Player;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
|
||||
public interface RankRequirements {
|
||||
Set<Requirement> getRequirements(Player player);
|
||||
Iterable<Requirement> getRequirements(Player player);
|
||||
|
||||
boolean hasRequirements(Player player);
|
||||
Requirement getRequirement(Player player, String name);
|
||||
|
||||
@@ -3,8 +3,8 @@ package sh.okx.rankup.ranks.requirements;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import sh.okx.rankup.RankupPlugin;
|
||||
import sh.okx.rankup.requirements.Requirement;
|
||||
@@ -33,12 +33,12 @@ public class RankRequirementsFactory {
|
||||
}
|
||||
}
|
||||
|
||||
private static Set<Requirement> stringsToRequirements(RankupPlugin plugin, Iterable<String> strings) {
|
||||
private static List<Requirement> stringsToRequirements(RankupPlugin plugin, Iterable<String> strings) {
|
||||
return plugin.getRequirements().getRequirements(strings);
|
||||
}
|
||||
|
||||
private static RankRequirements getListRequirements(RankupPlugin plugin, Iterable<String> list) {
|
||||
Set<Requirement> requirements = stringsToRequirements(plugin, list);
|
||||
List<Requirement> requirements = stringsToRequirements(plugin, list);
|
||||
return new ListRankRequirements(requirements);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package sh.okx.rankup.requirements;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -29,8 +31,8 @@ public class RequirementRegistry {
|
||||
return null;
|
||||
}
|
||||
|
||||
public Set<Requirement> getRequirements(Iterable<String> list) {
|
||||
Set<Requirement> requirements = new HashSet<>();
|
||||
public List<Requirement> getRequirements(Iterable<String> list) {
|
||||
List<Requirement> requirements = new ArrayList<>();
|
||||
|
||||
for (String req : list) {
|
||||
String[] parts = req.split(" ", 2);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
first:
|
||||
# the rank people must be to use this prestige
|
||||
from: 'D'
|
||||
|
||||
Reference in New Issue
Block a user