Tiny performance boost
This commit is contained in:
		| @@ -29,6 +29,7 @@ import org.bukkit.event.player.PlayerChangedWorldEvent; | |||||||
| import org.bukkit.event.player.PlayerInteractEntityEvent; | import org.bukkit.event.player.PlayerInteractEntityEvent; | ||||||
| import org.bukkit.event.player.PlayerJoinEvent; | import org.bukkit.event.player.PlayerJoinEvent; | ||||||
| import org.bukkit.event.player.PlayerMoveEvent; | import org.bukkit.event.player.PlayerMoveEvent; | ||||||
|  | import org.bukkit.event.player.PlayerQuitEvent; | ||||||
| import org.bukkit.event.player.PlayerRespawnEvent; | import org.bukkit.event.player.PlayerRespawnEvent; | ||||||
| import org.bukkit.event.player.PlayerTeleportEvent; | import org.bukkit.event.player.PlayerTeleportEvent; | ||||||
| import org.bukkit.event.vehicle.VehicleEnterEvent; | import org.bukkit.event.vehicle.VehicleEnterEvent; | ||||||
| @@ -162,6 +163,11 @@ public class DisguiseListener implements Listener { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @EventHandler | ||||||
|  |     public void onQuit(PlayerQuitEvent event) { | ||||||
|  |         ReflectionManager.removePlayer(event.getPlayer()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @EventHandler |     @EventHandler | ||||||
|     public void onRespawn(PlayerRespawnEvent event) { |     public void onRespawn(PlayerRespawnEvent event) { | ||||||
|         Disguise[] disguises = DisguiseAPI.getDisguises(event.getPlayer()); |         Disguise[] disguises = DisguiseAPI.getDisguises(event.getPlayer()); | ||||||
|   | |||||||
| @@ -86,6 +86,7 @@ public class ReflectionManager { | |||||||
|      */ |      */ | ||||||
|     private static Map<String, Map<String, Map<String, String>>> ForgeMethodMappings; |     private static Map<String, Map<String, Map<String, String>>> ForgeMethodMappings; | ||||||
|     private static final Method ihmGet; |     private static final Method ihmGet; | ||||||
|  |     private static HashMap<String, Boolean> is1_8 = new HashMap<String, Boolean>(); | ||||||
|     private static final boolean isForge = Bukkit.getServer().getName().contains("Cauldron") |     private static final boolean isForge = Bukkit.getServer().getName().contains("Cauldron") | ||||||
|             || Bukkit.getServer().getName().contains("MCPC-Plus"); |             || Bukkit.getServer().getName().contains("MCPC-Plus"); | ||||||
|     private static final Field pingField; |     private static final Field pingField; | ||||||
| @@ -551,12 +552,17 @@ public class ReflectionManager { | |||||||
|  |  | ||||||
|     public static boolean is1_8(Player player) { |     public static boolean is1_8(Player player) { | ||||||
|         if (LibVersion.is1_7_10()) { |         if (LibVersion.is1_7_10()) { | ||||||
|  |             if (is1_8.containsKey(player.getName())) { | ||||||
|  |                 return is1_8.get(player.getName()); | ||||||
|  |             } | ||||||
|             try { |             try { | ||||||
|                 Object nmsEntity = getNmsEntity(player); |                 Object nmsEntity = getNmsEntity(player); | ||||||
|                 Object connection = getNmsField(nmsEntity.getClass(), "playerConnection").get(nmsEntity); |                 Object connection = getNmsField(nmsEntity.getClass(), "playerConnection").get(nmsEntity); | ||||||
|                 Field networkManager = getNmsField(connection.getClass(), "networkManager"); |                 Field networkManager = getNmsField(connection.getClass(), "networkManager"); | ||||||
|                 Method getVersion = getNmsMethod(networkManager.getType(), "getVersion"); |                 Method getVersion = getNmsMethod(networkManager.getType(), "getVersion"); | ||||||
|                 return (Integer) getVersion.invoke(networkManager.get(connection)) >= 28; |                 boolean is18 = (Integer) getVersion.invoke(networkManager.get(connection)) >= 28; | ||||||
|  |                 is1_8.put(player.getName(), is18); | ||||||
|  |                 return is18; | ||||||
|             } catch (Exception ex) { |             } catch (Exception ex) { | ||||||
|                 ex.printStackTrace(); |                 ex.printStackTrace(); | ||||||
|             } |             } | ||||||
| @@ -578,6 +584,10 @@ public class ReflectionManager { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     public static void removePlayer(Player player) { | ||||||
|  |         is1_8.remove(player.getName()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     public static void setAllowSleep(Player player) { |     public static void setAllowSleep(Player player) { | ||||||
|         try { |         try { | ||||||
|             Object nmsEntity = getNmsEntity(player); |             Object nmsEntity = getNmsEntity(player); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user