Starting simplification

This commit is contained in:
okx-code
2019-03-18 00:17:07 +00:00
parent 240b80c814
commit 7bfd407c58
23 changed files with 89 additions and 254 deletions
@@ -1,65 +1,42 @@
package sh.okx.rankup.prestige;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.apache.commons.lang3.Validate;
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.Operation;
import sh.okx.rankup.requirements.Requirement;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@EqualsAndHashCode(callSuper = true)
public class Prestige extends Rank {
@Getter
private final String from;
@Getter
private final String to;
private Prestige(Rankup plugin, String name, String next, String rank, Set<Requirement> requirements, Operation operation, List<String> commands, String from, String to) {
super(plugin, name, next, rank, requirements, operation, commands);
private Prestige(Rankup plugin, String next, String rank, Set<Requirement> requirements, List<String> commands, String from, String to) {
super(plugin, next, rank, requirements, commands);
this.from = from;
this.to = to;
}
public static Prestige deserialize(Rankup plugin, ConfigurationSection section) {
Set<Requirement> requirements = new HashSet<>();
Operation operation = null;
ConfigurationSection requirementsSection = section.getConfigurationSection("requirements");
if (requirementsSection != null) {
requirements = plugin.getRequirementRegistry().getRequirements(requirementsSection);
operation = plugin.getOperationRegistry().getOperation(section.getString("operation"));
}
Validate.notNull(requirementsSection, "No requirements defined for section " + section.getName());
Set<Requirement> requirements = plugin.getRequirementRegistry().getRequirements(requirementsSection);
return new Prestige(plugin,
section.getName(),
section.getString("next"),
section.getString("rank"),
requirements,
operation,
section.getStringList("commands"),
section.getString("from"),
section.getString("to"));
}
public boolean isEligable(Player player) {
String[] groups = plugin.getPermissions().getPlayerGroups(null, player);
for (String group : groups) {
if (group.equalsIgnoreCase(from)) {
return true;
}
}
return false;
}
@Override
public boolean equals(Object o) {
if (!(o instanceof Prestige)) {
return false;
}
return ((Prestige) o).name.equals(name);
}
}