Files
GeyserModelEngine-plugin/src/main/java/re/imc/geysermodelengine/runnables/UpdateTaskRunnable.java
2025-11-09 22:44:10 +00:00

37 lines
1.2 KiB
Java

package re.imc.geysermodelengine.runnables;
import io.papermc.paper.threadedregions.scheduler.ScheduledTask;
import re.imc.geysermodelengine.GeyserModelEngine;
import re.imc.geysermodelengine.managers.model.entity.EntityData;
import re.imc.geysermodelengine.managers.model.model.Model;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Consumer;
public class UpdateTaskRunnable implements Runnable {
private final GeyserModelEngine plugin;
public UpdateTaskRunnable(GeyserModelEngine plugin) {
this.plugin = plugin;
}
@Override
public void run() {
ConcurrentHashMap<Integer, Map<Model, EntityData>> entitiesCache = plugin.getModelManager().getEntitiesCache();
if (entitiesCache.isEmpty()) return;
try {
for (Map<Model, EntityData> models : entitiesCache.values()) {
models.values().forEach(entityData -> {
if (entityData.getViewers().isEmpty()) return;
plugin.getEntityTaskManager().getPropertyHandler().updateEntityProperties(entityData, entityData.getViewers(), false);
});
}
} catch (Throwable err) {
throw new RuntimeException(err);
}
}
}