add advanced achievements requirements (untested)

This commit is contained in:
okx-code
2018-11-10 20:20:18 +00:00
parent fe0d0aef8f
commit 4084c2819e
10 changed files with 113 additions and 24 deletions
@@ -0,0 +1,41 @@
package sh.okx.rankup.requirements.requirement.advancedachievements;
import com.hm.achievement.api.AdvancedAchievementsAPI;
import com.hm.achievement.api.AdvancedAchievementsAPIFetcher;
import org.bukkit.entity.Player;
import sh.okx.rankup.Rankup;
import sh.okx.rankup.requirements.Requirement;
public class AdvancedAchievementsAchievementRequirement extends Requirement {
public AdvancedAchievementsAchievementRequirement(Rankup plugin) {
super(plugin, "advancedachievements-achievement");
}
protected AdvancedAchievementsAchievementRequirement(Requirement clone) {
super(clone);
}
@Override
public boolean check(Player player) {
return getRemaining(player) < 1;
}
@Override
public double getRemaining(Player player) {
AdvancedAchievementsAPI api = AdvancedAchievementsAPIFetcher.fetchInstance().get();
int total = 0;
String[] achievements = getValueString().split(" ");
for (String achievement : achievements) {
if (api.hasPlayerReceivedAchievement(player.getUniqueId(), achievement)) {
total++;
}
}
return achievements.length - total;
}
@Override
public Requirement clone() {
return new AdvancedAchievementsAchievementRequirement(this);
}
}
@@ -0,0 +1,33 @@
package sh.okx.rankup.requirements.requirement.advancedachievements;
import com.hm.achievement.api.AdvancedAchievementsAPI;
import com.hm.achievement.api.AdvancedAchievementsAPIFetcher;
import org.bukkit.entity.Player;
import sh.okx.rankup.Rankup;
import sh.okx.rankup.requirements.Requirement;
public class AdvancedAchievementsTotalRequirement extends Requirement {
public AdvancedAchievementsTotalRequirement(Rankup plugin) {
super(plugin, "advancedachievements-total");
}
protected AdvancedAchievementsTotalRequirement(Requirement clone) {
super(clone);
}
@Override
public boolean check(Player player) {
return getRemaining(player) < 1;
}
@Override
public double getRemaining(Player player) {
AdvancedAchievementsAPI api = AdvancedAchievementsAPIFetcher.fetchInstance().get();
return getValueInt() - api.getPlayerTotalAchievements(player.getUniqueId());
}
@Override
public Requirement clone() {
return new AdvancedAchievementsTotalRequirement(this);
}
}