Turtle API
This commit is contained in:
@@ -0,0 +1,53 @@
|
|||||||
|
package com.destroystokyo.paper.event.entity;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Turtle;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.entity.EntityEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jspecify.annotations.NullMarked;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a Turtle decides to go home
|
||||||
|
*/
|
||||||
|
@NullMarked
|
||||||
|
public class TurtleGoHomeEvent extends EntityEvent implements Cancellable {
|
||||||
|
|
||||||
|
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
|
|
||||||
|
private boolean cancelled;
|
||||||
|
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public TurtleGoHomeEvent(final Turtle turtle) {
|
||||||
|
super(turtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The turtle going home
|
||||||
|
*
|
||||||
|
* @return The turtle
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Turtle getEntity() {
|
||||||
|
return (Turtle) super.getEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(final boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,90 @@
|
|||||||
|
package com.destroystokyo.paper.event.entity;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Turtle;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.entity.EntityEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jspecify.annotations.NullMarked;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a Turtle lays eggs
|
||||||
|
*/
|
||||||
|
@NullMarked
|
||||||
|
public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
|
||||||
|
|
||||||
|
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
|
|
||||||
|
private final Location location;
|
||||||
|
private int eggCount;
|
||||||
|
|
||||||
|
private boolean cancelled;
|
||||||
|
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public TurtleLayEggEvent(final Turtle turtle, final Location location, final int eggCount) {
|
||||||
|
super(turtle);
|
||||||
|
this.location = location;
|
||||||
|
this.eggCount = eggCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The turtle laying the eggs
|
||||||
|
*
|
||||||
|
* @return The turtle
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Turtle getEntity() {
|
||||||
|
return (Turtle) super.getEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the location where the eggs are being laid
|
||||||
|
*
|
||||||
|
* @return Location of eggs
|
||||||
|
*/
|
||||||
|
public Location getLocation() {
|
||||||
|
return this.location.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of eggs being laid
|
||||||
|
*
|
||||||
|
* @return Number of eggs
|
||||||
|
*/
|
||||||
|
public int getEggCount() {
|
||||||
|
return this.eggCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the number of eggs being laid
|
||||||
|
*
|
||||||
|
* @param eggCount Number of eggs
|
||||||
|
*/
|
||||||
|
public void setEggCount(final int eggCount) {
|
||||||
|
if (eggCount < 1) {
|
||||||
|
this.cancelled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
this.eggCount = Math.min(eggCount, 4);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(final boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
package com.destroystokyo.paper.event.entity;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.bukkit.entity.Turtle;
|
||||||
|
import org.bukkit.event.Cancellable;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.bukkit.event.entity.EntityEvent;
|
||||||
|
import org.jetbrains.annotations.ApiStatus;
|
||||||
|
import org.jspecify.annotations.NullMarked;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fired when a Turtle starts digging to lay eggs
|
||||||
|
*/
|
||||||
|
@NullMarked
|
||||||
|
public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable {
|
||||||
|
|
||||||
|
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
|
|
||||||
|
private final Location location;
|
||||||
|
private boolean cancelled;
|
||||||
|
|
||||||
|
@ApiStatus.Internal
|
||||||
|
public TurtleStartDiggingEvent(final Turtle turtle, final Location location) {
|
||||||
|
super(turtle);
|
||||||
|
this.location = location;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The turtle digging
|
||||||
|
*
|
||||||
|
* @return The turtle
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Turtle getEntity() {
|
||||||
|
return (Turtle) super.getEntity();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the location where the turtle is digging
|
||||||
|
*
|
||||||
|
* @return Location where digging
|
||||||
|
*/
|
||||||
|
public Location getLocation() {
|
||||||
|
return this.location.clone();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isCancelled() {
|
||||||
|
return this.cancelled;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCancelled(final boolean cancel) {
|
||||||
|
this.cancelled = cancel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static HandlerList getHandlerList() {
|
||||||
|
return HANDLER_LIST;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
package org.bukkit.entity;
|
package org.bukkit.entity;
|
||||||
|
|
||||||
|
import org.bukkit.Location;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents a turtle.
|
* Represents a turtle.
|
||||||
*/
|
*/
|
||||||
@@ -18,4 +21,42 @@ public interface Turtle extends Animals {
|
|||||||
* @return Whether the turtle is laying an egg
|
* @return Whether the turtle is laying an egg
|
||||||
*/
|
*/
|
||||||
boolean isLayingEgg();
|
boolean isLayingEgg();
|
||||||
|
|
||||||
|
// Paper start
|
||||||
|
/**
|
||||||
|
* Get the turtle's home location
|
||||||
|
*
|
||||||
|
* @return Home location
|
||||||
|
*/
|
||||||
|
@NotNull
|
||||||
|
Location getHome();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the turtle's home location
|
||||||
|
*
|
||||||
|
* @param location Home location
|
||||||
|
*/
|
||||||
|
void setHome(@NotNull Location location);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if turtle is currently pathfinding to it's home
|
||||||
|
*
|
||||||
|
* @return True if going home
|
||||||
|
*/
|
||||||
|
boolean isGoingHome();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if turtle is digging to lay eggs
|
||||||
|
*
|
||||||
|
* @return True if digging
|
||||||
|
*/
|
||||||
|
boolean isDigging();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if turtle is carrying egg
|
||||||
|
*
|
||||||
|
* @param hasEgg True if carrying egg
|
||||||
|
*/
|
||||||
|
void setHasEgg(boolean hasEgg);
|
||||||
|
// Paper end
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user