Add removed patches directory

This commit is contained in:
William Blake Galbreath
2020-06-28 22:30:19 -05:00
parent 1a46c4bc6b
commit 2cdce3ee87
35 changed files with 16117 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
From 0c20fdc1cc34d29b9135326be5db514107bb6766 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 4 May 2019 00:57:16 -0500
Subject: [PATCH] Ridables
---
.../paper/entity/ai/VanillaGoal.java | 4 ++
.../event/entity/RidableSpacebarEvent.java | 37 ++++++++++++++++++
src/main/java/org/bukkit/entity/Entity.java | 38 +++++++++++++++++++
3 files changed, 79 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/entity/RidableSpacebarEvent.java
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
index d23ad96ee..36d37e9a3 100644
--- a/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/VanillaGoal.java
@@ -154,6 +154,10 @@ public interface VanillaGoal<T extends Mob> extends Goal<T> {
GoalKey<Mob> FOLLOW_ENTITY = GoalKey.of(Mob.class, NamespacedKey.minecraft("follow_entity"));
GoalKey<Tameable> FOLLOW_OWNER = GoalKey.of(Tameable.class, NamespacedKey.minecraft("follow_owner"));
GoalKey<Animals> FOLLOW_PARENT = GoalKey.of(Animals.class, NamespacedKey.minecraft("follow_parent"));
+ // Purpur start
+ GoalKey<Phantom> FIND_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("find_crystal_goal"));
+ GoalKey<Phantom> ORBIT_CRYSTAL_GOAL = GoalKey.of(Phantom.class, NamespacedKey.minecraft("orbit_crystal_goal"));
+ // Purpur end
GoalKey<SkeletonHorse> HORSE_TRAP = GoalKey.of(SkeletonHorse.class, NamespacedKey.minecraft("horse_trap"));
GoalKey<Creature> HURT_BY_TARGET = GoalKey.of(Creature.class, NamespacedKey.minecraft("hurt_by_target"));
GoalKey<Mob> INTERACT = GoalKey.of(Mob.class, NamespacedKey.minecraft("interact"));
diff --git a/src/main/java/net/pl3x/purpur/event/entity/RidableSpacebarEvent.java b/src/main/java/net/pl3x/purpur/event/entity/RidableSpacebarEvent.java
new file mode 100644
index 000000000..c0ec5a130
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/entity/RidableSpacebarEvent.java
@@ -0,0 +1,37 @@
+package net.pl3x.purpur.event.entity;
+
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent;
+import org.jetbrains.annotations.NotNull;
+
+public class RidableSpacebarEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private boolean cancelled;
+
+ public RidableSpacebarEvent(@NotNull Entity entity) {
+ super(entity);
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ cancelled = cancel;
+ }
+
+ @Override
+ @NotNull
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
diff --git a/src/main/java/org/bukkit/entity/Entity.java b/src/main/java/org/bukkit/entity/Entity.java
index 3f0f38031..25372c58b 100644
--- a/src/main/java/org/bukkit/entity/Entity.java
+++ b/src/main/java/org/bukkit/entity/Entity.java
@@ -659,4 +659,42 @@ public interface Entity extends Metadatable, CommandSender, Nameable, Persistent
@NotNull
org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason getEntitySpawnReason();
// Paper end
+
+ // Purpur start
+ /**
+ * Get the riding player
+ *
+ * @return Riding player
+ */
+ @Nullable
+ Player getRider();
+
+ /**
+ * Check if entity is being ridden
+ *
+ * @return True if being ridden
+ */
+ boolean hasRider();
+
+ /**
+ * Check if entity is ridable
+ *
+ * @return True if ridable
+ */
+ boolean isRidable();
+
+ /**
+ * Check if entity is ridable in water
+ *
+ * @return True if ridable in water
+ */
+ boolean isRidableInWater();
+
+ /**
+ * Check if shift is required to mount this entity
+ *
+ * @return True if shift is required
+ */
+ boolean requireShiftToMount();
+ // Purpur end
}
--
2.26.2

View File

@@ -0,0 +1,142 @@
From acabe1261f9db72988a29d0d72ee138b7c0cf221 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Tue, 31 Dec 2019 23:00:07 -0600
Subject: [PATCH] Remove pointless annotations and deprecations
---
src/main/java/org/bukkit/Bukkit.java | 3 ---
src/main/java/org/bukkit/Server.java | 3 ---
src/main/java/org/bukkit/command/CommandExecutor.java | 2 +-
src/main/java/org/bukkit/command/TabCompleter.java | 2 +-
src/main/java/org/bukkit/inventory/ItemStack.java | 8 --------
src/main/java/org/bukkit/plugin/java/JavaPlugin.java | 4 ++--
src/test/java/org/bukkit/AnnotationTest.java | 5 +++++
7 files changed, 9 insertions(+), 18 deletions(-)
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
index a9c10228e..780d603e4 100644
--- a/src/main/java/org/bukkit/Bukkit.java
+++ b/src/main/java/org/bukkit/Bukkit.java
@@ -863,13 +863,10 @@ public final class Bukkit {
* This will return an object even if the player does not exist. To this
* method, all players will exist.
*
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
*/
- @Deprecated
@NotNull
public static OfflinePlayer getOfflinePlayer(@NotNull String name) {
return server.getOfflinePlayer(name);
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index ab1d082a4..a4cf71fb4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -722,13 +722,10 @@ public interface Server extends PluginMessageRecipient {
* This will return an object even if the player does not exist. To this
* method, all players will exist.
*
- * @deprecated Persistent storage of users should be by UUID as names are no longer
- * unique past a single session.
* @param name the name the player to retrieve
* @return an offline player
* @see #getOfflinePlayer(java.util.UUID)
*/
- @Deprecated
@NotNull
public OfflinePlayer getOfflinePlayer(@NotNull String name);
diff --git a/src/main/java/org/bukkit/command/CommandExecutor.java b/src/main/java/org/bukkit/command/CommandExecutor.java
index 45cb8da12..383b43e1b 100644
--- a/src/main/java/org/bukkit/command/CommandExecutor.java
+++ b/src/main/java/org/bukkit/command/CommandExecutor.java
@@ -19,5 +19,5 @@ public interface CommandExecutor {
* @param args Passed command arguments
* @return true if a valid command, otherwise false
*/
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args);
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args); // Purpur - remove pointless annotations
}
diff --git a/src/main/java/org/bukkit/command/TabCompleter.java b/src/main/java/org/bukkit/command/TabCompleter.java
index e9cf71f5c..34d3462c7 100644
--- a/src/main/java/org/bukkit/command/TabCompleter.java
+++ b/src/main/java/org/bukkit/command/TabCompleter.java
@@ -23,5 +23,5 @@ public interface TabCompleter {
* to default to the command executor
*/
@Nullable
- public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args);
+ public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args); // Purpur - remove pointless annotations
}
diff --git a/src/main/java/org/bukkit/inventory/ItemStack.java b/src/main/java/org/bukkit/inventory/ItemStack.java
index ccd81fca2..a8ade268c 100644
--- a/src/main/java/org/bukkit/inventory/ItemStack.java
+++ b/src/main/java/org/bukkit/inventory/ItemStack.java
@@ -204,13 +204,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
* Sets the durability of this item
*
* @param durability Durability of this item
- * @deprecated durability is now part of ItemMeta. To avoid confusion and
- * misuse, {@link #getItemMeta()}, {@link #setItemMeta(ItemMeta)} and
- * {@link Damageable#setDamage(int)} should be used instead. This is because
- * any call to this method will be overwritten by subsequent setting of
- * ItemMeta which was created before this call.
*/
- @Deprecated
public void setDurability(final short durability) {
ItemMeta meta = getItemMeta();
if (meta != null) {
@@ -223,9 +217,7 @@ public class ItemStack implements Cloneable, ConfigurationSerializable {
* Gets the durability of this item
*
* @return Durability of this item
- * @deprecated see {@link #setDurability(short)}
*/
- @Deprecated
public short getDurability() {
ItemMeta meta = getItemMeta();
return (meta == null) ? 0 : (short) ((Damageable) meta).getDamage();
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
index 04fa3991f..24d65491c 100644
--- a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
+++ b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
@@ -287,7 +287,7 @@ public abstract class JavaPlugin extends PluginBase {
* {@inheritDoc}
*/
@Override
- public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
+ public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { // Purpur - remove pointless annotations
return false;
}
@@ -296,7 +296,7 @@ public abstract class JavaPlugin extends PluginBase {
*/
@Override
@Nullable
- public List<String> onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String alias, @NotNull String[] args) {
+ public List<String> onTabComplete(CommandSender sender, Command command, String alias, String[] args) { // Purpur - remove pointless annotations
return null;
}
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
index a48be38b1..951b81e79 100644
--- a/src/test/java/org/bukkit/AnnotationTest.java
+++ b/src/test/java/org/bukkit/AnnotationTest.java
@@ -41,6 +41,11 @@ public class AnnotationTest {
"org/bukkit/plugin/java/PluginClassLoader",
// Generic functional interface
"org/bukkit/util/Consumer",
+ // Purpur start
+ "org/bukkit/command/CommandExecutor",
+ "org/bukkit/command/TabCompleter",
+ "org/bukkit/plugin/java/JavaPlugin",
+ // Purpur end
// Paper start
// Timings history is broken in terms of nullability due to guavas Function defining that the param is NonNull
"co/aikar/timings/TimingHistory$2",
--
2.26.2

View File

@@ -0,0 +1,59 @@
From e503ea72858416dd97bd79c5aae85a2834f11195 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Sat, 11 Jan 2020 23:12:00 -0600
Subject: [PATCH] Add EntityPortalReadyEvent
---
.../event/entity/EntityPortalReadyEvent.java | 40 +++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/entity/EntityPortalReadyEvent.java
diff --git a/src/main/java/net/pl3x/purpur/event/entity/EntityPortalReadyEvent.java b/src/main/java/net/pl3x/purpur/event/entity/EntityPortalReadyEvent.java
new file mode 100644
index 000000000..37f11c104
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/entity/EntityPortalReadyEvent.java
@@ -0,0 +1,40 @@
+package net.pl3x.purpur.event.entity;
+
+import org.bukkit.entity.Entity;
+import org.bukkit.event.Cancellable;
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.entity.EntityEvent;
+import org.jetbrains.annotations.NotNull;
+
+/**
+ * Called when an entity is ready to travel through a portal
+ */
+public class EntityPortalReadyEvent extends EntityEvent implements Cancellable {
+ private static final HandlerList handlers = new HandlerList();
+ private boolean cancelled = false;
+
+ public EntityPortalReadyEvent(@NotNull Entity entity) {
+ super(entity);
+ }
+
+ @Override
+ public boolean isCancelled() {
+ return cancelled;
+ }
+
+ @Override
+ public void setCancelled(boolean cancel) {
+ this.cancelled = cancel;
+ }
+
+ @NotNull
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
--
2.26.2

View File

@@ -0,0 +1,128 @@
From 97b09e0112fecb7c4bd3dacf078e7cedcf402cdd Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Fri, 12 Jul 2019 02:09:58 -0500
Subject: [PATCH] Implement ChunkTooLargeEvent
---
.../pl3x/purpur/event/ChunkTooLargeEvent.java | 109 ++++++++++++++++++
1 file changed, 109 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/ChunkTooLargeEvent.java
diff --git a/src/main/java/net/pl3x/purpur/event/ChunkTooLargeEvent.java b/src/main/java/net/pl3x/purpur/event/ChunkTooLargeEvent.java
new file mode 100644
index 000000000..f9d4a42c6
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/ChunkTooLargeEvent.java
@@ -0,0 +1,109 @@
+package net.pl3x.purpur.event;
+
+import org.bukkit.Bukkit;
+import org.bukkit.Location;
+import org.bukkit.World;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Called when an oversized chunk loads or saves
+ */
+public class ChunkTooLargeEvent extends Event {
+ private static final HandlerList handlers = new HandlerList();
+ private final String worldName;
+ private final World world;
+ private final int chunkX;
+ private final int chunkZ;
+ private final boolean saving;
+ private final boolean overzealous;
+
+ public ChunkTooLargeEvent(@NotNull String worldName, int chunkX, int chunkZ, boolean saving, boolean overzealous) {
+ super(!Bukkit.isPrimaryThread());
+ this.worldName = worldName;
+ this.world = Bukkit.getWorld(worldName);
+ this.chunkX = chunkX;
+ this.chunkZ = chunkZ;
+ this.saving = saving;
+ this.overzealous = overzealous;
+ }
+
+ /**
+ * Get the world name according to the save directory
+ *
+ * @return World name
+ */
+ @NotNull
+ public String getWorldName() {
+ return worldName;
+ }
+
+ /**
+ * Get the world
+ *
+ * @return World, or null if world not loaded
+ */
+ @Nullable
+ public World getWorld() {
+ return world;
+ }
+
+ /**
+ * Get the X chunk coordinate
+ *
+ * @return X chunk coordinate
+ */
+ public int getChunkX() {
+ return chunkX;
+ }
+
+ /**
+ * Get the Z chunk coordinate
+ *
+ * @return Z chunk coordinate
+ */
+ public int getChunkZ() {
+ return chunkZ;
+ }
+
+ /**
+ * Whether this happened during a save attempt.
+ *
+ * @return True if saving, false if loading
+ */
+ public boolean isSaving() {
+ return saving;
+ }
+
+ /**
+ * If saving, was this is overzealous mode
+ *
+ * @return True if saving in overzealous mode
+ */
+ public boolean isOverzealous() {
+ return overzealous;
+ }
+
+ /**
+ * Get the location
+ *
+ * @return Location, or null if world not loaded
+ */
+ @Nullable
+ public Location getLocation() {
+ return world == null ? null : new Location(world, chunkX << 4, 128, chunkZ << 4);
+ }
+
+ @NotNull
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
--
2.26.2

View File

@@ -0,0 +1,132 @@
From 46a1c768adda232530d684c5ac49b69b6271cd04 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 03:27:55 -0500
Subject: [PATCH] Add ThrownEggHatchEvent
---
.../event/entity/ThrownEggHatchEvent.java | 113 ++++++++++++++++++
1 file changed, 113 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/entity/ThrownEggHatchEvent.java
diff --git a/src/main/java/net/pl3x/purpur/event/entity/ThrownEggHatchEvent.java b/src/main/java/net/pl3x/purpur/event/entity/ThrownEggHatchEvent.java
new file mode 100644
index 000000000..815e871d0
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/entity/ThrownEggHatchEvent.java
@@ -0,0 +1,113 @@
+package net.pl3x.purpur.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
+ */
+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;
+ }
+}
--
2.26.2

View File

@@ -0,0 +1,61 @@
From f6f1059eb70c8286fafd421d629652abddeab72a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 02:43:10 -0500
Subject: [PATCH] Add LootableInventoryFirstFillEvent
---
.../LootableInventoryFirstFillEvent.java | 42 +++++++++++++++++++
1 file changed, 42 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/block/LootableInventoryFirstFillEvent.java
diff --git a/src/main/java/net/pl3x/purpur/event/block/LootableInventoryFirstFillEvent.java b/src/main/java/net/pl3x/purpur/event/block/LootableInventoryFirstFillEvent.java
new file mode 100644
index 000000000..ef8eafb7c
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/block/LootableInventoryFirstFillEvent.java
@@ -0,0 +1,42 @@
+package net.pl3x.purpur.event.block;
+
+import com.destroystokyo.paper.loottable.LootableInventory;
+import org.bukkit.entity.Player;
+import org.bukkit.event.Event;
+import org.bukkit.event.HandlerList;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+public class LootableInventoryFirstFillEvent extends Event {
+ @Nullable
+ private final Player player;
+ @NotNull
+ private final LootableInventory inventory;
+
+ public LootableInventoryFirstFillEvent(@Nullable Player player, @NotNull LootableInventory inventory) {
+ this.player = player;
+ this.inventory = inventory;
+ }
+
+ @Nullable
+ public Player getPlayer() {
+ return player;
+ }
+
+ @NotNull
+ public LootableInventory getInventory() {
+ return inventory;
+ }
+
+ private static final HandlerList handlers = new HandlerList();
+
+ @NotNull
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
--
2.26.2

View File

@@ -0,0 +1,47 @@
From b08452c2c1e0893a931b924f80972baa4d007619 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <blake.galbreath@gmail.com>
Date: Sat, 19 Oct 2019 03:53:46 -0500
Subject: [PATCH] Add back EntityCreatePortalEvent for EnderDragon
---
src/main/java/org/bukkit/PortalType.java | 7 +++++++
.../org/bukkit/event/entity/EntityCreatePortalEvent.java | 4 +---
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/main/java/org/bukkit/PortalType.java b/src/main/java/org/bukkit/PortalType.java
index 427cfbb8b..e23565323 100644
--- a/src/main/java/org/bukkit/PortalType.java
+++ b/src/main/java/org/bukkit/PortalType.java
@@ -15,6 +15,13 @@ public enum PortalType {
*/
ENDER,
+ // Purpur start
+ /**
+ * This is an End Gateway portal
+ */
+ END_GATEWAY,
+ // Purpur end
+
/**
* This is a custom Plugin portal.
*/
diff --git a/src/main/java/org/bukkit/event/entity/EntityCreatePortalEvent.java b/src/main/java/org/bukkit/event/entity/EntityCreatePortalEvent.java
index 397baaefd..7456240b4 100644
--- a/src/main/java/org/bukkit/event/entity/EntityCreatePortalEvent.java
+++ b/src/main/java/org/bukkit/event/entity/EntityCreatePortalEvent.java
@@ -11,10 +11,8 @@ import org.jetbrains.annotations.NotNull;
/**
* Thrown when a Living Entity creates a portal in a world.
- *
- * @deprecated Use {@link PortalCreateEvent}
*/
-@Deprecated
+// Purpur - un-deprecate
public class EntityCreatePortalEvent extends EntityEvent implements Cancellable {
private static final HandlerList handlers = new HandlerList();
private final List<BlockState> blocks;
--
2.26.2

View File

@@ -0,0 +1,51 @@
From eb6271ac09f62253e19664c2a5e4b28f1dd5a914 Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Wed, 1 Apr 2020 19:18:29 -0500
Subject: [PATCH] Configurable enchantment max level
---
src/main/java/org/bukkit/enchantments/Enchantment.java | 9 +++++++++
.../java/org/bukkit/enchantments/EnchantmentWrapper.java | 7 +++++++
2 files changed, 16 insertions(+)
diff --git a/src/main/java/org/bukkit/enchantments/Enchantment.java b/src/main/java/org/bukkit/enchantments/Enchantment.java
index d1885f178..b277428d6 100644
--- a/src/main/java/org/bukkit/enchantments/Enchantment.java
+++ b/src/main/java/org/bukkit/enchantments/Enchantment.java
@@ -232,6 +232,15 @@ public abstract class Enchantment implements Keyed {
*/
public abstract int getMaxLevel();
+ // Purpur start
+ /**
+ * Sets the maximum level that this Enchantment may become.
+ *
+ * @param maxLevel Maximum level of the Enchantment
+ */
+ public abstract void setMaxLevel(int maxLevel);
+ // Purpur end
+
/**
* Gets the level that this Enchantment should start at
*
diff --git a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
index 9566e4306..67e31fee3 100644
--- a/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
+++ b/src/main/java/org/bukkit/enchantments/EnchantmentWrapper.java
@@ -27,6 +27,13 @@ public class EnchantmentWrapper extends Enchantment {
return getEnchantment().getMaxLevel();
}
+ // Purpur start
+ @Override
+ public void setMaxLevel(int maxLevel) {
+ getEnchantment().setMaxLevel(maxLevel);
+ }
+ // Purpur end
+
@Override
public int getStartLevel() {
return getEnchantment().getStartLevel();
--
2.26.2

View File

@@ -0,0 +1,73 @@
From 520632fdade49977988e20c07bd90d360f86418a Mon Sep 17 00:00:00 2001
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
Date: Thu, 18 Jun 2020 23:29:43 -0500
Subject: [PATCH] Add PrepareGrindstoneEvent
---
.../inventory/PrepareGrindstoneEvent.java | 54 +++++++++++++++++++
1 file changed, 54 insertions(+)
create mode 100644 src/main/java/net/pl3x/purpur/event/inventory/PrepareGrindstoneEvent.java
diff --git a/src/main/java/net/pl3x/purpur/event/inventory/PrepareGrindstoneEvent.java b/src/main/java/net/pl3x/purpur/event/inventory/PrepareGrindstoneEvent.java
new file mode 100644
index 000000000..d0670bb72
--- /dev/null
+++ b/src/main/java/net/pl3x/purpur/event/inventory/PrepareGrindstoneEvent.java
@@ -0,0 +1,54 @@
+package net.pl3x.purpur.event.inventory;
+
+import org.bukkit.event.HandlerList;
+import org.bukkit.event.inventory.InventoryEvent;
+import org.bukkit.inventory.GrindstoneInventory;
+import org.bukkit.inventory.InventoryView;
+import org.bukkit.inventory.ItemStack;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ * Called when an item is put in a grindstone slot.
+ */
+public class PrepareGrindstoneEvent extends InventoryEvent {
+
+ private static final HandlerList handlers = new HandlerList();
+ private ItemStack result;
+
+ public PrepareGrindstoneEvent(@NotNull InventoryView inventory, @Nullable ItemStack result) {
+ super(inventory);
+ this.result = result;
+ }
+
+ @NotNull
+ @Override
+ public GrindstoneInventory getInventory() {
+ return (GrindstoneInventory) super.getInventory();
+ }
+
+ /**
+ * Get result item, may be null.
+ *
+ * @return result item
+ */
+ @Nullable
+ public ItemStack getResult() {
+ return result;
+ }
+
+ public void setResult(@Nullable ItemStack result) {
+ this.result = result;
+ }
+
+ @NotNull
+ @Override
+ public HandlerList getHandlers() {
+ return handlers;
+ }
+
+ @NotNull
+ public static HandlerList getHandlerList() {
+ return handlers;
+ }
+}
--
2.26.2