Class PlayerEffectMechanicList

java.lang.Object
me.deecaad.core.mechanics.defaultmechanics.Mechanic
me.deecaad.core.mechanics.PlayerEffectMechanicList
All Implemented Interfaces:
InlineSerializer<Mechanic>, Serializer<Mechanic>, net.kyori.adventure.key.Keyed, org.bukkit.Keyed

public final class PlayerEffectMechanicList extends Mechanic
This class wraps a list of PlayerEffectMechanic. The purpose of this is to cache a list of targeted players so we don't waste resources instead targeting every entity in the world, every mechanic we cast. This is especially crucial for the SoundMechanic, which may exist 10+ times in 1 MechanicManager, causing major performance issues on big servers.
  • Constructor Details

    • PlayerEffectMechanicList

      public PlayerEffectMechanicList()
  • Method Details

    • getKey

      @NotNull public @NotNull org.bukkit.NamespacedKey getKey()
    • addMechanic

      public void addMechanic(PlayerEffectMechanic mechanic)
    • isEmpty

      public boolean isEmpty()
    • use

      public void use(CastData cast)
      Description copied from class: Mechanic
      This method will trigger this Mechanic.

      This method probably shouldn't be overridden. It handles the global repeat, delay, targeter, and condition code. The behavior of the specific Mechanic is handled by the protected Mechanic.use0(CastData) method.

      Overrides:
      use in class Mechanic
      Parameters:
      cast - The non-null cast data.
    • use0

      protected void use0(CastData cast)
      Description copied from class: Mechanic
      This method should be overridden to define the behavior of the Mechanic. For example, a Potion mechanic may use the CastData.getTarget() method to apply a potion effect.
      Specified by:
      use0 in class Mechanic
      Parameters:
      cast - The non-null data including source/target information.
    • serialize

      @NotNull public @NotNull Mechanic serialize(@NotNull @NotNull me.deecaad.core.file.SerializeData data) throws me.deecaad.core.file.SerializerException
      Description copied from interface: Serializer
      Instantiates a new Object to be added into the finalized configuration. The object should be built off of SerializeData.getConfig(). If there is any misconfiguration (or any other issue preventing the construction of an object), then this method should throw a SerializerException. This method may not return null.
      Parameters:
      data - The non-null data containing config
      Returns:
      The non-null serialized data.
      Throws:
      me.deecaad.core.file.SerializerException - If there is an error in config.