mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 13:06:02 +01:00
SPIGOT-2640: API for multiple passengers per entity
This commit is contained in:
parent
ce89845fda
commit
7e19325845
@ -1,6 +1,8 @@
|
|||||||
package org.bukkit.craftbukkit.entity;
|
package org.bukkit.craftbukkit.entity;
|
||||||
|
|
||||||
|
import com.google.common.base.Function;
|
||||||
import com.google.common.base.Preconditions;
|
import com.google.common.base.Preconditions;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -331,13 +333,37 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|||||||
Preconditions.checkArgument(!this.equals(passenger), "Entity cannot ride itself.");
|
Preconditions.checkArgument(!this.equals(passenger), "Entity cannot ride itself.");
|
||||||
if (passenger instanceof CraftEntity) {
|
if (passenger instanceof CraftEntity) {
|
||||||
eject();
|
eject();
|
||||||
((CraftEntity) passenger).getHandle().startRiding(getHandle());
|
return ((CraftEntity) passenger).getHandle().startRiding(getHandle());
|
||||||
return true;
|
|
||||||
} else {
|
} else {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<org.bukkit.entity.Entity> getPassengers() {
|
||||||
|
return Lists.newArrayList(Lists.transform(getHandle().passengers, new Function<Entity, org.bukkit.entity.Entity>() {
|
||||||
|
@Override
|
||||||
|
public org.bukkit.entity.Entity apply(Entity input) {
|
||||||
|
return input.getBukkitEntity();
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean addPassenger(org.bukkit.entity.Entity passenger) {
|
||||||
|
Preconditions.checkArgument(passenger != null, "passenger == null");
|
||||||
|
|
||||||
|
return ((CraftEntity) passenger).getHandle().a(getHandle(), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean removePassenger(org.bukkit.entity.Entity passenger) {
|
||||||
|
Preconditions.checkArgument(passenger != null, "passenger == null");
|
||||||
|
|
||||||
|
((CraftEntity) passenger).getHandle().stopRiding();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
return !getHandle().isVehicle();
|
return !getHandle().isVehicle();
|
||||||
}
|
}
|
||||||
@ -347,7 +373,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
getPassenger().leaveVehicle();
|
getHandle().az(); // PAIL: rename
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user