-
-
Notifications
You must be signed in to change notification settings - Fork 54
/
PercentageSlotHandler.java
37 lines (30 loc) · 1.07 KB
/
PercentageSlotHandler.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package net.citizensnpcs.api.gui;
import java.util.function.Consumer;
import org.bukkit.event.Event.Result;
import com.google.common.base.Function;
public class PercentageSlotHandler implements Consumer<CitizensInventoryClickEvent> {
private int percentage;
private final Function<Integer, String> transformer;
public PercentageSlotHandler(Function<Integer, String> transformer) {
this(transformer, 100);
}
public PercentageSlotHandler(Function<Integer, String> transformer, int initialPercentage) {
this.transformer = transformer;
this.percentage = initialPercentage;
}
@Override
public void accept(CitizensInventoryClickEvent event) {
int dx = event.isShiftClick() ? 1 : 10;
if (event.isRightClick()) {
dx *= -1;
}
percentage += dx;
if (percentage < 0) {
percentage = 0;
} else if (percentage > 100) {
percentage = 100;
}
event.setCurrentItemDescription(transformer.apply(percentage));
event.setResult(Result.DENY);
}
}