2019-06-21 20:00:00 +10:00

92 lines
2.3 KiB
Java

package org.bukkit.craftbukkit.entity;
import com.google.common.base.Preconditions;
import net.minecraft.server.EntityCreeper;
import org.bukkit.craftbukkit.CraftServer;
import org.bukkit.entity.Creeper;
import org.bukkit.entity.EntityType;
import org.bukkit.event.entity.CreeperPowerEvent;
public class CraftCreeper extends CraftMonster implements Creeper {
public CraftCreeper(CraftServer server, EntityCreeper entity) {
super(server, entity);
}
@Override
public boolean isPowered() {
return getHandle().isPowered();
}
@Override
public void setPowered(boolean powered) {
CraftServer server = this.server;
Creeper entity = (Creeper) this.getHandle().getBukkitEntity();
if (powered) {
CreeperPowerEvent event = new CreeperPowerEvent(entity, CreeperPowerEvent.PowerCause.SET_ON);
server.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
getHandle().setPowered(true);
}
} else {
CreeperPowerEvent event = new CreeperPowerEvent(entity, CreeperPowerEvent.PowerCause.SET_OFF);
server.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
getHandle().setPowered(false);
}
}
}
@Override
public void setMaxFuseTicks(int ticks) {
Preconditions.checkArgument(ticks >= 0, "ticks < 0");
getHandle().maxFuseTicks = ticks;
}
@Override
public int getMaxFuseTicks() {
return getHandle().maxFuseTicks;
}
@Override
public void setExplosionRadius(int radius) {
Preconditions.checkArgument(radius >= 0, "radius < 0");
getHandle().explosionRadius = radius;
}
@Override
public int getExplosionRadius() {
return getHandle().explosionRadius;
}
@Override
public void explode() {
getHandle().explode();
}
@Override
public void ignite() {
getHandle().ignite();
}
@Override
public EntityCreeper getHandle() {
return (EntityCreeper) entity;
}
@Override
public String toString() {
return "CraftCreeper";
}
@Override
public EntityType getType() {
return EntityType.CREEPER;
}
}