add /prestige

This commit is contained in:
okx-code
2018-09-02 15:36:08 +01:00
parent e9d7a9791a
commit 82078dd31b
23 changed files with 469 additions and 181 deletions
@@ -1,15 +1,16 @@
package sh.okx.rankup.requirements;
import java.util.HashMap;
import java.util.Map;
public class OperationRegistry {
private Map<String, Operation> operations;
private Map<String, Operation> operations = new HashMap<>();
public void addOperation(String name, Operation operation) {
operations.put(name.toLowerCase(), operation);
}
public Operation getOperation(String name) {
return operations.get(name.toLowerCase());
return operations.get(name == null ? "all" : name.toLowerCase());
}
}
@@ -1,6 +1,10 @@
package sh.okx.rankup.requirements;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.Player;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
public class RequirementRegistry {
@@ -20,4 +24,28 @@ public class RequirementRegistry {
}
return null;
}
public Set<Requirement> getRequirements(ConfigurationSection section) {
Set<Requirement> requirements = new HashSet<>();
for (Map.Entry<String, Object> entry : section.getValues(false).entrySet()) {
String name = entry.getKey();
String value = String.valueOf(entry.getValue());
Requirement requirement = newRequirement(name, value);
if (requirement == null) {
System.err.println("Unknown requirement: " + name);
} else {
requirements.add(requirement);
}
}
return requirements;
}
public void apply(Player player, Set<Requirement> requirements) {
for (Requirement requirement : requirements) {
if (requirement instanceof DeductibleRequirement) {
((DeductibleRequirement) requirement).apply(player);
}
}
}
}