Skip to content

Commit 3e619ac

Browse files
committed
feat(forge19): add ConfigRewardPool and ConfigReward
skip-ci
1 parent 97a1f26 commit 3e619ac

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
package com.envyful.api.forge.config;
2+
3+
import com.envyful.api.forge.chat.UtilChatColour;
4+
import com.envyful.api.forge.server.UtilForgeServer;
5+
import com.envyful.api.gui.Transformer;
6+
import net.minecraft.server.level.ServerPlayer;
7+
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
8+
9+
import java.util.List;
10+
11+
@ConfigSerializable
12+
public class ConfigReward {
13+
14+
private List<String> commands;
15+
private List<String> messages;
16+
17+
public ConfigReward(List<String> commands, List<String> messages) {
18+
this.commands = commands;
19+
this.messages = messages;
20+
}
21+
22+
public ConfigReward() {
23+
}
24+
25+
public void execute(ServerPlayer player, Transformer... transformers) {
26+
if (this.commands != null && !this.commands.isEmpty()) {
27+
for (String command : this.commands) {
28+
for (Transformer transformer : transformers) {
29+
command = transformer.transformName(command);
30+
}
31+
32+
UtilForgeServer.executeCommand(command.replace("%player%", player.getName().getString()));
33+
}
34+
}
35+
36+
if (this.messages != null && !this.messages.isEmpty()) {
37+
for (String message : this.messages) {
38+
for (Transformer transformer : transformers) {
39+
message = transformer.transformName(message);
40+
}
41+
42+
player.sendSystemMessage(UtilChatColour.colour(message));
43+
}
44+
}
45+
}
46+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.envyful.api.forge.config;
2+
3+
import com.envyful.api.gui.Transformer;
4+
import com.envyful.api.math.RandomWeightedSet;
5+
import com.envyful.api.math.UtilRandom;
6+
import com.google.common.collect.Lists;
7+
import net.minecraft.server.level.ServerPlayer;
8+
import org.spongepowered.configurate.objectmapping.ConfigSerializable;
9+
10+
import java.util.List;
11+
12+
@ConfigSerializable
13+
public class ConfigRewardPool {
14+
15+
private ConfigReward guaranteedReward;
16+
private int rewardRollsMin;
17+
private int rewardRollsMax;
18+
private RandomWeightedSet<ConfigReward> rewards;
19+
20+
public ConfigRewardPool(ConfigReward guaranteedReward, int rewardRollsMin, int rewardRollsMax, RandomWeightedSet<ConfigReward> rewards) {
21+
this.guaranteedReward = guaranteedReward;
22+
this.rewardRollsMin = rewardRollsMin;
23+
this.rewardRollsMax = rewardRollsMax;
24+
this.rewards = rewards;
25+
}
26+
27+
public ConfigRewardPool() {
28+
}
29+
30+
public List<ConfigReward> getRandomRewards() {
31+
List<ConfigReward> randomlySelectedRewards = Lists.newArrayList();
32+
33+
for (int i = 0; i < UtilRandom.randomInteger(this.rewardRollsMin, this.rewardRollsMax); i++) {
34+
randomlySelectedRewards.add(this.rewards.getRandom());
35+
}
36+
37+
return randomlySelectedRewards;
38+
}
39+
40+
public void give(ServerPlayer player, Transformer... transformers) {
41+
if (this.guaranteedReward != null) {
42+
this.guaranteedReward.execute(player, transformers);
43+
}
44+
45+
for (ConfigReward randomReward : this.getRandomRewards()) {
46+
randomReward.execute(player, transformers);
47+
}
48+
}
49+
}

0 commit comments

Comments
 (0)