Guest User

Untitled

a guest
Nov 22nd, 2016
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.96 KB | None | 0 0
  1.  
  2. import org.bukkit.Bukkit;
  3. import org.bukkit.entity.Player;
  4.  
  5. import java.lang.reflect.Field;
  6.  
  7. /**
  8.  * Created by Jakeeeee
  9.  * https://bukkit.org/members/jakeeeee.91110457/
  10.  */
  11. public class Reflection {
  12.  
  13.  
  14.     private static Object getPlayerConnection(Player player) {
  15.         try {
  16.             Object handle = player.getClass().getMethod("getHandle").invoke(player);
  17.             return handle.getClass().getField("playerConnection").get(handle);
  18.         } catch (Exception e) {
  19.  
  20.         }
  21.         return null;
  22.     }
  23.  
  24.     public static void setField(Object packet, Object value, String field) {
  25.         try {
  26.  
  27.             Field f = packet.getClass().getDeclaredField(field);
  28.             f.setAccessible(true);
  29.             f.set(packet, value);
  30.  
  31.         } catch (Exception e) {
  32.             e.printStackTrace();
  33.         }
  34.     }
  35.  
  36.     public static void sendPacket(Player player, Object packet) {
  37.         try {
  38.             Object playerConnection = getPlayerConnection(player);
  39.             playerConnection.getClass().getMethod("sendPacket", getNMSClass("Packet")).invoke(playerConnection,
  40.                     packet);
  41.         } catch (Exception e) {
  42.             e.printStackTrace();
  43.         }
  44.         return;
  45.  
  46.     }
  47.  
  48.     public static Class getNMSClass(String name) {
  49.  
  50.         String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
  51.         try {
  52.             return Class.forName("net.minecraft.server." + version + "." + name);
  53.         } catch (ClassNotFoundException e) {
  54.             e.printStackTrace();
  55.         }
  56.         return null;
  57.     }
  58.  
  59.     public static Class getCraftbukkitClass(String name) {
  60.  
  61.         String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
  62.         try {
  63.             return Class.forName("org.bukkit.craftbukkit." + version + "." + name);
  64.         } catch (ClassNotFoundException e) {
  65.             e.printStackTrace();
  66.         }
  67.         return null;
  68.     }
  69.  
  70.  
  71. }
Add Comment
Please, Sign In to add comment