Skip to content

Commit eea3879

Browse files
committed
optimize
1 parent 9a6aa2d commit eea3879

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

src/main/java/re/imc/geysermodelengine/GeyserModelEngine.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,14 @@ public final class GeyserModelEngine extends JavaPlugin {
6969
private List<String> enablePartVisibilityModels = new ArrayList<>();
7070

7171
@Getter
72-
private ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(4);
72+
private ScheduledExecutorService scheduler;
7373
@Override
7474
public void onEnable() {
7575
// Plugin startup logic
7676
saveDefaultConfig();
7777
// alwaysSendSkin = getConfig().getBoolean("always-send-skin");
7878
sendDelay = getConfig().getInt("data-send-delay", 0);
79+
scheduler = Executors.newScheduledThreadPool(getConfig().getInt("thread-pool-size", 6));
7980
viewDistance = getConfig().getInt("entity-view-distance", 60);
8081
debug = getConfig().getBoolean("debug", false);
8182
modelEntityType = EntityType.valueOf(getConfig().getString("model-entity-type", "BAT"));

src/main/java/re/imc/geysermodelengine/model/EntityTask.java

+11-15
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import java.awt.*;
2525
import java.util.*;
2626
import java.util.concurrent.ConcurrentHashMap;
27+
import java.util.concurrent.ScheduledFuture;
2728
import java.util.concurrent.TimeUnit;
2829

2930
import static re.imc.geysermodelengine.model.ModelEntity.ENTITIES;
@@ -45,10 +46,7 @@ public class EntityTask {
4546
Cache<String, Boolean> lastPlayedAnim = CacheBuilder.newBuilder()
4647
.expireAfterWrite(30, TimeUnit.MILLISECONDS).build();
4748

48-
private BukkitRunnable syncTask;
49-
private BukkitRunnable asyncTask;
50-
51-
49+
private ScheduledFuture scheduledFuture;
5250

5351
public EntityTask(ModelEntity model) {
5452
this.model = model;
@@ -69,7 +67,7 @@ public void run() {
6967
removed = true;
7068
entity.remove();
7169
}
72-
}.runTaskLater(GeyserModelEngine.getInstance(), 1);
70+
}.runTaskLaterAsynchronously(GeyserModelEngine.getInstance(), 1);
7371

7472

7573
ENTITIES.remove(modeledEntity.getBase().getEntityId());
@@ -333,9 +331,6 @@ private boolean canSee(Player player, PacketEntity entity) {
333331
if (!player.isOnline()) {
334332
return false;
335333
}
336-
if (player.isDead()) {
337-
return false;
338-
}
339334
if (GeyserModelEngine.getInstance().getJoinedPlayer() != null && GeyserModelEngine.getInstance().getJoinedPlayer().getIfPresent(player) != null) {
340335
return false;
341336
}
@@ -360,18 +355,19 @@ private boolean canSee(Player player, PacketEntity entity) {
360355

361356
public void cancel() {
362357
// syncTask.cancel();
363-
asyncTask.cancel();
358+
scheduledFuture.cancel(true);
364359
}
365360

366361
public void run(GeyserModelEngine instance) {
362+
367363
sendHitBoxToAll();
368364

369-
asyncTask = new BukkitRunnable() {
370-
@Override
371-
public void run() {
372-
runAsync();
373-
}
365+
Runnable asyncTask = () -> {
366+
checkViewers(model.getViewers());
367+
runAsync();
374368
};
375-
asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
369+
scheduledFuture = GeyserModelEngine.getInstance().getScheduler().scheduleAtFixedRate(asyncTask, 0, 20, TimeUnit.MILLISECONDS);
370+
371+
//asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
376372
}
377373
}

src/main/java/re/imc/geysermodelengine/model/ModelEntity.java

-1
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ public PacketEntity spawnEntity() {
6868

6969
public void runEntityTask() {
7070
task = new EntityTask(this);
71-
task.checkViewers(viewers);
7271
task.run(GeyserModelEngine.getInstance());
7372
}
7473

0 commit comments

Comments
 (0)