private void setPermissions(PermissionAttachment attachment, Map<String, Boolean> permissions) {
        try {
            Field p = PermissionAttachment.class.getDeclaredField("permissions");
            p.setAccessible(true);
            @SuppressWarnings("unchecked")
            Map<String, Boolean> map = (Map<String, Boolean>) p.get(attachment);
            map.clear();
            map.putAll(permissions);
            attachment.getPermissible().recalculatePermissions();
        } catch(Exception e) {
            System.out.println("PermissionZones: Using fallback method for permission manipulation (VERY SLOW!) because of ");
            e.printStackTrace();
            // Fallback method, do it one by one. SLOW AS HELL!!
            for(String name : attachment.getPermissions().keySet()) {
                attachment.unsetPermission(name);
            }
            for(Entry<String, Boolean> entry : permissions.entrySet()) {
                attachment.setPermission(entry.getKey(), entry.getValue());
            }
        }

    }