#686: Expand Strider and Steerable entity API
By: Parker Hawke <hawkeboyz2@hotmail.com>
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import net.minecraft.server.EntityPig;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Pig;
|
||||
|
||||
public class CraftPig extends CraftAnimals implements Pig {
|
||||
|
||||
public CraftPig(CraftServer server, EntityPig entity) {
|
||||
super(server, entity);
|
||||
}
|
||||
@@ -20,6 +23,40 @@ public class CraftPig extends CraftAnimals implements Pig {
|
||||
getHandle().saddleStorage.setSaddle(saddled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBoostTicks() {
|
||||
return getHandle().saddleStorage.a ? getHandle().saddleStorage.c : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoostTicks(int ticks) {
|
||||
Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0");
|
||||
|
||||
getHandle().saddleStorage.setBoostTicks(ticks);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCurrentBoostTicks() {
|
||||
return getHandle().saddleStorage.a ? getHandle().saddleStorage.b : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentBoostTicks(int ticks) {
|
||||
if (!getHandle().saddleStorage.a) {
|
||||
return;
|
||||
}
|
||||
|
||||
int max = getHandle().saddleStorage.c;
|
||||
Preconditions.checkArgument(ticks >= 0 && ticks <= max, "boost ticks must not exceed 0 or %d (inclusive)", max);
|
||||
|
||||
this.getHandle().saddleStorage.b = ticks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Material getSteerMaterial() {
|
||||
return Material.CARROT_ON_A_STICK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityPig getHandle() {
|
||||
return (EntityPig) entity;
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.bukkit.craftbukkit.entity;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import net.minecraft.server.EntityStrider;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.entity.Strider;
|
||||
@@ -11,6 +13,60 @@ public class CraftStrider extends CraftAnimals implements Strider {
|
||||
super(server, entity);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isShivering() {
|
||||
return getHandle().eL(); // PAIL rename isShivering
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setShivering(boolean shivering) {
|
||||
this.getHandle().t(shivering); // PAIL rename setShivering
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasSaddle() {
|
||||
return getHandle().hasSaddle();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSaddle(boolean saddled) {
|
||||
getHandle().bA.setSaddle(saddled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getBoostTicks() {
|
||||
return getHandle().bA.a ? getHandle().bA.c : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBoostTicks(int ticks) {
|
||||
Preconditions.checkArgument(ticks >= 0, "ticks must be >= 0");
|
||||
|
||||
getHandle().bA.setBoostTicks(ticks);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCurrentBoostTicks() {
|
||||
return getHandle().bA.a ? getHandle().bA.b : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setCurrentBoostTicks(int ticks) {
|
||||
if (!getHandle().bA.a) {
|
||||
return;
|
||||
}
|
||||
|
||||
int max = getHandle().bA.c;
|
||||
Preconditions.checkArgument(ticks >= 0 && ticks <= max, "boost ticks must not exceed 0 or %d (inclusive)", max);
|
||||
|
||||
this.getHandle().bA.b = ticks;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Material getSteerMaterial() {
|
||||
return Material.WARPED_FUNGUS_ON_A_STICK;
|
||||
}
|
||||
|
||||
@Override
|
||||
public EntityStrider getHandle() {
|
||||
return (EntityStrider) entity;
|
||||
|
||||
@@ -39,6 +39,7 @@ import net.minecraft.server.EntityPlayer;
|
||||
import net.minecraft.server.EntityPotion;
|
||||
import net.minecraft.server.EntityRaider;
|
||||
import net.minecraft.server.EntitySlime;
|
||||
import net.minecraft.server.EntityStrider;
|
||||
import net.minecraft.server.EntityTypes;
|
||||
import net.minecraft.server.EntityVillager;
|
||||
import net.minecraft.server.EntityWaterAnimal;
|
||||
@@ -113,6 +114,7 @@ import org.bukkit.entity.PigZombie;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.entity.Raider;
|
||||
import org.bukkit.entity.Strider;
|
||||
import org.bukkit.entity.ThrownExpBottle;
|
||||
import org.bukkit.entity.ThrownPotion;
|
||||
import org.bukkit.entity.Vehicle;
|
||||
@@ -180,6 +182,7 @@ import org.bukkit.event.entity.PlayerLeashEntityEvent;
|
||||
import org.bukkit.event.entity.PotionSplashEvent;
|
||||
import org.bukkit.event.entity.ProjectileHitEvent;
|
||||
import org.bukkit.event.entity.ProjectileLaunchEvent;
|
||||
import org.bukkit.event.entity.StriderTemperatureChangeEvent;
|
||||
import org.bukkit.event.entity.VillagerCareerChangeEvent;
|
||||
import org.bukkit.event.inventory.InventoryCloseEvent;
|
||||
import org.bukkit.event.inventory.InventoryOpenEvent;
|
||||
@@ -1576,4 +1579,9 @@ public class CraftEventFactory {
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
return event;
|
||||
}
|
||||
|
||||
public static void callStriderTemperatureChangeEvent(EntityStrider strider, boolean shivering) {
|
||||
StriderTemperatureChangeEvent event = new StriderTemperatureChangeEvent((Strider) strider.getBukkitEntity(), shivering);
|
||||
Bukkit.getPluginManager().callEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user