mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 15:30:19 +01:00
More PotionEffectType API
This commit is contained in:
parent
5746f17f68
commit
5ac3ad3792
3 changed files with 100 additions and 1 deletions
|
@ -367,6 +367,15 @@ public interface Registry<T extends Keyed> extends Iterable<T> {
|
|||
* @see GameEvent
|
||||
*/
|
||||
Registry<GameEvent> GAME_EVENT = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.GAME_EVENT); // Paper
|
||||
|
||||
// Paper start - potion effect type registry
|
||||
/**
|
||||
* Potion effect types.
|
||||
*
|
||||
* @see org.bukkit.potion.PotionEffectType
|
||||
*/
|
||||
Registry<org.bukkit.potion.PotionEffectType> POTION_EFFECT_TYPE = EFFECT;
|
||||
// Paper end - potion effect type registry
|
||||
/**
|
||||
* Get the object by its key.
|
||||
*
|
||||
|
|
|
@ -17,7 +17,7 @@ import org.jetbrains.annotations.Nullable;
|
|||
/**
|
||||
* Represents a type of potion and its effect on an entity.
|
||||
*/
|
||||
public abstract class PotionEffectType implements Keyed, Translatable {
|
||||
public abstract class PotionEffectType implements Keyed, Translatable, net.kyori.adventure.translation.Translatable { // Paper - implement Translatable
|
||||
private static final BiMap<Integer, PotionEffectType> ID_MAP = HashBiMap.create();
|
||||
|
||||
/**
|
||||
|
@ -360,4 +360,57 @@ public abstract class PotionEffectType implements Keyed, Translatable {
|
|||
public static PotionEffectType[] values() {
|
||||
return Lists.newArrayList(Registry.EFFECT).toArray(new PotionEffectType[0]);
|
||||
}
|
||||
|
||||
// Paper start
|
||||
/**
|
||||
* Gets the effect attributes in an immutable map.
|
||||
*
|
||||
* @return the attribute map
|
||||
*/
|
||||
public abstract @NotNull java.util.Map<org.bukkit.attribute.Attribute, org.bukkit.attribute.AttributeModifier> getEffectAttributes();
|
||||
|
||||
/**
|
||||
* Gets the true modifier amount based on the effect amplifier.
|
||||
*
|
||||
* @param attribute the attribute
|
||||
* @param effectAmplifier the effect amplifier (0 indexed)
|
||||
* @return the modifier amount
|
||||
* @throws IllegalArgumentException if the supplied attribute is not present in the map from {@link #getEffectAttributes()}
|
||||
*/
|
||||
public abstract double getAttributeModifierAmount(@NotNull org.bukkit.attribute.Attribute attribute, int effectAmplifier);
|
||||
|
||||
/**
|
||||
* Gets the category of this effect
|
||||
*
|
||||
* @return the category
|
||||
*/
|
||||
public abstract @NotNull PotionEffectType.Category getEffectCategory();
|
||||
|
||||
/**
|
||||
* Category of {@link PotionEffectType}s
|
||||
*/
|
||||
public enum Category {
|
||||
|
||||
BENEFICIAL(net.kyori.adventure.text.format.NamedTextColor.BLUE),
|
||||
HARMFUL(net.kyori.adventure.text.format.NamedTextColor.RED),
|
||||
NEUTRAL(net.kyori.adventure.text.format.NamedTextColor.BLUE);
|
||||
|
||||
private final net.kyori.adventure.text.format.TextColor color;
|
||||
|
||||
Category(net.kyori.adventure.text.format.TextColor color) {
|
||||
this.color = color;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the text color used when displaying potions
|
||||
* of this category.
|
||||
*
|
||||
* @return the text color
|
||||
*/
|
||||
@NotNull
|
||||
public net.kyori.adventure.text.format.TextColor getColor() {
|
||||
return color;
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
|
|
@ -19,4 +19,41 @@ public abstract class PotionEffectTypeWrapper extends PotionEffectType {
|
|||
public PotionEffectType getType() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInstant() {
|
||||
return getType().isInstant();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public org.bukkit.Color getColor() {
|
||||
return getType().getColor();
|
||||
}
|
||||
// Paper start
|
||||
@Override
|
||||
public @NotNull org.bukkit.NamespacedKey getKey() {
|
||||
return this.getType().getKey();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull java.util.Map<org.bukkit.attribute.Attribute, org.bukkit.attribute.AttributeModifier> getEffectAttributes() {
|
||||
return this.getType().getEffectAttributes();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAttributeModifierAmount(@NotNull org.bukkit.attribute.Attribute attribute, int effectAmplifier) {
|
||||
return this.getType().getAttributeModifierAmount(attribute, effectAmplifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull PotionEffectType.Category getEffectCategory() {
|
||||
return this.getType().getEffectCategory();
|
||||
}
|
||||
|
||||
@Override
|
||||
public @NotNull String translationKey() {
|
||||
return this.getType().translationKey();
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue