aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch')
-rw-r--r--patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch268
1 files changed, 268 insertions, 0 deletions
diff --git a/patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch b/patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch
new file mode 100644
index 0000000000..e7a4ad2089
--- /dev/null
+++ b/patches/api/0354-Add-EntityDyeEvent-and-CollarColorable-interface.patch
@@ -0,0 +1,268 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Fri, 18 Mar 2022 21:16:38 -0700
+Subject: [PATCH] Add EntityDyeEvent and CollarColorable interface
+
+
+diff --git a/src/main/java/io/papermc/paper/entity/CollarColorable.java b/src/main/java/io/papermc/paper/entity/CollarColorable.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..bb68e6a2528eee81eb3f26f22b9c35508f1e69c1
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/entity/CollarColorable.java
+@@ -0,0 +1,25 @@
++package io.papermc.paper.entity;
++
++import org.bukkit.DyeColor;
++import org.bukkit.entity.LivingEntity;
++import org.jetbrains.annotations.NotNull;
++
++/**
++ * Entities that can have their collars colored.
++ */
++public interface CollarColorable extends LivingEntity {
++
++ /**
++ * Get the collar color of this entity
++ *
++ * @return the color of the collar
++ */
++ @NotNull DyeColor getCollarColor();
++
++ /**
++ * Set the collar color of this entity
++ *
++ * @param color the color to apply
++ */
++ void setCollarColor(@NotNull DyeColor color);
++}
+diff --git a/src/main/java/io/papermc/paper/event/entity/EntityDyeEvent.java b/src/main/java/io/papermc/paper/event/entity/EntityDyeEvent.java
+new file mode 100644
+index 0000000000000000000000000000000000000000..c43a3ad32902dbb13287e801375213745ce07b3c
+--- /dev/null
++++ b/src/main/java/io/papermc/paper/event/entity/EntityDyeEvent.java
+@@ -0,0 +1,81 @@
++package io.papermc.paper.event.entity;
++
++import org.bukkit.DyeColor;
++import org.bukkit.entity.Cat;
++import org.bukkit.entity.Entity;
++import org.bukkit.entity.Player;
++import org.bukkit.entity.Sheep;
++import org.bukkit.entity.Wolf;
++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;
++import org.jetbrains.annotations.Nullable;
++
++/**
++ * Called when an entity is dyed. Currently, this is called for {@link Sheep}
++ * being dyed, and {@link Wolf}/{@link Cat} collars being dyed.
++ */
++public class EntityDyeEvent extends EntityEvent implements Cancellable {
++
++ private static final HandlerList HANDLER_LIST = new HandlerList();
++
++ private final Player player;
++ private DyeColor dyeColor;
++
++ private boolean cancelled;
++
++ @ApiStatus.Internal
++ public EntityDyeEvent(@NotNull Entity entity, @NotNull DyeColor dyeColor, @Nullable Player player) {
++ super(entity);
++ this.dyeColor = dyeColor;
++ this.player = player;
++ }
++
++ /**
++ * Gets the DyeColor the entity is being dyed
++ *
++ * @return the DyeColor the entity is being dyed
++ */
++ public @NotNull DyeColor getColor() {
++ return this.dyeColor;
++ }
++
++ /**
++ * Sets the DyeColor the entity is being dyed
++ *
++ * @param dyeColor the DyeColor the entity will be dyed
++ */
++ public void setColor(@NotNull DyeColor dyeColor) {
++ this.dyeColor = dyeColor;
++ }
++
++ /**
++ * Returns the player dyeing the entity, if available.
++ *
++ * @return player or {@code null}
++ */
++ public @Nullable Player getPlayer() {
++ return this.player;
++ }
++
++ @Override
++ public boolean isCancelled() {
++ return this.cancelled;
++ }
++
++ @Override
++ public void setCancelled(boolean cancel) {
++ this.cancelled = cancel;
++ }
++
++ @Override
++ public @NotNull HandlerList getHandlers() {
++ return HANDLER_LIST;
++ }
++
++ public static @NotNull HandlerList getHandlerList() {
++ return HANDLER_LIST;
++ }
++}
+diff --git a/src/main/java/org/bukkit/entity/Cat.java b/src/main/java/org/bukkit/entity/Cat.java
+index 0534fbc228f64cf3b361ab097d9b88212bdb0f36..d03adfaa4176617ef2ace2754fe02b63860e3aee 100644
+--- a/src/main/java/org/bukkit/entity/Cat.java
++++ b/src/main/java/org/bukkit/entity/Cat.java
+@@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull;
+ /**
+ * Meow.
+ */
+-public interface Cat extends Tameable, Sittable {
++public interface Cat extends Tameable, Sittable, io.papermc.paper.entity.CollarColorable { // Paper - CollarColorable
+
+ /**
+ * Gets the current type of this cat.
+@@ -31,6 +31,7 @@ public interface Cat extends Tameable, Sittable {
+ * @return the color of the collar
+ */
+ @NotNull
++ @Override // Paper
+ public DyeColor getCollarColor();
+
+ /**
+@@ -38,6 +39,7 @@ public interface Cat extends Tameable, Sittable {
+ *
+ * @param color the color to apply
+ */
++ @Override // Paper
+ public void setCollarColor(@NotNull DyeColor color);
+
+ /**
+diff --git a/src/main/java/org/bukkit/entity/Wolf.java b/src/main/java/org/bukkit/entity/Wolf.java
+index 03c4a3dedf97e06734f1ec975055214809f1fe61..4b84c04675775e2a606630b00de8afe51665cebc 100644
+--- a/src/main/java/org/bukkit/entity/Wolf.java
++++ b/src/main/java/org/bukkit/entity/Wolf.java
+@@ -10,7 +10,7 @@ import org.jetbrains.annotations.NotNull;
+ /**
+ * Represents a Wolf
+ */
+-public interface Wolf extends Tameable, Sittable {
++public interface Wolf extends Tameable, Sittable, io.papermc.paper.entity.CollarColorable { // Paper - CollarColorable
+
+ /**
+ * Checks if this wolf is angry
+@@ -35,6 +35,7 @@ public interface Wolf extends Tameable, Sittable {
+ * @return the color of the collar
+ */
+ @NotNull
++ @Override // Paper
+ public DyeColor getCollarColor();
+
+ /**
+@@ -42,6 +43,7 @@ public interface Wolf extends Tameable, Sittable {
+ *
+ * @param color the color to apply
+ */
++ @Override // Paper
+ public void setCollarColor(@NotNull DyeColor color);
+
+ /**
+diff --git a/src/main/java/org/bukkit/event/entity/SheepDyeWoolEvent.java b/src/main/java/org/bukkit/event/entity/SheepDyeWoolEvent.java
+index 10d2466fb69919cead26af2fcdf6bd2e678f2927..ddf4aec01e4873aa799721ce615f5d7c929dc915 100644
+--- a/src/main/java/org/bukkit/event/entity/SheepDyeWoolEvent.java
++++ b/src/main/java/org/bukkit/event/entity/SheepDyeWoolEvent.java
+@@ -11,11 +11,8 @@ import org.jetbrains.annotations.Nullable;
+ /**
+ * Called when a sheep's wool is dyed
+ */
+-public class SheepDyeWoolEvent extends EntityEvent implements Cancellable {
+- private static final HandlerList handlers = new HandlerList();
+- private boolean cancel;
+- private DyeColor color;
+- private final Player player;
++public class SheepDyeWoolEvent extends io.papermc.paper.event.entity.EntityDyeEvent implements Cancellable {
++ // Paper - move everything to superclass
+
+ @Deprecated
+ public SheepDyeWoolEvent(@NotNull final Sheep sheep, @NotNull final DyeColor color) {
+@@ -23,20 +20,7 @@ public class SheepDyeWoolEvent extends EntityEvent implements Cancellable {
+ }
+
+ public SheepDyeWoolEvent(@NotNull final Sheep sheep, @NotNull final DyeColor color, @Nullable Player player) {
+- super(sheep);
+- this.cancel = false;
+- this.color = color;
+- this.player = player;
+- }
+-
+- @Override
+- public boolean isCancelled() {
+- return cancel;
+- }
+-
+- @Override
+- public void setCancelled(boolean cancel) {
+- this.cancel = cancel;
++ super(sheep, color, player); // Paper
+ }
+
+ @NotNull
+@@ -44,45 +28,4 @@ public class SheepDyeWoolEvent extends EntityEvent implements Cancellable {
+ public Sheep getEntity() {
+ return (Sheep) entity;
+ }
+-
+- /**
+- * Returns the player dyeing the sheep, if available.
+- *
+- * @return player or null
+- */
+- @Nullable
+- public Player getPlayer() {
+- return player;
+- }
+-
+- /**
+- * Gets the DyeColor the sheep is being dyed
+- *
+- * @return the DyeColor the sheep is being dyed
+- */
+- @NotNull
+- public DyeColor getColor() {
+- return color;
+- }
+-
+- /**
+- * Sets the DyeColor the sheep is being dyed
+- *
+- * @param color the DyeColor the sheep will be dyed
+- */
+- public void setColor(@NotNull DyeColor color) {
+- this.color = color;
+- }
+-
+- @NotNull
+- @Override
+- public HandlerList getHandlers() {
+- return handlers;
+- }
+-
+- @NotNull
+- public static HandlerList getHandlerList() {
+- return handlers;
+- }
+-
+ }