From b0440f6b4014736326e1e20b2683aad4ed7cc4bf Mon Sep 17 00:00:00 2001 From: Esmorall Date: Thu, 5 Sep 2019 18:37:27 -0300 Subject: [PATCH] cache tracker field --- .../entitytrackerfixer/UntrackerTask.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/EntityTrackerFixer/src/net/minemora/entitytrackerfixer/UntrackerTask.java b/EntityTrackerFixer/src/net/minemora/entitytrackerfixer/UntrackerTask.java index 46997b4..e7bde4f 100644 --- a/EntityTrackerFixer/src/net/minemora/entitytrackerfixer/UntrackerTask.java +++ b/EntityTrackerFixer/src/net/minemora/entitytrackerfixer/UntrackerTask.java @@ -21,6 +21,16 @@ import net.minemora.entitytrackerfixer.util.Util; public class UntrackerTask extends BukkitRunnable { private static boolean running = false; + + private static Field trackerField; + + static { + try { + trackerField = ReflectionUtils.getClassPrivateField(EntityTracker.class, "tracker"); + } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { + e.printStackTrace(); + } + } @SuppressWarnings("deprecation") @Override @@ -48,9 +58,8 @@ public class UntrackerTask extends BukkitRunnable { ChunkProviderServer cps = ws.getChunkProvider(); try { - Field field = ReflectionUtils.getClassPrivateField(EntityTracker.class, "tracker"); for(EntityTracker et : cps.playerChunkMap.trackedEntities.values()) { - net.minecraft.server.v1_14_R1.Entity nmsEnt = (net.minecraft.server.v1_14_R1.Entity) field.get(et); + net.minecraft.server.v1_14_R1.Entity nmsEnt = (net.minecraft.server.v1_14_R1.Entity) trackerField.get(et); if(nmsEnt instanceof EntityPlayer) { continue; } @@ -82,7 +91,7 @@ public class UntrackerTask extends BukkitRunnable { UntrackedEntitiesCache.getInstance().add(nmsEnt); } } - } catch (NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException e) { + } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); }