Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private static Class<?> getNMSClass(String nmsClassString) throws ClassNotFoundException {
- String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3] + ".";
- String name = "net.minecraft.server." + version + nmsClassString;
- Class<?> nmsClass = Class.forName(name);
- return nmsClass;
- }
- private static Object getConnection(Player player) throws SecurityException, NoSuchMethodException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
- Method getHandle = player.getClass().getMethod("getHandle");
- Object nmsPlayer = getHandle.invoke(player);
- Field conField = nmsPlayer.getClass().getField("playerConnection");
- Object con = conField.get(nmsPlayer);
- return con;
- }
- private static void sendPacket(Player player, int number) {
- try {
- Class<?> packetClass = getNMSClass("PacketPlayOutGameStateChange");
- Constructor<?> packetConstructor = packetClass.getConstructor(Integer.TYPE, Float.TYPE);
- Object packet = packetConstructor.newInstance(7, number);
- Method sendPacket = getNMSClass("PlayerConnection").getMethod("sendPacket", getNMSClass("Packet"));
- sendPacket.invoke(getConnection(player), packet);
- } catch (Exception e) {
- System.out.println("Error with packages!");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement