aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0156-Turtle-API.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0156-Turtle-API.patch')
-rw-r--r--patches/api/0156-Turtle-API.patch291
1 files changed, 291 insertions, 0 deletions
diff --git a/patches/api/0156-Turtle-API.patch b/patches/api/0156-Turtle-API.patch
new file mode 100644
index 0000000000..3ec867d360
--- /dev/null
+++ b/patches/api/0156-Turtle-API.patch
@@ -0,0 +1,291 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: BillyGalbreath <[email protected]>
+Date: Fri, 28 Sep 2018 17:08:09 -0500
+Subject: [PATCH] Turtle API
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..cfbc8aaf862ac90e794ee38bf8a6cb9ea414b13e
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java
+@@ -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.jetbrains.annotations.NotNull;
++
++/**
++ * Fired when a Turtle decides to go home
++ */
++public class TurtleGoHomeEvent extends EntityEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public TurtleGoHomeEvent(@NotNull Turtle turtle) {
++ super(turtle);
++ }
++
++ /**
++ * The turtle going home
++ *
++ * @return The turtle
++ */
++ @NotNull
++ public Turtle getEntity() {
++ return (Turtle) super.getEntity();
++ }
++
++ @Override
++ public boolean isCancelled() {
++ return this.cancelled;
++ }
++
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @NotNull
++ public HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}
+diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..3029e406cd684efb5645e38711dff9c0bb7b01e4
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
+@@ -0,0 +1,92 @@
++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.jetbrains.annotations.NotNull;
++
++/**
++ * Fired when a Turtle lays eggs
++ */
++public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ @NotNull
++ private final Location location;
++ private int eggCount;
++
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public TurtleLayEggEvent(@NotNull Turtle turtle, @NotNull Location location, int eggCount) {
++ super(turtle);
++ this.location = location;
++ this.eggCount = eggCount;
++ }
++
++ /**
++ * The turtle laying the eggs
++ *
++ * @return The turtle
++ */
++ @NotNull
++ public Turtle getEntity() {
++ return (Turtle) super.getEntity();
++ }
++
++ /**
++ * Get the location where the eggs are being laid
++ *
++ * @return Location of eggs
++ */
++ @NotNull
++ 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(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(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @NotNull
++ public HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}
+diff --git a/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..7a2fa4a11b47e4982d1644830d7e28f12b4378ec
+--- /dev/null
++++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
+@@ -0,0 +1,66 @@
++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.jetbrains.annotations.NotNull;
++
++/**
++ * Fired when a Turtle starts digging to lay eggs
++ */
++public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ @NotNull private final Location location;
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public TurtleStartDiggingEvent(@NotNull Turtle turtle, @NotNull Location location) {
++ super(turtle);
++ this.location = location;
++ }
++
++ /**
++ * The turtle digging
++ *
++ * @return The turtle
++ */
++ @NotNull
++ public Turtle getEntity() {
++ return (Turtle) super.getEntity();
++ }
++
++ /**
++ * Get the location where the turtle is digging
++ *
++ * @return Location where digging
++ */
++ @NotNull
++ public Location getLocation() {
++ return this.location.clone();
++ }
++
++ @Override
++ public boolean isCancelled() {
++ return this.cancelled;
++ }
++
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @NotNull
++ public HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ @NotNull
++ public static HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}
+diff --git a/src/main/java/org/bukkit/entity/Turtle.java b/src/main/java/org/bukkit/entity/Turtle.java
+index 5584936158e3762d348cb2eaee2082da24ede367..aa83615a0c6565c9874c906a83cfe20c2a964b22 100644
+--- a/src/main/java/org/bukkit/entity/Turtle.java
++++ b/src/main/java/org/bukkit/entity/Turtle.java
+@@ -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
+ }