3.5.7-alpha

- better reporting of configuration errors (instead of disabling the plugin, send the error on startup and whenever a command is executed)
- don't check for updates if on a pre-release version
- add infinite rankup loop detection
- add itemh requirement (like the item requirement, but not deductible)
- make it so i only have to change the plugin version in one place
This commit is contained in:
okx-code
2019-08-03 15:29:44 +01:00
parent 58f38489a6
commit 11200862cd
14 changed files with 164 additions and 38 deletions
@@ -9,6 +9,8 @@ import sh.okx.rankup.requirements.DeductibleRequirement;
import sh.okx.rankup.requirements.ProgressiveRequirement;
import sh.okx.rankup.requirements.Requirement;
import java.util.Arrays;
public class ItemRequirement extends DeductibleRequirement {
public ItemRequirement(Rankup plugin) {
super(plugin, "item", true);
@@ -18,25 +20,25 @@ public class ItemRequirement extends DeductibleRequirement {
super(clone);
}
@Override
public double getProgress(Player player) {
Material material = Material.matchMaterial(getSub());
int count = 0;
for (ItemStack item : player.getInventory().getStorageContents()) {
if (item != null && item.getType() == material) {
count += item.getAmount();
}
}
return count;
}
@Override
public void apply(Player player, double multiplier) {
player.getInventory().removeItem(new ItemStack(Material.matchMaterial(getSub()), (int) (getValueInt() * multiplier)));
Material type = Material.matchMaterial(getSub());
if (type == null) {
throw new IllegalArgumentException("Invalid item " + getSub());
}
player.getInventory().removeItem(new ItemStack(type, (int) (getValueInt() * multiplier)));
}
@Override
public Requirement clone() {
return new ItemRequirement(this);
}
@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();
}
}
@@ -0,0 +1,33 @@
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);
}
}