This commit is contained in:
zimzaza4
2024-11-06 22:40:01 +08:00
parent 9a6aa2d369
commit eea387939f
3 changed files with 13 additions and 17 deletions

View File

@@ -69,13 +69,14 @@ public final class GeyserModelEngine extends JavaPlugin {
private List<String> enablePartVisibilityModels = new ArrayList<>();
@Getter
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(4);
private ScheduledExecutorService scheduler;
@Override
public void onEnable() {
// Plugin startup logic
saveDefaultConfig();
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
sendDelay = getConfig().getInt("data-send-delay", 0);
scheduler = Executors.newScheduledThreadPool(getConfig().getInt("thread-pool-size", 6));
viewDistance = getConfig().getInt("entity-view-distance", 60);
debug = getConfig().getBoolean("debug", false);
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));

View File

@@ -24,6 +24,7 @@ import re.imc.geysermodelengine.util.BooleanPacker;
import java.awt.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import static re.imc.geysermodelengine.model.ModelEntity.ENTITIES;
@@ -45,10 +46,7 @@ public class EntityTask {
Cache<String, Boolean> lastPlayedAnim = CacheBuilder.newBuilder()
.expireAfterWrite(30, TimeUnit.MILLISECONDS).build();
private BukkitRunnable syncTask;
private BukkitRunnable asyncTask;
private ScheduledFuture scheduledFuture;
public EntityTask(ModelEntity model) {
this.model = model;
@@ -69,7 +67,7 @@ public class EntityTask {
removed = true;
entity.remove();
}
}.runTaskLater(GeyserModelEngine.getInstance(), 1);
}.runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), 1);
ENTITIES.remove(modeledEntity.getBase().getEntityId());
@@ -333,9 +331,6 @@ public class EntityTask {
if (!player.isOnline()) {
return false;
}
if (player.isDead()) {
return false;
}
if (GeyserModelEngine.getInstance().getJoinedPlayer() != null && GeyserModelEngine.getInstance().getJoinedPlayer().getIfPresent(player) != null) {
return false;
}
@@ -360,18 +355,19 @@ public class EntityTask {
public void cancel() {
// syncTask.cancel();
asyncTask.cancel();
scheduledFuture.cancel(true);
}
public void run(GeyserModelEngine instance) {
sendHitBoxToAll();
asyncTask = new BukkitRunnable() {
@Override
public void run() {
runAsync();
}
Runnable asyncTask = () -> {
checkViewers(model.getViewers());
runAsync();
};
asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
scheduledFuture = GeyserModelEngine.getInstance().getScheduler().scheduleAtFixedRate(asyncTask, 0, 20, TimeUnit.MILLISECONDS);
//asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
}
}

View File

@@ -68,7 +68,6 @@ public class ModelEntity {
public void runEntityTask() {
task = new EntityTask(this);
task.checkViewers(viewers);
task.run(GeyserModelEngine.getInstance());
}