Add MiniMessage support for legacy color conversion in NPC Text script and implement entity tracking in ScriptApi
All checks were successful
Build JStom / build (push) Successful in 1m23s

This commit is contained in:
2026-01-27 02:06:06 +00:00
parent c3b043c59e
commit f9227e2128
2 changed files with 44 additions and 3 deletions

View File

@@ -4,6 +4,7 @@ import net.minestom.server.MinecraftServer;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.entity.EntityType;
import net.minestom.server.entity.Entity;
import org.graalvm.polyglot.Value;
import java.util.ArrayList;
@@ -15,6 +16,7 @@ import java.lang.reflect.Modifier;
public class ScriptApi {
private final List<EventNode<Event>> registeredNodes = new ArrayList<>();
private final List<Entity> trackedEntities = new ArrayList<>();
private static final Map<String, EntityType> entityTypes = new HashMap<>();
static {
@@ -71,12 +73,28 @@ public class ScriptApi {
}
}
public void track(Entity entity) {
if (entity != null) {
synchronized (trackedEntities) {
trackedEntities.add(entity);
}
}
}
public void cleanup() {
System.out.println("[JStom] Cleaning up " + registeredNodes.size() + " event nodes...");
for (var node : registeredNodes) {
MinecraftServer.getGlobalEventHandler().removeChild(node);
}
registeredNodes.clear();
System.out.println("[JStom] Removing " + trackedEntities.size() + " tracked entities...");
synchronized (trackedEntities) {
for (Entity entity : trackedEntities) {
entity.remove();
}
trackedEntities.clear();
}
}
public void log(String message) {