Skip to content

Commit 1f90611

Browse files
IllyriusIllyrius
authored andcommitted
fix interaction with enderchest
Signed-off-by: Illyrius <FitimQ@live.nl>
1 parent a3aa67b commit 1f90611

1 file changed

Lines changed: 10 additions & 15 deletions

File tree

src/main/kotlin/org/xodium/vanillaplus/modules/PlayerModule.kt

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,15 @@ import io.papermc.paper.datacomponent.item.ResolvableProfile
99
import io.papermc.paper.event.entity.EntityEquipmentChangedEvent
1010
import kotlinx.serialization.Serializable
1111
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder
12+
import org.bukkit.GameMode
1213
import org.bukkit.Material
1314
import org.bukkit.entity.Player
1415
import org.bukkit.event.EventHandler
1516
import org.bukkit.event.EventPriority
17+
import org.bukkit.event.block.Action
1618
import org.bukkit.event.block.BlockBreakEvent
1719
import org.bukkit.event.block.BlockDropItemEvent
1820
import org.bukkit.event.entity.PlayerDeathEvent
19-
import org.bukkit.event.inventory.ClickType
20-
import org.bukkit.event.inventory.InventoryClickEvent
21-
import org.bukkit.event.inventory.InventoryType
2221
import org.bukkit.event.player.*
2322
import org.bukkit.inventory.ItemStack
2423
import org.bukkit.permissions.Permission
@@ -92,12 +91,10 @@ internal object PlayerModule : ModuleInterface {
9291
}
9392

9493
@EventHandler
95-
fun on(event: InventoryClickEvent) = handleEnderchest(event)
96-
97-
@EventHandler(ignoreCancelled = true)
9894
fun on(event: PlayerInteractEvent) {
9995
xpToBottle(event)
10096
FeatherFallingEnchantment.featherFalling(event)
97+
handleEnderchest(event)
10198
}
10299

103100
@EventHandler
@@ -124,20 +121,18 @@ internal object PlayerModule : ModuleInterface {
124121
}
125122

126123
/**
127-
* Handles the inventory click event where a player can open their ender chest by clicking on an ender chest item
128-
* in their inventory.
129-
* @param event The InventoryClickEvent triggered when a player clicks in an inventory.
124+
* Opens the player's ender chest when an ender chest is in the offhand and the player right-clicks in the air.
125+
* @param event The PlayerInteractEvent triggered by the interaction.
130126
*/
131-
private fun handleEnderchest(event: InventoryClickEvent) {
132-
if (event.click != ClickType.MIDDLE) return // FIX: MIDDLE doesnt work?
133-
if (event.currentItem?.type != Material.ENDER_CHEST) return
134-
if (event.clickedInventory?.type != InventoryType.PLAYER) return
127+
private fun handleEnderchest(event: PlayerInteractEvent) {
128+
if (event.action != Action.RIGHT_CLICK_AIR) return
129+
if (event.item?.type != Material.ENDER_CHEST) return
130+
if (event.player.gameMode != GameMode.SURVIVAL) return
135131

136132
event.isCancelled = true
137-
138133
instance.server.scheduler.runTask(
139134
instance,
140-
Runnable { event.whoClicked.openInventory(event.whoClicked.enderChest) },
135+
Runnable { event.player.openInventory(event.player.enderChest) },
141136
)
142137
}
143138

0 commit comments

Comments
 (0)