mirror of
https://github.com/PaperMC/Paper.git
synced 2024-08-28 23:49:41 +02:00
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 09943450 Update SnakeYAML version 5515734f SPIGOT-7162: Incorrect description for Entity#getVehicle javadoc 6f82b381 PR-788: Add getHand() to all relevant events CraftBukkit Changes: aaf484f6f SPIGOT-7163: CraftMerchantRecipe doesn't copy demand and specialPrice from BukkitMerchantRecipe 5329dd6fd PR-1107: Add getHand() to all relevant events 93061706e SPIGOT-7045: Ocelots never spawn with babies with spawn reason OCELOT_BABY
130 lines
3.9 KiB
Diff
130 lines
3.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <blake.galbreath@gmail.com>
|
|
Date: Sun, 9 Feb 2020 00:19:08 -0600
|
|
Subject: [PATCH] Add ThrownEggHatchEvent
|
|
|
|
Adds a new event similar to PlayerEggThrowEvent, but without the Player requirement
|
|
(dispensers can throw eggs to hatch them, too).
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/event/entity/ThrownEggHatchEvent.java b/src/main/java/com/destroystokyo/paper/event/entity/ThrownEggHatchEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..085d77dde83d6ed13eb83f23cf3e51d380187c9c
|
|
--- /dev/null
|
|
+++ b/src/main/java/com/destroystokyo/paper/event/entity/ThrownEggHatchEvent.java
|
|
@@ -0,0 +1,115 @@
|
|
+package com.destroystokyo.paper.event.entity;
|
|
+
|
|
+import org.bukkit.entity.Egg;
|
|
+import org.bukkit.entity.EntityType;
|
|
+import org.bukkit.event.Event;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Called when a thrown egg might hatch.
|
|
+ * <p>
|
|
+ * This event fires for all thrown eggs that may hatch, players, dispensers, etc.
|
|
+ */
|
|
+public class ThrownEggHatchEvent extends Event {
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private final Egg egg;
|
|
+ private boolean hatching;
|
|
+ private EntityType hatchType;
|
|
+ private byte numHatches;
|
|
+
|
|
+ public ThrownEggHatchEvent(@NotNull final Egg egg, final boolean hatching, final byte numHatches, @NotNull final EntityType hatchingType) {
|
|
+ this.egg = egg;
|
|
+ this.hatching = hatching;
|
|
+ this.numHatches = numHatches;
|
|
+ this.hatchType = hatchingType;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the egg involved in this event.
|
|
+ *
|
|
+ * @return the egg involved in this event
|
|
+ */
|
|
+ @NotNull
|
|
+ public Egg getEgg() {
|
|
+ return egg;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets whether the egg is hatching or not. Will be what the server
|
|
+ * would've done without interaction.
|
|
+ *
|
|
+ * @return boolean Whether the egg is going to hatch or not
|
|
+ */
|
|
+ public boolean isHatching() {
|
|
+ return hatching;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Sets whether the egg will hatch or not.
|
|
+ *
|
|
+ * @param hatching true if you want the egg to hatch, false if you want it
|
|
+ * not to
|
|
+ */
|
|
+ public void setHatching(boolean hatching) {
|
|
+ this.hatching = hatching;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Get the type of the mob being hatched (EntityType.CHICKEN by default)
|
|
+ *
|
|
+ * @return The type of the mob being hatched by the egg
|
|
+ */
|
|
+ @NotNull
|
|
+ public EntityType getHatchingType() {
|
|
+ return hatchType;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Change the type of mob being hatched by the egg
|
|
+ *
|
|
+ * @param hatchType The type of the mob being hatched by the egg
|
|
+ */
|
|
+ public void setHatchingType(@NotNull EntityType hatchType) {
|
|
+ if (!hatchType.isSpawnable()) throw new IllegalArgumentException("Can't spawn that entity type from an egg!");
|
|
+ this.hatchType = hatchType;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Get the number of mob hatches from the egg. By default the number will
|
|
+ * be the number the server would've done
|
|
+ * <ul>
|
|
+ * <li>7/8 chance of being 0
|
|
+ * <li>31/256 ~= 1/8 chance to be 1
|
|
+ * <li>1/256 chance to be 4
|
|
+ * </ul>
|
|
+ *
|
|
+ * @return The number of mobs going to be hatched by the egg
|
|
+ */
|
|
+ public byte getNumHatches() {
|
|
+ return numHatches;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Change the number of mobs coming out of the hatched egg
|
|
+ * <p>
|
|
+ * The boolean hatching will override this number. Ie. If hatching =
|
|
+ * false, this number will not matter
|
|
+ *
|
|
+ * @param numHatches The number of mobs coming out of the egg
|
|
+ */
|
|
+ public void setNumHatches(byte numHatches) {
|
|
+ this.numHatches = numHatches;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|