24
24
import java .awt .*;
25
25
import java .util .*;
26
26
import java .util .concurrent .ConcurrentHashMap ;
27
+ import java .util .concurrent .ScheduledFuture ;
27
28
import java .util .concurrent .TimeUnit ;
28
29
29
30
import static re .imc .geysermodelengine .model .ModelEntity .ENTITIES ;
@@ -45,10 +46,7 @@ public class EntityTask {
45
46
Cache <String , Boolean > lastPlayedAnim = CacheBuilder .newBuilder ()
46
47
.expireAfterWrite (30 , TimeUnit .MILLISECONDS ).build ();
47
48
48
- private BukkitRunnable syncTask ;
49
- private BukkitRunnable asyncTask ;
50
-
51
-
49
+ private ScheduledFuture scheduledFuture ;
52
50
53
51
public EntityTask (ModelEntity model ) {
54
52
this .model = model ;
@@ -69,7 +67,7 @@ public void run() {
69
67
removed = true ;
70
68
entity .remove ();
71
69
}
72
- }.runTaskLater (GeyserModelEngine .getInstance (), 1 );
70
+ }.runTaskLaterAsynchronously (GeyserModelEngine .getInstance (), 1 );
73
71
74
72
75
73
ENTITIES .remove (modeledEntity .getBase ().getEntityId ());
@@ -333,9 +331,6 @@ private boolean canSee(Player player, PacketEntity entity) {
333
331
if (!player .isOnline ()) {
334
332
return false ;
335
333
}
336
- if (player .isDead ()) {
337
- return false ;
338
- }
339
334
if (GeyserModelEngine .getInstance ().getJoinedPlayer () != null && GeyserModelEngine .getInstance ().getJoinedPlayer ().getIfPresent (player ) != null ) {
340
335
return false ;
341
336
}
@@ -360,18 +355,19 @@ private boolean canSee(Player player, PacketEntity entity) {
360
355
361
356
public void cancel () {
362
357
// syncTask.cancel();
363
- asyncTask .cancel ();
358
+ scheduledFuture .cancel (true );
364
359
}
365
360
366
361
public void run (GeyserModelEngine instance ) {
362
+
367
363
sendHitBoxToAll ();
368
364
369
- asyncTask = new BukkitRunnable () {
370
- @ Override
371
- public void run () {
372
- runAsync ();
373
- }
365
+ Runnable asyncTask = () -> {
366
+ checkViewers (model .getViewers ());
367
+ runAsync ();
374
368
};
375
- asyncTask .runTaskTimerAsynchronously (instance , 0 , 0 );
369
+ scheduledFuture = GeyserModelEngine .getInstance ().getScheduler ().scheduleAtFixedRate (asyncTask , 0 , 20 , TimeUnit .MILLISECONDS );
370
+
371
+ //asyncTask.runTaskTimerAsynchronously(instance, 0, 0);
376
372
}
377
373
}
0 commit comments