mirror of
https://github.com/PaperMC/Paper.git
synced 2025-02-13 11:02:06 +01:00
Turtle API
This commit is contained in:
parent
3ad277b100
commit
342e189485
@ -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;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* Represents a turtle.
|
||||
*/
|
||||
@ -18,4 +21,42 @@ public interface Turtle extends Animals {
|
||||
* @return Whether the turtle is laying an egg
|
||||
*/
|
||||
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
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user