9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-31 12:56:28 +00:00

feat(entity): 添加自定义三叉戟

This commit is contained in:
jhqwqmc
2025-05-03 17:02:15 +08:00
parent a70931e051
commit 340c819f4b

View File

@@ -1600,12 +1600,18 @@ public class PacketConsumers {
Player player = (Player) user.platformPlayer();
Trident trident = (Trident) FastNMS.INSTANCE.getBukkitEntityById(player.getWorld(), entityId);
PersistentDataContainerView container = trident.getItemStack().getPersistentDataContainer();
if (container == null) return;
String customTrident = container.get(Objects.requireNonNull(NamespacedKey.fromString("craftengine:custom_trident")), PersistentDataType.STRING);
int interpolationDelay = container.get(Objects.requireNonNull(NamespacedKey.fromString("craftengine:interpolation_delay")), PersistentDataType.INTEGER);
int transformationInterpolationDuration = container.get(Objects.requireNonNull(NamespacedKey.fromString("craftengine:transformation_interpolation_duration")), PersistentDataType.INTEGER);
int positionRotationInterpolationDuration = container.get(Objects.requireNonNull(NamespacedKey.fromString("craftengine:position_rotation_interpolation_duration")), PersistentDataType.INTEGER);
NamespacedKey customTridentKey = Objects.requireNonNull(NamespacedKey.fromString("craftengine:custom_trident"));
NamespacedKey interpolationDelayKey = Objects.requireNonNull(NamespacedKey.fromString("craftengine:interpolation_delay"));
NamespacedKey transformationInterpolationDurationaKey = Objects.requireNonNull(NamespacedKey.fromString("craftengine:transformation_interpolation_duration"));
NamespacedKey positionRotationInterpolationDurationKey = Objects.requireNonNull(NamespacedKey.fromString("craftengine:position_rotation_interpolation_duration"));
String customTrident = container.get(customTridentKey, PersistentDataType.STRING);
Integer interpolationDelay = container.get(interpolationDelayKey, PersistentDataType.INTEGER);
Integer transformationInterpolationDuration = container.get(transformationInterpolationDurationaKey, PersistentDataType.INTEGER);
Integer positionRotationInterpolationDuration = container.get(positionRotationInterpolationDurationKey, PersistentDataType.INTEGER);
if (customTrident == null) return;
if (interpolationDelay == null) return;
if (transformationInterpolationDuration == null) return;
if (positionRotationInterpolationDuration == null) return;
Reflections.field$ClientboundAddEntityPacket$type.set(packet, Reflections.instance$EntityType$ITEM_DISPLAY);
List<Object> itemDisplayValues = new ArrayList<>();
Item<ItemStack> item = BukkitItemManager.instance().createWrappedItem(Key.of(customTrident), null);