added force_body_rotation property for player npc
This commit is contained in:
parent
f0e7ea8302
commit
c50e2fd0d4
4 changed files with 30 additions and 3 deletions
|
@ -115,7 +115,7 @@ public class ZNpcsPlus {
|
||||||
MojangSkinCache skinCache = new MojangSkinCache(configManager);
|
MojangSkinCache skinCache = new MojangSkinCache(configManager);
|
||||||
EntityPropertyRegistryImpl propertyRegistry = new EntityPropertyRegistryImpl(skinCache, configManager);
|
EntityPropertyRegistryImpl propertyRegistry = new EntityPropertyRegistryImpl(skinCache, configManager);
|
||||||
PacketFactory packetFactory = setupPacketFactory(scheduler, propertyRegistry, configManager);
|
PacketFactory packetFactory = setupPacketFactory(scheduler, propertyRegistry, configManager);
|
||||||
propertyRegistry.registerTypes(packetFactory, textSerializer);
|
propertyRegistry.registerTypes(bootstrap, packetFactory, textSerializer);
|
||||||
|
|
||||||
ActionRegistry actionRegistry = new ActionRegistry();
|
ActionRegistry actionRegistry = new ActionRegistry();
|
||||||
NpcTypeRegistryImpl typeRegistry = new NpcTypeRegistryImpl();
|
NpcTypeRegistryImpl typeRegistry = new NpcTypeRegistryImpl();
|
||||||
|
|
|
@ -9,6 +9,7 @@ import com.github.retrooper.packetevents.protocol.nbt.NBTInt;
|
||||||
import com.github.retrooper.packetevents.protocol.nbt.NBTString;
|
import com.github.retrooper.packetevents.protocol.nbt.NBTString;
|
||||||
import com.github.retrooper.packetevents.protocol.player.EquipmentSlot;
|
import com.github.retrooper.packetevents.protocol.player.EquipmentSlot;
|
||||||
import com.github.retrooper.packetevents.protocol.world.BlockFace;
|
import com.github.retrooper.packetevents.protocol.world.BlockFace;
|
||||||
|
import lol.pyr.znpcsplus.ZNpcsPlusBootstrap;
|
||||||
import lol.pyr.znpcsplus.api.entity.EntityProperty;
|
import lol.pyr.znpcsplus.api.entity.EntityProperty;
|
||||||
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
|
import lol.pyr.znpcsplus.api.entity.EntityPropertyRegistry;
|
||||||
import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
|
import lol.pyr.znpcsplus.api.skin.SkinDescriptor;
|
||||||
|
@ -103,7 +104,7 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
public void registerTypes(PacketFactory packetFactory, LegacyComponentSerializer textSerializer) {
|
public void registerTypes(ZNpcsPlusBootstrap plugin, PacketFactory packetFactory, LegacyComponentSerializer textSerializer) {
|
||||||
ServerVersion ver = PacketEvents.getAPI().getServerManager().getVersion();
|
ServerVersion ver = PacketEvents.getAPI().getServerManager().getVersion();
|
||||||
boolean legacyBooleans = ver.isOlderThan(ServerVersion.V_1_9);
|
boolean legacyBooleans = ver.isOlderThan(ServerVersion.V_1_9);
|
||||||
boolean legacyNames = ver.isOlderThan(ServerVersion.V_1_9);
|
boolean legacyNames = ver.isOlderThan(ServerVersion.V_1_9);
|
||||||
|
@ -126,6 +127,8 @@ public class EntityPropertyRegistryImpl implements EntityPropertyRegistry {
|
||||||
|
|
||||||
register(new DummyProperty<>("permission_required", false));
|
register(new DummyProperty<>("permission_required", false));
|
||||||
|
|
||||||
|
register(new ForceBodyRotationProperty(plugin));
|
||||||
|
|
||||||
register(new DummyProperty<>("player_knockback", false));
|
register(new DummyProperty<>("player_knockback", false));
|
||||||
register(new DummyProperty<>("player_knockback_exempt_permission", String.class));
|
register(new DummyProperty<>("player_knockback_exempt_permission", String.class));
|
||||||
register(new DummyProperty<>("player_knockback_distance", 0.4));
|
register(new DummyProperty<>("player_knockback_distance", 0.4));
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
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 org.bukkit.entity.Player;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class ForceBodyRotationProperty extends DummyProperty<Boolean> {
|
||||||
|
private final ZNpcsPlusBootstrap plugin;
|
||||||
|
|
||||||
|
public ForceBodyRotationProperty(ZNpcsPlusBootstrap plugin) {
|
||||||
|
super("force_body_rotation", false);
|
||||||
|
this.plugin = plugin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void apply(Player player, PacketEntity entity, boolean isSpawned, Map<Integer, EntityData> properties) {
|
||||||
|
Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 2L);
|
||||||
|
Bukkit.getScheduler().runTaskLater(plugin, () -> entity.swingHand(player, false), 6L);
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,7 +36,7 @@ public class NpcTypeRegistryImpl implements NpcTypeRegistry {
|
||||||
register(builder(p, "player", EntityTypes.PLAYER)
|
register(builder(p, "player", EntityTypes.PLAYER)
|
||||||
.setHologramOffset(-0.15D)
|
.setHologramOffset(-0.15D)
|
||||||
.addEquipmentProperties()
|
.addEquipmentProperties()
|
||||||
.addProperties("skin_cape", "skin_jacket", "skin_left_sleeve", "skin_right_sleeve", "skin_left_leg", "skin_right_leg", "skin_hat", "shoulder_entity_left", "shoulder_entity_right")
|
.addProperties("skin_cape", "skin_jacket", "skin_left_sleeve", "skin_right_sleeve", "skin_left_leg", "skin_right_leg", "skin_hat", "shoulder_entity_left", "shoulder_entity_right", "force_body_rotation")
|
||||||
.addDefaultProperty("skin_cape", true)
|
.addDefaultProperty("skin_cape", true)
|
||||||
.addDefaultProperty("skin_jacket", true)
|
.addDefaultProperty("skin_jacket", true)
|
||||||
.addDefaultProperty("skin_left_sleeve", true)
|
.addDefaultProperty("skin_left_sleeve", true)
|
||||||
|
|
Loading…
Reference in a new issue