added MendingReducer tweak
This commit is contained in:
@@ -0,0 +1,16 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.craftattack.appliances.tweaks.mendingReducer;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.core.appliance.Appliance;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class MendingReducer extends Appliance {
|
||||||
|
@Override
|
||||||
|
protected @NotNull List<Listener> listeners() {
|
||||||
|
return List.of(
|
||||||
|
new MendingRepairListener()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
@@ -0,0 +1,23 @@
|
|||||||
|
package eu.mhsl.craftattack.spawn.craftattack.appliances.tweaks.mendingReducer;
|
||||||
|
|
||||||
|
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.player.PlayerItemMendEvent;
|
||||||
|
|
||||||
|
public class MendingRepairListener extends ApplianceListener<MendingReducer> {
|
||||||
|
private static final double COST_MULTIPLIER = 2.0;
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
public void onMendingRepair(PlayerItemMendEvent event) {
|
||||||
|
int baseConsumed = event.getConsumedExperience();
|
||||||
|
int orbExp = event.getExperienceOrb().getExperience();
|
||||||
|
|
||||||
|
int desiredTotal = (int) Math.ceil(baseConsumed * COST_MULTIPLIER);
|
||||||
|
int extraCost = Math.max(0, desiredTotal - baseConsumed);
|
||||||
|
|
||||||
|
int maxExtraPossible = Math.max(0, orbExp - baseConsumed);
|
||||||
|
int extraApplied = Math.min(extraCost, maxExtraPossible);
|
||||||
|
|
||||||
|
if (extraApplied > 0) event.getExperienceOrb().setExperience(orbExp - extraApplied);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user