001 package org.bukkit; 002 003 import java.util.Map; 004 005 import com.google.common.collect.Maps; 006 007 /** 008 * A list of all Effects that can happen to entities. 009 */ 010 public enum EntityEffect { 011 012 /** 013 * When mobs get hurt. 014 */ 015 HURT(2), 016 017 /** 018 * When a mob dies. 019 * <p> 020 * <b>This will cause client-glitches! 021 */ 022 DEATH(3), 023 024 /** 025 * The smoke when taming a wolf fails. 026 * <p> 027 * Without client-mods this will be ignored if the entity is not a wolf. 028 */ 029 WOLF_SMOKE(6), 030 031 /** 032 * The hearts when taming a wolf succeeds. 033 * <p> 034 * Without client-mods this will be ignored if the entity is not a wolf. 035 */ 036 WOLF_HEARTS(7), 037 038 /** 039 * When a wolf shakes (after being wet). 040 * <p> 041 * Without client-mods this will be ignored if the entity is not a wolf. 042 */ 043 WOLF_SHAKE(8), 044 045 /** 046 * When a sheep eats a LONG_GRASS block. 047 */ 048 SHEEP_EAT(10), 049 050 /** 051 * When an Iron Golem gives a rose. 052 * <p> 053 * This will not play an effect if the entity is not an iron golem. 054 */ 055 IRON_GOLEM_ROSE(11), 056 057 /** 058 * Hearts from a villager. 059 * <p> 060 * This will not play an effect if the entity is not a villager. 061 */ 062 VILLAGER_HEART(12), 063 064 /** 065 * When a villager is angry. 066 * <p> 067 * This will not play an effect if the entity is not a villager. 068 */ 069 VILLAGER_ANGRY(13), 070 071 /** 072 * Happy particles from a villager. 073 * <p> 074 * This will not play an effect if the entity is not a villager. 075 */ 076 VILLAGER_HAPPY(14), 077 078 /** 079 * Magic particles from a witch. 080 * <p> 081 * This will not play an effect if the entity is not a witch. 082 */ 083 WITCH_MAGIC(15), 084 085 /** 086 * When a zombie transforms into a villager by shaking violently. 087 * <p> 088 * This will not play an effect if the entity is not a zombie. 089 */ 090 ZOMBIE_TRANSFORM(16), 091 092 /** 093 * When a firework explodes. 094 * <p> 095 * This will not play an effect if the entity is not a firework. 096 */ 097 FIREWORK_EXPLODE(17); 098 099 private final byte data; 100 private final static Map<Byte, EntityEffect> BY_DATA = Maps.newHashMap(); 101 102 EntityEffect(final int data) { 103 this.data = (byte) data; 104 } 105 106 /** 107 * Gets the data value of this EntityEffect 108 * 109 * @return The data value 110 * @deprecated Magic value 111 */ 112 @Deprecated 113 public byte getData() { 114 return data; 115 } 116 117 /** 118 * Gets the EntityEffect with the given data value 119 * 120 * @param data Data value to fetch 121 * @return The {@link EntityEffect} representing the given value, or null 122 * if it doesn't exist 123 * @deprecated Magic value 124 */ 125 @Deprecated 126 public static EntityEffect getByData(final byte data) { 127 return BY_DATA.get(data); 128 } 129 130 131 static { 132 for (EntityEffect entityEffect : values()) { 133 BY_DATA.put(entityEffect.data, entityEffect); 134 } 135 } 136 }