mirror of
https://github.com/GeyserExtensionists/GeyserModelEngine.git
synced 2025-12-20 07:29:26 +00:00
optimize
This commit is contained in:
@@ -69,13 +69,14 @@ public final class GeyserModelEngine extends JavaPlugin {
|
|||||||
private List<String> enablePartVisibilityModels = new ArrayList<>();
|
private List<String> enablePartVisibilityModels = new ArrayList<>();
|
||||||
|
|
||||||
@Getter
|
@Getter
|
||||||
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(4);
|
private ScheduledExecutorService scheduler;
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
// Plugin startup logic
|
// Plugin startup logic
|
||||||
saveDefaultConfig();
|
saveDefaultConfig();
|
||||||
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
|
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
|
||||||
sendDelay = getConfig().getInt("data-send-delay", 0);
|
sendDelay = getConfig().getInt("data-send-delay", 0);
|
||||||
|
scheduler = Executors.newScheduledThreadPool(getConfig().getInt("thread-pool-size", 6));
|
||||||
viewDistance = getConfig().getInt("entity-view-distance", 60);
|
viewDistance = getConfig().getInt("entity-view-distance", 60);
|
||||||
debug = getConfig().getBoolean("debug", false);
|
debug = getConfig().getBoolean("debug", false);
|
||||||
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));
|
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import re.imc.geysermodelengine.util.BooleanPacker;
|
|||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
|
import java.util.concurrent.ScheduledFuture;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
import static re.imc.geysermodelengine.model.ModelEntity.ENTITIES;
|
import static re.imc.geysermodelengine.model.ModelEntity.ENTITIES;
|
||||||
@@ -45,10 +46,7 @@ public class EntityTask {
|
|||||||
Cache<String, Boolean> lastPlayedAnim = CacheBuilder.newBuilder()
|
Cache<String, Boolean> lastPlayedAnim = CacheBuilder.newBuilder()
|
||||||
.expireAfterWrite(30, TimeUnit.MILLISECONDS).build();
|
.expireAfterWrite(30, TimeUnit.MILLISECONDS).build();
|
||||||
|
|
||||||
private BukkitRunnable syncTask;
|
private ScheduledFuture scheduledFuture;
|
||||||
private BukkitRunnable asyncTask;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public EntityTask(ModelEntity model) {
|
public EntityTask(ModelEntity model) {
|
||||||
this.model = model;
|
this.model = model;
|
||||||
@@ -69,7 +67,7 @@ public class EntityTask {
|
|||||||
removed = true;
|
removed = true;
|
||||||
entity.remove();
|
entity.remove();
|
||||||
}
|
}
|
||||||
}.runTaskLater(GeyserModelEngine.getInstance(), 1);
|
}.runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), 1);
|
||||||
|
|
||||||
|
|
||||||
ENTITIES.remove(modeledEntity.getBase().getEntityId());
|
ENTITIES.remove(modeledEntity.getBase().getEntityId());
|
||||||
@@ -333,9 +331,6 @@ public class EntityTask {
|
|||||||
if (!player.isOnline()) {
|
if (!player.isOnline()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (player.isDead()) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if (GeyserModelEngine.getInstance().getJoinedPlayer() != null && GeyserModelEngine.getInstance().getJoinedPlayer().getIfPresent(player) != null) {
|
if (GeyserModelEngine.getInstance().getJoinedPlayer() != null && GeyserModelEngine.getInstance().getJoinedPlayer().getIfPresent(player) != null) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -360,18 +355,19 @@ public class EntityTask {
|
|||||||
|
|
||||||
public void cancel() {
|
public void cancel() {
|
||||||
// syncTask.cancel();
|
// syncTask.cancel();
|
||||||
asyncTask.cancel();
|
scheduledFuture.cancel(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void run(GeyserModelEngine instance) {
|
public void run(GeyserModelEngine instance) {
|
||||||
|
|
||||||
sendHitBoxToAll();
|
sendHitBoxToAll();
|
||||||
|
|
||||||
asyncTask = new BukkitRunnable() {
|
Runnable asyncTask = () -> {
|
||||||
@Override
|
checkViewers(model.getViewers());
|
||||||
public void run() {
|
runAsync();
|
||||||
runAsync();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
|
scheduledFuture = GeyserModelEngine.getInstance().getScheduler().scheduleAtFixedRate(asyncTask, 0, 20, TimeUnit.MILLISECONDS);
|
||||||
|
|
||||||
|
//asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,6 @@ public class ModelEntity {
|
|||||||
|
|
||||||
public void runEntityTask() {
|
public void runEntityTask() {
|
||||||
task = new EntityTask(this);
|
task = new EntityTask(this);
|
||||||
task.checkViewers(viewers);
|
|
||||||
task.run(GeyserModelEngine.getInstance());
|
task.run(GeyserModelEngine.getInstance());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user