mirror of
https://github.com/PaperMC/Paper.git
synced 2025-08-10 00:52:22 -07:00
90
paper-api/src/main/java/org/bukkit/Vibration.java
Normal file
90
paper-api/src/main/java/org/bukkit/Vibration.java
Normal file
@@ -0,0 +1,90 @@
|
||||
package org.bukkit;
|
||||
|
||||
import org.bukkit.block.Block;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Represents a vibration from a Skulk sensor.
|
||||
*/
|
||||
public class Vibration {
|
||||
|
||||
private final Location origin;
|
||||
private final Destination destination;
|
||||
private final int arrivalTime;
|
||||
|
||||
public Vibration(@NotNull Location origin, @NotNull Destination destination, @NotNull int arrivalTime) {
|
||||
this.origin = origin;
|
||||
this.destination = destination;
|
||||
this.arrivalTime = arrivalTime;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the origin of the vibration.
|
||||
*
|
||||
* @return origin
|
||||
*/
|
||||
@NotNull
|
||||
public Location getOrigin() {
|
||||
return origin;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the vibration destination.
|
||||
*
|
||||
* @return destination
|
||||
*/
|
||||
@NotNull
|
||||
public Destination getDestination() {
|
||||
return destination;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the vibration arrival time in ticks.
|
||||
*
|
||||
* @return arrival time
|
||||
*/
|
||||
public int getArrivalTime() {
|
||||
return arrivalTime;
|
||||
}
|
||||
|
||||
public interface Destination {
|
||||
|
||||
public static class EntityDestination implements Destination {
|
||||
|
||||
private final Entity entity;
|
||||
|
||||
public EntityDestination(@NotNull Entity entity) {
|
||||
this.entity = entity;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Entity getEntity() {
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
public static class BlockDestination implements Destination {
|
||||
|
||||
private final Location block;
|
||||
|
||||
public BlockDestination(@NotNull Location block) {
|
||||
this.block = block;
|
||||
}
|
||||
|
||||
public BlockDestination(@NotNull Block block) {
|
||||
this(block.getLocation());
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Location getLocation() {
|
||||
return block;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Block getBlock() {
|
||||
return block.getBlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user