summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/bukkit/EntityEffect.java54
-rw-r--r--src/main/java/org/bukkit/entity/Entity.java10
-rw-r--r--src/test/java/org/bukkit/plugin/messaging/TestPlayer.java15
3 files changed, 69 insertions, 10 deletions
diff --git a/src/main/java/org/bukkit/EntityEffect.java b/src/main/java/org/bukkit/EntityEffect.java
new file mode 100644
index 00000000..9b2550dd
--- /dev/null
+++ b/src/main/java/org/bukkit/EntityEffect.java
@@ -0,0 +1,54 @@
+package org.bukkit;
+
+/**
+ * A list of all Effects that can happen to entities.
+ */
+public enum EntityEffect {
+
+ /**
+ * When mobs get hurt.
+ */
+ HURT((byte) 2),
+
+ /**
+ * When a mob dies.
+ * <p>
+ * <b>This will cause client-glitches!
+ */
+ DEATH((byte) 3),
+
+ /**
+ * The smoke when taming a wolf fails.
+ * <p>
+ * Without client-mods this will be ignored if the entity is not a wolf.
+ */
+ WOLF_SMOKE((byte) 6),
+
+ /**
+ * The hearts when taming a wolf succeeds.
+ * <p>
+ * Without client-mods this will be ignored if the entity is not a wolf.
+ */
+ WOLF_HEARTS((byte) 7),
+
+ /**
+ * When a wolf shakes (after being wet).
+ * <p>
+ * Without client-mods this will be ignored if the entity is not a wolf.
+ */
+ WOLF_SHAKE((byte) 8);
+
+ private final byte data;
+
+ EntityEffect(byte data)
+ {
+ this.data = data;
+ }
+
+ /**
+ * @return The data-value that is sent to the client to play this effect.
+ */
+ public byte getData() {
+ return data;
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index b47a7ddb..5ecebb46 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -1,6 +1,7 @@
package org.bukkit.entity;
import org.bukkit.Location;
+import org.bukkit.EntityEffect;
import org.bukkit.Server;
import org.bukkit.World;
import org.bukkit.event.entity.EntityDamageEvent;
@@ -216,4 +217,13 @@ public interface Entity {
* @param value Age of entity
*/
public void setTicksLived(int value);
+
+ /**
+ * Performs the specified {@link EntityEffect} for this entity.
+ * <p>
+ * This will be viewable to all players near the entity.
+ *
+ * @param type Effect to play.
+ */
+ public void playEffect(EntityEffect type);
}
diff --git a/src/test/java/org/bukkit/plugin/messaging/TestPlayer.java b/src/test/java/org/bukkit/plugin/messaging/TestPlayer.java
index 5c392a87..6fa07704 100644
--- a/src/test/java/org/bukkit/plugin/messaging/TestPlayer.java
+++ b/src/test/java/org/bukkit/plugin/messaging/TestPlayer.java
@@ -6,16 +6,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
-import org.bukkit.Achievement;
-import org.bukkit.Effect;
-import org.bukkit.GameMode;
-import org.bukkit.Instrument;
-import org.bukkit.Location;
-import org.bukkit.Material;
-import org.bukkit.Note;
-import org.bukkit.Server;
-import org.bukkit.Statistic;
-import org.bukkit.World;
+import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.entity.Arrow;
import org.bukkit.entity.Egg;
@@ -602,4 +593,8 @@ public class TestPlayer implements Player {
public Set<String> getListeningPluginChannels() {
throw new UnsupportedOperationException("Not supported yet.");
}
+
+ public void playEffect(EntityEffect type) {
+ throw new UnsupportedOperationException("Not supported yet.");
+ }
}