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) {
|
for (RepairData repairData : repairDataList) {
|
||||||
ItemStack itemStack = new ItemStack(repairData.material(), 1);
|
ItemStack itemStack = new ItemStack(repairData.material(), 1);
|
||||||
ItemMeta itemMeta = itemStack.getItemMeta();
|
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("percent", String.valueOf(repairData.percentage())),
|
||||||
Placeholder.parsed("points", String.valueOf(repairData.cost()))
|
Placeholder.parsed("points", String.valueOf(repairData.cost()))
|
||||||
)));
|
)));
|
||||||
|
|
@ -106,13 +106,31 @@ public class UpgradeWindow extends GUI {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int maxDurability = Material.FISHING_ROD.getMaxDurability();
|
int maxDurability = Material.FISHING_ROD.getMaxDurability();
|
||||||
int newDurability = Math.min((int) (maxDurability * (repairData.percentage() / 100.0)), maxDurability);
|
int newDamage = Math.min((int) (maxDurability * (repairData.percentage() / 100.0)), maxDurability);
|
||||||
if (damageable.getDamage() < newDurability) {
|
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
|
clickingPlayer.sendMiniMessage("<red>Your fishing rod is already more than <percentage>% repaired", //TODO move to config
|
||||||
Placeholder.parsed("percentage", String.valueOf(repairData.percentage())));
|
Placeholder.parsed("percentage", String.valueOf(repairData.percentage())));
|
||||||
return;
|
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) {
|
private int getTrackLevel(EnchantmentTrack enchantmentTrack, ItemStack fishingRod) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user