diff --git a/pom.xml b/pom.xml index 8df030a..6ec70ea 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 21 UTF-8 - 1.14.0 + 1.15.0 https://youhavetrouble.me @@ -67,7 +67,7 @@ io.papermc.paper paper-api - 1.21.9-R0.1-SNAPSHOT + 1.21.10-R0.1-SNAPSHOT provided diff --git a/src/main/java/me/youhavetrouble/enchantio/listeners/TelepathyListener.java b/src/main/java/me/youhavetrouble/enchantio/listeners/TelepathyListener.java index 83bbfd6..beadddd 100644 --- a/src/main/java/me/youhavetrouble/enchantio/listeners/TelepathyListener.java +++ b/src/main/java/me/youhavetrouble/enchantio/listeners/TelepathyListener.java @@ -3,8 +3,10 @@ package me.youhavetrouble.enchantio.listeners; import io.papermc.paper.registry.RegistryAccess; import io.papermc.paper.registry.RegistryKey; +import me.youhavetrouble.enchantio.Enchantio; import me.youhavetrouble.enchantio.EnchantioConfig; import me.youhavetrouble.enchantio.enchants.TelepathyEnchant; +import org.bukkit.Bukkit; import org.bukkit.Registry; import org.bukkit.enchantments.Enchantment; import org.bukkit.entity.Item; @@ -28,11 +30,16 @@ public class TelepathyListener implements Listener { ItemStack tool = event.getPlayer().getInventory().getItemInMainHand(); if (!tool.containsEnchantment(telepathy)) return; for (Item item : event.getItems()) { - item.teleport(event.getPlayer(), PlayerTeleportEvent.TeleportCause.PLUGIN); item.setPickupDelay(0); if (!telepathyEnchant.isOnlyUserCanPickupItems()) continue; item.setOwner(event.getPlayer().getUniqueId()); } + + // If there's ever a performance problem here, it's the following + Bukkit.getScheduler().runTask(Enchantio.getPlugin(Enchantio.class), () -> event.getItems().forEach((item) -> { + if (item == null || item.isDead()) return; + item.teleport(event.getPlayer(), PlayerTeleportEvent.TeleportCause.PLUGIN); + })); } }