Player Seat #3
@ -25,6 +25,7 @@ import org.bukkit.block.data.Bisected;
|
||||
import org.bukkit.block.data.type.Stairs;
|
||||
import org.bukkit.entity.AbstractArrow;
|
||||
import org.bukkit.entity.Arrow;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.EntityType;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.block.Action;
|
||||
@ -70,7 +71,7 @@ public class PlayerSeatListener extends BasicListener{
|
||||
if (((Stairs) event.getClickedBlock().getBlockData()).getShape() != Stairs.Shape.STRAIGHT)
|
||||
return;
|
||||
|
||||
if (event.getPlayer().isInsideVehicle())
|
||||
if (event.getPlayer().isInsideVehicle() && isArrow(event.getPlayer().getVehicle()))
|
||||
|
||||
event.getPlayer().getVehicle().remove();
|
||||
|
||||
if (event.getClickedBlock().getRelative(0, 1, 0).getType() != Material.AIR)
|
||||
@ -93,7 +94,7 @@ public class PlayerSeatListener extends BasicListener{
|
||||
public void onEntityDismount(EntityDismountEvent event) {
|
||||
seats.remove(getSeatLocation(event.getDismounted().getLocation()));
|
||||
|
||||
if (event.getEntityType() != EntityType.PLAYER && event.getDismounted().getType() != EntityType.ARROW)
|
||||
if (event.getEntityType() != EntityType.PLAYER && !isArrow(event.getDismounted()))
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Veraltet
Lixfel
hat
Das ist zu allgemein (es sollte darauf geprüft werden, dass es tatsächlich ein Sitz ist), da ggf. später noch Bootsrennen in die Lobby kommen und da die Boote nicht unbedingt despawnen sollten. Das ist zu allgemein (es sollte darauf geprüft werden, dass es tatsächlich ein Sitz ist), da ggf. später noch Bootsrennen in die Lobby kommen und da die Boote nicht unbedingt despawnen sollten.
|
||||
return;
|
||||
|
||||
event.getDismounted().remove();
|
||||
@ -101,7 +102,7 @@ public class PlayerSeatListener extends BasicListener{
|
||||
|
||||
@EventHandler
|
||||
zOnlyKroks markierte diese Unterhaltung als gelöst
Lixfel
hat
Siehe oben. Siehe oben.
|
||||
public void onPlayerQuit(PlayerQuitEvent event) {
|
||||
if (event.getPlayer().isInsideVehicle() && event.getPlayer().getVehicle().getType() == EntityType.ARROW)
|
||||
if (event.getPlayer().isInsideVehicle() && isArrow(event.getPlayer().getVehicle()))
|
||||
event.getPlayer().getVehicle().remove();
|
||||
}
|
||||
|
||||
@ -109,4 +110,7 @@ public class PlayerSeatListener extends BasicListener{
|
||||
return new Location(world,location.getBlockX(), location.getBlockY(), location.getBlockZ());
|
||||
}
|
||||
|
||||
private boolean isArrow(Entity entity) {
|
||||
return entity.getType() == EntityType.ARROW;
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren
Könnten wir hier vor dem Entfernen noch darauf prüfen, dass es sich um einen Pfeil handelt (wie auch unten?). Ggf. könnte man das dann auch in eine separate Funktion auslagern.
Sollte jetzt behoben sein.