package com.bergerkiller.bukkit.common.controller; import net.minecraft.server.DamageSource; import net.minecraft.server.Entity; import org.bukkit.entity.HumanEntity; import com.bergerkiller.bukkit.common.entity.nms.NMSEntityHook; import com.bergerkiller.bukkit.common.internal.CommonNMS; import com.bergerkiller.bukkit.common.reflection.classes.EntityRef; /** * Does nothing but redirect to the default entity behavior */ @SuppressWarnings("rawtypes") public final class DefaultEntityController extends EntityController { public DefaultEntityController() { } @Override public void onDie() { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { super.onDie(); } else { // ((Entity) handle).isI ((Entity) handle).die(); } } @Override public void onTick() { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { super.onTick(); } else { ((Entity) handle).h(); } } @Override public boolean onInteractBy(HumanEntity interacter) { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { return super.onInteractBy(interacter); } else { return ((Entity) handle).c(CommonNMS.getNative(interacter)); } } @Override public void onDamage(com.bergerkiller.bukkit.common.wrappers.DamageSource damageSource, double damage) { if (entity.getHandle() instanceof NMSEntityHook) { super.onDamage(damageSource, damage); } ((Entity) entity.getHandle()).damageEntity((DamageSource) damageSource.getHandle(), (float) damage); } @Override public void onBurnDamage(double damage) { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { super.onBurnDamage(damage); } else { EntityRef.burn(handle, (float) damage); } } @Override public String getLocalizedName() { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { return super.getLocalizedName(); } else { return ((Entity) handle).getName(); } } @Override public void onPush(double dx, double dy, double dz) { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { ((NMSEntityHook) handle).super_g(dx, dy, dz); } else { ((Entity) handle).g(dx, dy, dz); } } @Override public void onMove(double dx, double dy, double dz) { final Object handle = entity.getHandle(); if (handle instanceof NMSEntityHook) { ((NMSEntityHook) handle).super_move(dx, dy, dz); } else { ((Entity) handle).move(dx, dy, dz); } } }