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
|
* @see GameEvent
|
||||||
*/
|
*/
|
||||||
Registry<GameEvent> GAME_EVENT = io.papermc.paper.registry.RegistryAccess.registryAccess().getRegistry(io.papermc.paper.registry.RegistryKey.GAME_EVENT); // Paper
|
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.
|
* 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.
|
* 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();
|
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() {
|
public static PotionEffectType[] values() {
|
||||||
return Lists.newArrayList(Registry.EFFECT).toArray(new PotionEffectType[0]);
|
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() {
|
public PotionEffectType getType() {
|
||||||
return this;
|
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