283 lines
		
	
	
	
		
			7.2 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			283 lines
		
	
	
	
		
			7.2 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
 | 
						|
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..0000000000000000000000000000000000000000
 | 
						|
--- /dev/null
 | 
						|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleGoHomeEvent.java
 | 
						|
@@ -0,0 +0,0 @@
 | 
						|
+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.NotNull;
 | 
						|
+
 | 
						|
+/**
 | 
						|
+ * Fired when a Turtle decides to go home
 | 
						|
+ */
 | 
						|
+public class TurtleGoHomeEvent extends EntityEvent implements Cancellable {
 | 
						|
+    private static final HandlerList handlers = new HandlerList();
 | 
						|
+    private boolean cancelled = false;
 | 
						|
+
 | 
						|
+    public TurtleGoHomeEvent(@NotNull Turtle turtle) {
 | 
						|
+        super(turtle);
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * The turtle going home
 | 
						|
+     *
 | 
						|
+     * @return The turtle
 | 
						|
+     */
 | 
						|
+    @NotNull
 | 
						|
+    public Turtle getEntity() {
 | 
						|
+        return (Turtle) entity;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public boolean isCancelled() {
 | 
						|
+        return cancelled;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public void setCancelled(boolean cancel) {
 | 
						|
+        cancelled = cancel;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public HandlerList getHandlers() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public static HandlerList getHandlerList() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+}
 | 
						|
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..0000000000000000000000000000000000000000
 | 
						|
--- /dev/null
 | 
						|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleLayEggEvent.java
 | 
						|
@@ -0,0 +0,0 @@
 | 
						|
+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.NotNull;
 | 
						|
+
 | 
						|
+/**
 | 
						|
+ * Fired when a Turtle lays eggs
 | 
						|
+ */
 | 
						|
+public class TurtleLayEggEvent extends EntityEvent implements Cancellable {
 | 
						|
+    private static final HandlerList handlers = new HandlerList();
 | 
						|
+    private boolean cancelled = false;
 | 
						|
+    @NotNull
 | 
						|
+    private final Location location;
 | 
						|
+    private int eggCount;
 | 
						|
+
 | 
						|
+    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) entity;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Get the location where the eggs are being laid
 | 
						|
+     *
 | 
						|
+     * @return Location of eggs
 | 
						|
+     */
 | 
						|
+    @NotNull
 | 
						|
+    public Location getLocation() {
 | 
						|
+        return location;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Get the number of eggs being laid
 | 
						|
+     *
 | 
						|
+     * @return Number of eggs
 | 
						|
+     */
 | 
						|
+    public int getEggCount() {
 | 
						|
+        return eggCount;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Set the number of eggs being laid
 | 
						|
+     *
 | 
						|
+     * @param eggCount Number of eggs
 | 
						|
+     */
 | 
						|
+    public void setEggCount(int eggCount) {
 | 
						|
+        if (eggCount < 1) {
 | 
						|
+            cancelled = true;
 | 
						|
+            return;
 | 
						|
+        }
 | 
						|
+        eggCount = Math.min(eggCount, 4);
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public boolean isCancelled() {
 | 
						|
+        return cancelled;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public void setCancelled(boolean cancel) {
 | 
						|
+        cancelled = cancel;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public HandlerList getHandlers() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public static HandlerList getHandlerList() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+}
 | 
						|
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..0000000000000000000000000000000000000000
 | 
						|
--- /dev/null
 | 
						|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/TurtleStartDiggingEvent.java
 | 
						|
@@ -0,0 +0,0 @@
 | 
						|
+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.NotNull;
 | 
						|
+
 | 
						|
+/**
 | 
						|
+ * Fired when a Turtle starts digging to lay eggs
 | 
						|
+ */
 | 
						|
+public class TurtleStartDiggingEvent extends EntityEvent implements Cancellable {
 | 
						|
+    private static final HandlerList handlers = new HandlerList();
 | 
						|
+    private boolean cancelled = false;
 | 
						|
+    @NotNull private final Location location;
 | 
						|
+
 | 
						|
+    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) entity;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Get the location where the turtle is digging
 | 
						|
+     *
 | 
						|
+     * @return Location where digging
 | 
						|
+     */
 | 
						|
+    @NotNull
 | 
						|
+    public Location getLocation() {
 | 
						|
+        return location;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public boolean isCancelled() {
 | 
						|
+        return cancelled;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @Override
 | 
						|
+    public void setCancelled(boolean cancel) {
 | 
						|
+        cancelled = cancel;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public HandlerList getHandlers() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    @NotNull
 | 
						|
+    public static HandlerList getHandlerList() {
 | 
						|
+        return handlers;
 | 
						|
+    }
 | 
						|
+}
 | 
						|
diff --git a/src/main/java/org/bukkit/entity/Turtle.java b/src/main/java/org/bukkit/entity/Turtle.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/entity/Turtle.java
 | 
						|
+++ b/src/main/java/org/bukkit/entity/Turtle.java
 | 
						|
@@ -0,0 +0,0 @@
 | 
						|
 package org.bukkit.entity;
 | 
						|
 
 | 
						|
+import org.bukkit.Location;
 | 
						|
+import org.jetbrains.annotations.NotNull;
 | 
						|
+
 | 
						|
 /**
 | 
						|
  * Represents a turtle.
 | 
						|
  */
 | 
						|
-public interface Turtle extends Animals { }
 | 
						|
+public interface Turtle extends Animals {
 | 
						|
+    // 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();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Get if turtle is carrying egg
 | 
						|
+     *
 | 
						|
+     * @return True if carrying egg
 | 
						|
+     */
 | 
						|
+    boolean hasEgg();
 | 
						|
+
 | 
						|
+    /**
 | 
						|
+     * Set if turtle is carrying egg
 | 
						|
+     *
 | 
						|
+     * @param hasEgg True if carrying egg
 | 
						|
+     */
 | 
						|
+    void setHasEgg(boolean hasEgg);
 | 
						|
+    // Paper end
 | 
						|
+}
 |