diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java index a27d874..fdbf3d4 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/ZNpcsPlus.java @@ -127,7 +127,7 @@ public class ZNpcsPlus { PacketFactory packetFactory = setupPacketFactory(scheduler, propertyRegistry, configManager); - propertyRegistry.registerTypes(bootstrap, packetFactory, textSerializer); + propertyRegistry.registerTypes(bootstrap, packetFactory, textSerializer, scheduler); BungeeConnector bungeeConnector = new BungeeConnector(bootstrap); ActionRegistryImpl actionRegistry = new ActionRegistryImpl(); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java index a7490c0..6bb9b3c 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/EntityPropertyRegistryImpl.java @@ -20,6 +20,7 @@ import lol.pyr.znpcsplus.entity.properties.villager.VillagerProfessionProperty; import lol.pyr.znpcsplus.entity.properties.villager.VillagerTypeProperty; import lol.pyr.znpcsplus.entity.serializers.*; import lol.pyr.znpcsplus.packets.PacketFactory; +import lol.pyr.znpcsplus.scheduling.TaskScheduler; import lol.pyr.znpcsplus.skin.cache.MojangSkinCache; import lol.pyr.znpcsplus.util.*; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; @@ -104,7 +105,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { */ } - public void registerTypes(ZNpcsPlusBootstrap plugin, PacketFactory packetFactory, LegacyComponentSerializer textSerializer) { + public void registerTypes(ZNpcsPlusBootstrap plugin, PacketFactory packetFactory, LegacyComponentSerializer textSerializer, TaskScheduler taskScheduler) { ServerVersion ver = PacketEvents.getAPI().getServerManager().getVersion(); boolean legacyBooleans = ver.isOlderThan(ServerVersion.V_1_9); boolean legacyNames = ver.isOlderThan(ServerVersion.V_1_9); @@ -127,7 +128,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry { register(new DummyProperty<>("permission_required", false)); - register(new ForceBodyRotationProperty(plugin)); + register(new ForceBodyRotationProperty(plugin, taskScheduler)); register(new DummyProperty<>("player_knockback", false)); register(new DummyProperty<>("player_knockback_exempt_permission", String.class)); diff --git a/plugin/src/main/java/lol/pyr/znpcsplus/entity/properties/ForceBodyRotationProperty.java b/plugin/src/main/java/lol/pyr/znpcsplus/entity/properties/ForceBodyRotationProperty.java index 8a6ca71..b642193 100644 --- a/plugin/src/main/java/lol/pyr/znpcsplus/entity/properties/ForceBodyRotationProperty.java +++ b/plugin/src/main/java/lol/pyr/znpcsplus/entity/properties/ForceBodyRotationProperty.java @@ -3,24 +3,26 @@ package lol.pyr.znpcsplus.entity.properties; import com.github.retrooper.packetevents.protocol.entity.data.EntityData; import lol.pyr.znpcsplus.ZNpcsPlusBootstrap; import lol.pyr.znpcsplus.entity.PacketEntity; -import org.bukkit.Bukkit; +import lol.pyr.znpcsplus.scheduling.TaskScheduler; import org.bukkit.entity.Player; import java.util.Map; public class ForceBodyRotationProperty extends DummyProperty { private final ZNpcsPlusBootstrap plugin; + private final TaskScheduler scheduler; - public ForceBodyRotationProperty(ZNpcsPlusBootstrap plugin) { + public ForceBodyRotationProperty(ZNpcsPlusBootstrap plugin, TaskScheduler scheduler) { super("force_body_rotation", false); this.plugin = plugin; + this.scheduler = scheduler; } @Override public void apply(Player player, PacketEntity entity, boolean isSpawned, Map properties) { if (entity.getProperty(this)) { - Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 2L); - Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 6L); + scheduler.runLaterAsync(() -> entity.swingHand(player, false), 2L); + scheduler.runLaterAsync(() -> entity.swingHand(player, false), 6L); } } }