Adjust telepathy to new behavior of Entity#teleport not being able to change position of entities that are not in the world yet

This commit is contained in:
2025-11-16 22:05:30 +01:00
parent 28d10bf378
commit f5252a54b0
2 changed files with 10 additions and 3 deletions
+2 -2
View File
@@ -15,7 +15,7 @@
<properties>
<java.version>21</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<revision>1.14.0</revision>
<revision>1.15.0</revision>
</properties>
<url>https://youhavetrouble.me</url>
@@ -67,7 +67,7 @@
<dependency>
<groupId>io.papermc.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.21.9-R0.1-SNAPSHOT</version>
<version>1.21.10-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
</dependencies>
@@ -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);
}));
}
}