Fixed repairing
- charges money now - correctly checks if they already have it repaired enough - repairs to the correct value
This commit is contained in:
parent
173324c68f
commit
75d417da44
|
|
@ -73,7 +73,7 @@ public class UpgradeWindow extends GUI {
|
|||
for (RepairData repairData : repairDataList) {
|
||||
ItemStack itemStack = new ItemStack(repairData.material(), 1);
|
||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
||||
itemMeta.displayName(MiniMessage.miniMessage().deserialize("<green>Repair <percent>% for <points> points</green>", TagResolver.resolver(
|
||||
itemMeta.displayName(MiniMessage.miniMessage().deserialize("<green>Repair up to <percent>% for <points> points</green>", TagResolver.resolver(
|
||||
Placeholder.parsed("percent", String.valueOf(repairData.percentage())),
|
||||
Placeholder.parsed("points", String.valueOf(repairData.cost()))
|
||||
)));
|
||||
|
|
@ -106,13 +106,31 @@ public class UpgradeWindow extends GUI {
|
|||
return;
|
||||
}
|
||||
int maxDurability = Material.FISHING_ROD.getMaxDurability();
|
||||
int newDurability = Math.min((int) (maxDurability * (repairData.percentage() / 100.0)), maxDurability);
|
||||
if (damageable.getDamage() < newDurability) {
|
||||
int newDamage = Math.min((int) (maxDurability * (repairData.percentage() / 100.0)), maxDurability);
|
||||
logger.debug("current damage: %, new damage %", String.valueOf(maxDurability - damageable.getDamage()), String.valueOf(newDamage));
|
||||
if ((maxDurability - damageable.getDamage()) >= newDamage) {
|
||||
clickingPlayer.sendMiniMessage("<red>Your fishing rod is already more than <percentage>% repaired", //TODO move to config
|
||||
Placeholder.parsed("percentage", String.valueOf(repairData.percentage())));
|
||||
return;
|
||||
}
|
||||
damageable.setDamage(newDurability);
|
||||
int remainingPoints;
|
||||
try {
|
||||
remainingPoints = PointsManagement.getInstance().removePoints(player.getUniqueId(), repairData.cost());
|
||||
} catch (IllegalArgumentException e) {
|
||||
player.sendMiniMessage(Messages.GUI.NOT_ENOUGH_POINTS, TagResolver.resolver(
|
||||
Placeholder.parsed("price", String.valueOf(repairData.cost())),
|
||||
Placeholder.parsed("points", String.valueOf(playerPoints))
|
||||
));
|
||||
return;
|
||||
}
|
||||
damageable.setDamage(Math.max(0, maxDurability - newDamage));
|
||||
fishingRod.setItemMeta(damageable);
|
||||
inventory.setItem(fishingRodSlot, fishingRod);
|
||||
player.updateInventory();
|
||||
clickingPlayer.sendMiniMessage("<green>Your fishing rod was repaired to <percentage>% of it's maximum durability. You have <points> points remaining</green>", TagResolver.resolver(
|
||||
Placeholder.parsed("percentage", String.valueOf(repairData.percentage())),
|
||||
Placeholder.parsed("points", String.valueOf(remainingPoints))
|
||||
));
|
||||
}
|
||||
|
||||
private int getTrackLevel(EnchantmentTrack enchantmentTrack, ItemStack fishingRod) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user