"""
Python module generated from Java source file org.bukkit.EntityEffect

Java source file obtained from artifact spigot-api version 1.18.2-R0.1-20220607.160742-53

Because this Python module is automatically generated, it may contain errors
and/or code that cannot be parsed. Please report these issues at
https://github.com/magicmq/docs-translator/issues
"""
from enum import Enum
from org.bukkit import *
from org.bukkit.entity import Ageable
from org.bukkit.entity import ArmorStand
from org.bukkit.entity import Cat
from org.bukkit.entity import Dolphin
from org.bukkit.entity import Entity
from org.bukkit.entity import Firework
from org.bukkit.entity import Fox
from org.bukkit.entity import Guardian
from org.bukkit.entity import IronGolem
from org.bukkit.entity import LivingEntity
from org.bukkit.entity import Player
from org.bukkit.entity import Rabbit
from org.bukkit.entity import Ravager
from org.bukkit.entity import Squid
from org.bukkit.entity import Tameable
from org.bukkit.entity import TippedArrow
from org.bukkit.entity import Villager
from org.bukkit.entity import Witch
from org.bukkit.entity import Wolf
from org.bukkit.entity import ZombieVillager
from typing import Any, Callable, Iterable, Tuple


class EntityEffect(Enum):
    """
    A list of all Effects that can happen to entities.
    """

    ARROW_PARTICLES = (0, TippedArrow)
    """
    Colored particles from a tipped arrow.
    """
    RABBIT_JUMP = (1, Rabbit)
    """
    Rabbit jumping.
    """
    HURT = (2, LivingEntity)
    """
    When mobs get hurt.
    """
    DEATH = (3, Entity)
    """
    When a mob dies.
    
    **This will cause client-glitches!**

    Deprecated
    - although this effect may trigger other events on non-living
    entities, it's only supported usage is on living ones.
    """
    WOLF_SMOKE = (6, Tameable)
    """
    The smoke when taming a wolf fails.
    """
    WOLF_HEARTS = (7, Wolf)
    """
    The hearts when taming a wolf succeeds.
    """
    WOLF_SHAKE = (8, Wolf)
    """
    When a wolf shakes (after being wet).
    """
    SHEEP_EAT = (10, Entity)
    """
    When an entity eats a LONG_GRASS block.

    Deprecated
    - although this effect may trigger other events on non-living
    entities, it's only supported usage is on living ones.
    """
    IRON_GOLEM_ROSE = (11, IronGolem)
    """
    When an Iron Golem gives a rose.
    """
    VILLAGER_HEART = (12, Villager)
    """
    Hearts from a villager.
    """
    VILLAGER_ANGRY = (13, Villager)
    """
    When a villager is angry.
    """
    VILLAGER_HAPPY = (14, Villager)
    """
    Happy particles from a villager.
    """
    WITCH_MAGIC = (15, Witch)
    """
    Magic particles from a witch.
    """
    ZOMBIE_TRANSFORM = (16, ZombieVillager)
    """
    When a zombie transforms into a villager by shaking violently.
    """
    FIREWORK_EXPLODE = (17, Firework)
    """
    When a firework explodes.
    """
    LOVE_HEARTS = (18, Ageable)
    """
    Hearts from a breeding entity.
    """
    SQUID_ROTATE = (19, Squid)
    """
    Resets squid rotation.
    """
    ENTITY_POOF = (20, LivingEntity)
    """
    Silverfish entering block, spawner spawning.
    """
    GUARDIAN_TARGET = (21, Guardian)
    """
    Guardian plays the attack sound effect.
    """
    SHIELD_BLOCK = (29, LivingEntity)
    """
    Shield blocks attack.
    """
    SHIELD_BREAK = (30, LivingEntity)
    """
    Shield breaks.
    """
    ARMOR_STAND_HIT = (32, ArmorStand)
    """
    Armor stand is hit.
    """
    THORNS_HURT = (33, LivingEntity)
    """
    Entity hurt by thorns attack.
    """
    IRON_GOLEM_SHEATH = (34, IronGolem)
    """
    Iron golem puts away rose.
    """
    TOTEM_RESURRECT = (35, LivingEntity)
    """
    Totem prevents entity death.
    """
    HURT_DROWN = (36, LivingEntity)
    """
    Entity hurt due to drowning damage.
    """
    HURT_EXPLOSION = (37, LivingEntity)
    """
    Entity hurt due to explosion damage.
    """
    DOLPHIN_FED = (38, Dolphin)
    """
    Dolphin has been fed and is locating a structure.
    """
    RAVAGER_STUNNED = (39, Ravager)
    """
    Ravager has been stunned for 40 ticks.
    """
    CAT_TAME_FAIL = (40, Cat)
    """
    Cat taming failed.
    """
    CAT_TAME_SUCCESS = (41, Cat)
    """
    Cat taming succeeded.
    """
    VILLAGER_SPLASH = (42, Villager)
    """
    Villager splashes particles during a raid.
    """
    PLAYER_BAD_OMEN_RAID = (43, Player)
    """
    Player's bad omen effect removed to start or increase raid difficult.
    """
    HURT_BERRY_BUSH = (44, LivingEntity)
    """
    Entity hurt due to berry bush. Prickly!
    """
    FOX_CHEW = (45, Fox)
    """
    Fox chews the food in its mouth
    """
    TELEPORT_ENDER = (46, LivingEntity)
    """
    Entity teleported as a result of chorus fruit or as an enderman
    """
    BREAK_EQUIPMENT_MAIN_HAND = (47, LivingEntity)
    """
    Entity breaks item in main hand
    """
    BREAK_EQUIPMENT_OFF_HAND = (48, LivingEntity)
    """
    Entity breaks item in off hand
    """
    BREAK_EQUIPMENT_HELMET = (49, LivingEntity)
    """
    Entity breaks item in helmet slot
    """
    BREAK_EQUIPMENT_CHESTPLATE = (50, LivingEntity)
    """
    Entity breaks item in chestplate slot
    """
    BREAK_EQUIPMENT_LEGGINGS = (51, LivingEntity)
    """
    Entity breaks item in legging slot
    """
    BREAK_EQUIPMENT_BOOTS = (52, LivingEntity)
    """
    Entity breaks item in boot slot
    """


    def getData(self) -> int:
        """
        Gets the data value of this EntityEffect

        Returns
        - The data value

        Deprecated
        - Magic value
        """
        ...


    def getApplicable(self) -> type["Entity"]:
        """
        Gets entity superclass which this affect is applicable to.

        Returns
        - applicable class
        """
        ...
