use task scheduler for force_body_rotation property instead
This commit is contained in:
parent
0272a9ef68
commit
304278edd8
3 changed files with 10 additions and 7 deletions
|
@ -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();
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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<Boolean> {
|
||||
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<Integer, EntityData> 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue