Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.bukkit.Bukkit;
- import org.bukkit.entity.Player;
- import java.lang.reflect.Field;
- /**
- * Created by Jakeeeee
- * https://bukkit.org/members/jakeeeee.91110457/
- */
- public class Reflection {
- private static Object getPlayerConnection(Player player) {
- try {
- Object handle = player.getClass().getMethod("getHandle").invoke(player);
- return handle.getClass().getField("playerConnection").get(handle);
- } catch (Exception e) {
- }
- return null;
- }
- public static void setField(Object packet, Object value, String field) {
- try {
- Field f = packet.getClass().getDeclaredField(field);
- f.setAccessible(true);
- f.set(packet, value);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void sendPacket(Player player, Object packet) {
- try {
- Object playerConnection = getPlayerConnection(player);
- playerConnection.getClass().getMethod("sendPacket", getNMSClass("Packet")).invoke(playerConnection,
- packet);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return;
- }
- public static Class getNMSClass(String name) {
- String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
- try {
- return Class.forName("net.minecraft.server." + version + "." + name);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return null;
- }
- public static Class getCraftbukkitClass(String name) {
- String version = Bukkit.getServer().getClass().getPackage().getName().split("\\.")[3];
- try {
- return Class.forName("org.bukkit.craftbukkit." + version + "." + name);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }
- return null;
- }
- }
Add Comment
Please, Sign In to add comment