@@ -2,11 +2,11 @@ package me.tech.mcchestui.listeners.item
2
2
3
3
import me.tech.mcchestui.GUI
4
4
import me.tech.mcchestui.listeners.GUIEventListener
5
- import org.bukkit.Material
6
5
import org.bukkit.entity.Player
7
6
import org.bukkit.event.EventHandler
8
7
import org.bukkit.event.inventory.InventoryAction
9
8
import org.bukkit.event.inventory.InventoryClickEvent
9
+ import org.bukkit.event.inventory.InventoryMoveItemEvent
10
10
11
11
internal class GUIItemPlaceListener (gui : GUI ) : GUIEventListener(gui) {
12
12
@EventHandler
@@ -26,7 +26,7 @@ internal class GUIItemPlaceListener(gui: GUI) : GUIEventListener(gui) {
26
26
&& isShiftClick
27
27
&& ! gui.isBukkitInventory(clickedInventory) // make sure its incoming.
28
28
) {
29
- if (! gui.allowItemPlacement) {
29
+ if (! gui.allowItemPlacement || ! gui.allowShiftClick ) {
30
30
isCancelled = true
31
31
return
32
32
}
@@ -42,17 +42,20 @@ internal class GUIItemPlaceListener(gui: GUI) : GUIEventListener(gui) {
42
42
return
43
43
}
44
44
45
- val guiSlot = gui.slots.getOrNull(slot)
46
- if (guiSlot != null ) {
47
- if (! guiSlot.allowPickup) {
48
- isCancelled = true
49
- return
45
+ val originatesFromPlayerInventory = ! gui.isBukkitInventory(clickedInventory)
46
+ if (! originatesFromPlayerInventory) {
47
+ val guiSlot = gui.slots.getOrNull(slot)
48
+ if (guiSlot != null ) {
49
+ if (! guiSlot.allowPickup) {
50
+ isCancelled = true
51
+ return
52
+ }
50
53
}
51
54
}
52
55
53
- val itemStack = cursor
56
+ val itemStack = ( if (isShiftClick) currentItem else cursor)
54
57
? : return
55
- if (itemStack.type == Material . AIR ) {
58
+ if (itemStack.type.isEmpty ) {
56
59
return
57
60
}
58
61
0 commit comments