Expand PotionMeta Api to allow getting effective potion colour and effects (#12390)

This commit is contained in:
Isaac - The456
2025-05-02 21:31:39 +01:00
committed by GitHub
parent 825685f82f
commit 2bd84f6f0e
4 changed files with 83 additions and 0 deletions

View File

@@ -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<>();