public static PacketPlayOutEntityMetadata getMetadataPacket(DataWatcher watcher) {
        PacketPlayOutEntityMetadata metaPacket = new PacketPlayOutEntityMetadata();

        Field a = ReflectionUtil.getDeclaredField(metaPacket.getClass(), "a");
        a.setAccessible(true);
        try {
            a.set(metaPacket, (int) ENTITY_ID);
        } catch (IllegalArgumentException e1) {
            e1.printStackTrace();
        } catch (IllegalAccessException e1) {
            e1.printStackTrace();
        }

        try {
            Field b = PacketPlayOutEntityMetadata.class.getDeclaredField("b");
            b.setAccessible(true);
            b.set(metaPacket, watcher.c());
        } catch (Exception e) {
            e.printStackTrace();
        }

        return metaPacket;
    }