add xp-levelh and moneyh requirements
This commit is contained in:
+1
-1
@@ -5,7 +5,7 @@ plugins {
|
|||||||
}
|
}
|
||||||
|
|
||||||
group 'sh.okx'
|
group 'sh.okx'
|
||||||
version '3.5.7-alpha.2'
|
version '3.5.6'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
|||||||
@@ -31,6 +31,8 @@ import sh.okx.rankup.prestige.Prestige;
|
|||||||
import sh.okx.rankup.prestige.Prestiges;
|
import sh.okx.rankup.prestige.Prestiges;
|
||||||
import sh.okx.rankup.ranks.Rank;
|
import sh.okx.rankup.ranks.Rank;
|
||||||
import sh.okx.rankup.ranks.Rankups;
|
import sh.okx.rankup.ranks.Rankups;
|
||||||
|
import sh.okx.rankup.requirements.DeductibleRequirement;
|
||||||
|
import sh.okx.rankup.requirements.NonDeductibleRequirement;
|
||||||
import sh.okx.rankup.requirements.Requirement;
|
import sh.okx.rankup.requirements.Requirement;
|
||||||
import sh.okx.rankup.requirements.RequirementRegistry;
|
import sh.okx.rankup.requirements.RequirementRegistry;
|
||||||
import sh.okx.rankup.requirements.requirement.*;
|
import sh.okx.rankup.requirements.requirement.*;
|
||||||
@@ -259,7 +261,7 @@ public class Rankup extends JavaPlugin {
|
|||||||
|
|
||||||
private void registerRequirements() {
|
private void registerRequirements() {
|
||||||
requirements = new RequirementRegistry();
|
requirements = new RequirementRegistry();
|
||||||
requirements.addRequirement(new XpLevelRequirement(this));
|
registerDeductible(new XpLevelRequirement(this));
|
||||||
requirements.addRequirement(new PlaytimeMinutesRequirement(this));
|
requirements.addRequirement(new PlaytimeMinutesRequirement(this));
|
||||||
requirements.addRequirement(new GroupRequirement(this));
|
requirements.addRequirement(new GroupRequirement(this));
|
||||||
requirements.addRequirement(new PermissionRequirement(this));
|
requirements.addRequirement(new PermissionRequirement(this));
|
||||||
@@ -268,13 +270,12 @@ public class Rankup extends JavaPlugin {
|
|||||||
requirements.addRequirement(new BlockBreakRequirement(this));
|
requirements.addRequirement(new BlockBreakRequirement(this));
|
||||||
requirements.addRequirement(new PlayerKillsRequirement(this));
|
requirements.addRequirement(new PlayerKillsRequirement(this));
|
||||||
requirements.addRequirement(new MobKillsRequirement(this));
|
requirements.addRequirement(new MobKillsRequirement(this));
|
||||||
requirements.addRequirement(new ItemRequirement(this));
|
registerDeductible(new ItemRequirement(this));
|
||||||
requirements.addRequirement(new ItemhRequirement(this));
|
|
||||||
requirements.addRequirement(new UseItemRequirement(this));
|
requirements.addRequirement(new UseItemRequirement(this));
|
||||||
requirements.addRequirement(new TotalMobKillsRequirement(this));
|
requirements.addRequirement(new TotalMobKillsRequirement(this));
|
||||||
requirements.addRequirement(new CraftItemRequirement(this));
|
requirements.addRequirement(new CraftItemRequirement(this));
|
||||||
if (economy != null) {
|
if (economy != null) {
|
||||||
requirements.addRequirement(new MoneyRequirement(this));
|
registerDeductible(new MoneyRequirement(this));
|
||||||
}
|
}
|
||||||
|
|
||||||
PluginManager pluginManager = Bukkit.getPluginManager();
|
PluginManager pluginManager = Bukkit.getPluginManager();
|
||||||
@@ -291,6 +292,11 @@ public class Rankup extends JavaPlugin {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void registerDeductible(DeductibleRequirement requirement) {
|
||||||
|
requirements.addRequirement(requirement);
|
||||||
|
requirements.addRequirement(new NonDeductibleRequirement(requirement, requirement.getName() + "h"));
|
||||||
|
}
|
||||||
|
|
||||||
private boolean setupPermissions() {
|
private boolean setupPermissions() {
|
||||||
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
|
RegisteredServiceProvider<Permission> rsp = getServer().getServicesManager().getRegistration(Permission.class);
|
||||||
if (rsp == null) {
|
if (rsp == null) {
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package sh.okx.rankup.requirements;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Proxy requirement for a deductible requirement that is exactly the same but is not deductible
|
||||||
|
*/
|
||||||
|
public class NonDeductibleRequirement extends ProgressiveRequirement {
|
||||||
|
private final DeductibleRequirement requirement;
|
||||||
|
|
||||||
|
public NonDeductibleRequirement(DeductibleRequirement requirement, String name) {
|
||||||
|
super(requirement.plugin, name, requirement.hasSubRequirement());
|
||||||
|
this.requirement = requirement;
|
||||||
|
}
|
||||||
|
|
||||||
|
protected NonDeductibleRequirement(NonDeductibleRequirement clone) {
|
||||||
|
super(clone);
|
||||||
|
this.requirement = clone.requirement;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public double getProgress(Player player) {
|
||||||
|
return requirement.getProgress(player);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Requirement clone() {
|
||||||
|
return new NonDeductibleRequirement(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
package sh.okx.rankup.requirements.requirement;
|
|
||||||
|
|
||||||
import org.bukkit.Material;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.inventory.ItemStack;
|
|
||||||
import sh.okx.rankup.Rankup;
|
|
||||||
import sh.okx.rankup.requirements.ProgressiveRequirement;
|
|
||||||
import sh.okx.rankup.requirements.Requirement;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
|
|
||||||
public class ItemhRequirement extends ProgressiveRequirement {
|
|
||||||
public ItemhRequirement(Rankup plugin) {
|
|
||||||
super(plugin, "itemh", true);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ItemhRequirement(ItemRequirement clone) {
|
|
||||||
super(clone);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public double getProgress(Player player) {
|
|
||||||
Material material = Material.matchMaterial(getSub());
|
|
||||||
return Arrays.stream(player.getInventory().getStorageContents())
|
|
||||||
.filter(item -> item != null && item.getType() == material)
|
|
||||||
.mapToInt(ItemStack::getAmount).sum();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Requirement clone() {
|
|
||||||
return new ItemhRequirement(plugin);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -11,7 +11,7 @@ public class TotalMobKillsRequirement extends ProgressiveRequirement {
|
|||||||
super(plugin, "total-mob-kills");
|
super(plugin, "total-mob-kills");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected TotalMobKillsRequirement(Requirement clone) {
|
private TotalMobKillsRequirement(Requirement clone) {
|
||||||
super(clone);
|
super(clone);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user