com.massivecraft.factions.util.Particles

## Class ParticleEffect.ParticlePacket

- java.lang.Object
- - com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket

- Enclosing class:
    ParticleEffect

      public static final class ParticleEffect.ParticlePacket
      extends java.lang.Object

  Represents a particle effect packet with all attributes which is used for sending packets to the players This class is part of the ParticleEffect Library and follows the same usage conditions
  Since:
    1.5

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ParticlePacket(ParticleEffect effect, float offsetX, float offsetY, float offsetZ, float speed, int amount, boolean longDistance, ParticleEffect.ParticleData data)` Construct a new particle packet
    `ParticlePacket(ParticleEffect effect, ParticleEffect.ParticleColor color, boolean longDistance)` Construct a new particle packet of a single colored particle
    `ParticlePacket(ParticleEffect effect, org.bukkit.util.Vector direction, float speed, boolean longDistance, ParticleEffect.ParticleData data)` Construct a new particle packet of a single particle flying into a determined direction

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static int` | `getVersion()` Returns the version of your server (1.x)
    `static void` | `initialize()` Initializes `packetConstructor`, `getHandle`, `playerConnection` and `sendPacket` and sets `initialized` to `true` if it succeeds Note: These fields only have to be initialized once, so it will return if `initialized` is already set to `true`
    `static boolean` | `isInitialized()` Determine if `packetConstructor`, `getHandle`, `playerConnection` and `sendPacket` are initialized
    `void` | `sendTo(org.bukkit.Location center, double range)` Sends the packet to all players in a certain range
    `void` | `sendTo(org.bukkit.Location center, java.util.List<org.bukkit.entity.Player> players)` Sends the packet to all players in the list
    `void` | `sendTo(org.bukkit.Location center, org.bukkit.entity.Player player)` Sends the packet to a single player and caches it

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ParticlePacket

          public ParticlePacket(ParticleEffect effect,
                                float offsetX,
                                float offsetY,
                                float offsetZ,
                                float speed,
                                int amount,
                                boolean longDistance,
                                ParticleEffect.ParticleData data)
                         throws java.lang.IllegalArgumentException

      Construct a new particle packet
      Parameters:
        `effect` - Particle effect
        `offsetX` - Maximum distance particles can fly away from the center on the x-axis
        `offsetY` - Maximum distance particles can fly away from the center on the y-axis
        `offsetZ` - Maximum distance particles can fly away from the center on the z-axis
        `speed` - Display speed of the particles
        `amount` - Amount of particles
        `longDistance` - Indicates whether the maximum distance is increased from 256 to 65536
        `data` - Data of the effect
      Throws:
        `java.lang.IllegalArgumentException` - If the speed or amount is lower than 0
      See Also:
        `initialize()`

    - #### ParticlePacket

          public ParticlePacket(ParticleEffect effect,
                                org.bukkit.util.Vector direction,
                                float speed,
                                boolean longDistance,
                                ParticleEffect.ParticleData data)
                         throws java.lang.IllegalArgumentException

      Construct a new particle packet of a single particle flying into a determined direction
      Parameters:
        `effect` - Particle effect
        `direction` - Direction of the particle
        `speed` - Display speed of the particle
        `longDistance` - Indicates whether the maximum distance is increased from 256 to 65536
        `data` - Data of the effect
      Throws:
        `java.lang.IllegalArgumentException` - If the speed is lower than 0

    - #### ParticlePacket

          public ParticlePacket(ParticleEffect effect,
                                ParticleEffect.ParticleColor color,
                                boolean longDistance)

      Construct a new particle packet of a single colored particle
      Parameters:
        `effect` - Particle effect
        `color` - Color of the particle
        `longDistance` - Indicates whether the maximum distance is increased from 256 to 65536

  - ### Method Detail

    - #### initialize

          public static void initialize()
                                 throws com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.VersionIncompatibleException

      Initializes `packetConstructor`, `getHandle`, `playerConnection` and `sendPacket` and sets `initialized` to `true` if it succeeds Note: These fields only have to be initialized once, so it will return if `initialized` is already set to `true`
      Throws:
        `VersionIncompatibleException` - if your bukkit version is not supported by this library
        `com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.VersionIncompatibleException`

    - #### getVersion

          public static int getVersion()

      Returns the version of your server (1.x)
      Returns:
        The version number

    - #### isInitialized

          public static boolean isInitialized()

      Determine if `packetConstructor`, `getHandle`, `playerConnection` and `sendPacket` are initialized
      Returns:
        Whether these fields are initialized or not
      See Also:
        `initialize()`

    - #### sendTo

          public void sendTo(org.bukkit.Location center,
                             org.bukkit.entity.Player player)
                      throws com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.PacketInstantiationException,
                             com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.PacketSendingException

      Sends the packet to a single player and caches it
      Parameters:
        `center` - Center location of the effect
        `player` - Receiver of the packet
      Throws:
        `PacketInstantiationException` - If instantion fails due to an unknown error
        `PacketSendingException` - If sending fails due to an unknown error
        `com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.PacketInstantiationException`
        `com.massivecraft.factions.util.Particles.ParticleEffect.ParticlePacket.PacketSendingException`
      See Also:
        `initializePacket(Location)`

    - #### sendTo

          public void sendTo(org.bukkit.Location center,
                             java.util.List<org.bukkit.entity.Player> players)
                      throws java.lang.IllegalArgumentException

      Sends the packet to all players in the list
      Parameters:
        `center` - Center location of the effect
        `players` - Receivers of the packet
      Throws:
        `java.lang.IllegalArgumentException` - If the player list is empty
      See Also:
        `sendTo(Location center, Player player)`

    - #### sendTo

          public void sendTo(org.bukkit.Location center,
                             double range)
                      throws java.lang.IllegalArgumentException

      Sends the packet to all players in a certain range
      Parameters:
        `center` - Center location of the effect
        `range` - Range in which players will receive the packet (Maximum range for particles is usually 16, but it can differ for some types)
      Throws:
        `java.lang.IllegalArgumentException` - If the range is lower than 1
      See Also:
        `sendTo(Location center, Player player)`