mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 17:07:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: 9a129fa99 Add #getEligibleHumans to SkeletonHorseTrapEvent b5e23c7a6 Fix merging spawning values a932e8ad7 Turn off spigot verbose world by default 8ced89f65 Fix Delegation to vanilla chunk gen
125 lines
3.7 KiB
Diff
125 lines
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: William Blake Galbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sun, 19 Apr 2020 00:25:09 -0500
|
|
Subject: [PATCH] Anvil API
|
|
|
|
|
|
diff --git a/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java b/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java
|
|
new file mode 100644
|
|
index 000000000..85663c0a4
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/pl3x/purpur/event/inventory/AnvilTakeResultEvent.java
|
|
@@ -0,0 +1,52 @@
|
|
+package net.pl3x.purpur.event.inventory;
|
|
+
|
|
+import org.bukkit.entity.HumanEntity;
|
|
+import org.bukkit.entity.Player;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.inventory.InventoryEvent;
|
|
+import org.bukkit.inventory.AnvilInventory;
|
|
+import org.bukkit.inventory.InventoryView;
|
|
+import org.bukkit.inventory.ItemStack;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Called when a player takes the result item out of an anvil
|
|
+ */
|
|
+public class AnvilTakeResultEvent extends InventoryEvent {
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+ private final Player player;
|
|
+ private final ItemStack result;
|
|
+
|
|
+ public AnvilTakeResultEvent(@NotNull HumanEntity player, @NotNull InventoryView view, @NotNull ItemStack result) {
|
|
+ super(view);
|
|
+ this.player = (Player) player;
|
|
+ this.result = result;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public Player getPlayer() {
|
|
+ return player;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public ItemStack getResult() {
|
|
+ return result;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public AnvilInventory getInventory() {
|
|
+ return (AnvilInventory) super.getInventory();
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java b/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java
|
|
new file mode 100644
|
|
index 000000000..2717ad82c
|
|
--- /dev/null
|
|
+++ b/src/main/java/net/pl3x/purpur/event/inventory/AnvilUpdateResultEvent.java
|
|
@@ -0,0 +1,35 @@
|
|
+package net.pl3x.purpur.event.inventory;
|
|
+
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.inventory.InventoryEvent;
|
|
+import org.bukkit.inventory.AnvilInventory;
|
|
+import org.bukkit.inventory.InventoryView;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+/**
|
|
+ * Called when anvil slots change, triggering the result slot to be updated
|
|
+ */
|
|
+public class AnvilUpdateResultEvent extends InventoryEvent {
|
|
+ private static final HandlerList handlers = new HandlerList();
|
|
+
|
|
+ public AnvilUpdateResultEvent(@NotNull InventoryView view) {
|
|
+ super(view);
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public AnvilInventory getInventory() {
|
|
+ return (AnvilInventory) super.getInventory();
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return handlers;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return handlers;
|
|
+ }
|
|
+}
|
|
diff --git a/src/main/java/org/bukkit/inventory/AnvilInventory.java b/src/main/java/org/bukkit/inventory/AnvilInventory.java
|
|
index b95e563b5..435026e53 100644
|
|
--- a/src/main/java/org/bukkit/inventory/AnvilInventory.java
|
|
+++ b/src/main/java/org/bukkit/inventory/AnvilInventory.java
|
|
@@ -109,4 +109,14 @@ public interface AnvilInventory extends Inventory {
|
|
setItem(2, result);
|
|
}
|
|
// Paper end
|
|
+
|
|
+ // Purpur start
|
|
+ boolean canBypassCost();
|
|
+
|
|
+ void setBypassCost(boolean bypassCost);
|
|
+
|
|
+ boolean canDoUnsafeEnchants();
|
|
+
|
|
+ void setDoUnsafeEnchants(boolean canDoUnsafeEnchants);
|
|
+ // Purpur end
|
|
}
|