9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-29 03:49:15 +00:00

move packages

This commit is contained in:
XiaoMoMi
2025-03-31 21:42:31 +08:00
parent e4324e16be
commit 82cfc53046
21 changed files with 65 additions and 65 deletions

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.util.Reflections;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.util.Reflections;
import net.momirealms.craftengine.core.util.VersionHelper;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import java.util.List;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.util.Reflections;
import net.momirealms.craftengine.core.util.ReflectionUtils;

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.core.util.VersionHelper;

View File

@@ -1,10 +1,9 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import java.util.List;
import java.util.Optional;
public class LivingEntityData<T> extends BaseEntityData<T> {
public static final LivingEntityData<Byte> LivingEntityFlags = new LivingEntityData<>(8, EntityDataValue.Serializers$BYTE, (byte) 0);
public static final LivingEntityData<Float> Health = new LivingEntityData<>(9, EntityDataValue.Serializers$FLOAT, 1.0f);
public static final LivingEntityData<List<Object>> EffectParticles = new LivingEntityData<>(10, EntityDataValue.Serializers$PARTICLES, List.of());

View File

@@ -1,7 +1,6 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
public class MobData<T> extends LivingEntityData<T> {
public static final MobData<Byte> MobFlags = new MobData<>(15, EntityDataValue.Serializers$BYTE, (byte) 0);
public MobData(int id, Object serializer, T defaultValue) {

View File

@@ -1,9 +1,8 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
import net.momirealms.craftengine.bukkit.util.Reflections;
public class ShulkerData<T> extends MobData<T> {
public static final ShulkerData<Object> AttachFace = new ShulkerData<>(16, EntityDataValue.Serializers$DIRECTION, Reflections.instance$Direction$DOWN);
public static final ShulkerData<Byte> Peek = new ShulkerData<>(17, EntityDataValue.Serializers$BYTE, (byte) 0);
public static final ShulkerData<Byte> Color = new ShulkerData<>(18, EntityDataValue.Serializers$BYTE, (byte) 16);

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity;
package net.momirealms.craftengine.bukkit.entity.data;
public class SimpleEntityData<T> implements EntityData<T> {

View File

@@ -1,6 +1,6 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
import net.momirealms.craftengine.bukkit.entity.DisplayEntityData;
import net.momirealms.craftengine.bukkit.entity.data.DisplayEntityData;
import net.momirealms.craftengine.bukkit.item.BukkitItemManager;
import net.momirealms.craftengine.bukkit.util.Reflections;
import net.momirealms.craftengine.core.entity.furniture.AbstractFurnitureElement;

View File

@@ -1,5 +1,6 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
import net.momirealms.craftengine.bukkit.entity.furniture.hitbox.InteractionHitBox;
import net.momirealms.craftengine.bukkit.nms.CollisionEntity;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.plugin.BukkitCraftEngine;
@@ -233,13 +234,13 @@ public class BukkitFurnitureManager implements FurnitureManager {
tryLeavingSeat(player, vehicle);
}
}
// for (World world : Bukkit.getWorlds()) {
// for (Entity entity : world.getEntities()) {
// if (entity instanceof CollisionEntity) {
// entity.remove();
// }
// }
// }
for (World world : Bukkit.getWorlds()) {
for (Entity entity : world.getEntities()) {
if (FastNMS.INSTANCE.method$CraftEntity$getHandle(entity) instanceof CollisionEntity) {
entity.remove();
}
}
}
}
@Override
@@ -262,7 +263,7 @@ public class BukkitFurnitureManager implements FurnitureManager {
return this.furnitureByInteractionEntityId.get(entityId);
}
protected void handleEntityUnload(Entity entity) {
protected void handleBaseFurnitureUnload(Entity entity) {
int id = entity.getEntityId();
LoadedFurniture furniture = this.furnitureByBaseEntityId.remove(id);
if (furniture != null) {
@@ -270,10 +271,6 @@ public class BukkitFurnitureManager implements FurnitureManager {
for (int sub : furniture.hitBoxEntityIds()) {
this.furnitureByInteractionEntityId.remove(sub);
}
} else if (entity instanceof Interaction interaction) {
if (interaction instanceof CollisionEntity) {
entity.remove();
}
}
}
@@ -420,7 +417,7 @@ public class BukkitFurnitureManager implements FurnitureManager {
Collection<Entity> nearbyEntities = world.getNearbyEntities(location, 0.5, 2, 0.5);
for (Entity bukkitEntity : nearbyEntities) {
if (bukkitEntity instanceof Player) continue;
Object nmsEntity = Reflections.method$CraftEntity$getHandle.invoke(bukkitEntity);
Object nmsEntity = FastNMS.INSTANCE.method$CraftEntity$getHandle(bukkitEntity);
return (boolean) Reflections.method$Entity$canBeCollidedWith.invoke(nmsEntity);
}
} catch (Exception ignored) {}

View File

@@ -4,6 +4,7 @@ import com.destroystokyo.paper.event.entity.EntityAddToWorldEvent;
import com.destroystokyo.paper.event.entity.EntityRemoveFromWorldEvent;
import org.bukkit.entity.ArmorStand;
import org.bukkit.entity.Entity;
import org.bukkit.entity.ItemDisplay;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -57,7 +58,9 @@ public class FurnitureEventListener implements Listener {
public void onChunkUnload(ChunkUnloadEvent event) {
Entity[] entities = event.getChunk().getEntities();
for (Entity entity : entities) {
this.manager.handleEntityUnload(entity);
if (entity instanceof ItemDisplay) {
this.manager.handleBaseFurnitureUnload(entity);
}
}
}
@@ -65,13 +68,17 @@ public class FurnitureEventListener implements Listener {
public void onWorldUnload(WorldUnloadEvent event) {
List<Entity> entities = event.getWorld().getEntities();
for (Entity entity : entities) {
this.manager.handleEntityUnload(entity);
if (entity instanceof ItemDisplay) {
this.manager.handleBaseFurnitureUnload(entity);
}
}
}
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onEntityUnload(EntityRemoveFromWorldEvent event) {
this.manager.handleEntityUnload(event.getEntity());
if (event.getEntity() instanceof ItemDisplay itemDisplay) {
this.manager.handleBaseFurnitureUnload(itemDisplay);
}
}
@EventHandler(ignoreCancelled = true)

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import net.momirealms.craftengine.core.entity.furniture.HitBoxTypes;
@@ -9,6 +9,6 @@ public class BukkitHitBoxTypes extends HitBoxTypes {
static {
register(INTERACTION, InteractionHitBox.FACTORY);
register(SHULKER, ShulkerHitBox.FACTORY);
register(BOAT, HappyGhastHitBox.FACTORY);
register(HAPPY_GHAST, HappyGhastHitBox.FACTORY);
}
}

View File

@@ -1,4 +1,4 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import net.momirealms.craftengine.core.entity.furniture.*;
import net.momirealms.craftengine.core.util.Key;
@@ -20,7 +20,7 @@ public class HappyGhastHitBox extends AbstractHitBox {
@Override
public Key type() {
return HitBoxTypes.BOAT;
return HitBoxTypes.HAPPY_GHAST;
}
public double scale() {

View File

@@ -1,6 +1,6 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import net.momirealms.craftengine.bukkit.entity.InteractionEntityData;
import net.momirealms.craftengine.bukkit.entity.data.InteractionEntityData;
import net.momirealms.craftengine.bukkit.util.Reflections;
import net.momirealms.craftengine.core.entity.furniture.*;
import net.momirealms.craftengine.core.util.Key;

View File

@@ -1,7 +1,8 @@
package net.momirealms.craftengine.bukkit.entity.furniture;
package net.momirealms.craftengine.bukkit.entity.furniture.hitbox;
import io.netty.buffer.Unpooled;
import net.momirealms.craftengine.bukkit.entity.ShulkerData;
import net.momirealms.craftengine.bukkit.entity.data.ShulkerData;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.util.DirectionUtils;
import net.momirealms.craftengine.bukkit.util.Reflections;
import net.momirealms.craftengine.core.entity.furniture.*;
@@ -58,10 +59,7 @@ public class ShulkerHitBox extends AbstractHitBox {
Reflections.instance$EntityType$SHULKER, 0, Reflections.instance$Vec3$Zero, 0
));
packets.accept(Reflections.constructor$ClientboundSetEntityDataPacket.newInstance(entityIds[1], getCachedValues()));
Object friendlyByteBuf = Reflections.constructor$FriendlyByteBuf.newInstance(Unpooled.buffer());
Reflections.method$FriendlyByteBuf$writeVarInt.invoke(friendlyByteBuf, entityIds[0]);
Reflections.method$FriendlyByteBuf$writeVarIntArray.invoke(friendlyByteBuf, (Object) new int[] {entityIds[1]});
packets.accept(Reflections.constructor$ClientboundSetPassengersPacket.newInstance(friendlyByteBuf));
packets.accept(FastNMS.INSTANCE.constructor$ClientboundSetPassengersPacket(entityIds[0], entityIds[1]));
if (VersionHelper.isVersionNewerThan1_20_5()) {
Object attributeInstance = Reflections.constructor$AttributeInstance.newInstance(Reflections.instance$Holder$Attribute$scale, (Consumer<?>) (o) -> {});
Reflections.method$AttributeInstance$setBaseValue.invoke(attributeInstance, scale);

View File

@@ -6,7 +6,7 @@ import net.momirealms.craftengine.bukkit.block.BukkitBlockManager;
import net.momirealms.craftengine.bukkit.block.behavior.BukkitBlockBehaviors;
import net.momirealms.craftengine.bukkit.compatibility.papi.PlaceholderAPIUtils;
import net.momirealms.craftengine.bukkit.entity.furniture.BukkitFurnitureManager;
import net.momirealms.craftengine.bukkit.entity.furniture.BukkitHitBoxTypes;
import net.momirealms.craftengine.bukkit.entity.furniture.hitbox.BukkitHitBoxTypes;
import net.momirealms.craftengine.bukkit.font.BukkitImageManager;
import net.momirealms.craftengine.bukkit.item.BukkitItemManager;
import net.momirealms.craftengine.bukkit.item.behavior.BukkitItemBehaviors;

View File

@@ -649,9 +649,9 @@ public class Reflections {
)
);
public static Object allocateClientboundSetPassengersPacketInstance() throws InstantiationException {
return UNSAFE.allocateInstance(clazz$ClientboundSetPassengersPacket);
}
// public static Object allocateClientboundSetPassengersPacketInstance() throws InstantiationException {
// return UNSAFE.allocateInstance(clazz$ClientboundSetPassengersPacket);
// }
public static final Field field$Vec3$Zero = requireNonNull(
ReflectionUtils.getDeclaredField(
@@ -5881,23 +5881,23 @@ public class Reflections {
)
);
public static final Constructor<?> constructor$ClientboundSetPassengersPacket = requireNonNull(
ReflectionUtils.getDeclaredConstructor(
clazz$ClientboundSetPassengersPacket, clazz$FriendlyByteBuf
)
);
// public static final Constructor<?> constructor$ClientboundSetPassengersPacket = requireNonNull(
// ReflectionUtils.getDeclaredConstructor(
// clazz$ClientboundSetPassengersPacket, clazz$FriendlyByteBuf
// )
// );
public static final Method method$FriendlyByteBuf$writeVarInt = requireNonNull(
ReflectionUtils.getMethod(
clazz$FriendlyByteBuf, clazz$FriendlyByteBuf, new String[]{"writeVarInt", "d", "c"}, int.class
)
);
public static final Method method$FriendlyByteBuf$writeVarIntArray = requireNonNull(
ReflectionUtils.getMethod(
clazz$FriendlyByteBuf, clazz$FriendlyByteBuf, int[].class
)
);
// public static final Method method$FriendlyByteBuf$writeVarInt = requireNonNull(
// ReflectionUtils.getMethod(
// clazz$FriendlyByteBuf, clazz$FriendlyByteBuf, new String[]{"writeVarInt", "d", "c"}, int.class
// )
// );
//
// public static final Method method$FriendlyByteBuf$writeVarIntArray = requireNonNull(
// ReflectionUtils.getMethod(
// clazz$FriendlyByteBuf, clazz$FriendlyByteBuf, int[].class
// )
// );
public static final Method method$Entity$canBeCollidedWith = requireNonNull(
VersionHelper.isVersionNewerThan1_20_5()
@@ -5911,6 +5911,7 @@ public class Reflections {
: ReflectionUtils.getMethod(clazz$Entity, boolean.class, new String[]{"canBeCollidedWith", "bu", "bx", "bz"})
);
@Deprecated
public static final Method method$CraftEntity$getHandle = requireNonNull(
ReflectionUtils.getMethod(
clazz$CraftEntity, clazz$Entity, 0