Finish up containers
This commit is contained in:
parent
767bcc065d
commit
82d9ef2879
12 changed files with 215 additions and 45 deletions
|
@ -5,7 +5,16 @@
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="9d5d9b6f-43c8-41a4-bb42-a66ffc96c9b0" name="Changes" comment="">
|
<list default="true" id="9d5d9b6f-43c8-41a4-bb42-a66ffc96c9b0" name="Changes" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/packetconversion/CommonSpawningMethods.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/packetconversion/EntitySpawningMethod.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/packetconversion/EntitySpawningPacketConversion.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/packetconversion/LegacySpawningMethods.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/packetconversion/ModernSpawningMethods.java" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/utils/VersionUtil.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/EntityLibAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/EntityLibAPI.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java" beforeDir="false" afterPath="$PROJECT_DIR$/api/src/main/java/me/tofaa/entitylib/wrapper/WrapperEntity.java" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java" beforeDir="false" afterPath="$PROJECT_DIR$/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
@ -56,6 +65,9 @@
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.2.0/f981796d809d02eee3e485167b2476ed766be882/api-2.2.0.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerUpdateAttributes.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.2.0/f981796d809d02eee3e485167b2476ed766be882/api-2.2.0.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerUpdateAttributes.class" root0="SKIP_INSPECTION" />
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/protocol/attribute/Attribute.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/protocol/attribute/Attribute.class" root0="SKIP_INSPECTION" />
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/protocol/attribute/Attributes.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/protocol/attribute/Attributes.class" root0="SKIP_INSPECTION" />
|
||||||
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerSpawnEntity.class" root0="SKIP_INSPECTION" />
|
||||||
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerSpawnPainting.class" root0="SKIP_INSPECTION" />
|
||||||
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerSpawnWeatherEntity.class" root0="SKIP_INSPECTION" />
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerUpdateAttributes.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/api/2.3.0/a199b900341990aa6a2899e42e396800c83601f0/api-2.3.0-default.jar!/com/github/retrooper/packetevents/wrapper/play/server/WrapperPlayServerUpdateAttributes.class" root0="SKIP_INSPECTION" />
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/velocity/2.3.0/aba4fb09c29c8a071cac36acba545ed37bb80268/velocity-2.3.0-default.jar!/io/github/retrooper/packetevents/bstats/Metrics.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/velocity/2.3.0/aba4fb09c29c8a071cac36acba545ed37bb80268/velocity-2.3.0-default.jar!/io/github/retrooper/packetevents/bstats/Metrics.class" root0="SKIP_INSPECTION" />
|
||||||
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/velocity/2.3.0/aba4fb09c29c8a071cac36acba545ed37bb80268/velocity-2.3.0-default.jar!/io/github/retrooper/packetevents/velocity/factory/VelocityPacketEventsBuilder.class" root0="SKIP_INSPECTION" />
|
<setting file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.retrooper.packetevents/velocity/2.3.0/aba4fb09c29c8a071cac36acba545ed37bb80268/velocity-2.3.0-default.jar!/io/github/retrooper/packetevents/velocity/factory/VelocityPacketEventsBuilder.class" root0="SKIP_INSPECTION" />
|
||||||
|
@ -380,6 +392,11 @@
|
||||||
<workItem from="1716926795264" duration="1000" />
|
<workItem from="1716926795264" duration="1000" />
|
||||||
<workItem from="1718023888535" duration="2457000" />
|
<workItem from="1718023888535" duration="2457000" />
|
||||||
<workItem from="1719160307151" duration="7080000" />
|
<workItem from="1719160307151" duration="7080000" />
|
||||||
|
<workItem from="1719172087999" duration="1867000" />
|
||||||
|
<workItem from="1719236981913" duration="33000" />
|
||||||
|
<workItem from="1719246637584" duration="6142000" />
|
||||||
|
<workItem from="1719306268310" duration="4050000" />
|
||||||
|
<workItem from="1719569161589" duration="807000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
|
|
|
@ -58,9 +58,4 @@ public interface EntityLibAPI<T> {
|
||||||
@NotNull
|
@NotNull
|
||||||
EntityContainer getDefaultContainer();
|
EntityContainer getDefaultContainer();
|
||||||
|
|
||||||
void addContainer(EntityContainer container);
|
|
||||||
|
|
||||||
void removeContainer(EntityContainer container);
|
|
||||||
|
|
||||||
@NotNull Collection<EntityContainer> getEntityContainers();
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package me.tofaa.entitylib.packetconversion;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnExperienceOrb;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity;
|
||||||
|
|
||||||
|
final class CommonSpawningMethods {
|
||||||
|
|
||||||
|
static final class ExperienceOrb implements EntitySpawningMethod {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
short experience = entity instanceof WrapperExperienceOrbEntity ? ((WrapperExperienceOrbEntity) entity).getExperience() : 0;
|
||||||
|
return new WrapperPlayServerSpawnExperienceOrb(
|
||||||
|
entity.getEntityId(),
|
||||||
|
entity.getLocation().getX(),
|
||||||
|
entity.getLocation().getY(),
|
||||||
|
entity.getLocation().getZ(),
|
||||||
|
experience
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package me.tofaa.entitylib.packetconversion;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
|
|
||||||
|
public interface EntitySpawningMethod {
|
||||||
|
|
||||||
|
EntitySpawningMethod EXPERIENCE_ORB = new CommonSpawningMethods.ExperienceOrb();
|
||||||
|
|
||||||
|
|
||||||
|
PacketWrapper<?> getSpawnPacket(WrapperEntity entity);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
package me.tofaa.entitylib.packetconversion;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
|
||||||
|
public final class EntitySpawningPacketConversion {
|
||||||
|
|
||||||
|
private static Map<EntityType, EntitySpawningMethod> methods = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
EntityType type = entity.getEntityType();
|
||||||
|
EntitySpawningMethod method = methods.get(type);
|
||||||
|
return method.getSpawnPacket(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
private EntitySpawningPacketConversion() {}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package me.tofaa.entitylib.packetconversion;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnLivingEntity;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnPainting;
|
||||||
|
import me.tofaa.entitylib.meta.other.PaintingMeta;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperLivingEntity;
|
||||||
|
|
||||||
|
final class LegacySpawningMethods {
|
||||||
|
|
||||||
|
private LegacySpawningMethods() {}
|
||||||
|
|
||||||
|
static class Generic implements EntitySpawningMethod {
|
||||||
|
@Override
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class LivingEntity implements EntitySpawningMethod {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
if (!(entity instanceof WrapperLivingEntity)) {
|
||||||
|
throw new IllegalArgumentException("Entity is not an instance of WrapperLivingEntity");
|
||||||
|
}
|
||||||
|
return new WrapperPlayServerSpawnLivingEntity(
|
||||||
|
entity.getEntityId(),
|
||||||
|
entity.getUuid(),
|
||||||
|
entity.getEntityType(),
|
||||||
|
entity.getLocation().getPosition(),
|
||||||
|
entity.getLocation().getYaw(),
|
||||||
|
entity.getLocation().getPitch(),
|
||||||
|
entity.getLocation().getPitch(),
|
||||||
|
entity.createVeloPacket().get(),
|
||||||
|
entity.getEntityMeta().entityData()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static class Painting implements EntitySpawningMethod {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
if (entity.getEntityMeta() instanceof PaintingMeta) {
|
||||||
|
PaintingMeta paintingMeta = (PaintingMeta) entity.getEntityMeta();
|
||||||
|
return new WrapperPlayServerSpawnPainting(
|
||||||
|
entity.getEntityId(),
|
||||||
|
entity.getUuid(),
|
||||||
|
entity.getLocation().getPosition().toVector3i(),
|
||||||
|
paintingMeta.getDirection()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("EntityMeta is not an instance of PaintingMeta");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package me.tofaa.entitylib.packetconversion;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.PacketWrapper;
|
||||||
|
import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerSpawnEntity;
|
||||||
|
import me.tofaa.entitylib.meta.types.ObjectData;
|
||||||
|
import me.tofaa.entitylib.utils.VersionUtil;
|
||||||
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
final class ModernSpawningMethods {
|
||||||
|
|
||||||
|
private ModernSpawningMethods() {}
|
||||||
|
|
||||||
|
static class Generic implements EntitySpawningMethod {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PacketWrapper<?> getSpawnPacket(WrapperEntity entity) {
|
||||||
|
if (VersionUtil.isOlderThan(ServerVersion.V_1_19_3)) throw new UnsupportedOperationException("This method is not supported in this version.");
|
||||||
|
return new WrapperPlayServerSpawnEntity(
|
||||||
|
entity.getEntityId(),
|
||||||
|
Optional.of(entity.getUuid()),
|
||||||
|
entity.getEntityType(),
|
||||||
|
entity.getLocation().getPosition(),
|
||||||
|
entity.getLocation().getPitch(),
|
||||||
|
entity.getLocation().getYaw(),
|
||||||
|
entity.getLocation().getYaw(),
|
||||||
|
entity.getEntityMeta() instanceof ObjectData ? (((ObjectData) entity.getEntityMeta()).getObjectData()) : 0,
|
||||||
|
entity.createVeloPacket()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
32
api/src/main/java/me/tofaa/entitylib/utils/VersionUtil.java
Normal file
32
api/src/main/java/me/tofaa/entitylib/utils/VersionUtil.java
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package me.tofaa.entitylib.utils;
|
||||||
|
|
||||||
|
import com.github.retrooper.packetevents.manager.server.ServerVersion;
|
||||||
|
import com.github.retrooper.packetevents.manager.server.VersionComparison;
|
||||||
|
import me.tofaa.entitylib.EntityLib;
|
||||||
|
|
||||||
|
public final class VersionUtil {
|
||||||
|
|
||||||
|
private VersionUtil () {}
|
||||||
|
|
||||||
|
|
||||||
|
public static boolean isNewerThanOrEqual(ServerVersion version) {
|
||||||
|
return EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isNewerThanOrEquals(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isNewerThan(ServerVersion version) {
|
||||||
|
return EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isNewerThan(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isOlderThanOrEqual(ServerVersion version) {
|
||||||
|
return EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThanOrEquals(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isOlderThan(ServerVersion version) {
|
||||||
|
return EntityLib.getApi().getPacketEvents().getServerManager().getVersion().isOlderThan(version);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean is(ServerVersion version) {
|
||||||
|
return EntityLib.getApi().getPacketEvents().getServerManager().getVersion().is(VersionComparison.EQUALS, version);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -96,7 +96,7 @@ public class WrapperEntity implements Tickable, TrackedEntity {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected Optional<Vector3d> createVeloPacket() {
|
public Optional<Vector3d> createVeloPacket() {
|
||||||
Optional<Vector3d> velocity;
|
Optional<Vector3d> velocity;
|
||||||
double veloX = 0, veloY = 0, veloZ = 0;
|
double veloX = 0, veloY = 0, veloZ = 0;
|
||||||
if (entityMeta instanceof ObjectData) {
|
if (entityMeta instanceof ObjectData) {
|
||||||
|
|
|
@ -1,28 +1,17 @@
|
||||||
package me.tofaa.entitylib.common;
|
package me.tofaa.entitylib.common;
|
||||||
|
|
||||||
import com.github.retrooper.packetevents.PacketEventsAPI;
|
import com.github.retrooper.packetevents.PacketEventsAPI;
|
||||||
import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.type.EntityTypes;
|
|
||||||
import com.github.retrooper.packetevents.protocol.player.UserProfile;
|
|
||||||
import com.github.retrooper.packetevents.protocol.world.Location;
|
|
||||||
import me.tofaa.entitylib.APIConfig;
|
import me.tofaa.entitylib.APIConfig;
|
||||||
import me.tofaa.entitylib.EntityLib;
|
|
||||||
import me.tofaa.entitylib.EntityLibAPI;
|
import me.tofaa.entitylib.EntityLibAPI;
|
||||||
import me.tofaa.entitylib.Platform;
|
import me.tofaa.entitylib.Platform;
|
||||||
import me.tofaa.entitylib.container.EntityContainer;
|
import me.tofaa.entitylib.container.EntityContainer;
|
||||||
import me.tofaa.entitylib.meta.EntityMeta;
|
|
||||||
import me.tofaa.entitylib.meta.projectile.ThrownExpBottleMeta;
|
|
||||||
import me.tofaa.entitylib.meta.types.LivingEntityMeta;
|
|
||||||
import me.tofaa.entitylib.tick.TickContainer;
|
import me.tofaa.entitylib.tick.TickContainer;
|
||||||
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
import me.tofaa.entitylib.wrapper.WrapperEntity;
|
||||||
import me.tofaa.entitylib.wrapper.WrapperExperienceOrbEntity;
|
|
||||||
import me.tofaa.entitylib.wrapper.WrapperLivingEntity;
|
|
||||||
import me.tofaa.entitylib.wrapper.WrapperPlayer;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
|
|
||||||
public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
||||||
|
|
||||||
|
@ -30,11 +19,6 @@ public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
||||||
protected final PacketEventsAPI<?> packetEvents;
|
protected final PacketEventsAPI<?> packetEvents;
|
||||||
protected final APIConfig settings;
|
protected final APIConfig settings;
|
||||||
protected final Collection<TickContainer<?, T>> tickContainers;
|
protected final Collection<TickContainer<?, T>> tickContainers;
|
||||||
protected final Map<Integer, WrapperEntity> globalEntityMap = new ConcurrentHashMap<>();
|
|
||||||
protected final Map<Integer, WrapperEntity> entitiesById = new ConcurrentHashMap<>();
|
|
||||||
protected final Map<UUID, WrapperEntity> entities = new ConcurrentHashMap<>();
|
|
||||||
|
|
||||||
protected final Set<EntityContainer> entityContainers = ConcurrentHashMap.newKeySet();
|
|
||||||
protected final EntityContainer defaultEntityContainer = EntityContainer.basic();
|
protected final EntityContainer defaultEntityContainer = EntityContainer.basic();
|
||||||
|
|
||||||
protected AbstractEntityLibAPI(Platform<P> platform, APIConfig settings) {
|
protected AbstractEntityLibAPI(Platform<P> platform, APIConfig settings) {
|
||||||
|
@ -46,27 +30,18 @@ public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable WrapperEntity getEntity(int id) {
|
public @Nullable WrapperEntity getEntity(int id) {
|
||||||
return entitiesById.get(id);
|
return defaultEntityContainer.getEntity(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @Nullable WrapperEntity getEntity(@NotNull UUID uuid) {
|
public @Nullable WrapperEntity getEntity(@NotNull UUID uuid) {
|
||||||
return entities.get(uuid);
|
return defaultEntityContainer.getEntity(uuid);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NotNull Collection<WrapperEntity> getAllEntities() {
|
public @NotNull Collection<WrapperEntity> getAllEntities() {
|
||||||
return Collections.unmodifiableCollection(entities.values());
|
return defaultEntityContainer.getEntities();
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void addContainer(EntityContainer container) {
|
|
||||||
entityContainers.add(container);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void removeContainer(EntityContainer container) {
|
|
||||||
entityContainers.remove(container);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -74,12 +49,6 @@ public abstract class AbstractEntityLibAPI<P, T> implements EntityLibAPI<T> {
|
||||||
return defaultEntityContainer;
|
return defaultEntityContainer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
@Override
|
|
||||||
public Set<EntityContainer> getEntityContainers() {
|
|
||||||
return entityContainers;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public APIConfig getSettings() {
|
public APIConfig getSettings() {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package me.tofaa.entitylib.spigot;
|
package me.tofaa.entitylib.spigot;
|
||||||
|
|
||||||
import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
|
import com.github.retrooper.packetevents.protocol.entity.type.EntityType;
|
||||||
import com.github.retrooper.packetevents.protocol.world.Location;
|
|
||||||
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
import io.github.retrooper.packetevents.util.SpigotConversionUtil;
|
||||||
import me.tofaa.entitylib.APIConfig;
|
import me.tofaa.entitylib.APIConfig;
|
||||||
import me.tofaa.entitylib.EntityLib;
|
import me.tofaa.entitylib.EntityLib;
|
||||||
|
@ -16,7 +15,6 @@ import me.tofaa.entitylib.wrapper.WrapperLivingEntity;
|
||||||
import me.tofaa.entitylib.wrapper.WrapperPlayer;
|
import me.tofaa.entitylib.wrapper.WrapperPlayer;
|
||||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.World;
|
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
|
@ -23,7 +23,7 @@ import java.util.stream.Stream;
|
||||||
public class SpigotEntityLibPlatform extends AbstractPlatform<JavaPlugin> {
|
public class SpigotEntityLibPlatform extends AbstractPlatform<JavaPlugin> {
|
||||||
|
|
||||||
private SpigotEntityLibAPI api;
|
private SpigotEntityLibAPI api;
|
||||||
private Map<Integer, Entity> platformEntities = new ConcurrentWeakIdentityHashMap<>();
|
private final Map<Integer, Entity> platformEntities = new ConcurrentWeakIdentityHashMap<>();
|
||||||
|
|
||||||
public SpigotEntityLibPlatform(@NotNull JavaPlugin plugin) {
|
public SpigotEntityLibPlatform(@NotNull JavaPlugin plugin) {
|
||||||
super(plugin);
|
super(plugin);
|
||||||
|
|
Loading…
Reference in a new issue