Skip to content

Commit fadda41

Browse files
committed
Make every reward a number reward
1 parent fbc7f0c commit fadda41

File tree

4 files changed

+35
-11
lines changed

4 files changed

+35
-11
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ plugins {
2323
}
2424

2525
group = "gg.auroramc"
26-
version = "2.4.4"
26+
version = "2.5.0"
2727

2828
java {
2929
sourceCompatibility = JavaVersion.VERSION_21

src/main/java/gg/auroramc/aurora/api/reward/CommandReward.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gg.auroramc.aurora.api.reward;
22

33
import gg.auroramc.aurora.Aurora;
4+
import gg.auroramc.aurora.api.AuroraAPI;
45
import gg.auroramc.aurora.api.command.CommandDispatcher;
56
import gg.auroramc.aurora.api.expression.BooleanExpression;
67
import gg.auroramc.aurora.api.message.Placeholder;
@@ -10,25 +11,34 @@
1011

1112
import java.util.List;
1213

13-
public class CommandReward extends AbstractReward {
14+
public class CommandReward extends NumberReward {
1415
@Getter
1516
private List<String> commands;
1617
private String correctionExpression;
1718

1819
@Override
19-
public void execute(Player player, long level, List<Placeholder<?>> formulaPlaceholders) {
20+
public void execute(Player player, long level, List<Placeholder<?>> placeholders) {
2021
if (commands == null) return;
22+
var value = getValue(placeholders);
23+
2124
for (String command : commands) {
22-
CommandDispatcher.dispatch(player, command, formulaPlaceholders);
25+
CommandDispatcher.dispatch(
26+
player,
27+
Placeholder.execute(command,
28+
Placeholder.of("{value}", value),
29+
Placeholder.of("{value_int}", value.longValue()),
30+
Placeholder.of("{value_formatted}", AuroraAPI.formatNumber(value))),
31+
placeholders
32+
);
2333
}
2434
}
2535

2636
@Override
2737
public void init(ConfigurationSection args) {
2838
super.init(args);
29-
if(args.isString("command") && args.getString("command") != null) {
39+
if (args.isString("command") && args.getString("command") != null) {
3040
commands = List.of(args.getString("command"));
31-
} else if(args.isList("command")) {
41+
} else if (args.isList("command")) {
3242
commands = args.getStringList("command");
3343
} else {
3444
commands = List.of();

src/main/java/gg/auroramc/aurora/api/reward/ItemReward.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import java.util.Locale;
1818
import java.util.concurrent.CompletableFuture;
1919

20-
public class ItemReward extends AbstractReward {
20+
public class ItemReward extends NumberReward {
2121
enum StashHandle {
2222
NONE,
2323
OVERFLOW,
@@ -88,7 +88,10 @@ public ThreadSafety getThreadSafety() {
8888
}
8989

9090
private ItemStack[] getItems(Player player, List<Placeholder<?>> placeholders) {
91-
var amount = itemConfig.getAmount();
91+
var amount = getValue(placeholders).intValue();
92+
if (amount <= 0) {
93+
amount = itemConfig.getAmount();
94+
}
9295
var item = ItemBuilder.of(itemConfig).placeholder(placeholders).amount(1).toItemStack(player);
9396

9497
if (item == null || item.getType() == Material.AIR) {

src/main/java/gg/auroramc/aurora/api/reward/PermissionReward.java

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package gg.auroramc.aurora.api.reward;
22

3+
import com.google.common.collect.Lists;
34
import gg.auroramc.aurora.Aurora;
5+
import gg.auroramc.aurora.api.AuroraAPI;
46
import gg.auroramc.aurora.api.message.Placeholder;
57
import gg.auroramc.aurora.api.message.Text;
68
import gg.auroramc.aurora.api.util.ThreadSafety;
@@ -15,7 +17,7 @@
1517
import java.util.List;
1618
import java.util.Map;
1719

18-
public class PermissionReward extends AbstractReward {
20+
public class PermissionReward extends NumberReward {
1921
@Getter
2022
private List<String> permissions;
2123
private boolean value;
@@ -60,14 +62,23 @@ public void init(ConfigurationSection args) {
6062
}
6163

6264
public List<Node> buildNodes(Player player, List<Placeholder<?>> placeholders) {
65+
var numberValue = getValue(placeholders);
66+
List<Placeholder<?>> numberPlaceholders = Lists.newArrayList(
67+
Placeholder.of("{value}", numberValue),
68+
Placeholder.of("{value_int}", numberValue.longValue()),
69+
Placeholder.of("{value_formatted}", AuroraAPI.formatNumber(numberValue))
70+
);
71+
72+
numberPlaceholders.addAll(placeholders);
73+
6374
return permissions.stream().map(permission -> {
64-
var builder = Node.builder(Text.fillPlaceholders(player, permission, placeholders)).value(value);
75+
var builder = Node.builder(Text.fillPlaceholders(player, permission, numberPlaceholders)).value(value);
6576

6677
if (!contexts.isEmpty()) {
6778
var contextSet = MutableContextSet.create();
6879

6980
for (var entry : contexts.entrySet())
70-
contextSet.add(entry.getKey(), Text.fillPlaceholders(player, entry.getValue(), placeholders));
81+
contextSet.add(entry.getKey(), Text.fillPlaceholders(player, entry.getValue(), numberPlaceholders));
7182

7283
builder.withContext(contextSet);
7384
}

0 commit comments

Comments
 (0)