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:
@@ -1,4 +1,4 @@
|
||||
package net.momirealms.craftengine.bukkit.entity;
|
||||
package net.momirealms.craftengine.bukkit.entity.data;
|
||||
|
||||
import net.momirealms.craftengine.bukkit.util.Reflections;
|
||||
|
||||
@@ -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;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.momirealms.craftengine.bukkit.entity;
|
||||
package net.momirealms.craftengine.bukkit.entity.data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -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;
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.momirealms.craftengine.bukkit.entity;
|
||||
package net.momirealms.craftengine.bukkit.entity.data;
|
||||
|
||||
import net.momirealms.craftengine.core.util.VersionHelper;
|
||||
|
||||
@@ -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());
|
||||
@@ -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) {
|
||||
@@ -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);
|
||||
@@ -1,4 +1,4 @@
|
||||
package net.momirealms.craftengine.bukkit.entity;
|
||||
package net.momirealms.craftengine.bukkit.entity.data;
|
||||
|
||||
public class SimpleEntityData<T> implements EntityData<T> {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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() {
|
||||
@@ -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;
|
||||
@@ -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);
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user