feat: initial CMagicGem reimplementation

This commit is contained in:
Coldsmile_7
2026-10-01 14:51:20 +08:00
commit 536c02b57e
82 changed files with 16612 additions and 0 deletions
@@ -0,0 +1,48 @@
package cn.infstar.cmagicgem.reward;
import cn.infstar.cmagicgem.gem.GemDefinition;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import java.util.IdentityHashMap;
import java.util.Map;
import java.util.function.DoubleSupplier;
public final class RewardContext {
private final Player player;
private final GemDefinition gem;
private ItemStack item;
private final boolean removal;
private final Map<Object, Double> evaluatedNumbers = new IdentityHashMap<>();
public RewardContext(Player player, GemDefinition gem, ItemStack item, boolean removal) {
this.player = player;
this.gem = gem;
this.item = item;
this.removal = removal;
}
public Player player() {
return player;
}
public GemDefinition gem() {
return gem;
}
public ItemStack item() {
return item;
}
public void item(ItemStack item) {
this.item = item;
}
public boolean removal() {
return removal;
}
public double evaluatedNumber(Object key, DoubleSupplier supplier) {
return evaluatedNumbers.computeIfAbsent(key, ignored -> supplier.getAsDouble());
}
}