summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main/java/net/minecraft/server/EntityComplex.java26
-rw-r--r--src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java21
2 files changed, 46 insertions, 1 deletions
diff --git a/src/main/java/net/minecraft/server/EntityComplex.java b/src/main/java/net/minecraft/server/EntityComplex.java
new file mode 100644
index 00000000..29c337c0
--- /dev/null
+++ b/src/main/java/net/minecraft/server/EntityComplex.java
@@ -0,0 +1,26 @@
+package net.minecraft.server;
+
+public class EntityComplex extends EntityLiving {
+
+ protected int t = 100;
+
+ public EntityComplex(World world) {
+ super(world);
+ }
+
+ public int getMaxHealth() {
+ return this.t;
+ }
+
+ public boolean a(EntityComplexPart entitycomplexpart, DamageSource damagesource, int i) {
+ return this.damageEntity(damagesource, i);
+ }
+
+ public boolean damageEntity(DamageSource damagesource, int i) {
+ return false;
+ }
+
+ public boolean e(DamageSource damagesource, int i) { // CraftBukkit - protected -> public
+ return super.damageEntity(damagesource, i);
+ }
+}
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
index 549c0dfb..283c6f5c 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftComplexLivingEntity.java
@@ -1,9 +1,11 @@
package org.bukkit.craftbukkit.entity;
+import net.minecraft.server.DamageSource;
import net.minecraft.server.EntityComplex;
-import net.minecraft.server.EntityLiving;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.ComplexLivingEntity;
+import org.bukkit.entity.HumanEntity;
+import org.bukkit.entity.LivingEntity;
public abstract class CraftComplexLivingEntity extends CraftLivingEntity implements ComplexLivingEntity {
public CraftComplexLivingEntity(CraftServer server, EntityComplex entity) {
@@ -19,4 +21,21 @@ public abstract class CraftComplexLivingEntity extends CraftLivingEntity impleme
public String toString() {
return "CraftComplexLivingEntity";
}
+
+ @Override
+ public void damage(int amount, org.bukkit.entity.Entity source) {
+ DamageSource reason = DamageSource.GENERIC;
+
+ if (source instanceof HumanEntity) {
+ reason = DamageSource.playerAttack(((CraftHumanEntity) source).getHandle());
+ } else if (source instanceof LivingEntity) {
+ reason = DamageSource.mobAttack(((CraftLivingEntity) source).getHandle());
+ }
+
+ if (entity instanceof EntityComplex) {
+ ((EntityComplex) entity).e(reason, amount);
+ } else {
+ entity.damageEntity(reason, amount);
+ }
+ }
}