17b58d00d8
This was a useless exception wrapper that ends up making stack traces harder to read as well as the JVM cutting off the important parts Nothing catches this exception, so its safe to just get rid of it and let the REAL exception bubble down
94 lines
2.8 KiB
Diff
94 lines
2.8 KiB
Diff
From a71408a2ea0e5a1f5e3bc4ce3349f498b0aa78d2 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Tue, 3 Jul 2018 21:52:52 -0400
|
|
Subject: [PATCH] InventoryCloseEvent Reason API
|
|
|
|
Allows you to determine why an inventory was closed, enabling plugin developers
|
|
to "confirm" things based on if it was player triggered close or not.
|
|
|
|
diff --git a/src/main/java/org/bukkit/entity/HumanEntity.java b/src/main/java/org/bukkit/entity/HumanEntity.java
|
|
index b5ed8447..74f5588e 100644
|
|
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
|
|
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
|
|
@@ -138,6 +138,15 @@ public interface HumanEntity extends LivingEntity, AnimalTamer, InventoryHolder
|
|
*/
|
|
public void closeInventory();
|
|
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Force-closes the currently open inventory view for this player, if any.
|
|
+ *
|
|
+ * @param reason why the inventory is closing
|
|
+ */
|
|
+ public void closeInventory(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason);
|
|
+ // Paper end
|
|
+
|
|
/**
|
|
* Returns the ItemStack currently in your hand, can be empty.
|
|
*
|
|
diff --git a/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java b/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
|
|
index 19889b27..e6e45b93 100644
|
|
--- a/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
|
|
+++ b/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
|
|
@@ -11,8 +11,58 @@ import org.bukkit.inventory.InventoryView;
|
|
public class InventoryCloseEvent extends InventoryEvent {
|
|
private static final HandlerList handlers = new HandlerList();
|
|
|
|
+ // Paper start
|
|
+ private final Reason reason;
|
|
+ public Reason getReason() {
|
|
+ return reason;
|
|
+ }
|
|
+
|
|
+ public enum Reason {
|
|
+ /**
|
|
+ * Unknown reason
|
|
+ */
|
|
+ UNKNOWN,
|
|
+ /**
|
|
+ * Player is teleporting
|
|
+ */
|
|
+ TELEPORT,
|
|
+ /**
|
|
+ * Player is no longer permitted to use this inventory
|
|
+ */
|
|
+ CANT_USE,
|
|
+ /**
|
|
+ * The chunk the inventory was in was unloaded
|
|
+ */
|
|
+ UNLOADED,
|
|
+ /**
|
|
+ * Opening new inventory instead
|
|
+ */
|
|
+ OPEN_NEW,
|
|
+ /**
|
|
+ * Closed
|
|
+ */
|
|
+ PLAYER,
|
|
+ /**
|
|
+ * Closed due to disconnect
|
|
+ */
|
|
+ DISCONNECT,
|
|
+ /**
|
|
+ * The player died
|
|
+ */
|
|
+ DEATH,
|
|
+ /**
|
|
+ * Closed by Bukkit API
|
|
+ */
|
|
+ PLUGIN,
|
|
+ }
|
|
public InventoryCloseEvent(InventoryView transaction) {
|
|
+ this(transaction, Reason.UNKNOWN);
|
|
+ }
|
|
+
|
|
+ public InventoryCloseEvent(InventoryView transaction, Reason reason) {
|
|
super(transaction);
|
|
+ this.reason = reason;
|
|
+ // Paper end
|
|
}
|
|
|
|
/**
|
|
--
|
|
2.20.1
|
|
|