39 lines
1.1 KiB
Java
39 lines
1.1 KiB
Java
package com.alttd.fishingevent.objects;
|
|
|
|
import it.unimi.dsi.fastutil.ints.Int2ObjectOpenHashMap;
|
|
import net.kyori.adventure.text.Component;
|
|
|
|
import java.util.Optional;
|
|
|
|
public class EnchantmentTrack {
|
|
|
|
private final Component name;
|
|
private final Int2ObjectOpenHashMap<EnchantmentData> enchantmentMap;
|
|
private final String internalName;
|
|
|
|
public EnchantmentTrack(String internalName, Component name, Int2ObjectOpenHashMap<EnchantmentData> enchantmentMap) {
|
|
this.internalName = internalName.toLowerCase();
|
|
this.name = name;
|
|
this.enchantmentMap = enchantmentMap;
|
|
}
|
|
|
|
public Optional<EnchantmentData> nextEnchantment(int trackLevel) {
|
|
if (enchantmentMap.containsKey(trackLevel + 1)) {
|
|
return Optional.of(enchantmentMap.get(trackLevel + 1));
|
|
}
|
|
return Optional.empty();
|
|
}
|
|
|
|
public Component getName() {
|
|
return name;
|
|
}
|
|
|
|
public String getInternalName() {
|
|
return internalName;
|
|
}
|
|
|
|
public int getMaxLevel() {
|
|
return enchantmentMap.keySet().stream().max(Integer::compare).orElse(0);
|
|
}
|
|
}
|