93 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
	
		
			2.9 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/entity/HumanEntity.java
 | 
						|
+++ b/src/main/java/org/bukkit/entity/HumanEntity.java
 | 
						|
@@ -0,0 +0,0 @@ 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(@NotNull 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
 | 
						|
+++ b/src/main/java/org/bukkit/event/inventory/InventoryCloseEvent.java
 | 
						|
@@ -0,0 +0,0 @@ import org.jetbrains.annotations.NotNull;
 | 
						|
  */
 | 
						|
 public class InventoryCloseEvent extends InventoryEvent {
 | 
						|
     private static final HandlerList handlers = new HandlerList();
 | 
						|
+    // Paper start
 | 
						|
+    private final Reason reason;
 | 
						|
+    @NotNull
 | 
						|
+    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(@NotNull InventoryView transaction) {
 | 
						|
+        this(transaction, Reason.UNKNOWN);
 | 
						|
+    }
 | 
						|
+
 | 
						|
+    public InventoryCloseEvent(@NotNull InventoryView transaction, @NotNull Reason reason) {
 | 
						|
         super(transaction);
 | 
						|
+        this.reason = reason;
 | 
						|
+        // Paper end
 | 
						|
     }
 | 
						|
 
 | 
						|
     /**
 |