From 26ed0abb58f8696d929a2a53291d2124f79bdb65 Mon Sep 17 00:00:00 2001 From: Chubbyduck1 Date: Fri, 22 May 2026 20:07:22 -0400 Subject: [PATCH] feat: add configurable EntityContainer provided in the APIConfig, falls back to `EntityContainer#basic()` if unspecified --- api/src/main/java/me/tofaa/entitylib/APIConfig.java | 13 +++++++++++++ .../entitylib/common/AbstractEntityLibAPI.java | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/me/tofaa/entitylib/APIConfig.java b/api/src/main/java/me/tofaa/entitylib/APIConfig.java index 3cba7e7..fe8bb25 100644 --- a/api/src/main/java/me/tofaa/entitylib/APIConfig.java +++ b/api/src/main/java/me/tofaa/entitylib/APIConfig.java @@ -2,7 +2,9 @@ import com.github.retrooper.packetevents.PacketEventsAPI; import com.github.retrooper.packetevents.manager.server.ServerVersion; +import me.tofaa.entitylib.container.EntityContainer; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; public final class APIConfig { @@ -13,6 +15,7 @@ public final class APIConfig { private boolean platformLogger = false; private boolean bstats = true; private boolean forceBundle = false; + private EntityContainer entityContainer; public APIConfig(PacketEventsAPI packetEvents) { this.packetEvents = packetEvents; @@ -53,6 +56,11 @@ public APIConfig(PacketEventsAPI packetEvents) { return this; } + public @NotNull APIConfig entityContainer(EntityContainer container) { + this.entityContainer = container; + return this; + } + public boolean isDebugMode() { return debugMode; } @@ -83,4 +91,9 @@ public boolean shouldForceBundles() { && EntityLib.getOptionalApi().get().getPacketEvents().getServerManager().getVersion().isNewerThanOrEquals(ServerVersion.V_1_19_4); } + @Nullable + public EntityContainer getEntityContainer() { + return this.entityContainer; + } + } diff --git a/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java b/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java index dd2922b..74efde8 100644 --- a/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java +++ b/common/src/main/java/me/tofaa/entitylib/common/AbstractEntityLibAPI.java @@ -21,13 +21,16 @@ public abstract class AbstractEntityLibAPI implements EntityLibAPI { protected final PacketEventsAPI packetEvents; protected final APIConfig settings; protected final Collection> tickContainers; - protected final EntityContainer defaultEntityContainer = EntityContainer.basic(); + protected final EntityContainer defaultEntityContainer; protected AbstractEntityLibAPI(Platform

platform, APIConfig settings) { this.platform = platform; this.packetEvents = settings.getPacketEvents(); this.settings = settings; this.tickContainers = settings.shouldTickTickables() ? new HashSet<>() : Collections.emptyList(); + + EntityContainer container = settings.getEntityContainer(); + this.defaultEntityContainer = container == null ? EntityContainer.basic() : container; } @Override