Advertisement
Guest User

V10Tracker

a guest
Apr 25th, 2012
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.88 KB | None | 0 0
  1. package de.V10lator.V10Name;
  2.  
  3. import java.lang.reflect.Field;
  4. import java.util.Set;
  5.  
  6. import org.bukkit.Bukkit;
  7.  
  8. import net.minecraft.server.Entity;
  9. import net.minecraft.server.EntityTracker;
  10. import net.minecraft.server.MinecraftServer;
  11. import net.minecraft.server.World;
  12.  
  13. public class V10Tracker extends EntityTracker
  14. {
  15.   private final Field worldField;
  16.   private final Field dField;
  17.   private final Field aField;
  18.   private final V10Name plugin;
  19.  
  20.   public V10Tracker(MinecraftServer minecraftserver, World i, V10Name plugin)
  21.   {
  22.     super(minecraftserver, i);
  23.     Field worldField;
  24.     Field dField;
  25.     Field aField;
  26.     try
  27.     {
  28.       worldField = EntityTracker.class.getDeclaredField("world");
  29.       dField = EntityTracker.class.getDeclaredField("d");
  30.       aField = EntityTracker.class.getDeclaredField("a");
  31.       worldField.setAccessible(true);
  32.       dField.setAccessible(true);
  33.       aField.setAccessible(true);
  34.     }
  35.     catch(Exception e)
  36.     {
  37.       worldField = null;
  38.       dField = null;
  39.       aField = null;
  40.       e.printStackTrace();
  41.     }
  42.     this.worldField = worldField;
  43.     this.dField = dField;
  44.     this.aField = aField;
  45.     this.plugin = plugin;
  46.   }
  47.  
  48.   public synchronized void addEntity(Entity entity, int i, int j, boolean flag)
  49.   {
  50.     int d = 512;
  51.     try
  52.     {
  53.       d = dField.getInt(this);
  54.     }
  55.     catch(Exception e)
  56.     {
  57.       e.printStackTrace();
  58.     }
  59.     if(i > d)
  60.       i = d;
  61.  
  62.     if(!this.trackedEntities.b(entity.id))
  63.     {
  64.       V10TrackerEntry entitytrackerentry = new V10TrackerEntry(entity, i, j, flag, plugin);
  65.  
  66.       Set a = null;
  67.       World world = null;
  68.       try
  69.       {
  70.         a = (Set)aField.get(this);
  71.         world = (World)worldField.get(this);
  72.       }
  73.       catch(Exception e)
  74.       {
  75.         e.printStackTrace();
  76.       }
  77.       a.add(entitytrackerentry);
  78.       this.trackedEntities.a(entity.id, entitytrackerentry);
  79.       entitytrackerentry.scanPlayers(world.players); // CraftBukkit
  80.     }
  81.   }
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement