Expand PotionMeta Api to allow getting effective potion colour and effects (#12390)
This commit is contained in:
@@ -5,6 +5,8 @@ import io.papermc.paper.util.MCUtil;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.StreamSupport;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import org.bukkit.Color;
|
||||
import org.bukkit.craftbukkit.potion.CraftPotionType;
|
||||
@@ -48,6 +50,19 @@ public record PaperPotionContents(
|
||||
return this.impl.customName().orElse(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @Unmodifiable List<PotionEffect> allEffects() {
|
||||
//noinspection SimplifyStreamApiCallChains - explicity want it unmodifiable, as toList() api doesnt guarantee this.
|
||||
return StreamSupport.stream(this.impl.getAllEffects().spliterator(), false)
|
||||
.map(CraftPotionUtil::toBukkit)
|
||||
.collect(Collectors.toUnmodifiableList());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color computeEffectiveColor() {
|
||||
return Color.fromARGB(this.impl.getColor());
|
||||
}
|
||||
|
||||
static final class BuilderImpl implements PotionContents.Builder {
|
||||
|
||||
private final List<MobEffectInstance> customEffects = new ObjectArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user