mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 04:17:44 +01:00
Added passenger methods to Vehicle/LivingEntity.
By: sk89q <the.sk89q@gmail.com>
This commit is contained in:
parent
a4aca48cb4
commit
b0bf52751f
@ -5,6 +5,7 @@ import net.minecraft.server.Entity;
|
||||
import net.minecraft.server.WorldServer;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Vector;
|
||||
import org.bukkit.Vehicle;
|
||||
import org.bukkit.World;
|
||||
|
||||
public abstract class CraftEntity implements org.bukkit.Entity {
|
||||
|
@ -11,6 +11,7 @@ import org.bukkit.Arrow;
|
||||
import org.bukkit.Egg;
|
||||
import org.bukkit.LivingEntity;
|
||||
import org.bukkit.Snowball;
|
||||
import org.bukkit.Vehicle;
|
||||
|
||||
public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
private EntityLiving entity;
|
||||
@ -61,11 +62,36 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
return new CraftSnowball(server, snowball);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Arrow shootArrow() {
|
||||
net.minecraft.server.World world = ((CraftWorld)getWorld()).getHandle();
|
||||
EntityArrow snowball = new EntityArrow(world, entity);
|
||||
world.a(snowball);
|
||||
return new CraftArrow(server, snowball);
|
||||
}
|
||||
|
||||
public boolean isInsideVehicle() {
|
||||
return entity.k != null;
|
||||
}
|
||||
|
||||
public boolean leaveVehicle() {
|
||||
if (entity.k == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
entity.setPassengerOf(null);
|
||||
return true;
|
||||
}
|
||||
|
||||
public Vehicle getVehicle() {
|
||||
if (entity.k == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
org.bukkit.Entity vehicle = ((CraftWorld)getWorld()).toCraftEntity(entity.k);
|
||||
if (vehicle instanceof Vehicle) {
|
||||
return (Vehicle)vehicle;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -17,8 +17,22 @@ public abstract class CraftVehicle extends CraftEntity implements Vehicle {
|
||||
public Entity getPassenger() {
|
||||
return ((CraftWorld)getWorld()).toCraftEntity(getHandle().j);
|
||||
}
|
||||
|
||||
public boolean setPassenger(Entity passenger) {
|
||||
((CraftEntity)passenger).getHandle().setPassengerOf(getHandle());
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean isEmpty() {
|
||||
return getHandle().j == null;
|
||||
}
|
||||
|
||||
public boolean eject() {
|
||||
if (getHandle().j == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
getHandle().j.setPassengerOf(null);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user