mirror of
https://github.com/DRE2N/DungeonsXL.git
synced 2024-09-16 01:57:14 +02:00
Add setup() method to requirement API
This commit is contained in:
parent
5042b57fc5
commit
b175b2b50b
@ -25,12 +25,7 @@ import io.github.dre2n.commons.util.NumberUtil;
|
||||
import io.github.dre2n.dungeonsxl.DungeonsXL;
|
||||
import io.github.dre2n.dungeonsxl.game.GameRules;
|
||||
import io.github.dre2n.dungeonsxl.game.GameType;
|
||||
import io.github.dre2n.dungeonsxl.requirement.FeeLevelRequirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.FeeMoneyRequirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.GroupSizeRequirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.PermissionRequirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.Requirement;
|
||||
import io.github.dre2n.dungeonsxl.requirement.RequirementTypeDefault;
|
||||
import io.github.dre2n.dungeonsxl.util.DeserializationUtil;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@ -187,24 +182,10 @@ public class WorldConfig extends GameRules {
|
||||
requirements = new ArrayList<>();
|
||||
}
|
||||
|
||||
ConfigurationSection requirementSection = configFile.getConfigurationSection("requirements");
|
||||
for (String identifier : configFile.getConfigurationSection("requirements").getKeys(false)) {
|
||||
Requirement requirement = Requirement.create(plugin.getRequirementTypes().getByIdentifier(identifier));
|
||||
|
||||
// Check for built-in requirements
|
||||
if (requirement.getType() == RequirementTypeDefault.FEE_MONEY) {
|
||||
((FeeMoneyRequirement) requirement).setFee(configFile.getDouble("requirements.feeMoney"));
|
||||
|
||||
} else if (requirement.getType() == RequirementTypeDefault.FEE_LEVEL) {
|
||||
((FeeLevelRequirement) requirement).setFee(configFile.getInt("requirements.feeLevel"));
|
||||
|
||||
} else if (requirement.getType() == RequirementTypeDefault.GROUP_SIZE) {
|
||||
((GroupSizeRequirement) requirement).setMinimum(configFile.getInt("requirements.groupSize.minimum"));
|
||||
((GroupSizeRequirement) requirement).setMaximum(configFile.getInt("requirements.groupSize.maximum"));
|
||||
|
||||
} else if (requirement.getType() == RequirementTypeDefault.PERMISSION) {
|
||||
((PermissionRequirement) requirement).setPermissions(configFile.getStringList("requirements.permission"));
|
||||
}
|
||||
|
||||
requirement.setup(requirementSection);
|
||||
requirements.add(requirement);
|
||||
}
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.config.DMessages;
|
||||
import io.github.dre2n.dungeonsxl.player.DGamePlayer;
|
||||
import io.github.dre2n.dungeonsxl.player.DSavePlayer;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -31,6 +32,7 @@ public class FeeLevelRequirement extends Requirement {
|
||||
|
||||
private int fee;
|
||||
|
||||
/* Getters and setters */
|
||||
/**
|
||||
* @return the fee
|
||||
*/
|
||||
@ -46,6 +48,17 @@ public class FeeLevelRequirement extends Requirement {
|
||||
this.fee = fee;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
@Override
|
||||
public void setup(ConfigurationSection config) {
|
||||
fee = config.getInt("feeLevel");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
return player.getLevel() >= fee;
|
||||
@ -63,9 +76,4 @@ public class FeeLevelRequirement extends Requirement {
|
||||
MessageUtil.sendMessage(player, plugin.getMessageConfig().getMessage(DMessages.REQUIREMENT_FEE, fee + " levels"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -18,6 +18,7 @@ package io.github.dre2n.dungeonsxl.requirement;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import io.github.dre2n.dungeonsxl.config.DMessages;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -29,6 +30,7 @@ public class FeeMoneyRequirement extends Requirement {
|
||||
|
||||
private double fee;
|
||||
|
||||
/* Getters and setters */
|
||||
/**
|
||||
* @return the fee
|
||||
*/
|
||||
@ -44,6 +46,17 @@ public class FeeMoneyRequirement extends Requirement {
|
||||
this.fee = fee;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
@Override
|
||||
public void setup(ConfigurationSection config) {
|
||||
fee = config.getDouble("feeMoney");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
if (plugin.getEconomyProvider() == null) {
|
||||
@ -63,9 +76,4 @@ public class FeeMoneyRequirement extends Requirement {
|
||||
MessageUtil.sendMessage(player, plugin.getMessageConfig().getMessage(DMessages.REQUIREMENT_FEE, plugin.getEconomyProvider().format(fee)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -17,6 +17,7 @@
|
||||
package io.github.dre2n.dungeonsxl.requirement;
|
||||
|
||||
import io.github.dre2n.dungeonsxl.player.DGroup;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -59,6 +60,18 @@ public class GroupSizeRequirement extends Requirement {
|
||||
this.maximum = maximum;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
@Override
|
||||
public void setup(ConfigurationSection config) {
|
||||
minimum = config.getInt("groupSize.minimum");
|
||||
maximum = config.getInt("groupSize.maximum");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
DGroup dGroup = DGroup.getByPlayer(player);
|
||||
@ -70,9 +83,4 @@ public class GroupSizeRequirement extends Requirement {
|
||||
public void demand(Player player) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -19,6 +19,7 @@ package io.github.dre2n.dungeonsxl.requirement;
|
||||
import io.github.dre2n.dungeonsxl.player.DPermissions;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -52,6 +53,11 @@ public class PermissionRequirement extends Requirement {
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
@Override
|
||||
public void setup(ConfigurationSection config) {
|
||||
permissions = config.getStringList("permission");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
for (String permission : permissions) {
|
||||
|
@ -22,6 +22,7 @@ import io.github.dre2n.dungeonsxl.event.requirement.RequirementRegistrationEvent
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -56,6 +57,8 @@ public abstract class Requirement {
|
||||
}
|
||||
|
||||
/* Abstracts */
|
||||
public abstract void setup(ConfigurationSection config);
|
||||
|
||||
public abstract boolean check(Player player);
|
||||
|
||||
public abstract void demand(Player player);
|
||||
|
@ -17,6 +17,7 @@
|
||||
package io.github.dre2n.dungeonsxl.requirement;
|
||||
|
||||
import io.github.dre2n.commons.util.messageutil.MessageUtil;
|
||||
import org.bukkit.configuration.ConfigurationSection;
|
||||
import org.bukkit.entity.Player;
|
||||
|
||||
/**
|
||||
@ -28,6 +29,7 @@ public class AwesomenessRequirement extends Requirement {
|
||||
|
||||
private int level;
|
||||
|
||||
/* Getters and setters */
|
||||
/**
|
||||
* @return the awesomeness level
|
||||
*/
|
||||
@ -43,6 +45,17 @@ public class AwesomenessRequirement extends Requirement {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
/* Actions */
|
||||
@Override
|
||||
public void setup(ConfigurationSection config) {
|
||||
this.level = config.getInt("awesomeness");
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean check(Player player) {
|
||||
// Code that checks if the player has the requirement
|
||||
@ -55,9 +68,4 @@ public class AwesomenessRequirement extends Requirement {
|
||||
// Code that removes the requirement if it is a fee
|
||||
}
|
||||
|
||||
@Override
|
||||
public RequirementType getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user